GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.160 (163)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Многомерное строчное множество и с чем это едят
victorst
Сообщений: 820
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 1:37
Цитата:
Автор: Misteryest
Первый элемент, общий предок это "A" - "$ВСЕ$" (это абстрактное понятие, обозначающее все сущее, но по существу не участвует как значение, само слово "все" по существу имеет 3 значения в нижней понятийной кодировке, как "сообщество", "всеобщее/родство" и "общее/всеобщее").
Из него растут два больших прапредка AA и AB - "неживое" и "живое"


Вам это ничего не напоминает? Лучше вначале рассматривать левую строну изображения начиная от узла Entity
[Ответ][Цитата]
Misteryest
Сообщений: 935
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 7:27
Изменено: 25 окт 19 7:47
Цитата:
Автор: victorst

Вам это ничего не напоминает? Лучше вначале рассматривать левую строну изображения начиная от узла Entity


Я много раз это повторял и повторюсь, мсм это не об онтологии.
Важны не связи, а способ, как они записаны.
Если онтологии вроде SUMO используют пары записей в духе "мама-родственник" "родственник-человек" "человек-примат" и тд. и потом программа мучительно собирает множество вариантов сочетаний, то в мсм происходит совсем по другому.

В мсм используются комплементарные коды, которые демонстрируют картину "целиком", в связи с чем отбрасываются множества лишних действий и тупиковых стратегий. Также в мсм достигается возможность строчных, множественных сравнений понятий, в результате чего оказывается возможным нахождение верного контекста и "зеркальные" ответы.. И много дополнительных плюшек. Подобные плюшки нельзя обеспечить обычными онтологиями по типу организации пар "связь-связь" (или "предикатов"), или имеющих векторные представления.

Поэтому простая задача на нахождение лишнего объекта среди полисемичных выражений недостижима в других системах.
[Ответ][Цитата]
victorst
Сообщений: 820
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 7:47
Изменено: 25 окт 19 8:04
Цитата:
Автор: Misteryest
В мсм используются комплементарные коды, которые демонстрируют картину "целиком", в связи с чем отбрасываются множества лишних действий и тупиковых стратегий. Также в мсм достигается возможность строчных, множественных сравнений многих понятий, в результате чего оказывается возможным нахождение верного контекста и "зеркальные" ответы.. И много дополнительных плюшек, на которые обычные онтологии по типу организации пар "связь-связь" (или "предикатов") - не работают.

Конечно, кроме самого языка описания онтологий и собственно, самих онтологий как структур данных существуют онтологические движки, такие, как FACT++, JENA и т.д. У меня тоже имеется собственный движок.
Что же делают такие движки (Inference Engines)?
Они производят все возможные вычисления согласно, к примеру, профилю OWL-RL. Допустим, кидаем в этот движок новую порцию, какой-нибудь маленький граф. Этот движок немедленно производит все возможные на данный момент вычисления, все доказательства, все логические выводы.
Получается довольно интересно. Допустим, какой-то информации недоставало, чтобы сделать интересующее нас или саму программу умозаключение. Подкидываем граф. И он среди прочего при определенных условиях может породить ответ, который окажется полезным.
Главное то, что в любой момент в рабочей памяти этого движка все и вся является доказанным и непротиворечивым согласно законам логики.
Чтобы было понятнее, вот одно из самых простых правил движка:
Если класс B является субклассом класса A и класс C является субклассом класса B, то класс C является субклассом класса A.
Допустим, что в рабочей памяти находится два утверждения:
1. Класс Теплокровные - субкласс класса Животные.
2. Класс Млекопитающие - субкласс класса Теплокровные.
Если забросим в эту же память утверждение:
3. Класс Корова - субкласс класса Млекопитающие.
То движок сделает автоматический вывод:
4. Класс Корова - субкласс класса Животные.

А те новые утверждения, которые противоречат находящимся в рабочей памяти утверждениям, будут удалены.
[Ответ][Цитата]
Misteryest
Сообщений: 935
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 8:21
Цитата:
Автор: victorst

Чтобы было понятнее, вот одно из самых простых правил движка:
Если класс B является субклассом класса A и класс C является субклассом класса B, то класс C является субклассом класса A.
Допустим, что в рабочей памяти находится два утверждения:
1. Класс Теплокровные - субкласс класса Животные.
2. Класс Млекопитающие - субкласс класса Теплокровные.
Если забросим в эту же память утверждение:
3. Класс Корова - субкласс класса Млекопитающие.
То движок сделает автоматический вывод:
4. Класс Корова - субкласс класса Животные.

А те новые утверждения, которые противоречат находящимся в рабочей памяти утверждениям, будут удалены.


Вы привели хороший пример. Но предположим, мы имеем на вход предложение из 7 многозначных слов. Каждое из них имеет в среднем по 15 связей, и по 5 альтернативных значений (каждое из которых также имеет по 15 связей). Поскольку вы - технарь, вам не составит труда прокалькулировать обьем работы, который требуется описанному вами движку для сравнения всех вариантов сочетаний. Если память мне не изменяет, эта ситуация называется комбинаторным взрывом, когда количество вариантов сочетаний выходит за пределы вычислительной мощности.
Мсм же справляется с этим на "раз-два".
[Ответ][Цитата]
гость
188.170.194.*
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 8:57
Misteryest, почитал, что вы пишете, у меня нет слов просто. А можно узнать, вы по образованию кто? Программирование сами изучали и где? Чем обусловлен выбор вами среды программирования (вот этого я действительно, не понимаю).
[Ответ][Цитата]
гость
188.170.194.*
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 9:01
Да, и расскажите пожалуйста, что вас заставило заняться разработкой мсм, после каких событий возникло такое желание..
[Ответ][Цитата]
victorst
Сообщений: 820
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 9:15
Изменено: 25 окт 19 9:27
Цитата:
Автор: Misteryest
Вы привели хороший пример. Но предположим, мы имеем на вход предложение из 7 многозначных слов. Каждое из них имеет в среднем по 15 связей, и по 5 альтернативных значений (каждое из которых также имеет по 15 связей).

Со словами у меня работает текстовый анализатор. Один из этапов его работы - разрешение неоднозначностей. Проще говоря, он не выдаст на вход онтологического движка граф с утверждением, что слон питается домашними тапочками, т.к. такое выражение не пройдет статистический порог. И даже если что-то подобное будет сформировано в виде семантического графа, это будет противоречить той онтологии, что заложена в мою систему. Движок легко найдет противоречие. Он будет искать пересечение того, чем питаются слоны с домашними тапочками. Такое пересечение может быть достигнуто гораздо выше в онтологии, чем будет допустимо. Например, пересечение будет в утверждении, что тапочки и пища слонов - материальные объекты. Поэтому легко будет сделан стандартный логический вывод о том, что такое утверждение ложно в рамках существующих знаний. Но т.к. в онтологии мир открыт, то если в будущем появятся слоны, питающиеся тапочками, знания о них будут внсены в систему и не будут являться противоречивыми.
Не нужно перебирать все комбинации сочетания значений всех слов в предложении. Понятийный граф строится по мере прочтения текста от первого слова до последнего. Этот процесс последовательный. При анализе следующего слова ветви строящегося одного или нескольких альтернативных графов будут либо достраиваться, либо отсекаться. Это неплохо согласуется с тунеллированием сознания в процессе понимания речи собеседника где в общении участвуют два человека. Короче, марковские цепи вам в помощь. Они кстати, у меня тоже участвуют в выработке конечного результата.
[Ответ][Цитата]
Misteryest
Сообщений: 935
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 10:31
Цитата:
Автор: гость

Да, и расскажите пожалуйста, что вас заставило заняться разработкой мсм, после каких событий возникло такое желание..

Вопросы интересные, постараюсь ограничиться негероической историей, покороче и с конца.

О квалификации и выборе платформы

Программированием занимался с детства, ходил на курсы по паскалю 5 лет, еще в школе побеждал в городских и областных олимпиадах, пару лет занимался Delphi, немного php, html. Но профессионально ушел сначала в историю, археологию, потом - на госслужбу и в журналистику. Между тем, программирование меня увлекало в свободное время, особенно в части неформализованных строковых данных. Будучи на госслужбе в 2013 г. запатентовал неплохую (как мне кажется) программу по автоматизированной обработке электронных резюме "Комплекс обработки резюме "Спартак" без участия человека. Последняя ее версия была сделана на Delphi. Еще делал некоторые прикладные фитчи для написания рерайтов, базы данных, но это уже мелочи. За неимением времени и необходимости - не занимался подробным изучением других языков и технологий. А столкнувшись с некоторыми багами, не позволяющими оптимально работать с несколькими выходными строчными массивами в Delphi, решил что то, что требуется мне для личных целей, наличествует в TMT-Pascal, и на этом остановился, поскольку паскаль мне знаком очень хорошо, и я могу решать на нем разные задачки хоть с закрытыми глазами. Ну и к тому же, накопившаяся масса прикладных процедур от "Спартака" первой версии - тоже пошла в дело.

По поводу разработки МСМ
Тема искусственного интеллекта вдохновляла меня всегда. И много времени я потратил на то, чтобы делать какие-то попытки машинного анализа строковых данных. Где-то в промежутке с 2012 по 2016-й я неоднократно начинал заново различные программы с различными подходами, где пытался использовать объектное программирование, статистический анализ, реконструкции из словесных пар и троек, некоторые онтологии и прочее.

Главная проблема в которую все упиралось, и что не нравилось при работе с естественным языком, - непредсказуемое число вариантов написания и необходимость реконструкции сложных логических отношений из чрезмерно фрагментированных данных. Между тем, мне хотелось получить из языка некую конструкцию вроде дерева, где индексы слов имели бы легкую адресацию, имели свойства переменных, как в массиве, и не требовали бы дополнительных вычислений логических отношений между собой. И, как-то ночью в августе 2017-го, такое решение нашлось. С одной стороны оно казалось банальным до примитивности, и вызывало вопрос "почему такого не придумали раньше?", а с другой стороны оно решало несколько ранее неразрешимых проблем. В частности, проблемы комбинаторного взрыва и полисемии, организации универсальных правил обработки данных и относительно быстрой скорости наращивания дерева. Так что я считаю это решение очень удачным и перспективным по целому ряду направлений...
Конечно же, оно требует вложения труда, но классификатор уже хорошо подрос, содержит сейчас не менее 300 000 выверенных значений (за 2 года "ленивых" усилий это очень неплохо), и планов на него очень много, на которые я смотрю с большим оптимизмом. Если вас интересуют подробности, можете ознакомиться с 2 книжками на эту тему и серией тестовых видеороликов. В первых постах также есть некоторые отсылки. Если хотите немного подробнее об МСМ есть во фрагменте второй книжки .

[Ответ][Цитата]
Misteryest
Сообщений: 935
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 11:03
Цитата:
Автор: victorst

Со словами у меня работает текстовый анализатор. Один из этапов его работы - разрешение неоднозначностей. Короче, марковские цепи вам в помощь. Они кстати, у меня тоже участвуют в выработке конечного результата.


Марковские цепи тоже требуют вычислений, а в мсм хорошо то, что промежуточные вычисления не требуются. Поэтому я исхожу из посылки, - когда задача решается более простым методом, то она и не требует усложнений. Впрочем, я не претендую на истину в последней инстанции, и если ваши методы вас удовлетворяют, то ради бога, за чем же дело стало.
Коды мсм полезны тем, что работают на простом строковом сравнении и некоторых позиционных обобщениях, и к ним удобно применять правила, не включающие какие-либо математические или статистические формулы, поскольку сама форма их организации упрощает этот процесс.
[Ответ][Цитата]
victorst
Сообщений: 820
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 15:12
Изменено: 25 окт 19 15:17
У меня есть несколько простых вопросов.
1. Насколько я понял, символьная последовательность, приписываемая каждому узлу МСМ - это лишь уникальный идентификатор узла этой в иерархической сети МСМ, в коде которого зашит путь от корня дерева (узла А) до текущего узла? И отличие ее от любого другого типа идентификатора, к примеру, числа, лишь в удобочитаемости человеком?
2. Как в МСМ производится различение класса от индивида (представителя класса).
Пример:
Имеется класс Человек. Вася_Пупкин - представитель класса Человек.
3. МСМ представлет из себя таксономию классов или в ней есть более сложные элементы?
4. Могут ли узлы (классы МСМ, если я их правильно называю классами) иметь множественное наследование?
6. Имеются ли свойства у классов МСМ?
Например, как классу Яблоко приписать свойство Зеленый? Или придется создать субкласс Зеленое_яблоко?
[Ответ][Цитата]
Misteryest
Сообщений: 935
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 17:11
Цитата:
Автор: victorst
У меня есть несколько простых вопросов.
1. Насколько я понял, символьная последовательность, приписываемая каждому узлу МСМ - это лишь уникальный идентификатор узла этой в иерархической сети МСМ, в коде которого зашит путь от корня дерева (узла А) до текущего узла? И отличие ее от любого другого типа идентификатора, к примеру, числа, лишь в удобочитаемости человеком?
2. Как в МСМ производится различение класса от индивида (представителя класса).
Пример:
Имеется класс Человек. Вася_Пупкин - представитель класса Человек.
3. МСМ представлет из себя таксономию классов или в ней есть более сложные элементы?
4. Могут ли узлы (классы МСМ, если я их правильно называю классами) иметь множественное наследование?
6. Имеются ли свойства у классов МСМ?
Например, как классу Яблоко приписать свойство Зеленый? Или придется создать субкласс Зеленое_яблоко?


1. Не вполне. Отличие от любого другого идентификатора - в методе сравнения отношений. Использование символа, а не числа, дает дополнительную емкость и компактность. Так, для чисел, если емкость позиций не ограничена, возникает естественная беда, требующая дополнительных символов и возможной разности длины предков, имеющих соразмерное родство (а это довольно важное качество)
1.1.10.2.1
1.10.112.2.2
В итоге позиции сбиваются и уже приходится варьировать число переходов от потомка к родителю для определения родственности. Кроме того, эта история не позволит использовать простую модель строкового сравнения, поскольку один смысловой блок может совпадать только частично или ложно. Например,
1.10.1.100 и
10.1.11.10

Если же используется фиксированное число позиций, возникает проблема увеличения разрядности для увеличения емкости.
Здесь объяснять наверное не нужно, использование 1 числа не даст возможности использовать в потомках больше 10 морфологических значений, а их обычно больше; а увеличение до 3-х порождает сложности в объеме записи, т.е. там где в посимвольном кодировании запись займет 15 символов, то в числовом их уже станет 45. Это не очень удобно, когда предложение из 10 слов займет в виде кода 450 символов. Но даже если фиг бы с ним, потом как снежный ком возникают мелкие но неприятные проблемы подбора следующих значений для потомка, когда код приходится разбивать на тройки значений; когда расхождение позиции сбивается наличием одинакового символа десятков или единиц; когда связи между двумя элементами в моделях потребуют перестроения в более сложные алгоритмы; в принципе это все ерунда, но это снижает качество использования и увеличивает вероятность ошибок. Поскольку сравнение (в идеале) производится строками, а не категорийными блоками.
Поэтому кодирование по типу мсм - это близкое к оптимальному (но я не утверждаю, что идеальное) решение.
Например, сравните значения

ABABACAAA человек
ABABACAAAAAACA мама

Это не просто красиво, но удобно, поскольку вычисляет родство одной командой и одним строковым сравнением за одно действие. Короткое оказалось в длинном и позиция первого символа=1 - значит короткое - родитель длинного. Просто, но вкусно.

2. Пупкин окажется этажом ниже Васи, а Вася окажется этажом ниже Василия, соответственно все это хозяйство с отцом "Василий" окажется в одном значении - в мужских именах, а в другом значении - в персоналиях, которые относятся к мужчинам, людям и к человеку. Как вариант, но вцелом, персонажи требуют специфических правил, которые относятся к социальным отношениям; а социальные отношения требуют личного отношения к этому программы; соответственно под Василия Пупкина будет заведен отдельный "файл" наподобие свойств, но более обширный, который будет отражать отношения к нему как к персонажу в виде записей в кодах: листинг содержания бесед, степень дружбы, приязни, его хотелки, короткая биография, местоположение и др.
3. К мсм привязываются по необходимости словари весов, антагонистов, моделей; из интересного, связи реконструкций - как элемент восстановления одного значения из другого, (и это еще один бонус к символьному множеству) которые могут порождать как фантомные значения, так и (неожиданно) реальные.. это такая любопытная штука. Если провести аналогию, связь реконструкции это как GPS навигатор с прогнозом, который говорит "черт его знает, что это, но попробуй на 5 позиций вверх и на три влево". То есть, если мы ранее реконструировали карася из "карповых", то можем реконструировать и (незаписанного ранее) барсука из "хищных", прогнозируя, в какую ветку он упадет. Это если коротко о главном.
4. Множественное наследование не поддерживается, но используются дополнительные значения того же написания. Как пример с пузырем:
AAADAACAAOEEK Пузырь (как бутылка, посуда)
AAAAAAABAAFAAAAAABAAK Пузырь| (как шар, шаровидный)
AAADAAEAAFDJ Пузырь|| (как мыльный пузырь, пузыри, игрушка)
AAAAAAADAABBAABLHALD Пузырь||| (как мочевой пузырь, орган)
AAADBAAACS Пузырь|||| (как алкоголь, напиток)

и если рядом поставить бутылку водки
AAADBAAACCA - она быстро подружится с последним значением пузыря

6. Свойства есть, выше по веткам кстати много говорил про быстрых, желтых львов, лесных белок, морских китов и все такое прочее... и кстати, там по ссылке если ткнуть на пару этажей выше, во фрагменте книжки есть про это.

Уф. Как мог постарался ответить.
[Ответ][Цитата]
Влад
Сообщений: 1387
На: Многомерное строчное множество и с чем это едят
Добавлено: 25 окт 19 20:49
Изменено: 25 окт 19 21:09
Цитата:
Автор: Misteryest
Уф. Как мог постарался ответить.

Misteryest, можно задать вопрос, что именно отражает Ваше дерево?

Учитывая, что побег с подводной лодки невозможен, то это, отражение
всех возможных сочетаний элементов материи:
1. Вначале, в виде материала: живое, неживое.
2. Затем, в виде материальных объектов: лев, стул.
3. Потом, в виде рекомбинации объекта: трезвый, пьяный.

Есть ли данная закономерность в Вашем дереве?

[Ответ][Цитата]
victorst
Сообщений: 820
На: Многомерное строчное множество и с чем это едят
Добавлено: 26 окт 19 1:20
Изменено: 26 окт 19 1:28
Цитата:
Автор: Misteryest
1. Не вполне. Отличие от любого другого идентификатора - в методе сравнения отношений. Использование символа, а не числа, дает дополнительную емкость и компактность. Так, для чисел, если емкость позиций не ограничена, возникает естественная беда, требующая дополнительных символов и возможной разности длины предков, имеющих соразмерное родство (а это довольно важное качество)
1.1.10.2.1
1.10.112.2.2

Вы меня не совсем поняли. Если используется числовой идентификатор в 64-битной системе, то каждому узлу можно поставить в соответствие такое уникальное число фиксированной разрядности.
Если же в идентификатор явно зашивать путь от корня дерева до нужного узла, то да, лучше для каждого нижеследующего уровня в этом идентификаторе брать субсимвол.
Разберемся с вашей кодировкой идентификаторов.
Правила описания можете посмотреть на моей страничке RoboBrain_Interchange_Language в верхней таблице "Синтаксические EBNF правила". Страницу я создал в 2009 г. Не буду эти правила здесь повторять.
Вот как я вижу вашу кодировку в формате EBNF:
ConceptID = ParentID* LevelID. ; Идентификатор текущего узла.
ParentID = SymSeq*. ; Идентификатор родительского узла
SymSeq = Sym*. ; Последовательность символов.
LevelID = Sym. ; Следующий свободный код Sym на данном уровне для данного ParentID.
Sym = Byte. ; Бинарное представление символа.

Комментарии:
ConceptID - это и есть уникальный идентификатор узла вашей сети МСМ.
Из таблицы видно, что все упирается в кодировку Sym. В данном случае он 8- битный (Byte). Кроме того, в МСМ он ограничен лишь кодами буквенных символов, что еще существенно уменьшает его кодовую емкость. Можно, конечно, взять вместо байта 16-битные слова (Word). Но пока допустим, что и Byte достаточно.
Раз уж вы особо налегаете на удобство таких идентификаторов для разного рода операций, то скажите, используете ли вы в своей деятельности Ternary Search Tree (TST)- Дерево тернарного поиска? Я их исследованию уделил месяца три своей небольшой жизни. Поэтому и спрашиваю.
[Ответ][Цитата]
Misteryest
Сообщений: 935
На: Многомерное строчное множество и с чем это едят
Добавлено: 26 окт 19 3:01
Изменено: 26 окт 19 3:12
Цитата:
Автор: victorst
.. Кроме того, в МСМ он ограничен лишь кодами буквенных символов


Не люблю невнимательность. Код байта таблицы ascii. Не символ.
Читайте. Чертову. Книгу.

Насчет тернарного дерева. Нет, я пользуюсь другим методом ускорения поиска.
[Ответ][Цитата]
victorst
Сообщений: 820
На: Многомерное строчное множество и с чем это едят
Добавлено: 26 окт 19 3:11
Изменено: 26 окт 19 3:22
Цитата:
Автор: Misteryest
Не люблю невнимательность.
Ну уж извиняйте. В одно ухо влетело, в другое вылетело. Т.е. код 00, 01 и тд у вас в деле? Хорошо. При выводе на печать им можно поставить в соответствие какой-нибудь графический элемент. Интересно, какие графические символы им назначены вами? Но сути это не меняет. Если дерево довольно глубокое и на каждом уровне из 256 возможных будет использоваться лишь несколько кодов, то налицо гигантская избыточность такого кодирования по сравнению с обычной числовой последовательностью. Кстати, UTF-8 тоже результат недовольства 16 и 32 битной кодировкой символов.
Ладно, оставим это. Кодировка тут не самое главное.
Тернарные деревья собственно - это не только способ поиска, но и способ хранения и обработки строк переменной длины, коими и являются ваши длинные идентификаторы узлов дерева МСМ .
[Ответ][Цитата]
 Стр.160 (163)1  ...  156  157  158  159  [160]  161  162  163<< < Пред. | След. > >>