Нейронные сети, генетические алгоритмы и прочее… Мифы и реальность
Хотелось бы рассмотреть данную тему с точки зрения философии логики, определить границы и проблемы применимости и немного порассуждать о возможности решения с помощью нейронных сетей задач машинного обучения?
В качестве основы для наших рассуждений мы можем выбрать любую из приведенных ниже технологий. Ввиду того, что наиболее часто упоминается нейронные сети, их и возьмем. Набрав что-то про нейросети в поисковой строке, мы получим огромную массу статей о «невообразимых» успехах, достигнутых нейронными сетями. Это и сообщения о новых аппаратных решениях, например, и спиновые электронные устройства, и заявления IBM, о том что нейронные сети по анализу слов смогут выявлять психические болезни, и «супергеройское» зрение, и множество других чудес науки. Поэтому, попробуем сделать краткий обзор текущего положения дел.
Прежде всего, хотелось бы выделить некий общий пул технологий, объединенных под общим термином «системы искусственного интеллекта». К нему с разной степенью достоверности можно отнести:
1. Нейронные сети
2. Генетические алгоритмы
3. Методы вероятностного программирования и т.д.
Возможно, что кому-то покажется, что здесь «в одну кучу» свалены совершенно различные технологии. Но это впечатление обманчиво, ибо несмотря на очевидные отличия, они все имею общие черты:
1. Предполагают обучение системы.
2. Основа базы знаний — совокупность образцов в рамках классифицирующих признаков.
3. Предполагают наличие избыточных конкурирующих вычислений до достижения одним из потоков заданного порога достоверности.
4. Результатом вычисления являются как правило какие-либо прецеденты из заранее установленного списка.
Само же обучение характеризуется следующими основными чертами:
1. Наличие априорных знаний, заданных в виде классифицирующих моделей
2. Наличие базы образцов для построения «модели мира» по классифицирующим признакам.
Попробуем, для начала, кратко описать отличительные черты каждого из вышеописанных подходов.
Нейронные сети
Согласно Википедии, да простится ссылка на нее, нейронные сети «представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов)». Красиво. Существуют различные варианты реализации такие как байесовские сети[1], рекуррентные сети[2] и т.д… Основная модель работы: база образов-передаточная функция-оптимизатор
Наибольшее распространение сегодня получили ограниченные машины Больцмана в многослойном варианте. Многослойность, т.е. глубина необходима для преодоления проблемы «XOR». Кроме того, как показано Хинтоном, рост количества слоев скрытых нейронов позволяет увеличить точность за счет наличия «промежуточных» образов с минимальным отличием в каждом слое. При этом, чем ближе промежуточный слой к выходу, тем выше конкретизация образа.
Основная цель создания нейронных сетей и вытекающая из этого задача обучения — это избавление от необходимости промежуточных вычислений-выводов при анализе профиля-матрицы входящих сигналов. Данная цель достигается за счет создания базы эталонных профилей, каждому из которых на выходе должен соответствовать единственный нейрон — ячейка результирующей матрицы. Каждому такому нейрону приписывается определенная трактовка-результат.
Основная проблема как с точки зрения решаемой задачи, так и собственно обучения — это зашумленность поступающих на анализ профилей-матриц возбужденных нейронов входящего слоя. Поэтому одним из основных условий является наличие качественной обучающей выборки. Если обучающая выборка низкого качества, то сильная зашумленность приведет к большому количеству ошибок. Впрочем, и большой размер обучающей выборки может привести к тому же результату.
В какой-то степени, работу нейронной сети можно сопоставить с работой безусловных рефлексов живых существ[3] со всеми вытекающими недостатками.
Такой подход отлично работает для задач где отсутствует сильная зашумлённость, четкая априорная база эталонных образов. Основной задачей является выбор наиболее подходящего образа из уже существующей базы знаний. Задачи прогнозирования, в данном случае, будут решаться только путем экстраполяции существующей истории без возможности создания новых сущностей т.е. индукцией с недостаточной дедукцией.
Кто-то может поспорить что это не так. Но прежде чем отметать вышесказанную мысль необходимо определится в том, что имеется ввиду под термином «новая сущность»? Это еще один экземпляр в рамках существующего пространства классов-векторов выбранной предметной области или создание новых областей-пространств? Теме сравнения чего-либо с чем-либо, что можно сравнивать и что нельзя, проблеме смешения предметных областей будет посвящена одна из следующих статей.
Основной принцип обучения-индукция. Индукция затруднена хотя бы из-за изначальной постановки задачи — избавится от промежуточных вычислений. Возможное возражение о том, что процессы, связанные с индукцией, могут происходить на этапе обучения — являются слабыми, так как обучение строится на двух основополагающих принципах:
1. Наличие самого факта появления нового профиля и его осмысления (что это не шум) и необходимость стороннему эксперту определить соответствие профиля результату.[1]
2. Отсутствие простого и надежного математического аппарата, четко описывающего условия и правила порождения новых измерений, а, следовательно, и классов объектов.
3. Сама по себе процедура трассировки — это процесс обобщения, поиска новых трасс-маршрутов, пусть и с необходимостью контроля однозначности соответствия профилей и результатов.
Возможные рассуждения об ассоциативных полях не добавляют ничего нового так-как являются всего лишь расширением существующего дедуктивного подхода.
Генетические алгоритмы
Согласно все той же Википедии: «Генетческий алгортм (англ. genetic algorithm) — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, аналогичных естественному отбору в природе».
Существует масса работ таких авторов как Панченко Т.В[4]., Гладкова Л. А., Курейчика В. В[5] и т.д… Основы «генетического подхода» хорошо раскрыты здесь.
Существует множество интересных работ, посвященных применению генетических алгоритмов. Например, работа Плешакова И.Ю., Чуприной С.И.[6], статья Иванова В.К. и Манкина П.И.[7], статьи на хабре и ряд других.
Одним из наиболее важных преимуществ генетических алгоритмов является отсутствие необходимости информации о поведении функции и незначительное влияние возможных разрывов на процессы оптимизации. Также как и в случае нейронных сетей, происходит уход от необходимости анализа причинно-следственных связей, путем построения «итогового» образа — целевой функции. В этом смысле, с точки зрения решения анализа текста, поиска генетические задачи решают такие же задачи или очень похожие, что и методы латентно-семантического анализа. При этом, надо отдать должное, в вопросах семантического поиска и индексации текстов генетические алгоритмы имеют гораздо большие перспективы, по сравнению методами латентно-семантического анализа.
С точки зрения распознавания образов, с очень сильной натяжкой целевую функцию можно сравнить со слоем входных нейронов и с ожиданием максимума как аналога максимизации сигнала нейрона выходного слоя. Хотя правильнее было бы говорить, что генетические алгоритмы используются для повышения эффективности обучения нейронных сетей, но все же не могут рассматриваться как конкуренция нейронными сетям. Задачи разные.
Общий же недостаток — отсутствие индукционных алгоритмов — присутствует в полной мере.
Методы вероятностного программирования
Включение методов вероятностного программирования в данную статью является скорее данью моде, нежели необходимостью. Сами по себе стохастические методы, которые сегодня гордо называют методами вероятностного программирования известны довольно давно и, как и нейронные сети, переживают очередной взлет. Хорошим примером стохастического подхода являются генетические алгоритмы. В интернете существует масса статей, например «Вероятностное программирование — ключ к искусственному интеллекту?». Поэтому останавливаться подробно на самих методах не имеет смысла и перейдем сразу к выводам.
Наиболее точное из встретившихся определение того, что понимается под вероятностным программированием встречается здесь: «компактный, композиционный способ представления порождающих вероятностных моделей и проведения статистического вывода в них с учетом данных с помощью обобщенных алгоритмов». Он не является чем-то принципиально новым, но является интересным дополнением к методам машинного обучения.
Таким образом, сегодня под термином «ИИ» скорее подразумевается подвид технологических (алгоритмических) подходов к решению задач комбинаторики. Основными задачами которого являются достоверное отделение «статически значимых» по своей сути закономерностей и построение на основе статистики образов-объектов, без анализа причинно-следственных связей. Основные направления — это распознавание образов. Под образами можно понимать изображения, звуки, совокупность симптомов болезней и т.д.
Результатом обучения нейронной сети или работы генетического алгоритма должен быть некая выявленная закономерность, представленная в виде некой матрицы (вектора). Безусловно, эта матрица или множество может постоянно корректироваться за счет новых примеров, но это не влияет на суть происходящего. В любом случае, выявленное и очищенная от шума множество может быть представлена в виде «отчуждаемой логики», которая представляет собой некий «оптимальный» способ решения задачи. Примером такой области может служить задача автоматической рубрикации текстов, но не сточки зрения разнесения текстов по уже известным рубрикам, а собственно само создание рубрик. Их аннотирование, а также автоматическое построение различного рода онтологий.
Выводы
Рождение современной математики, конечно же, процесс долгий, затянувшийся на века. Но, наблюдая современные тенденции, напрашивается неутешительный вывод: все движется по кругу. Философы древней Греции не знали математики и математических формул, оперировали понятиями на уровне образов и «бытовых» понятий. Этого становилось недостаточно для организации более сложных и, самое главное, абстрактных рассуждений. Кроме того, одной из основных задач математики является поиск логик, позволяющих значительно снизить затраты на расчеты путем вывода компактных и оптимальных закономерностей. Все это послужило толчком для создания сегодняшней математики с ее современными нотациями. Начало же просматривается не ранее XVI века целым рядом ученых таких как Декарт, Лейбниц и т.д…
Современные рассуждения и логика того, что называют «искусственным интеллектом» сегодня проходят тот же путь. И состояние сегодняшнего дня «уводит» обратно к истокам, так как в большей степени базируется на тех же принципах поиска «общих» закономерностей скорее в стиле Пифагора и Евклида. Применение логики ИИ ограничено областями, которые с точки зрения человека можно было бы назвать областями безусловных реакций. Тигр должен быть распознан без всякого анализа, сразу и быстро, до того, как съест субъекта наблюдений. К ним относятся большинство задач распознавания каких-либо образов, диагностирование болезней.
Данные алгоритмы пока непонятно как, ввиду их базовой примитивности, применить для решения задач, требующих порождения каких-либо новых логик. Иными словами, создание систем, которые действительно смогут решать задачи разрешения причинно-следственных связей или порождать новые гипотезы и измерения.
Рождение математики, способной к индукции еще впереди, а взрывной рост интереса к ИИ в основном связан ростом вычислительных возможностей, а не возникновениям новых алгоритмов. Но в результате этого роста все же была достигнута точка, после которой решение большого как по сферам применения, так и исходных данных, но относительно небольшого по аналитической сложности объема задач стала экономически целесообразной. Но это все же экстенсивный путь развития.
Все вышесказанное не является утверждением бесперспективности нейронных сетей или аналогичных технологий. Объем задач и их ценность огромны. Это и помощь в распознавании образов и помощь специалистам в разных областях при анализе данных и незначительных на первый взгляд деталей. Хорошим примером такого применения является помощь ИИ в установке диагнозов.
Как говорится, продолжение следует. В следующих статьях предполагается поразмышлять с точки зрения «программирования» о базовых понятиях, без которых невозможно рождение искусственного интеллекта, обладающего мыслительными способностями. К ним относятся понятия как: онтологии, объекты и их свойства, качество, полнота. Что можно сравнивать, а что нельзя. И что же вообще необходимо для этого. А также поразмышлять о том, что необходимо, что бы машина получила способность к индукции…
[1] Байесовская сеть (или байесова сеть, байесовская сеть доверия, англ. Bayesian network, belief network) — графическая вероятностная модель, представляющая собой множество переменных и их вероятностных зависимостей по Байесу. Например, байесовская сеть может быть использована для вычисления вероятности того, чем болен пациент по наличию или отсутствию ряда симптомов, основываясь на данных о зависимости между симптомами и болезнями. Математический аппарат байесовых сетей создан американским учёным Джудой Перлом, лауреатом Премии Тьюринга (2011).
[2] Рекуррентные нейронные сети (англ. Recurrent neural network; RNN) — вид нейронных сетей, в которых имеется обратная связь. При этом под обратной связью подразумевается связь от логически более удалённого элемента к менее удалённому. Наличие обратных связей позволяет запоминать и воспроизводить целые последовательности реакций на один стимул. С точки зрения программирования в таких сетях появляется аналог циклического выполнения, а с точки зрения систем — такая сеть эквивалентна конечному автомату. Такие особенности потенциально предоставляют множество возможностей для моделирования биологических нейронных сетей[источник?]. Однако большинство возможностей на данный момент плохо изучены в связи с возможностью построения разнообразных архитектур и сложностью их анализа.
[3] Барский А.Б. «Логические нейронные сети» М.: Интернет-Университет Информационных Технологий, 2007
[4] Панченко, Т.В. Генетические алгоритмы [Текст]: учебно-методическое пособие / под ред. Ю.Ю. Тарасевича. — Астрахань: Издательскии дом «Астраханскии университет», 2007.
[5] Гладков Л. А., Курейчик В. В., Курейчик В.М. Генетические алгоритмы: Учебное пособие. — 2-е изд. — М: Физматлит, 2006. — С. 320. — ISBN 5–9221–0510–8.
[6] Плешакова И.Ю., Чуприна С.И. «Генетический алгоритм для улучшения качества семантического поиска по текстам научных публикаций» cyberleninka.ru/article/n/geneticheskiy-algoritm-dlya-uluchsheniya-kachestva-semanticheskogo-poiska-po-tekstam-nauchnyh-publikatsiy
[7] Иванов В.К. и Манкин П.И. «Реализация генетического алгоритма для эффективного документального тематического поиска» Тверскоигосударственныитехническии
Комментарии (2)
3 февраля 2017 в 17:21
0↑
↓
Всё быстро развивается, многие разработки засекречены, кто знает, возможно всё вышесказанное вовсе и не миф, а реальность. Касательно древнегреческих математиков не соглашусь, Греция внесла наибольший вклад в развитие человечества, математики тех времён продвинулись в своих знаниях на столько, на сколько это было возможно.3 февраля 2017 в 17:24
0↑
↓
Согласен со всем вышеперечисленным. Что касается Греции, то я нисколько не хотел умалить их вклад. Он огромен. Я хотел подчеркнуть ту мысль, что мы сегодня, пусть и в публичной сфере, в области ИИ на той же стадии. Есть логика, есть инновации, но нет достойного мат. аппарата. Нет качественного перехода. По крайней мере, мне не разу не попадалось опровержение моей гипотезы. Если есть такое — с удовольствием ознакомлюсь. И внесу корректировки.