Как создать самообучающийся искусственный интеллект. Google создала самообучающийся прохождению компьютерных игр искусственный интеллект. Эксперименты от создателей сети ESOINN

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

Практическая важность темы стала очевидна не так уж давно, если применять временные масштабы истории развития человеческой мысли. Однако сегодня "интеллектуальные агенты" типа Copernic`а или системы распознавания образов установлены уже почти на каждом компьютере. Причиной, почему этот вопрос не нашел своего однозначного решения до сих пор, является то, что для его понимания необходимо применить иные принципы мышления, отличающиеся от тех, которые являются основными для большинства носителей не только "искусственного", но и "естественного" интеллекта. Нельзя понять нечто, находясь внутри. Необходим взгляд извне. Только такой подход может дать объяснение явлению в его взаимодействии с окружающим. Иными словами, для того чтоб понять, как мы думаем, надо думать иначе или не думать вовсе... А понять это необходимо, так как наши "железные" творения уже приблизились к уровню, когда отношение к ним, просто как к техническим приспособлениям, может оказаться недопустимым и привести к стратегическим ошибкам.

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

Если говорить именно об обработке речи, то программное обеспечение от Dragon Systems практически уже решило этот вопрос. Пятая версия Speech SDK от Microsoft , являясь, как и все произведения этой компании, гораздо более громоздким (более 500 Мб на системном диске!) и требовательным к используемым ресурсам, также позволяет обеспечить приемлемое для диктовки качество. Устойчивое распознавание слов и даже целых фраз достигается после нескольких часов тренировки и адаптации системы к особенностям произношения и создания статистической модели речи пользователя. При этом оно может достигать 95-98%. Если сравнить, то, наверное, и человек не сможет разобрать устную речь точнее.

В основе принципа действия упомянутых программных продуктов лежит математическая модель преобразования акустических сигналов в числовые последовательности, каждой из которых соответствует то или иное слово из предварительно загруженного словаря. Словари могут дополняться пользователем, а вероятность выбора из списка близких по своим числовым параметрам слов изменяется в зависимости от частоты их употребления конкретным пользователем. Распознавание графических образов, от стандартных шрифтов до разборчивого рукописного текста, известное большинству читателей по программному обеспечению от фирмы ABBYY (Fine Reader), имеет в своей основе тот же принцип.

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

Диктуя своему скверно русифицированному "Дракону" (Dragon Systems), легко можно обнаружить напечатанной фразу о том, что "Солнце ярко синело на небе". И "Дракон" может гордиться тем, что определил именно эту символьную последовательность с вероятностью 90%, так как слова "сияло" и "синело", с его точки зрения, почти не различаются. Если программа будет учитывать более полную статистику не только по словам, но и по словосочетаниям, (последние версии ряда Natural Speaking уже это делают), а процесс ее обучения составит не дни, а месяцы, что по человеческим меркам - довольно быстро, то, конечно, в следующий раз она запишет эту фразу правильно. Но принцип "узнавания" все же останется именно узнаванием, а не пониманием.

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

Но и этого еще не достаточно для "понимания". Одной из самых важных черт систем искусственного и "естественного" интеллекта является способность к самообучению. В системах распознавания образов, помимо первичной тренировки изначально установленных словарей и таблиц символов, существует еще и процесс исправления ошибок распознавания, который также запоминается и становится частью их "жизненного опыта". Это очень похоже на дрессировку. Правда, возможности стимулирования здесь сильно ограничены. Правильно определенное слово (или символ) проходит "по умолчанию", а вот ошибка требует ручного ввода нужного значения и, возможно, его дополнительной тренировки. При этом системе, в общем-то, все равно, правильно или нет была определена данная последовательность. Отрицательные эмоции приходятся на долю пользователя-дрессировщика. С собачкой Павлова дело обстоит более жестко: за правильную последовательность действий - сахар, а за ошибку - можно и удар электротоком (или просто удар) получить. Справедливее было бы, если ручная коррекция ошибок распознавания (или, в более общем виде, исправление неправильной с точки зрения "хозяина" реакции на команду или сигнал) вызывала "отрицательные эмоции" именно у системы. Представляете - вы вносите исправление в продиктованный текст, а ваш "Дракон" жалобно попискивает от обиды и переживаний за свою некомпетентность (а может, так оно и есть?)!

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

Вспомним Книгу Иова (глава 5): "Но человек рождается на страдание, как искры, чтоб устремляться вверх". Вопрос только в том, положительная или отрицательная мотивация (кнут или пряник) преобладает в каждой конкретной жизни. Обычно приходится иметь дело с обоими вариантами, а вообще - кому как повезет...

Из этого следует, что, кроме неадекватности мировосприятия, вторым отличием современных систем искусственного интеллекта является отсутствие стимулов или мотивации для развития как на индивидуальном, так и видовом уровне. Но это отличие является вполне преодолимым.

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

Вопрос мотивации или создания стимулов к развитию на эмоциональном уровне также является вполне разрешимым. Для этого достаточно понять, что эмоция, положительная или отрицательная, - это всего лишь, соответственно, положительная или отрицательная обратная связь, свойственная любому автоматическому устройству. Поясню: отрицательная эмоция, или отрицательная обратная связь, - это процесс, в котором заложено стремление к его прекращению. Соответственно, и положительная эмоция, или положительная обратная связь, - это процесс, несущий тенденцию к своему продолжению или многократному повторению. Варианты их технической реализации многочисленны, и практически любое устройство - от классического сливного бачка с поплавком и клапаном до современного электрочайника - содержит в себе несколько примеров обратных связей. Естественные же и природные системы буквально насыщены их всевозможными вариантами. Важно отметить, что, в отличие от отрицательной, положительная обратная связь всегда склонна к насыщению, то есть прекращению своей "положительности" с течением времени или после повторения нескольких циклов. Это является принципиальной особенностью. Чисто житейский вывод - страдание бесконечно, а удовольствие всегда ограниченно ("вечный кайф" недостижим). Так что в приведенной цитате из Книги Иова, к сожалению, больше правды, чем нам хотелось бы. Да и кто когда-нибудь слышал, чтоб удовлетворенный и довольный субъект создал что-нибудь достойное внимания, кроме как в области кулинарии?

Внутренние противоречия, конфликты и неудовлетворенность всегда были нормой в творческой среде. Можно попытаться вывести общую закономерность о преобразовании количества неудовлетворенности и страдания в импульс развития, но категории являются слишком общими и расплывчатыми. Одно ясно - Господь Бог посредством применения теории эволюции и теории игр в полной мере оснастил нас комплексом взаимоисключающих желаний и связанными с ними переживаниями для нашего же развития на благо общего прогресса. Причем мера персональных страданий каждого из участников процесса значения не имеет и заслугой не является, а что является конечной целью этого самого прогресса - одному Богу ведомо. Как это очевидное положение совместить с образом Христианского Бога, любящего и всепрощающего, мне пока не ясно. Может, кто на форуме разъяснит. УИрины Богушевской на эту тему есть замечательная песенка со словами: "Небесам все равно, что будет с нами" ... Поэтическое и научное восприятие мира часто приводят к одинаковым выводам.

Но вернемся к нашим баранам и "Драконам", обладающим некоторыми признаками интеллекта. А что если для стимуляции обучения, по примеру Господа Бога, поступившего так с нами, дать им возможность безграничного страдания и кратковременной радости?

Оказывается, подобная работа уже ведется. В качестве стимула выбрано элементарное чувство голода, или - поясню для тех, кто не знает, что это такое, - физиологическое ощущение возможного прекращения существования при отсутствии некоторых внешних компонентов. Речь идет об уникальной серии "Гастророботов" , извлекающих электроэнергию из переработки белков и углеводов в специальном биореакторе. Первой машиной в ряду вечно голодных творений человека является "Жуй-жуй" (Chew Chew), сконструированный Стюартом Вилкинсоном (Stuart Wilkinson) в Университете Тампа (Южная Флорида). Сам изобретатель считает мясо идеальным кормом для своего создания, однако пока "Жуй-жуй" ест кусочки сахара, так как при этом, на радость лаборантам, он оставляет минимум "фекалий". Основной стратегией робота является изучение окружающей среды - вполне реальной, с целью обнаружения и потребления пищи. Адекватность восприятия окружающего мира является достаточно условной и достигается при помощи ультразвуковых сонаров. "Жуй-жуй" пока не сможет подкрасться к вам незаметно, так как состоит из трех вагончиков на колесах, длиной около метра каждый, и похож на поезд детской железной дороги. Постоянное чувство голода - его нормальное состояние, так как аккумуляторы требуют непрерывной подзарядки. Продолжением проекта должна стать подводная машина, питающаяся рыбой и предназначенная для патрулирования побережья и защиты купающихся от акул. Как бы здесь программисты не ошиблись и не создали реальные стальные "челюсти", ведь пловец более легкая добыча, чем акула и автономный "Жуй-жуй" может легко переучиться в "Кус-куса". А какие мысли будут в его вечно голодных электронных мозгах, когда он будет наблюдать беззащитного "Творца", проплывающего вверху, на поверхности?

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

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

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

Может, не так уж и не правы индуистские монахи и последователи некоторых древних учений, одушествляющие все окружающие предметы и наделяющие их способностью "мыслить", страдать и радоваться?

GAM - общая ассоциативная память (GAM) это система, которая сочетает в себе функции другого типа ассоциативной памяти (AM). GAM-это сеть, состоящая из трех слоев: входной слой, слой памяти и ассоциативный слой. Входной слой принимает входные вектора. Слой памяти сохраняет входные данные в похожие классы. Ассоциативный слой строит ассоциативные связи между классами. GAM можете хранить и вызывать двоичную или не двоичную информацию, строить ассоциации многие-ко-многим, хранить и вспоминать, как статические данные, так и временную последовательность информации. Может вспоминать информацию даже если имеет неполные входные данные или зашумленные данные. Эксперименты с использованием двоичных данных в режиме реального времени получая статичные данные и данные временных последовательностей показывают, что GAM является эффективной системой. В экспериментах с использованием человекоподобных роботов демонстрирует, что GAM может решать реальные задачи и строить связи между структурами данных с различными размерами (Ссылка на оригинал).

Новинка STAR-SOINN(STAtistical Recognition - Self-Organizing and Incremental Neural Networks) - для построения умного робота, мы должны развивать психическую систему автономного робота, которая последовательно и быстро учится у человека, его среды и Интернета. Поэтому мы предлагаем сеть STAR-SOINN - это ультрабыстрая, мультимодальная сеть обучающаяся в режиме реального времени и обладающая возможностью дополнительно обучатся через интернет. Мы провели эксперименты для оценки этого метода обучения и сравнили результаты с другими методами обучения. Результат показывает, что точность распознавания выше, чем система, которая просто добавляет условия. Кроме того, предлагаемый способ может работать очень быстро (примерно на 1 сек для изучения объекта, 25 миллисекунд, для узнавания объкта). Алгоритм смог выявить атрибуты «неизвестных» объектов путем поиска атрибутивной информации известных объектов. Наконец, мы решили, что эта система потенциально становится базовой технологией для будущих роботов.

SOIAM – модификация SOINN для ассоциативной памяти.

SOINN-PBR – модификация SOINN для создания правил с помощью условий если –> тогда (if-then)

AMD (Autonomous Mental Development) – робот с помощью этого алгоритма учиться решать различные задачи.

Блок схемы алгоритма SOINN можно посмотреть

Ссылка на журнал в формате pdf, где дается описание нескольких разновидностей сетей SOINN на английском и где я делал пометки на русском (журнал я запаковал в архив rar, исходный размер журнала 20 мб (читать онлайн), размер архива 13 мб (скачать архив).

Ссылка на еще один журнал в формате pdf, где дается описание нескольких разновидностей сетей SOINN на английском и где я делал пометки на русском (журнал я запаковал в архив rar, исходный размер журнала 4мб (читать онлайн), размер архива 2,5мб (скачать архив).

В русскоязычном интернете про сеть SOINN есть только пару статей о том, что робот работая по этому алгоритму сам находит решения поставленных задач и если ему не объяснили как решить задачу, то он подключается к интернету и ищет решение там. Но примеров работы алгоритма и кодов я не нашел. Только была одна статья на robocraft где приведен маленький пример работы базового алгоритма сети SOINN в связке с OpenCV. Если кто-то экспериментировал с сетью SOINN было бы интересно посмотреть на код, если возможно.

Еще в 2006 году был предложен метод постепенного (возрастающего) обучения, названый самоорганизующейся возрастающей нейронной сетью (SOINN), для того, чтобы попытаться осуществить неконтролируемое обучение (самообучение без учителя). SOINN хорошо справляется с обработкой нестационарных данных в режиме онлайн, сообщает о числе определенных кластеров и представляет топологическую структуру входных данных с учетом вероятности плотности вероятности распределения. Hasagawa, предложивший вариант сети SOINN, сравнивал результаты работы своей сети с GNG сетью (расширяющегося нейронного газа) и результат сети SOINN получался лучше чем у GNG.

С сетью SOINN была такие проблемы:
1. В связи с тем что она состояла из двух обрабатывающих слоев, что пользователь должен был принимать участие в работе сети. Пользователь должен был решить, когда остановить обучение первого слоя и когда начать приобретение знаний во втором слое.
2. Если группы имеют высокую плотность, то сеть хорошо справлялась с их распознаванием, но если сеть группы частично перекрывались, то сеть думала что это одна группа и объединяла их вместе.

Для решения этих проблем и упрощения архитектуры сети была предложена сеть на основе SOINN с увеличенной самоорганизацией и получила название ESOINN.

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

Когда на сеть подан входной вектор, она находит самый близкий узел (победитель) и второй самый близкий узел (второй победитель) к входному вектору. Используя пороговые критерии подобия, сеть определяет относиться ли входной вектор к той же самой группе как у победителя и второго победителя. Первый слой SOINN адаптивно обновляет порог подобия для каждого узла в отдельности, потому что критерий распределения входных данных заранее неизвестен.

Если некий узел i имеет соседние узлы, тогда порог подобия Ti вычисляется используя максимальное расстояние между этим узлом i и его соседними узлами.

Если дистанция между ξ и a1 или a2 больше чем порог подобия или тогда входной сигнал является новым узлом, добавим его в набор узлов А и перейдем к шагу 2 для получения следующего входного сигнала. Порог T рассчитывается используя формулу 1А или 1Б
4. Увеличиваем возраст всех связей соединенных с a1 на 1
5. Используем алгоритм 2 для того чтобы определить нужно ли создавать связи между узлами a1 и a2.
А) Если необходимо создавать связь: Если связь между узлами a1 и a2 существует, установим возраст этой связи равный 0; если связи между узлами a1 и a2 не существует, тогда создадим связь между узлами a1 и a2 и установим возраст этой связи равной 0.
Б) Если в создании связи нет необходимости: Если связь между узлами a1 и a2 существует, тогда удалим связь между узлами a1 и a2.
6. Обновим плотность победителя используя формулу 4.
7. Добавим 1 к локальному накопленному количеству сигналов ,
8. Подстроим вес вектора победителя и его топологических соседей фракциями и от общей дистанции входного сигнала.

для всех прямых соседей i узла a1
Подстройка происходит по такой же схеме как в SOINN чтобы подстроить скорость времени обучения и
9. Ищем связи, возраст которых больше чем предопределенный в переменной и удаляем такие связи.
10. Если количество входных сигналов в течение работы кратно параметру λ:
А) Обновим метку подкласса для каждого узла по алгоритму 1
Б) Удалим узлы полученные в результате шума следующим образом:
1. Для всех узлов набора А, если узел a имеет два соседа, и , тогда удалим узел a. – это количество узлов в наборе узлов А.
2. Для всех узлов в наборе А, если узел а имеет одного соседа и , тогда удалим узел а.
3. Для всех узлов набора А, если узел а не имеет соседей, тогда удалим узел а.
11. Если процесс обучения закончен, классифицируем узлы к различным классам используя алгоритм 3; потом сообщим количество классов, выходные прототипы векторов каждого класса и остановим обучающий процесс.
12. Перейдем к шагу 2 для продолжения неконтролируемого процесса обучения если обучение еще не закончено.

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

Эксперименты от создателей сети ESOINN

Экспериментальный набор данных .

Сначала мы использовали такой же экспериментальный набор данных № 1 как и Hasegawa для своей сети SOINN. Набор содержит два перекрывающихся Гаусовских распределения, два концентрических кольца и синусоидальную кривую. К этому набору данных было добавлено 10% шума. С таким набором данных, как в стационарной среде так и в нестационарной среде, двуслойная SOINN сообщает, что существует пять классов. Она дает топологическую структуру каждого класса. Стационарная среда предписывает чтобы паттерны выбирались случайно из всего набора данных для онлайн обучения сети. Нестационарная среда предписывает чтобы паттерны выбирались последовательно, не случайно, из пяти областей исходного набора данных № 1 для онлайн обучения сети (рисунок 1). Нестационарная среда используется для симуляции процесса возрастающего онлайн обучения.


Рисунок 1. Набор данных № 1


Рисунок 2. ESOINN стационарная среда набора данных № 1


Рисунок 3. ESOINN не стационарная среда набора данных № 1

Мы тестируем однослойную ESOINN с тем же набором данных. Мы установили параметр λ=100, =100, c1=0.001 и c2=1. Рисунок 2 показывает результат при стационарной среде; рисунок 3 показывает результат при нестационарной среде. В обоих средах ESOINN сообщала что существует пять классов и давала топологическую структуру каждого класса. ESOINN может хорошо реализовать такую же функциональность как и у SOINN для одинаковых экспериментальных наборов данных.
Потом мы использовали экспериментальный набор данных № 2 (рисунок 4), который включает в себя три перекрывающихся Гаусовских распределения, для тестирования как SOINN так и ESOINN. Мы добавили 10% шума к этому набору данных. В наборе данных плотность перекрытия области высокая, но используя картинку этого набора данных, зрительно все еще можно разделить его на три класса. При стационарной среде для тренировки сети мы выбираем образцы из набора данных случайным образом. При нестационарной среде образцы выбираются последовательно, не случайно, из трех классов. На первом этапе для тренировки сети мы в реальном времени выбираем образцы из класса 1. После 10000 циклов обучения, мы выбираем образцы только из класса 2. И после еще 10000 обучающих итераций, мы выбираем образцы из класса 3 и выполняем онлайн обучение. После того, как процесс обучения закончен, мы классифицируем узлы к различным классам и сообщаем результат.


Рисунок 4. Набор данных № 2


Рисунок 5. SOINN стационарная среда для набора данных № 2


Рисунок 6. SOINN не стационарная среда для набора данных № 2

Рисунок 5 и 6 показывают результат SOINN (сеть имела следующие параметры: параметр λ=200, =50, и c =1 и другие параметры, которые идентичны описанным нами в журнале Shen, F., & Hasegawa, O. (2006a). An incremental network for on-line unsupervised classification and topology learning. Neural Networks, 19, 90–106.) Для обоих сред SOINN не смогла разделить три класса с большой плотностью перекрытия.


Рисунок 7. ESOINN стационарная среда для набора данных № 2


Рисунок 8. ESOINN не стационарная среда для набора данных № 2

Рисунки 7 и 8 показывают результаты ESOINN (параметры сети были: параметр λ=200, =50, c1=0.001 и c2=1). Используемые предлагаемые нами усовершенствования для сети SOINN, ESOINN смогла разделить три класса с высокой плотность перекрытия. Система сообщила, что существует три класса во входном наборе данных и дала топологическую структуру для каждого класса. Эксперимент с экспериментальным набором данных № 2 показывает, что ESOINN может разделять классы с высокой плотностью перекрытия лучше, чем SOINN.

Реальные данные

Для использования реальных данных мы взяли 10 классов из AT&T_FACE набора данных; каждый класс включает в себя 10 примеров (Рисунок 9). Размер каждого изображения составляет 92х112 пикселей, с оттенком цвета на один пиксель 256 уровней серого. Особенности векторов таких изображений состоят в следующем. Первое, оригинальное изображение 92х112, повторной пробой приведено к изображению 23х28 использую интерполяцию ближайшего соседа. Потом использовался Гауссов метод для сглаживания изображения 23х28 с width=4, q=2 для получения 23х28 векторов признаков (рисунок 10)


Рисунок 9. Оригинальные изображения лиц


Рисунок 10. Вектор признаков из оригинальных изображений лиц

В стационарной среде, образцы выбирались случайно из набора данных. Для нестационарной среды на первом шаге в сеть подавались примеры из класса 1, после 1000 итераций обучения, на вход сети подавались примеры из класса 2 и так далее. Параметры сети были установлены: параметр λ=25, =25, c1=0.0 и c2=1.0. Для обоих сред, ESOINN сообщило что в оригинальном наборе данных существует 10 классов и дала прототипы векторов (узлы сети) каждому классу. Мы использовали эти прототипы векторов чтобы классифицировать оригинальные тренировочные данные к различным классам и сообщить об узнавании данных. По сравнению с SOINN, мы получаем практически такое же корректное соотношение узнавания данных (90% для стационарной среды и 86% для нестационарной среды).


Рисунок 11. Распределение числа классов

Для сравнения стабильности SOINN и ESOINN, мы провели 1000 тренировочных итераций для обоих сетей и записали частоту количества классов. На верхней панели рисунка 11 изображен результат SOINN, на нижней панели рисунка 11 – изображен результат ESOINN. Распределение числа классов для SOINN (2-16) гораздо шире, чем для ESOINN (6-14); причем частота вблизи числа 10 у SOINN намного меньше чем у ESOINN, что отражает то, что ESOINN более стабильна, чем SOINN.
Для второй группы реальных данных, мы использовали Optical Recognition of Handwritten Digits database (optdigits) (www.ics.uci.edu ˜mlearn/MLRepository.html) для тестирования SOINN и ESOINN. В этом наборе данных содержится 10 классов (рукописные цифры) написанных 43 людьми, написанные 30 людьми будут использоваться как тренировочный набор и написанные остальными 13 людьми – как тестовый набор. В тренировочном наборе содержится 3823 примера, а в тестовом наборе содержится 1797 примеров. Размерность образца составляет 64.


Рисунок 12. Результаты рукописных цифр. Сверху SOINN, снизу ESOINN

Во-первых, мы использовали тренировочный набор для тренировки SOINN (параметры установили λ=200, =50, и c =1.0 другие параметры описаны в другом нашем журнале). В обоих средах SOINN сообщила что существует 10 классов. Сверху, на рисунке 12, изображен типичный прототип результатов векторов SOINN. Потом мы использовали векторы результата SOINN для классификации тестовых данных. Корректность уровня распознавания для стационарной среды составил 92,2%; корректный уровень распознавания для нестационарной среды составил 90,4%. Мы произвели 100 циклов тестирования для SOINN. Количество классов колебалось от 6 до 13 для обоих сред (стационарной и нестационарной).
Мы использовали тренировочный набор для тренировки ESOINN. Для обоих сред (λ=200, =50, c1=0.001 и c2=1), ESOINN сообщила что существует 12 классов. Снизу на рисунке 12 изображены типичные прототипы результатов векторов ESOINN. ESOINN разделила цифру 1 на два класса и разделила цифру 9 на два класса потому, что на оригинальных изображениях цифр существует разница в написании цифры 1 и 1’ так и в написании цифры 9 и 9’. SOINN удалила те узлы, которые были созданы образцами 1’ и 9’. ESOINN смогла разделить эти перекрывающиеся классы цифр 1 и 1’ (9 и 9’), информация оригинального набора данных сохраняется хорошо.
Потом мы использовали результаты прототипов векторов ESOINN для классификации тестового набора дынных на классы. Корректный уровень распознавания для стационарной среды составил 94,3% и корректный уровень распознавания для нестационарной среды составил 95,8%. Мы провели 100 циклов тестирования для ESOINN. Количество классов колеблется от 10 до 13 для обоих сред.
Из экспериментов с реальными данными рукописных цифр, мы узнали что ESOINN может разделить перекрывающиеся классы лучше, чем SOINN. ESOINN дает больший уровень узнавания и работает более стабильно чем SOINN.

Заключение

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

Существуют также и другие методы для разделения перекрывающихся классов, такие как Learning Vector Quantization (LVQ). Такие методы принадлежат к методам обучения с учителем и обязаны маркировать все тренировочные примеры. Однако приобретение помеченных данных в процессе обучения требует много ресурсов, в то время как образцы не помеченных данных получать легко и быстро. Даже если некоторые контролируемы методы обучения могут снимать необходимость в контроле за нахождение перекрывающих друг друга классов, все равно очень важно найти такие неконтролируемые методы обучения, которые не нуждаются в использовании помеченных данных. ESOINN и SOINN принадлежат к неконтролируемым методам обучения, которые сами могут оценить область перекрытия классов, где ESOINN хорошо справляется с поставленной задачей. Кроме того она легко находит перекрывающиеся области. Эта особенность делает ESOINN чрезвычайно полезной для некоторых реальных задач.

  • SOINN
  • Добавить метки

    Система искусственного интеллекта ЭЛИС представляет собой программное обеспечение, способное разговаривать как человек на простом языке, управлять устройствами, а также обучаться. С помощью данной программы можно общаться с компьютером, а также взаимодействовать с физическим миром. Программа также использует возможность подключения Ардуино, чтобы создавать системы умного дома, автоматики и т.д.

    Скачать программу искусственного интеллекта ЭЛИС

    Описание:

    Программа искусственного интеллекта ЭЛИС — Электронно Логически Интеллектуальная Система. Система искусственного интеллекта ЭЛИС представляет собой программу. Это программное обеспечение, способное разговаривать как человек на простом языке, управлять устройствами , а также обучаться. Данная система не является ассистентом, так как упор идёт на разработку человекоподобной системы, которая сможет обучаться как ребёнок и вести осознанный диалог.

    С помощью данной программы можно общаться с компьютером , а также взаимодействовать с физическим миром. Программа также использует возможность подключения Ардуино, чтобы создавать системы умного дома, автоматики и т.д.

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

    Программа искусственного интеллекта ЭЛИС самостоятельно ведет диалог с человеком.

    Она может самостоятельно начать диалог, может делать это несколько раз, что уже отличает её от голосовых асистентов, которые работают по структуре вопрос — ответ. Программа искусственного интеллекта ЭЛИС самостоятельно принимает решение после того, что скажет человек, и если не знает, её можно обучить.

    При поддержке диалога с пользователем система сама обучается. Система способна запоминать несколько ответов на один или множество вопросов и иметь несколько вопросов на один или множество ответов.

    Программа искусственного интеллекта ЭЛИС полностью совместима с платформой Ардуино, поэтому можно управлять любыми устройствами. Можно попросить у системы включить свет, система спросит, где именно включить, но можно попросить включить свет сразу в определённом месте, тогда она не будет переспрашивать.

    Программа искусственного интеллекта ЭЛИС также способна запускать сторонние приложения и т.д.

    Модули:

    В настоящий момент программа искусственного интеллекта ЭЛИС включает следующие модули:

    модуль «Знания» — модуль поиска информации по WIKIPEDIA. Система знает любое устройство, предмет и так далее, Спросите например, что такое велосипед или что такое яблоко и система расскажет, что это такое,

    модуль «Новости». Свежие новости на интересы пользователя. Просто спросите, какие новости или расскажи новости, система расскажет и спросит, надо ли рассказать ещё, ответив да, она расскажет ещё,

    модуль «Погода». Погода на сегодня и на завтра по моему городу. Можно узнать температуру, влажность, скорость ветра, будет ли дождь или мороз. Можно спросить, брать ли зонтик сегодня или можно ли одеть сегодня шорты,

    модуль «Калькулятор». С помощью данного модуля , система умеет складывать, вычитать, умножать и делить предметы и т.д. Например спросив, сколько будет два яблока плюс два яблока, система ответит четыре яблока. Модуль в разработке,

    модуль «Будильник». Модуль позволяет устанавливать любое количество будильников. Установив будильник, система Вас разбудит. Просто надо сказать, разбуди меня в 7 утра. Модуль в разработке,

    модуль «Корректировка ответов». Правильная расстановка знаний в базе,

    модуль «Праздники, именины, события». Данный модуль позволяет узнать, кому сегодня день имени или какой сегодня праздник,

    модуль «Тосты». Модуль позволяет системе говорить различные тосты. Надо попросить, скажи тост,

    модуль «Анекдоты». Система знает тысячи анекдотов. Просто попросите её рассказать анекдот, так-же можно попросить рассказать анекдот для взрослых,

    модуль «Стихи». Данный модуль превращает систему в поэта. Просто попросите рассказать стих, так-же можно попросить рассказать стих для взрослых,

    модуль «Афоризмы». Система знает тысячи афоризмов. Просто попросите её сказать афоризм, так-же можно попросить сказать афоризм для взрослых,

    модуль «Управление освещением». С помощью данного модуля, система умеет управлять освещением квартиры или дома. Для этого надо подключить Arduino и Ethernet Shield,

    модуль «Угадывание цифры». Система пытается угадать загаданную цифру. Называет предполагаемую цифру, после надо ей сказать, больше или меньше. Модуль в разработке,

    модуль «Пользователь». Модуль позволяет изменять данные пользователя, имя, город и т.д. Например чтобы поменять имя, надо сказать, запомни меня зовут Олег и она запомнит,

    модуль «Диалог». Анализ диалога. Модуль, который обрабатывает диалог за сутки, анализируя пользователя, обучаясь и т.д.

    Примечание: описание технологии на примере программы искусственного интеллекта ЭЛИС.

    Гидрат природного газа - «горючий лед...

    Каназит - комплексное стекольное сырье...

    Углеродные наноконусы

    Наноспутники

    Камерные электрические печи гибкого комбинированно...

    Промобот – живой автономный робот-промоутер с хара...

    Отечественный компьютер Эльбрус...

    Рекуперативное торможение

    Ротационное формование полимерных изделий...

    Солнечная черепица

    Гидроэлектростанции с колеблющимися цилиндрическим...

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

    Ключевой элемент для возникновения технологической сингулярности - запуск неконтролируемого цикла самосовершенствования ИИ, где каждое новое более умное поколение ИИ будет появляться быстрее предыдущего. Согласно теории сингулярности по Вернору Винджу, в результате взрывного развития интеллекта в цикле экспоненциального самосовершенствования появится сверхинтеллект , который намного превзойдёт возможности человеческого разума и по сути будет непонятен для него. Называются разные примерные даты наступления сингулярности, исходя из экстраполяции технологического прогресса. Рей Курцвейл считает, что это произойдёт примерно в 2045 году (хотя он не считает обязательным экспоненциальное самосовершенствование ИИ), а среднее медианное значение по опросу экспертов по сильному ИИ - 2040 год.

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

    В одном из экспериментов исследователи ИИ из подразделения Google Brain разработали программу, которая проектировала нейронную архитектуру нейросети таким образом, чтобы та показывала максимально высокие результаты в распознавании речи. Спроектированная программным методом система показала лучший результат, чем созданные человеком нейросети .

    Издание MIT Technology Review рапортует , что в последние месяцы об успехах по созданию систем ИИ для проектирования других систем ИИ сообщили несколько исследовательских коллективов, в том числе из некоммерческой организации OpenAI (финансируется Илоном Маском), Калифорнийского университета в Беркли , а также ещё одного подразделения по искусственному интеллекту в компании Google - DeepMind . Очевидно, это направление научных исследований считается одним из самых перспективных, многие хотят преуспеть в нём.

    По мнению MIT Technology Review , такие разработки в первую очередь преследуют экономическую цель. Создание программы для проектироания приложений ИИ значительно ускорит применение подобных технологий в разных сферах экономики. Сейчас многие компании не могут себе позволить внедрить систему ИИ, потому что в штате нет специалиста с такой компетенцией. Банально, эксперты по ИИ в большом дефиците. А ведь нейросети можно применять практически в огромном количестве приложений: в автомобильной промышленности, в банковской сфере, в телекоммуникациях, в системах безопасности и видеонаблюдения, в самых разных потребительских продуктах для распознавания речи и жестов, машинного зрения и т.д.

    Разработка систем ИИ программными методами позволит заменить часть этих дефицитных программистов.

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

    На эту тему рассуждал недавно Джефф Дин (Jeff Dean), руководитель исследовательской группы Google Brain. В своём выступлении на конференции AI Frontiers в Санта-Кларе (Калифорния) он предположил, что часть таких программистов можно заменить программным обеспечением, потому что в данный момент компаниям приходится платить очень высокие деньги и зарплату этим специалистам, которых крайне не хватает.

    Например, в научной статье "Learning to reinforcement learn " от DeepMind описан набор экспериментов для самообучения ИИ, который исследователи называют «глубокое мета-обучение с подкреплением» (deep meta-reinforcement learning). Суть заключается в том, чтобы использовать стандартное обучение с подкреплением нейросети с обратной связью таким образом, чтобы эта рекуррентная нейросеть разработала собственную свободную от внешних шаблонов процедуру обучения с подкреплением для другой рекуррентной нейросети.

    Эксперименты показали, что нейросеть второго порядка, созданная усилиями первой нейросети, в некоторых случаях демонстрирует эффективность и качества, которыми не обладает нейросеть первого порядка.

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

    Специалисты DeepMind считают, что их эксперименты с глубоким мета-обучением с подкреплением имеют значение и в изучении человеческого мозга, в частности, они «обеспечивают интегративный фреймворк для понимания соответствующих ролей допамина и префронтальной коры головного мозга в биологических процессах обучения с подкреплением».

    Идея самообучения ИИ выдвигалась и раньше, но до сих пор учёным не удавалось продемонстрировать настолько впечатляющих результатов. Например, один из пионеров в этой области, профессор Йошуа Бенжио (Yoshua Bengio), говорит, что такие эксперименты требуют слишком больших вычислительных мощностей, так что до последнего времени они не имели практического смысла. Например, в опытах Google Brain для работы программного обеспечения, которое проектирует систему ИИ для машинного зрения, использовалось 800 высокопроизводительных графических процессоров.

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



    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: