16.Егельский С.
"Искусственные нейронные сети и ИИ"
Как работает нейронная сеть
Искусственная нейронная сеть - это набор нейронов, соединенных между собой. Подавая любые числа на входы нейронной сети, мы получаем какой-то набор чисел на выходах нейронной сети. Таким образом, работа нейронной сети состоит в преобразовании входного вектора в выходной вектор. Практически любую задачу можно свести к задаче, решаемой нейронной сетью.
Преимущества и особенности нейронной сети
Нейросетевые методы далеко не всегда эффективнее традиционных. К тому же, многие нейросетевые методы это просто новая редакция известных математических подходов.
Почему же тогда многие предпочитают нейросети? Одни чтобы заработать на модной новинке, другие чтобы поиграть в новую интеллектуальную игрушку, не отстать от моды попробовать новую технологию и так далее.
Так в чем же реальные преимущества нейронных сетей? Чтобы ответить на этот вопрос, во-первых, обратимся к десятилетнему опыту применения данной технологии красноярской группой НейроКомп, а во-вторых, попытаемся разгадать логику мирового нейросетевого "бума".
Что такое нейронные сети?
Термин "искусственные нейронные сети" у многих ассоциируется с фантазиями об андроидах и бунте роботов, о машинах, заменяющих и имитирующих человека. Это впечатление усиливают многие разработчики нейросистем, рассуждая о том, как в недалеком будущем, роботы начнут осваивать различные виды деятельности, просто наблюдая за человеком.
Если переключиться на уровень повседневной работы, то нейронные сети это всего-навсего сети, состоящие из связанных между собой простых элементов формальных нейронов. Большая часть работ по нейроинформатике посвящена переносу различных алгоритмов решения задач на такие сети.
В основу концепции положена идея о том, что нейроны можно моделировать довольно простыми автоматами, а вся сложность мозга, гибкость его функционирования и другие важнейшие качества определяются связями между нейронами. Каждая связь представляется как совсем простой элемент, служащий для передачи сигнала. Коротко эту мысль можно выразить так: "структура связей все, свойства элементов ничто".
Совокупность идей и научно-техническое направление, определяемое описанным представлением о мозге, называется коннекционизмом (connection связь). С реальным мозгом все это соотносится примерно так же, как карикатура или шарж со своим прототипом. Важно не буквальное соответствие оригиналу, а продуктивность технической идеи.
С коннекционизмом тесно связан следующий блок идей:
однородность системы (элементы одинаковы и чрезвычайно просты, все определяется структурой связей);
надежные системы из ненадежных элементов и "аналоговый ренессанс" использование простых аналоговых элементов;
"голографические" системы при разрушении случайно выбранной части система сохраняет свои свойства.
Предполагается, что широкие возможности систем связей компенсируют бедность выбора элементов, их ненадежность и возможные разрушения части связей.
Истинные преимущества нейронных сетей?
Нейронные сети нынче в моде, но стоит ли следовать за ней? Ресурсы ограничены особенно у нас и особенно теперь. Так что же такое Нейрокомпьютер интеллектуальная игрушка или новая техническая революция? Что нового и полезного может сделать нейрокомпьютер? Очевидно, что на новые игрушки, даже высокоинтеллектуальные, средств нет; нейрокомпьютер должен еще доказать свои необыкновенные возможности совершить то, что не под силу обычной ЭВМ, иначе на него не стоит тратиться.
У энтузиастов имеются свои рекламные способы отвечать на заданные вопросы, рисуя радужные горизонты. Но все это в будущем. А сейчас? Ответы парадоксальны:
· нейрокомпьютеры это новая техническая революция, которая приходит к нам в виде интеллектуальной игрушки (вспомните, и ПК были придуманы для игры);
· для любой задачи, которую способен решить нейрокомпьютер, можно построить специализированную ЭВМ, которая решит ее не хуже, а подчас даже лучше.
Зачем же тогда нейрокомпьютеры? Вступая в творческую игру, мы не можем знать, чем она кончится, иначе это не Игра. Поэзия и реклама дают нам фантом, призрак результата, погоня за которым важнейшая часть игры. Столь же призрачными могут оказаться и прозаические ответы игра может далеко от них увести. Но и они необходимы иллюзия практичности столь же важна, сколь и иллюзия величия. Вот несколько вариантов прозаических ответов на вопрос "зачем?".
А. Нейрокомпьютеры дают стандартный способ решения многих нестандартных задач. И неважно, что специализированная машина лучше решит один класс задач. Важнее, что один нейрокомпьютер решит и эту задачу, и другую, и третью и не надо каждый раз проектировать специализированную ЭВМ, нейрокомпьютер сделает все сам и почти не хуже.
Б. Вместо программирования - обучение. Нейрокомпьютер учится только формировать учебные задачники. Труд программиста замещается новым трудом учителя (может быть, лучше сказать тренера или дрессировщика). Лучше это или хуже? Ни то, ни другое. Программист предписывает машине все детали работы, учитель создает "образовательную среду", к которой приспосабливается нейрокомпьютер. Появляются новые возможности для работы.
В. Нейрокомпьютеры особенно эффективны там, где нужен аналог человеческой интуиции для распознавания образов (узнавания лиц, чтения рукописных текстов), подготовки аналитических прогнозов, перевода с одного естественного языка на другой и т.п. Именно для таких задач обычно трудно сочинить явный алгоритм.
Г. Нейронные сети позволяют создать эффективное программное обеспечение для компьютеров с высокой степенью распараллеливания обработки. Проблема эффективного использования параллельных системы хорошо известна многим. Как добиться того, чтобы все элементы одновременно и без лишнего дублирования делали что-то полезное? Создавая математическое обеспечения на базе нейронных сетей, можно для широкого класса задач решить эту проблему.
Д. Нейросетевые системы "демократичны", они также дружественны, как текстовые процессоры, поэтому с ними может работать любой, даже совсем неопытный пользователь.
Все это вместе служит рациональным основанием для нейрокомпьютерной моды.
Как постороить нейронную сеть
Теперь, когда стало ясно, что именно мы хотим построить, мы можем переходить к вопросу "как строить такую нейронную сеть". Этот вопрос решается в два этапа:
1. Выбор типа (архитектуры) нейронной сети.
2. Подбор весов (обучение) нейронной сети.
На первом этапе следует выбрать следующее:
· какие нейроны мы хотим использовать (число входов, передаточные функции);
· каким образом следует соединить их между собой;
· что взять в качестве входов и выходов нейронной сети.
Эта задача на первый взгляд кажется необозримой, но, к счастью, нам необязательно придумывать нейронную сеть "с нуля" - существует несколько десятков различных нейросетевых архитектур, причем эффективность многих из них доказана математически. Наиболее популярные и изученные архитектуры - это многослойный перцептрон, нейронная сеть с общей регрессией, нейронные сети Кохонена и другие
На втором этапе нам следует "обучить" выбранную нейронную сеть, то есть подобрать такие значения ее весов, чтобы она работала нужным образом. Необученная нейронная сеть подобна ребенку - ее можно научить чему угодно. В используемых на практике нейронных сетях количество весов может составлять несколько десятков тысяч, поэтому обучение - действительно сложный процесс. Для многих архитектур разработаны специальные алгоритмы обучения, которые позволяют настроить веса нейронной сети определенным образом. ( Наиболее популярный из этих алгоритмов - метод обратного распространения ошибки (Error Back Propagation), используемый, например, для обучения перцептрона. )
Описанные выше процессы обучения и применения нейронных сетей можно увидеть в действии прямо сейчас. Фирмой Ward Systems Group подготовлено несколько простых программ, которые написаны на основе библиотеки NeuroWindows. Каждая из программ позволяет пользователю самостоятельно задать набор примеров и обучить на этом наборе определенную нейронную сеть. Затем можно предлагать этой нейронной сети новые примеры и наблюдать ее работу.
Задачи для нейронных сетей
Многие задачи, для решения которых используются нейронные сети, могут рассматриваться как частные случаи следующих основных проблем:
· построение функции по конечному набору значений;
· оптимизация;
· построение отношений на множестве объектов;
· распределенный поиск информации и ассоциативная память;
· фильтрация;
· сжатие информации;
· идентификация динамических систем и управление ими;
· нейросетевая реализация классических задач и алгоритмов вычислительной математики: решение систем линейных уравнений, решение задач математической физики сеточными методами и др.
Отметим, что задачи классификации (типа распознавания букв) очень плохо алгоритмизуются. Если в случае распознавания букв верный ответ очевиден для нас заранее, то в более сложных практических задачах обученная нейронная сеть выступает как эксперт, обладающий большим опытом и способный дать ответ на трудный вопрос.
Примером такой задачи служит медицинская диагностика, где нейронная сеть может учитывать большое количество числовых параметров (энцефалограмма, давление, вес и т.д.). Конечно, "мнение" нейронной сети в этом случае нельзя считать окончательным.
Классификация предприятий по степени их перспективности - это уже привычный способ использования нейронных сетей в практике западных компаний. При этом нейронная сеть также использует множество экономических показателей, сложным образом связанных между собой.
Нейросетевой подход особенно эффективен в задачах экспертной оценки по той причине, что он сочетает в себе способность компьютера к обработке чисел и способность мозга к обобщению и распознаванию. Говорят, что у хорошего врача способность к распознаванию в своей области столь велика, что он может провести приблизительную диагностику уже по внешнему виду пациента. Можно согласиться также, что опытный трейдер чувствует направление движения рынка по виду графика. Однако в первом случае все факторы наглядны, то есть характеристики пациента мгновенно воспринимаются мозгом как "бледное лицо", "блеск в глазах" и т.д. Во втором же случае учитывается только один фактор, показанный на графике - курс за определенный период времени. Нейронная сеть позволяет обрабатывать огромное количество факторов (до нескольких тысяч), независимо от их наглядности - это универсальный "хороший врач", который может поставить свой диагноз в любой области.
Кластеризация с помощью нейронных сетей и поиск зависимостей
Помимо задач классификации, нейронные сети широко используются для поиска зависимостей в данных и кластеризации.( Например, нейронная сеть на основе методики МГУА (метод группового учета аргументов) позволяет на основе обучающей выборки построить зависимость одного параметра от других в виде полинома. Такая нейронная сеть может не только мгновенно выучить таблицу умножения, но и найти сложные скрытые зависимости в данных (например, финансовых), которые не обнаруживаются стандартными статистическими методами.)
Кластеризация - это разбиение набора примеров на несколько компактных областей (кластеров), причем число кластеров заранее неизвестно. Кластеризация позволяет представить неоднородные данные в более наглядном виде и использовать далее для исследования каждого кластера различные методы. Например, таким образом можно быстро выявить фальсифицированные страховые случаи или недобросовестные предприятия.
Примеры приложений
Насколько мы можем судить по открытой печати, приложения нейронных сетей распределены примерно следующим образом: более 60% рынка занимают финансовые и военно-технические приложения; медицинские приложения тоже находятся на весьма почетном месте около 10%.
Большинство приложений, созданных красноярской группой "НейроКомп" связано с решением задач классификации. Работы ведутся в нескольких направлениях: медицинская диагностика, проблемы психологической совместимости, педагогика и социология. Кроме того, наше программное обеспечение использовалось другими исследователями для предсказания колебаний уровня Каспийского моря и прогноза климатических изменений, а также для решения задач технической диагностики, космической навигации и др.
Основные пользовательские преимущества нейросетевого П.О. перед другими системами его "демократичность" (врачи практически самостоятельно создавали себе экспертные системы) и универсальность, способность справиться с большим спектром задач. Кроме того, нейроимитаторы с успехом могут использоваться и в медицинских исследованиях.
Вот несколько характерных примеров построенных систем.
Пример 1. Измерение накопленной дозы радиоактивного облучения
Даже небольшая величина накопленной дозы радиоактивного облучения заметно влияет на состояние многих органов и систем организма, прежде всего, иммунной и эндокринной. Традиционные методы позволяют достаточно точно оценить состояние этих систем, однако часто бывает трудно установить, чем вызвано изменение их параметров: повышенной дозой облучения или самостоятельным заболеванием.
Исследователи стремились выявить связи между накопленной дозой радиоактивного облучения и комплексом иммуннологических, гормональных и биохимических параметров крови человека, создать метод, позволяющий по этим параметрам судить о величине дозы. Для этого был применен нейросетевой классификатор. Обучающими примерами являлись перечисленные параметры (всего 35) у полутора сотен человек, занятых в производстве на предприятии атомной промышленности.
Среди обследуемых был проведен дозиметрический контроль, и по величине накопленной дозы они были разделены на 3 класса. 4-й класс составили люди, величина дозы у которых была в пределах естественных фоновых значений.
При статистическом анализе обучающей выборки по большинству параметров не выявлялось достоверных различий между классами, а имеющиеся различия не прослеживались по всем классам. Однако нейросеть, используя весь комплекс параметров, полностью обучилась распознавать класс каждого примера. При тестировании на выборке с заранее известными ответами класс определялся правильно в 100% случаев. Обученной сетью были протестированы 140 человек, проживающих в зоне влияния предприятия атомной промышленности, но не занятых на производстве.
По данным нейросети только у 3 человек величина накопленной дозы была в пределах естественного фона; у 51 человека определялась слабая доза, у 82 средняя, и у 4 человек сильная.
Пример 2. Ранняя диагностика злокачественных опухолей сосудистой оболочки глаза
Меланомы сосудистой оболочки глаза составляют 88% всех внутриглазных опухолей, но их можно распознать лишь на поздней стадии развития. Традиционные методы выявления заболевания на ранней стадии не вполне надежны, довольно сложны и дорогостоящи.
Предлагаемый способ ранней диагностики меланом хориоидеи включает применение нового лабораторного метода, разработанного в Красноярском межобластном офтальмологическом центре им. Макарова, и интерпретацию получаемых данных нейросетевым классификатором.
Лабораторный метод основан на косвенном измерении содержания пигмента (меланина) в ресницах. Полученные данные спектрофотометрии, проведенной на нескольких частотах для каждого глаза, а также некоторые общие характеристики обследуемого (пол, возраст и др.), подаются на входные синапсы 43-нейронного классификатора. Нейросеть решает, имеется ли у пациента опухоль, и если да, то определяет стадию развития заболевания, выдавая при этом процентную вероятность своей уверенности. Даже при подозрении на наличие опухоли больной может быть направлен на дальнейшее углубленное обследование. Таким образом, данная технология может использоваться для скрининговых профилактических обследований населения.
Стартовое обучение нейросетевого классификатора было проведено на параметрах 195 обследованных людей с ранними и поздними стадиями опухолей, а также не имеющих опухоли. Нейроклассификатор обладает способностью дальнейшего накопления опыта по мере использования.
Пример 3. Новая классификация иммунодефицитов
Если хорошей предсказывающей или диагностической системы построить не удается, возникает предположение о "скрытых параметрах", неучтенных и неизмеренных свойствах. Наблюдаемые параметры зависят от них, поэтому и не удается построить хорошей зависимости.
Одна из простейших форм предположения о скрытых параметрах гипотеза о качественной неоднородности выборки. Она означает, что скрытые параметры принимают сравнительно небольшое конечное число значений и всю выборку можно разбить на классы, внутри которых существенные скрытые параметры постоянны.
Достаточно большая нейронная сеть может освоить любую непротиворечивую обучающую выборку, однако, как показывает практика, если достаточно малая нейронная сеть не может обучиться, то из этого можно извлечь полезную информацию. Если не удается построить удовлетворительную регрессионную зависимость при заданном (небольшом) числе нейронов и фиксированной характеристике ("крутизне" функции активации) каждого нейрона, то из обучающей выборки исключаются наиболее сложные примеры до тех пор, пока сеть не обучится. Так получается класс, который предположительно соответствует одному значению скрытых параметров. Далее обучение можно продолжить на отброшенных примерах и т.д.
В одном из исследований нейросеть обучали диагностике вторичного иммунодефицита (недостаточности иммунной системы) по иммунологическим и метаболическим параметрам лимфоцитов. В обычных условиях по сдвигам этих параметров иногда бывает трудно сделать верное заключение (и это хорошо известная в иммунологии проблема). Были обследованы здоровые и больные люди, параметры которых использовались для обучения. Однако малая нейросеть не обучалась, причем хорошо распознавала все до единого примеры здоровых людей, а часть примеров больных путала со здоровыми. Тогда был сделан следующий шаг: каждый раз, когда сеть останавливала работу, из обучающей выборки убирался пример, на данный момент самый трудный для распознавания, и после этого вновь запускался процесс обучения.
Постепенно из обучающей выборки были исключена примерно треть больных (при этом ни одного здорового!), и только тогда сеть обучилась полностью. Так как ни один здоровый человек не был исключен из обучения, группа здоровых не изменилась, а группа больных оказалась разделена на 2 подгруппы оставшиеся и исключенные примеры больных.
После проведения статистического анализа выяснилось, что группа здоровых и исходная группа больных практически не отличаются друг от друга по показателям метаболизма лимфоцитов. Однако две подгруппы больных статистически достоверно отличаются от здоровых людей и друг от друга по нескольким показателям внутриклеточного метаболизма лимфоцитов. Причем в одной подгруппе наблюдалось увеличение активности большинства лимфоцитарных ферментов по сравнению со здоровыми, а в другой подгруппе депрессия (снижение активности). Для этих подгрупп и прогноз течения болезни, и лечение различны.
В докладе использовались материалы сайтов:
www.neuroproject.ru
Литература
А.Горбань, Д. Россиев. Нейронные сети на персональном компьютере. //Новосибирск: Наука, 1996