Философия - итоги

на главную

Робот

Идея искусственного интеллекта

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

В отличие от множества других областей в этой области мы имеем уже давно существующее готовое решение – это мы с вами. Издревле мы понятие человека делим на две сущности, это его тело и его душа. О теле человека, что касается данной темы, мы поговорим позже, когда начнётся более предметный разговор, а о душе не буду здесь повторяться посмотрите, пожалуйста, отдельную статью «Душа». Там понятие души рассмотрено, как реальная сущность, отождествляемая с личностью человека и участвующая в принятии решений определяющих поведение человека, в общем, глобально, на уровне морали. Поэтому я сразу перейду к рассмотрению более предметно конечного вывода.

Полученный там вывод, говорит о том, что душа конкретного человека это та часть языка, которой владеет человек. При этом это не только словарный запас, но и неотъемлемые связи между словами, которые определяют глубину знаний человека. Например, мы все знаем, что слово вода неразрывно связано со словом пустыня, без понятия воды невозможно дать понятия пустыни. При этом химик кроме всего того, что обычно знают все люди, ещё знает множество химических формул, где участвует или получается вода. Строитель знает, что вода необходимый компонент для получения бетонных смесей, а гляциолог знает множество физических свойств воды. По мере накопления знаний человек не просто запоминает слова, как набор букв, а человек всегда запоминает каждое слово обязательно в связи с чем-то, в связи с другими словами. И чем больше человек имеет понятий, тем больше он может привести примеров в каких понятиях и в каком качестве участвует то или иное слово.

Наш естественный язык, которым мы пользуемся, это калька с окружающей нас реальности. Он отражает то, как мы воспринимаем мир во всех его проявлениях и, что мы думаем по поводу всего этого. При этом язык выполняет двойную функцию, с одой стороны он описывает и трактует, с другой стороны он же является инструментом решения задач приводящих к конкретным действиям. То есть, мышление не просто основывается на языке, оно и есть сам процесс использования языка. Неразрывная связь языка с реальностью говорит о том, что интеллект сам по себе без связи с реальностью невозможен. То есть невозможно создать просто думающий мозг, или скажем так, написать программу, которая только получает запросы и выдаёт ответы, и при этом, чтобы она рассуждала как человек. Для того чтобы программа рассуждала подобно человеку, она должна как минимум быть в условиях подобных условиям бытия человека. Программа «вопрос - ответ» не будет сама по себе рассуждать по той причине, что для любого рассуждения нужна причина, или можно сказать иначе, мотив. А если причиной будут только запросы, то между ними программа будет просто ждать.

Этот путь развития нам демонстрируют Интернет поисковики, такие как Рамблер или Яндекс. Первоначально они искали все документы, имеющие такие же слова, как в запросе. Потом сложилось понятие релевантности, как соответствия между сутью запроса и тем, что собственно предлагается к просмотру. Это породило поиск косвенных решений таких, как количество ссылок на документ, их авторитетность, качество хостига, возраст и обновляемость сайта, и множество других параметров. Имеющаяся история развития по этому пути показала, что этот путь может поднять релевантность только до определённого и весьма незначительного уровня. Такой подход может убрать значительную часть откровенного мусора, но вот разобраться среди тысяч сайтов имеющих приличный вид косвенный подход не даёт ни какой возможности. Осознав это, разработчики поисковых машин пошли, в общем-то, по правильному пути. Они сначала научили свои детища различать и, соответственно, соотносить между собой все формы одного и того же слова. Затем настал черёд синонимов, и как я понял сейчас основная битва идет за полноту тезауруса и правильность его использования.

Вот это всё правильно и делать это нужно, но при этом следует понимать, что 100% релевантность для таких машин в принципе недостижима. Человек в запросе обозначает лишь тему, и требовать от простого человека умения грамотно составлять расширенные запросы не корректно. Умение поисковиков ещё в процессе написания запроса показывать подобные наиболее часто задаваемые вопросы, конечно, должно быть, но реальная интеллектуальность появится тогда, когда машины смогут задавать уточняющие вопросы. Для этого необходимо анализировать подобранные материалы на предмет сути, тогда не будут подсовываться, например, по запросу «философия душа» - философия чаепития. А суть можно вычленить, только если программа будет видеть за каждым словом весь срез, тех слов и понятий, с которыми это слов так или иначе связано. Это видение даст программе возможность понимать чего не может быть, что и с чем не вяжется. То есть, в том же примере философия того, как создать задушевную обстановку во время чаепития далека от сущности души, что предполагается в запросе. Знание того, что с чем вяжется, а с чем не вяжется принципиально важно, только оно даёт понимание того, что и к чему.

При этом ни в коем случае нельзя идти по пути формализации алгоритмов, например, формально слова камень и пух неразличимы, они оба имена существительные мужского рода и неодушевлённые. Только знание всех свойств каждого позволит правильно определить, что из них может парить в воздухе. Вычленение сути подобно работе журналиста, которому дали задание написать краткий обзор большой статьи, а потом написать короткое резюме на краткий обзор. То есть, поиск сути это всегда поиск самого главного выраженного в самых обобщающих категориях для всех значимых понятий. Для того же примера самыми релевантными будут те статьи, для которых вычленение сути приведёт к заключению – суждение философа о душе. Соответственно такой уточняющий вопрос должен быть среди других, и тогда поисковая система будет выдавать не по пять тысяч документов, а лишь несколько десятков, но это будет как раз то, что нужно.

В своё время я решил немного поэкспериментировать, имея только настольный компьютер и только в его пределах. Конечную задачу я сформулировал так, написать программу, допускающую свободный синтаксис в командной строке. Задачу я начал решать

прямолинейно, не имея не только никакой идеи, но даже никаких соображений. Я решил пойти по пути нужды, то есть делать только то, что нужно в каждый данный момент. Абсолютно антинаучный подход, но он интересен тем, что позволяет сразу увидеть все, даже самые мелкие препоны. Сначала я написал словарь, где за каждым словом следовало три цифры, в которых описывался способ склонения, в итоге у меня получился словарь, который мог показать слово во всех возможных для него формах. Небольшая модернизация позволила получить программу, показывающую неизвестные для неё слова в тексте, получился такой маленький «Word». Три цифры, описывающие каждое слово, позволяли группировать слова по множеству признаков, вот это я и решил взять в качестве возможностей программы. Далее я написал под каждую возможность свою функцию, в обычных программах в таких случаях для каждой функции заводят свою кнопочку и пункт в меню, или связывают с каким-то событием, но у меня была другая задача, и я добавил командную строку.

Вот здесь закончилась рутина, и началось самое интересное. Далее открывалось два пути, делать тезаурус или как-то описывать все возможные варианты которые могут быть написаны в командной строке. Первый путь предполагает не только огромный объём работы, но он и оставляет открытым всё тот же вопрос, как определить суть написанного и точно определить, какую именно функцию следует запустить. То есть, наличие тезауруса никак не может быть решением проблемы. Тезаурус это лишь удобное складирование информации, но проблема не в том, откуда взять информацию, проблема в том, как ею воспользоваться. Второй путь это непосредственное решение, где вся информация должна быть представлена непосредственно в теле алгоритма. Такой подход исключает избыточность информации и при этом не исключает возможность наличия тезауруса, но он так же показывает, что тезаурус может быть источником новых возможностей, но никак не средством решения проблемы.

Простое перечисление в событии ввода запроса различных вариантов с указанием какую функцию при этом запустить, быстро показало, что это не только бесконечный путь, но этот путь исключает возможность задавать уточняющие вопросы. А это крайне необходимо, так как анализ того, что может быть написано в командной строке, показал, что формулировки запроса могут носить расплывчатый характер и иметь двоякое толкование. То есть, такой простой подход принципиально не может дать требуемого решения, следовательно, предложение запроса требует анализа пословно. В том же событии пришлось писать структуру, где перед входом в каждую функцию стоял свой алгоритм проверки соответствия. Все алгоритмы имели похожую структуру, но сильно отличались друг от друга в конкретном исполнении. Это было связано со сложностью описания самой функции. Например, для функции показать все имена существительные алгоритм был намного проще, чем для функции, от которой требовалось показать все слова, у которых в такой-то позиции такая-то буква, а в такой-то такая-то. У каждой функции свой объём потребности в языковом выражении, соответственно, и слов требуется больше, а это делает каждый алгоритм структурно неповторимым.

Тем не мене, возня с такими алгоритмами показала следующее. Любой из них представляет собой последовательный каскад, где на каждом этапе проверяется нечто своё. При этом каждый этап позволял рассмотреть все синонимы и возможные языковые конструкции, уместные в каждом конкретном случае. Общая суть работы такой структуры сводилась к следующему, каждый запрос последовательно пытался пройти сквозь каждый каскад, где это удавалось, срабатывала соответствующая функция. Но если это нигде не удавалось, появлялась возможность сформировать уточняющий вопрос. При этом программа тут же превратилась из тупого автомата в нечто обладающее разумным поведением. Тестирование показало, что адекватность реакции программы зависит исключительно от тщательности того, насколько учтены все языковые конструкции и синонимы на каждом этапе каскада и достаточно ли самих этапов для полного рассмотрения всех возможных вариантов.

Пошаговое подсматривание за тем, как работает программа, показало, что если запрос совсем не в тему функции в которую он пытается войти, то запрос отправляется к следующему каскаду на первом же этапе, и чем ближе он по теме, тем дальше в глубь каскада ему удаётся пройти. Это подсказало, что уточняющий вопрос следует формировать, опираясь на то, в какие каскады запрос заходил глубже всего, а если он вылетал везде на первом этапе, то смело можно было писать в ответе, человек, это ты о чём?

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

Очень интересным местом является место, куда скатывается запрос, если он не прошёл ни через один каскад. Здесь возможны варианты, можно сформировать уточняющий вопрос, а можно трансформировать сам запрос и ещё раз пропустить его через каскадное сито. Возможен и более сложный вариант, это разбить запрос на несколько более простых вопросов и каждый пропустить через отдельную систему каскадов ведущих не к конкретным действиям, а к каким-то заключениям. Потом, уже на основании этих заключений можно будет принимать решение. То есть, сам каскадный подход позволяет иметь не только систему, приводящую к действиям, но и систему отдельного анализа.

Недостатком, на первый взгляд, такого подхода является предопределённость всего процесса, невозможность обучения, но это только на первый взгляд. Из понимания процесса работы кибернетических машин видно, что и в этом случае можно построить саморазвивающуюся систему. Для этого система должна состоять из трёх частей, это собственно программа, но при этом она должна уметь писать файлы вновь приобретённых знаний, которые будут второй частью системы. И третья часть, это компилятор, который, когда управление передастся ему, на основании файлов вновь приобретённых знаний, будет переписывать файлы первой части системы и потом вновь её запускать через её exe файл.

Теперь, как я и обещал в начале статьи, рассмотрим наши знания о человеке и соотнесём их с высказанной здесь идеей. Мозг человека представляет собой структурно организованную систему нейронов, где каждый нейрон имеет порядка тысячи связей с другими нейронами. Сам нейрон представляет собой, образно говоря, систему переключающих реле, где входной сигнал с каждого из тысячи соединений, вызывает срабатывание только определённых реле.

При этом если одновременно приходит несколько сигналов, то срабатывают уже другие реле и, соответственно, открываются другие каналы. Кто понял суть сказанного и владеет математикой, уже сами смогли прикинуть, что при такой организации информативная ёмкость даже всего лишь тысячи нейронов, численно уходит в бесконечность. Именно поэтому, нам живая природа и может это продемонстрировать на примере насекомых, у которых мозг как раз и состоит из того числа нейронов, каково у них количество отростков у каждого. Вот такой минимально возможный мозг, обратите внимание, способен в себе содержать все необходимые алгоритмы поведения, приём и анализ всех данных со всех органов чувств и ещё успевает выдавать управляющие сигналы на все лапки и крылышки.

На примере живой природы мы видим, сколь эффективна идея каскадной организации, её реализация способна не только обрабатывать информацию, но тут же превращать процесс обработки в управляющий сигнал. Здесь естественен вопрос, каким образом живая природа умудряется строить необходимые каскады? Выше мы видели, что сами принципы организации кибернетической машины требуют периодической остановки процесса работы программы и её переписывание другой программой на основании накопившихся данных. А в живой природе мы видим, что всем живым существам необходим сон, хотя бы в том или ином виде. Отсюда уже видится тот путь, по которому пошла матушка природа, гены обеспечивают создание нейронов, их объединение всех со всеми ближайшими соседями и первоначальную предзаданность вот этих всех переключателей внутри нейронов. Предзаданность обеспечивает сиюминутную жизнедеятельность и элементарные поведенческие навыки, которые мы констатируем как инстинкты. Процесс реальной жизни вносит коррективы, которые во время сна реализуются в перестройку всех переключателей внутри нейронов. Это объясняет, почему так важен сон и почему так вредно для здоровья не только недосыпание, но и резкое прерывание сна. Когда мы вовремя ложимся и встаём по будильнику, давая мозгу достаточно времени, нейроны успевают сделать все внутренние перестройки, и поэтому мы утром полны сил и у нас всё легко получается.

Здесь возможен вопрос, это живой природе деваться некуда, нам-то, зачем останавливать и переписывать программу, она и так может прекрасно работать с внешними файлами? Да, может, но каскады работают на много порядков быстрее, чем программа, без конца обращающаяся к внешним файлам. Потом переписывание программы есть её совершенствование, а накопление информации во внешних файлах исключает такую возможность. Кроме этого совершенствование программы становится саморазвивающимся процессом, отражающим реальные потребности, где перестройка каскадов способна учесть сколь угодно сложную логику любого процесса из реальной жизни.

Апокалипсис
Атеизм
Будущее экономики
В круге втором
Вера
Гравитация
Границы жизни
Демократия
Добро и зло
Дух
Душа
Знание
Идеализм
Идеальный вариатор
Идеальный движитель
Идея
Интеллект
Искусство
Истина и бытие
Культура
Логика
Логика истории
Любовь
Материя
Мегалиты
Механика
Мораль
Наска
Натуральная философия
Наука
Начала математики
Начала экономики
Общественная проказа
Общество
Парменид
Предел греха
Прогресс
Пути дороги
Руны
Свобода
Свобода и бардак
Слова древних
Смысл жизни
Совесть
Современная философия
Суждения - по видимому
Сущность власти
Термоядерный реактор
Философия
Честность
Честь
Цена правды
Язык

Вершинин Эдуард
  Константинович

Рейтинг@Mail.ru