Зачем нужны нейронные сети?
Авторы: Сергей КолесниковИсточник: http://md-it.ru/articles/html/article57.html
Наверное, многие слышали понятие «нейронные сети», ассоциативно связывая его с искусственным интеллектом, андроидами, роботами, способными учиться, глядя на людей. Одни при этом испытывают страх неизведанного, страх перед возможными последствиями, другие заинтересовываются, понимая возможное полезное применение, и видят помощь в исследовании неразрешимых сегодня задач, третьи скептически смотрят на происходящее, имея неудачный опыт в проектировании искусственных нейронных сетей (ИНС) или отсутствие желания в этом разбираться. В любом случае, ИНС за более чем полувековой период своего существования пережили немало взлетов и падений. В этой статье предлагается рассмотреть их возможное назначение, проблемы, связанные с их внедрением, положение дел в настоящее время, а также оценить факторы, влияющие на их развитие.
Проявление интереса к искусственным нейронным сетям было обусловлено работами пионеров в этом деле — У. Маккалоха (W. McCulloch) и У. Питтса (W. Pitts). В 1943 году внимание общественности привлекла работа под названием «Логическое исчисление идей, относящихся к нервной деятельности», в которой они предложили математическую модель нейрона и сформулировали принципы построения искусственных нейронных сетей, согласно разработанной ими модели функционирования головного мозга. Многие ученые с энтузиазмом начали предлагать свои решения и новые архитектуры ИНС. Так, например, Д. Хебб (D. Hebb) в 1949 году высказал идеи о характере соединений нейронов мозга и их взаимодействии, представив впервые методы обучения ИНС, а крупный нейрофизиолог Фрэнк Розенблатт (F. Rosenblatt) предложил в 1957 году свою модель нейронной сети — персептрон, и архитектуру первой в мире модели нейрокомпьютера Mark. Однако его работа подверглась жесткой критике (существует мнение, что необоснованно) многих заслуженных научных авторитетов того времени. Одними из них были ранние приверженцы теории ИНС Минский (М. Minsky) и Пейперт (S. Papert), показавшие несостоятельность теории Розенблатта в 1969 году. Их работа остудила научный пыл многих ученых–энтузиастов практически на два десятилетия. Образовалось некоторое затишье, связанное с разочарованием в возможностях ИНС, вызванным не в последнюю очередь психологическим фактором, проявляющимся в неспособности человека описать словами то, как он думает. На мой взгляд, развитие теории ИНС происходило очень быстро, люди создавали то, что на тот момент не было востребовано, другими словами, теория обогнала свое время. И хотя в этот период было предложено много заслуживающих внимания разработок и исследований, научный мир относился к ним скептически. До тех пор, пока в 1982 году американским биофизиком Дж. Хопфилдом не была предложена архитектура нейронной сети (в настоящее время названная его именем), использующая энергетический подход, моделирующая ассоциативную память. Это был новый толчок для развития этой области, и в 1986 году Дж. Хинтон (J. Hinton) со своими коллегами опубликовал статью с описанием новой модели нейронной сети и алгоритмом ее обучения. В это же время появились первые коммерческие проекты нейрокомпьютеров (Mark III фирмы TRW, США).К исследованиям вернулся и Минский, несмотря на свою предыдущую работу об ограниченности персептронов. Дальнейшее развитие поддерживалось созданием специализированных центров нейрокомпьютеров, проведением большого числа международных конференций и форумов. Объем продаж коммерческих нейросетевых продуктов в период с 1991 по 1997 г. вырос более чем в четырнадцать раз. Сейчас, с учетом перехода на нанотехнологии, появлением новых знаний о деятельности человеческого мозга, появились принципиально новые архитектуры, технологические решения, определены направления исследований, появился широкий спектр задач, которые не под силу решать алгоритмически даже на современных ПК.
Давайте определим, что же заставило пионеров своего дела составить модель нейронных сетей. Естественно, напрашивается стремление человека воспроизвести деятельность мозга, заставить машину думать. Кора головного мозга человека содержит около 100 млрд нейронов, каждый из которых связан с 1000–10000 других нейронов, таким образом получаем приблизительно от 1014 до 1015 взаимосвязей. Предлагаю провести небольшое обозрение. Известно, что нейрон не может изменять свое состояние больше, чем 100 раз в секунду, т. е. с частотой порядка 100 герц. Человек зрительно воспринимает окружающую информацию за 0,7–1 сек, узнавая образы, идентифицируя людей, объекты, а еще следует учитывать обработку информации с других органов чувств и управление работой организма. Однако для реализации этих действий с помощью методов алгоритмизации требуются огромные вычислительные мощности и базы данных. Для такого круга задач получается, что медленные нейроны работают гораздо быстрее самых современных компьютеров, благодаря неизвестному принципу распределения ресурсов, распределенной передаче данных. Как подсчитали специалисты ITC, для создания модели головного мозга потребовался бы компьютер с тактовой частотой 2000 терагерц, с объемом оперативной памяти 200 терабайт. Или более миллиона компьютеров средней мощности с идеальным алгоритмом распределения вычислений без различного рода затрат. Ниже приведена таблица, в которой приводится сравнение архитектур машины фон Неймана (стандартной архитектуры ПК) и биологической нейронной сети (из работы Artificial Neural Networks, Anil K. Jain, Jianchang Mao, K. M. Mohiuddin, США).
На схематическом рисунке представлен биологический нейрон. Схема его действия достаточно проста. Нейрон получает импульсы от аксонов других нейронов через дендриты (приемники) и передает сигналы, сгенерированные телом клетки, вдоль своего аксона (передатчика), который в конце разветвляется на волокна. На окончаниях этих волокон находятся специальные образования — синапсы, которые влияют на величину импульсов. Под обучением ИНС будем понимать настройку коэффициентов для эффективного выполнения специализированной задачи. Чаще всего предлагается обучающая выборка (вход–выход) и посредством итеративного приближения ИНС настраивает свои веса необходимым образом, что улучшает функционирование сети. В этом и состоит преимущество систем на основе ИНС перед системами, в которых функционирование осуществляется по строго определенным правилам. Как происходит создание и проектирование ИНС? В упрощенном варианте этот процесс можно представить нижеописанным способом. Определяется модель процесса, для которого создается ИНС, действующие факторы, доступная информация. Затем, исходя из определенных условий, определяются правила, методы, модификации весовых коэффициентов — появляется алгоритм обучения. Такая сеть уже способна к обучению и существованию. Вполне естественно задаться вопросом: а какие, собственно, методы используются при обучении? Обратимся кратко к этому вопросу, не углубляясь в математические и специализированные теории. Имеют место три парадигмы обучения: «с учителем», «без учителя» и смешанная. В первом случае на входы нейронной сети подаются значения, необходимые результаты которых известны заранее. Коэффициенты входов модифицируются таким образом, чтобы результатом работы сети были известные заранее результаты. Модифицированный вариант обучения с учителем предполагает, что известна только оценка правильности выхода нейронной сети, но не сами правильные значения выхода. Во втором случае производится структурирование и распределение данных по категориям, исходя из определенных связей между входами. Смешанный вариант обучения предполагает под собой обучение некоторой части нейронов с учителем, а остальная часть обучается вторым методом.
В этой части статьи рассмотрим типовые задачи, в которых результаты, получаемые с помощью ИНС, более состоятельны по сравнению с результатами, полученными традиционными методами. А затем рассмотрим ряд реальных применений и исследований в настоящее время. По мнению Anil K. Jain из Мичиганского государственного университета и специалистов Исследовательского центра IBM Jianchang Mao и K. M. Mohiuddin, список задач можно классифицировать следующим образом.
Еще раз отметим, что мы указали только типовые задачи, в общем случае чаще всего встречаются ситуации, представляющие собой комплекс определенных ранее. К примеру, обеспечить загрузку самолета, минимизировать необходимое количество топлива, время перелета, расстояния. Дополнительно к задаче оптимизации добавляется задача управления и аппроксимации (шумоподавление при обеспечении связи пилотов и управляющих сигналов). Более подробно предлагаю остановиться на решении задачи, с которой сталкивается большое количество людей — распознавание изображений символов, или, проще говоря, распознавание текста. В настоящее время существует большое количество программ–обработчиков, позволяющих решать задачу OCR. При решении этой задачи приходится сталкиваться с целым рядом проблем: шумоподавление, выделение символов, блоков и их дальнейшая обработка. Хорошо, если документ отсканирован с качественно отпечатанного источника, но чаще всего приходится сталкиваться с целым рядом проблем. Например, вам необходимо распознать старый документ, который нельзя выровнять, или, скажем, рукописный (даже написанный каллиграфическим почерком), — с этими задачами программы справляются с большим трудом. Реализация алгоритма распознавания текста достаточно сложна и составляется из целого ряда взаимосвязанных блоков, среди которых блоки препроцессирования, сегментации, выделения характеристик, классификации и контекстуальной обработки. Бумажный документ сканируется и создается изображение в оттенках серого цвета или бинарное (черно–белое) изображение. На стадии препроцессирования применяется фильтрация для удаления шума, область текста локализуется и преобразуется к бинарному изображению с помощью глобального и локального адаптивного порогового преобразователя. На шаге сегментации изображение текста разделяется на отдельные символы. Эта задача особенно трудна для рукописного текста, который содержит связи между соседними символами. Один из эффективных приемов состоит в расчленении составного образца на малые образцы (промежуточная сегментация) и нахождении точек правильной сегментации с использованием выхода классификатора по образцам. Вследствие различного наклона, искажений, помех и стилей письма распознавание сегментированных символов является непростой задачей. Решение этой задачи с помощью ИНС представляется следующим образом: происходит неявное извлечение характеристик внутри самой нейросети, в этом случае выделение признаков и их классификация объединены, проходя наряду с обучением сети. Таким образом, сеть может «привыкнуть» к стилю текста, что дает возможность получить оптимальные результаты. Но в любом случае, способности самого человека к распознаванию текста (полная независимость от вышеуказанных факторов) не могут идти ни в какое сравнение даже с самыми современными OCR–системами. Однако не следует упускать из вида и то, что ИНС не являются панацеей от проблем такого типа, они также могут «ошибаться». ИНС лишь могут помочь при решении трудно формализуемых задач, требуя высококлассного специалиста по разработке архитектуры сети, способного решать вопросы, связанные с проектированием, использованием специализированного ПО и т.д.
Развитие новых технологий, появление новых типов задач, в том числе и трудноформализуемых, требует от ряда фирм внедрения новых технологий, использования новых типов ПО, привлечения квалифицированных специалистов. Естественно, у каждой организации будет своя модификация процесса обновления, однако она будет базироваться (с теми или иными изменениями) на нижеприведенных методах, у каждого из которых есть свои преимущества и недостатки. Одним из способов является набор группы специалистов–экспертов. К преимуществам этого способа необходимо отнести возможность человеческого общения непосредственно с конечным «обработчиком информации», учет факторов, которые невозможно формализовать или представить в понятной для ПО форме. Однако к недостаткам этого метода следует отнести не менее важные особенности, среди которых высокие материальные расходы на эксперта, связанные с необходимостью периодического повышения квалификации работника, высоким уровнем оплаты его труда. А человеческую субъективность, противоречия и конфликты в группе также нельзя отнести к плюсам, вкупе с отсутствием гарантий постоянной работы специалиста, связанных с различными факторами. К другому способу отнесем заказ готовой системы специализированной фирме. В этом случае заказчик получает готовый продукт, созданный с учетом специфики работы компании (учтем, что только на время создания), при невысокой стоимости эксплуатации. Среди минусов следует отметить достаточно высокую стоимость разработки таких продуктов, а также невысокую гибкость их использования в дальнейшем, связанную с необходимостью привлечения сторонних специалистов для модернизации и исправления системы. А все эти факторы означают разглашение специфики работы и коммерческих секретов компании, ведь иначе невозможно создать более или менее адекватную систему. Также существует возможность недопонимания программистами необходимых особенностей или субъективность их восприятия, что скажется на конечной эффективности продукта. Теперь рассмотрим следующий способ, который обладает практически всеми достоинствами вышеописанных, но и к минусам его следует отнести практически все их недостатки. Создание системы «с нуля» позволяет контролировать процесс создания, а в дальнейшем и его модернизацию при сохранении полной конфиденциальности. Минусы очевидны — необходимо наличие штата программистов, специалистов по созданию ИНС (причем везде существует человеческий фактор), что обуславливает выплату высокой заработной платы, а также необходима адаптация продукта для конечных пользователей. Четвертый способ — организация системы на основе готовых программных продуктов — сочетает в себе профессиональные готовые архитектуры, алгоритмы обучения, как правило, техническую поддержку и относительно высокую гибкость, благодаря наличию большого количества компонентов. При широкой распространенности продукта, возникновение ошибок минимально, а их обнаружение более эффективно. Однако нет гарантий относительно полноценной адаптации для задач конечного потребителя, плюс ко всему, требуется предварительная подготовка данных, что не всегда приемлемо. Как мы уже отметили, первые три способа достаточно дорогостоящие, что не всегда приемлемо для крупных компаний, где модернизируемое направление не является приоритетным, а также для средних и мелких компаний. Четвертый способ подходит для компаний любого уровня, если сфера применения сборного пакета широко исследована, но методики его использования уникальны для каждой отдельно взятой организации.
В заключение, хочется отметить, что в статье, разумеется, приведен далеко не полный перечень примеров использования нейронных сетей. Мы попытались показать, насколько широки области применения и решаемые задачи. Однако до широкого распространения ИНС в России, на мой взгляд, достаточно далеко, что связано, с одной стороны, со стоимостью таких продуктов, с другой стороны — со скептическим отношением возможных конечных потребителей.