Глава 14 НЕЙРОСЕТЕВЫЕ ТЕХНОЛОГИИ
14.1. Что такое нейросеть
Познакомимся с основной идеей построения так называемых нейро-сетевых моделей и рассмотрим примеры успешного применения нейро-сетевых моделей.
Как работает человеческий мозг? Нервная система и мозг человека состоят из нейронов, соединенных между собой нервными волокнами. Нервные волокна способны передавать электрические импульсы между нейронами. Все процессы передачи раздражений от нашей кожи, ушей и глаз к мозгу, процессы мышления и управления действиями - все это реализовано в живом организме как передача электрических импульсов между нейронами. Каждый нейрон имеет отростки нервных волокон двух типов - дендриты, по которым принимаются импульсы, и единственный аксон, по которому нейрон может передавать импульс. Аксон контактирует с дендритами других нейронов через специальные образования - синапсы, которые влияют на силу импульса.
Можно считать, что при прохождении синапса сила импульса меняется в определенное число раз, которое мы будем называть весом синапса. Импульсы, поступившие к нейрону одновременно по нескольким денд-ритам, суммируются. Если суммарный импульс превышает некоторый порог, нейрон возбуждается, формирует собственный импульс и передает его далее по аксону. Важно отметить, что веса синапсов могут изменяться со временем, а значит меняется и поведение соответствующего нейрона.
Нетрудно построить математическую модель описанного процесса. Рассмотрим модель нейрона с тремя входами (дендритами), причем синапсы этих дендритов имеют веса w\, W2, w. Пусть к синапсам поступают импульсы силы Хь Х2, Хз соответственно, тогда после прохождения синапсов и дендритов к нейрону поступают импульсы wixi, W2X2, W3X3. Нейрон преобразует полученный суммарный импульс х = wixi + W2X2 + W3X3 в соответствии с некоторой передаточной функцией Дх). Сила вы-
ходного импульса равна = fix) = fiyv\X\ + W2X2 + 3X3). Таким образом, нейрон полностью описывается своими весами Wk и передаточной функцией Дх). Получив набор чисел (вектор) Xk в качестве входов, нейрон выдает некоторое число у на выходе.
14.2. Как работает нейросеть
Таким образом, работа нейросети состоит в преобразовании входного вектора в выходной вектор, причем это преобразование задается весами сети.
Одной из основных областей применения нейросетевых технологий являются задачи классификации, то есть задачи, в которых нужно отнести входные данные к одной из известных категорий.
Искусственная нейронная сеть (ИНС, нейросеть) - это набор нейронов, соединенных между собой. Как правило, передаточные функции всех нейронов в сети фиксированы, а веса являются параметрами сети и могут изменяться. Некоторые входы нейронов помечены как внешние входы сети, а некоторые выходы - как внешние выходы сети. Подавая
любые числа на входы сети, мы получаем какой-то набор чисел на выходах сети. Таким образом, работа нейросети состоит в преобразовании входного вектора в выходной вектор, причем это преобразование задается весами сети. Практически любую задачу можно свести к задаче, решаемой нейросетью. В табл. 14.1 показано, каким образом следует формулировать в терминах нейросети задачу распознавания рукописных букв.
Таблица 14.1
Задача распознавания рукописных букв |
Дано растровое черно-белое изображение буквы размером 30 х 30 пикселов | Надо определить, какая это буква (в алфавите 33 буквы) |
Формулировка для нейросети |
Дано: входной вектор из 900 двоичных символов (900 = 30 X 30) | Надо построить нейросеть с 900 входами и 33 выходами, которые помечены буквами. Если на входе сети- изображение буквы «А», то максимальное значение выходного сигнала достигается на выходе «А». Аналогично сеть работает для всех 33 букв |
Поясним, зачем требуется выбирать выход с максимальным уровнем сигнала. Дело в том, что уровень выходного сигнала, как правило, может принимать любые значения из какого-то отрезка. Однако в данной задаче нас интересует не аналоговый ответ, а всего лишь номер катего-
рии (номер буквы в алфавите). Поэтому используется следующий подход- каждой категории сопоставляется свой выход, а ответом сети считается та категория, на чьем выходе уровень сигнала максимален. В определенном смысле уровень сигнала на выходе «А» - это достоверность того, что на вход была подана рукописная буква «А». Задачи, в которых нужно отнести входные данные к одной из известных категорий, называются задачами классификации. Изложенный подход - стандартный. Теперь, когда стало ясно, что именно мы хотим построить, можно переходить к вопросу «как строить такую сеть». Этот вопрос решается в два этапа: 1) выбор типа (архитектуры) сети; 2) подбор весов (обучение) сети;
На первом этапе следует выбрать: какие нейроны мы хотим использовать (число входов, передаточные функции); каким образом следует соединить их между собой; что взять в качестве входов и выходов сети.
Эта задача на первый взгляд кажется необозримой, но к счастью нам необязательно придумывать нейросеть «с нуля» - существует несколько десятков различных нейросетевых архитектур, причем эффективность многих из них доказана математически. Наиболее популярные и изученные архитектуры - это многослойный персептрон, нейросеть с общей регрессией, сети Кохонена и другие.
На втором этапе следует «обучить» выбранную сеть, т.е. подобрать такие значения ее весов, чтобы сеть работала нужным образом. Необученная сеть подобна ребенку- ее можно научить чему угодно. В используемых на практике нейросетях количество весов может составлять несколько десятков тысяч, поэтому обучение - действительно сложный процесс. Для многих архитектур разработаны специальные алгоритмы обучения, которые позволяют настроить веса сети определенным образом. Наиболее популярный из этих алгоритмов - метод обратного распространения ошибки (Error Back Propagation), используемый, например, для обучения персептрона.
14.3. Обучение нейросети
Обучить нейросеть - значит сообщить ей, чего мы от нее добиваемся. Этот процесс очень похож на обучение ребенка алфавиту. Показав ребенку изображение буквы «А», мы спрашиваем его: «Какая это буква?» Если ответ неверен, мы сообщаем ребенку тот ответ, который хотели бы