То, о чем говорит эта книга трудно. Требует умственного труда, фиксации внимания, сосредоточенности. Эта книга для тех, кто привык использовать критическое мышление, ставить все под сомнение, моделировать собственную реальность, а не идти вперед за общественным мнением.
Кого-то эта книга может развлечь, кого-то заставит задуматься или по-новому взглянуть на информационные технологии. Возможно кто-то сделает интересный учебный проект, доклад, презентацию или реферат, за который может получить хорошую оценку. А кто-то, (и на это хочется надеяться), использует описанные методы, чтобы участвовать в приближении лучшего будущего с машинами, имеющими сознание. При этом, не будет иметь значения язык реализации, все описанные методики могут быть переведены на любой язык программирования для достижения лучших показателей в скорости, адаптивности или коммерческой ценности.
Что здесь интересного?
Во-первых, эта книга является практическим руководством по работе со строковыми данными и может выполнять роль «решебника» для разного типа задач; во-вторых, она рассказывает о новой технологии, (в которую автор оказался замешан практически поневоле); и в-третьих она затрагивает различные аспекты и неординарные подходы к проблеме сильного искусственного интеллекта.
При этом автор не станет говорить о чем-то невозможном. Любые части повествования будут относиться только к тем вещам, которые действительно существуют или к тем, которые могут быть созданы.
Вначале мы поговорим о представлении строковых данных на Паскале и о том, какие необычные процедуры и функции можно использовать, чтобы решать неординарные задачи, из разряда олимпиадных задач по информатике. Вероятно, эта часть особенно понравится школьникам и студентам, ведь здесь будет описано множество подпрограмм, имеющих прикладное применение.
Также мы вспомним о том, что такое альтернативная классификация данных в многомерном строчном множестве и каковы могут быть приемы работы с ними.
Далее, мы сосредоточимся на том, чтобы немного разобраться в действующих диалоговых интеллектуальных системах, постараемся понять их сильные и слабые места, разберем их «по винтикам» и порассуждаем, «как это работает?»
Во второй половине книги будут приведены новые методы работы с полисемией и контекстом, в чем нам поможет волна предложений, адаптированный толковый словарь и еще немного мозгового усердия.
И наконец, в завершении мы постараемся сконструировать систему, (пока только в теории, но со значительной степенью детализации) претендующую на звание «сильной логической машины». В частности, здесь мы поговорим о гештальт-цикличности, теориях физики мышления и связи логики, языка и интеллекта.
Кстати, в книге вы не увидите отсылки в приложения (чего так не любят многие читатели): все процедуры и функции описываются в разделе соответствующей тематики прямо по ходу повествования с приведением иллюстраций, показывающих, что происходит на экране компьютера.
О чем речь?
Это повествование является не столько логическим продолжением первой книги автора, сколько изложением «обратной стороны» практического программирования, комплекса приемов, демонстрирующих структуру программы обработки строковых данных «с нуля».
Книга «Искусственный интеллект: начала MSM», вышла в начале 2018 года.10 Она рассказывает об основах перспективной технологии в построении искусственного интеллекта многомерном строчном (строковом) множестве (или «Multidimensional Strings Multiplicity», англ.). Простая программная среда, построенная на основе специфического классификатора всего за год с небольшим своего существования показала замечательные результаты, в связи с чем автор посчитал важным продолжить публикацию данных, а также методов и технологий, реализуемых в этом проекте.
В новой книге автор расскажет и о технологических приемах, использующихся в программной модели для решения наиболее сложных проблем «понимания» естественного языка. В первую очередь это касается вопросов полисемии и контекста, которые чаще всего, (а может быть и по привычке), считаются в ЭВМ непреодолимыми.
Что потребуется?
Все приведенные в качестве примера процедуры и функции реализованы на языке Pascal, а точнее, в бесплатном компиляторе TMT Pascal lite.11 Выбор автора оказался на стороне этого компилятора отнюдь не случаен. Это один из немногих компиляторов Паскаля, позволяющих использовать во внутренних процедурах и функциях входные и выходные массивы переменных строчного, логического и целочисленного типа.12 Кроме того, TMT Pascal известен, доступен и понятен настолько, что строить простые программные модели, обрабатывающие строковые массивы данных не доставит большого труда.
Споры об MSM
Технология MSM вещь своенравная. Первые публикации о ней в сети в начале 2018 года были восприняты с подозрением, а иногда и с недоумением. Под сомнение ставилась как сама технология, так и квалификация автора, мол «Куда ты, блогер, сунулся в калашный ряд?»13 Но были среди критических замечаний и вполне корректные, достойные рассмотрения.
Особенно часто оппонентам автора вспоминался Курт Фридрих Гедель,14 австрийский математик и философ с его теорией о неполноте, а также интерпретация этой теории физиком и математиком Роджером Пенроузом15 в контексте принципиального различия между человеческим мозгом и компьютером. Мы не будем сильно беспокоить Геделя, поскольку систему MSM, едва ли можно назвать математически формальной.
Основой MSM является иерархическая онтология, которая строится в соответствии с интуитивной, смысловой, неформализованной «нагрузкой» понятий, их синонимов, весов, отношений и правил. Иерархия имеет комплементарный код каждого элемента, не имеющий фиксированной числовой разрядности, который построен по принципу бесконечности и многомерности. В словарях, организованных по принципу MSM программная модель оперирует не конкретными словами, а их смысловым кодом, и действует на основе подбора правил, выбранных в соответствие с конкретными ситуациями. Также в логике MSM реализован механизм, который позволяет уйти от математической, компьютерной точности в сторону нечеткости, адаптивности к конкретным условиям. Этот механизм помогает определять близкие понятия, находить родство и различия слов-множеств на основании онтологических связей, фактически вшитых в код понятий, в противовес четкому математическому сходству формального написания слов на естественном языке.
В книге «Искусственный интеллект: начала MSM» приводился простой пример, когда эталонное знание «Кошачьи имеют красивую шерсть» автоматически порождает новые знания о том, что «У киски есть красивая шерстка» или «У льва есть прекрасная грива», и еще сотен подобных. Этот процесс совсем не похож на математичный. Первоначально введенные данные, формально, математически, совершенно отличаются от проверочных, и тем не менее программа находит их идентичными, поскольку связи объектов, вшитые в коде, и правила обработки позволяют это сделать.
Конечно же, подобный результат можно было бы получить и посредством обычного объектно-ориентированного программирования (ООП),16 однако относительно энергозатрат в данном случае MSM оказывается в безусловном выигрыше за счет комплементарности кода понятий и общей простоты организации системы. На следующем примере также видно принципиальное отличие в построении классификатора традиционной семантической сети (рис. 1) и MSM (рис. 2).
В отличие от традиционного решения семантической сети и вариантов объектного программирования, в которых сеть связей элементов описывается с помощью дополнительных описательных блоков, не обладающих комплементарными зависимостями, элементы в MSM входят в единую структуру, где каждый из них обладает «памятью предков», а кроме того «отягощен» свойствами и «отношениями». Эта структура обладает безграничной глубиной связей, «зашитой» в самом коде элементов. На рисунке показан лишь микроскопический фрагмент, примерно 1/10 000 доли реального объема структуры, которая кодируется с помощью этих простых правил.
Рис. 1. Элементы семантической сети представлены в виде ориентированного графа, вершины которого обозначают объекты предметной области, а ребра между ними формируют отношения между ними.
Кроме того, во взаимоотношениях элементов MSM играют немаловажную роль дополнительные словари зависимостей, весов и свойств, позволяющие с помощью минимальных средств строить сложные логические конструкции, обобщающиеся на целые классы значений.
Приведенный фрагмент классификатора занимает минимальный объем памяти, составляющий менее (!) 1 килобайта. За счет подобной реализации в перспективе можно достигнуть возможностей мощной логической машины, имеющей ничтожный объем в десятки или сотни мегабайт. Так приложение на основе MSM сможет работать даже в обычной бытовой технике вроде холодильника или микроволновки.