Нейронные сети. Толковый словарь 3 Оглавление Введение ................................................................................................... 6 Предисловие к российскому изданию ................................................. 10 Агрегирование входных данных .......................................................... 12 Алгоритм генетический ........................................................................ 13 Алгоритм обучения ............................................................................... 14 Алгоритм самообучения ....................................................................... 15 Анализ чувствительности ..................................................................... 17 Аппаратные реализации ........................................................................ 18 Быстрое распространение ..................................................................... 19 Быстрые алгоритмы обучения .............................................................. 20 Backpropagation ...................................................................................... 21 BIAS – свободный сигнал ..................................................................... 22 Вектор весов ........................................................................................... 23 Вектор входной ...................................................................................... 24 Веса ......................................................................................................... 25 Вход ........................................................................................................ 26 Выбор коэффициента обучения ........................................................... 27 Выборка обучающая.............................................................................. 28 Выборка оценочная ............................................................................... 29 Выборка тестовая................................................................................... 30 Выход ...................................................................................................... 31 GRNN (нейронная сеть обобщенной регрессии) ................................ 33 Данные входные .................................................................................... 34 Данные выходные .................................................................................. 35 Декомпозиция обучающих данных на подмножества ....................... 36 Изменения коэффициента обучения .................................................... 38 Изменения ошибки ................................................................................ 39 Инициализация весов ............................................................................ 40 Интерпретация качественных выходных данных нейронной сети ... 41 Исключение излишних соединений..................................................... 42 Каждый с каждым.................................................................................. 43 Количество скрытых слоев ................................................................... 44 Корректировка ошибки ......................................................................... 45 Коэффициент обучения ......................................................................... 46 Минимум глобальный ........................................................................... 47 Минимум локальный ............................................................................. 48 Момент ................................................................................................... 49 4 Рышард Тадеусевич, Мачей Шаленец MLP ......................................................................................................... 50 Нейрон .................................................................................................... 51 Нейрон Кохонена ................................................................................... 52 Нейрон линейный .................................................................................. 53 Нейрон осциллирующий (импульсный) .............................................. 54 Нейрон радиальный ............................................................................... 55 Нейрон сигмоидальный......................................................................... 56 Нейрон тангенсоидальный.................................................................... 57 Области решений ................................................................................... 58 Обобщение ............................................................................................. 59 Обратное распространение ошибки ..................................................... 60 Обучающий эпизод................................................................................ 62 Обучение ................................................................................................ 63 Отклик .................................................................................................... 64 Отклик эталонный ................................................................................ 65 Оценивание методом bootstrap............................................................. 66 Оценивание методом leave-one-out ...................................................... 67 Оценивание n-кратное ........................................................................... 68 Оценивание перекрестное..................................................................... 69 Ошибка ................................................................................................... 70 Переобучение ......................................................................................... 71 Персептрон ............................................................................................. 72 Персептрон многослойный ................................................................... 73 Подбор входных данных ....................................................................... 74 Подбор входных данных – пример ...................................................... 75 Подготовка качественных входных данных для нейронной сети ..... 76 Подготовка количественных входных данных для нейронной сети 77 Подготовка решаемой задачи к применению нейронной сети .......... 78 Преобразование PCA ............................................................................. 79 Примеры входных данных .................................................................... 80 Программы моделирования нейронных сетей .................................... 81 Процесс генетической оптимизации сети ........................................... 82 Процесс обучения .................................................................................. 83 PNN ......................................................................................................... 84 Редукция входного слоя ........................................................................ 85 Редукция соединений ............................................................................ 87 RBF.......................................................................................................... 88 Самообучение ........................................................................................ 89 Самоорганизующееся отображение ..................................................... 90 Сеть автоассоциативная нейронная ..................................................... 91 Нейронные сети. Толковый словарь 5 Сеть большая нейронная ....................................................................... 92 Сеть вероятностная нейронная ............................................................. 93 Сеть генетическая нейронная ............................................................... 94 Сеть классификационная нейронная ................................................... 95 Сеть конкурентная нейронная .............................................................. 96 Сеть Кохонена нейронная ..................................................................... 97 Сеть нейро-нечеткая .............................................................................. 98 Сеть нейронная ...................................................................................... 99 Сеть обобщенной регрессии ............................................................... 100 Сеть однонаправленная нейронная .................................................... 101 Сеть радиальная нейронная ................................................................ 102 Сеть регрессионная нейронная........................................................... 103 Сеть рекуррентная нейронная ............................................................ 104 Сеть самоорганизующаяся нейронная ............................................... 105 Сеть Хопфилда нейронная .................................................................. 107 Сигналы ................................................................................................ 108 Слои в нейронных сетях ..................................................................... 109 Слой входной ....................................................................................... 110 Слой выходной..................................................................................... 111 Слой скрытый ...................................................................................... 112 Слой топологический .......................................................................... 113 Соединения........................................................................................... 114 Соседство.............................................................................................. 115 Строгость учителя ............................................................................... 116 Структура нейронной сети.................................................................. 117 Суммарное возбуждение ..................................................................... 118 SSE – сумма квадратов ошибок.......................................................... 119 Топологическая карта.......................................................................... 121 Учитель ................................................................................................. 122 Функция активации ............................................................................. 124 Функция ошибки.................................................................................. 125 Feedforward (прямое распространение) ............................................. 127 FNN (нечеткая нейронная сеть).......................................................... 128 Экзамен ................................................................................................. 129 Эпоха..................................................................................................... 130 Библиография....................................................................................... 132 Рышард Тадеусевич, Мачей Шаленец 6 Введение Нейронные сети совсем недавно считались суперсовременными и захватывающими информационными инструментами и – одновременно – в некотором смысле моделями человеческого мозга. В настоящее время они рассматриваются как популярная вычислительная технология, применяемая часто и охотно, но уже не вызывающая сильные эмоции. С таким весьма прагматичным подходом к нейронным сетям, воспринимаемым только как инструментарий решения конкретных задач, связана изменившаяся модель потребности в знаниях. Когда-то читатели были настолько заинтересованы самими нейронными сетями, что были рады любой книге на эту тему и зачитывали ее до дыр. Можно привести в пример книгу [1], которая первой в Польше была посвящена этой тематике. Она пользовалась таким успехом, что первое издание было раскуплено в течение двух недель, и в тот же год пришлось подготовить и напечатать второе издание – конечно, скорректированное и дополненное. Эта книга вызвала большой резонанс, о чем свидетельствуют более 500 цитат, зафиксированных в Google Scholar, и свыше 20 диссертаций, по которым ее автор выступил оппонентом, поскольку их понятийный базис был основан именно на этой книге. Еще раз подчеркнем: в этот пионерский период чтение даже такой объемной и местами излишне подробной книги не представлялось читателям затруднительным либо неуместным. В следующие годы (1994 и 1995) за границей вышло множество книг, посвященных нейронным сетям, однако в Польше их было издано не так много: в 1994 г. книга [2], а в 1995 г. книга [3]. В ходе рецензирования многочисленных статей и других научных публикаций (в том числе кандидатских и докторских диссертаций, посвященных нейронным сетям), один из авторов этой книги неоднократно убеждался, что упомянутые книги читались очень внимательно, а заинтересованные читатели замечали и использовали даже очень мелкие нюансы. Но вскоре обрушилась настоящая лавина: в 1996 г. были изданы сразу четыре книги, посвященные проблематике нейронных сетей [3, 4, 5 и 6], а в следующие годы их появилось настолько много, что само перечисление было бы затруднительным, не говоря уже о каком-либо обсуждении их содержания. Нейронные сети. Толковый словарь 7 Однако, как мы уже отмечали, эпоха восхищения нейронными сетями как чудом человеческой мысли осталась в прошлом. В настоящее время уже почти никто не задумывается, какими свойствами настоящей (биологической) нервной клетки обладает искусственный нейрон как элемент сети, решающей конкретную задачу. Внимание приковано к решаемой задаче, тогда как сеть стала всего лишь инструментом, предназначенным для получения искомого решения. Среди прочего, такой подход основан на доступности множества программ, предлагающих нейронные сети как простой в применение инструментарий типа «сюда вводятся входные данные, а здесь выводятся результаты». И совсем неважно, что находится между ними, лишь бы данные использовались правильно, а результат оказался полезен! В качестве примера программ такого типа можно привести Neural Networks Toolbox for Matlab либо Statistica Neural Networks. Менее известной, но прекрасной программой профессионального уровня является пакет Mathematica Neural Networks, созданный гениальным математиком и физиком Стивеном Вольфрамом. Такая переориентация на пользователей сопровождалась изменением профиля издаваемых книг – в них вместо описания самих нейронных сетей подробно описывались их практические приложения. И поскольку таких приложений (удачных!) было очень много, издавались все более объемные публикации, состоящие из таких статей и сообщений. Большинство таких статей имело схожую структуру: «Мы хотели решить задачу Х; применили нейронную сеть и рекомендованный другими авторами метод Y; сравнили полученные результаты и выяснили, что нейронная сеть оказалась лучше, чем метод Y». В качестве типичных примеров изданий такого типа можно привести монографии [8, 9], изданные под эгидой Польской академии наук. Первая из них состояла из 26 глав и насчитывала 833 страницы, а вторая – из 27 глав (с объемным приложением) и состояла из 745 страниц. Конечно, такие объемные книги уже никто не читал «от корки до корки», но каждый читатель извлекал из них именно то, что интересовало его в текущий момент в контексте задачи, которую он собирался решить с помощью нейронных сетей. Однако при таком чисто прагматичном и утилитарном подходе к нейронным сетям время от времени возникали терминологические проблемы: читатель, изучающий описание интересного для него приложения нейронных сетей, встречал в тексте статьи или раздела монографии специфические термины, характерные именно для 8 Рышард Тадеусевич, Мачей Шаленец нейросетевой тематики. Автор публикации не считал нужным их разъяснять, поскольку для него (как и для других специалистов по нейронным сетям) эти понятия были элементарными, очевидными и не требующими пояснений. Однако большинство читателей находились в иной ситуации – они были заинтересованы в применении нейронных сетей, но не обладали соответствующими специализированными знаниями. Конечно, можно занять удобную позицию «Не знаешь – пойди изучи» и отправить такого читателя штудировать книги по теории нейронных сетей. Однако на практике такой подход совершенно не работает. Тот, кто хочет быстро и эффективно решить конкретную задачу, скорее откажется от такого инструментария, как нейронные сети, чем решится на детальное изучение их теоретических основ. «Если хочется выпить кружку пива, не обязательно покупать пивоварню» – эта популярная поговорка очень точно отражает сущность дилеммы, с которой сталкивается описываемый здесь исследователь или практик. Именно для таких читателей, которые хотят применять нейронные сети без углубления в бездну знаний на эту тему, и предназначена наша книга. Толковый словарь построен таким образом, чтобы читатель другой статьи или другой книги, столкнувшийся с непонятным термином, мог заглянуть в Толковый словарь, как можно скорее получить разъяснение по возникшему вопросу и сразу вернуться к чтению того, что интересует его в первую очередь. Поэтому описание подавляющего большинства терминов занимает не больше одной страницы – включая как текст, так и необходимый рисунок. Таким образом, Толковый словарь разъясняет содержащиеся в нем термины и понятия очень доступно, но при этом весьма компактно. При составлении нашего Толкового словаря часто возникали ситуации, когда в попытке наиболее кратко разъяснить одно понятие нам приходилось использовать другие специализированные термины. Очень часто такие термины будут для читателя интуитивно понятными, однако при подготовке Толкового словаря мы исходили из принципа «Ничто не является очевидным». По этой причине для каждого термина отведена своя страница с соответствующим описанием. В книге с традиционной структурой обращение (в случае необходимости) к дополнительным пояснениям чаще всего бывает трудоемким и хлопотным. Если уважаемый читатель имеет дело с книгой в электронном формате, то при ее изучении можно воспользоваться гипертекстовыми ссылками. Благодаря им можно в любой момент кликнуть на непонятное слово и сразу же получить очеред- Нейронные сети. Толковый словарь 9 ное краткое и емкое разъяснение – конечно, если вызвавший вопросы термин представлен в нашем Толковом словаре. Это легко выяснить, поскольку термины, оснащенные гиперссылками, выделены в тексте особым образом. Благодаря небольшому объему и популярной форме изложения знания, представленные в Толковом словаре, легко воспринять и усвоить, благодаря чему уважаемый читатель получит своеобразный «допуск» к чтению других книг и статей, рассказывающих о приложениях нейронных сетей. И в завершение этого введения повторю еще раз то, что было написано в монографии [9] (она содержала Приложение, названное Компендиум знаний о нейронных сетях, ставшее своеобразным прообразом нашего Толкового словаря): «На самом деле, собранное в Толковом словаре количество знаний невелико. Они как своеобразный неприкосновенный запас еды на судне или как аптечка в автомобиле. Такой минимальный набор сможет помочь в случае острой необходимости, однако окажется совершенно недостаточным, если мы захотим наесться или вылечиться. По этой причине читатель при пользовании Толковым словарем должен сознавать, что для получения более детальной информации он должен воспользоваться дополнительными источниками». В частности, книгами, перечисленными в списке литературы под номерами с [1] до [7]. Хотя эти книги сложно назвать совсем новыми, они не утратили актуальность и сегодня, потому что несмотря на огромный прогресс в сфере применения нейронных сетей, их теоретические основы, принципы функционирования и общие свойства практически не изменились с 90-х г.г. ХХ века! 10 Рышард Тадеусевич, Мачей Шаленец Предисловие к российскому изданию Передаваемая российскому читателю книга «НЕЙРОННЫЕ СЕТИ. ТОЛКОВЫЙ СЛОВАРЬ» возникла в результате наблюдения, что такой современный и высокоэффективный информационный инструментарий, как нейронные сети, применяют все больше ученых и практиков, которые не испытывают потребность погружаться в глубины теории этих сетей, но хотят им пользоваться. Этим все более многочисленным пользователям необходимы определенные знания о нейронных сетях – самые основные, допускающие немедленное применение, быстро воспринимаемые и используемые – а потому и быстро забываемые. Настоящий Толковый словарь содержит именно такую информацию. В нем собраны многочисленные понятия, применяемые в теории и практике нейронных сетей, с объяснением их содержания. При этом мы постарались, чтобы каждое понятие занимало только один экран при чтении с помощью компьютера, смартфона или планшета. Каждое понятие дополнительно иллюстрируется рисунком. Конечно, такая весьма ограниченная «таблетка знаний» неспособна разъяснить все детали рассматриваемых понятий. Однако текст Толкового словаря насыщен гиперссылками. Каждый термин, используемый для пояснения текущего рассматриваемого понятия, который может быть непонятен читателю, не очень уверенно ориентирующемуся в проблематике нейронных сетей (а именно на такого читателя рассчитан наш Толковый словарь), связан со ссылкой (линком) на другое понятие, которое объясняет этот непонятный термин. Типовой способ использования Толкового словаря состоит в том, что он должен находиться под рукой в момент чтения специальной литературы о нейронных сетях и их применении. К примеру, речь может идти о каких-либо достижениях в использовании нейронных сетей, которые читатель хотел бы воспроизвести. Однако прежде чем воспроизводить, необходимо вначале понять, что и как было сделано в исходной работе. Если при этом в каждой строчке публикации встречается какой-то незнакомый термин, то эффективно воспользоваться таким описанием будет просто невозможно! Как правило, автор читаемой статьи или реферата уверен, что читатели обладают знаниями об основах структуры и функционирования нейронных сетей. Поэтому он не считает нужным разъяснять элемен- Нейронные сети. Толковый словарь 11 тарные понятия и сразу концентрируется на тех особенностях предлагаемого решения, которые являются его оригинальным вкладом в технологию нейронных сетей. Для того чтобы понять и оценить эту новизну, необходимо знать – к чему именно она относится. И как раз в такой момент можно воспользоваться нашим Толковым словарем и найти в нем непонятный термин и связанную с ним информацию, чтобы после выяснения всех деталей сконцентрировать свое внимание на принципиальных особенностях читаемого сообщения. Толковый словарь, доступный в Польше в версиях PDF, MOBI и EPUB, пользуется большой популярностью. На момент написания этого предисловия с Интернет-сервера его скачали уже более 30 тысяч раз, а на страницах форумов и сообществ, посвященных нейронным сетям, при возникновении вопроса о каких-либо базовых понятиях чаще всего дается ответ «Загляни в толковый словарь» – и указывается адрес для его скачивания. Мы искренне рады, что теперь наш Толковый словарь будет доступен читателям в России и многим людям по всему миру, пользующимся русским языком. В завершение предисловия хотели бы высказать сердечные благодарности. В первую очередь, мы благодарим профессора И.Д. Рудинского, который предложил издать нашу книгу в России, а также старательно и очень компетентно перевел ее на русский язык. Мы также считаем своим долгом искренне поблагодарить издательство «Горячая линия — Телеком», которое ранее уже выпустило русскоязычные версии двух книг одного из нас: «Элементарное введение в технологию нейронных сетей с примерами программ» (http://techbook.ru/book.php?id_book=437) и «Основы нейрокибернетики» (http://techbook.ru/book.php?id_book=791). Издательство в очередной раз оказало нам доверие, за что мы ему очень признательны. Желаем всем читателям успехов в использовании Толкового словаря! Рышард Тадеусевич Мачей Шаленец Июнь 2019 г. Рышард Тадеусевич, Мачей Шаленец 12 Агрегирование входных данных Это первое действие, которое выполняет нейрон. Поскольку нейрон имеет, как правило, несколько входов и один выход, необходимо преобразовать множество входных данных в один промежуточный сигнал суммарного возбуждения, который далее посредством выбранной функции активации формирует выходной сигнал нейрона. Линейное агрегирование Радиальное агрегирование В нейронах применяются различные формулы агрегирования входных данных, однако чаще всего используется показанное на рисунке линейное агрегирование (в верхней части рисунка) либо радиальное агрегирование (в нижней части рисунка). Нейронные сети. Толковый словарь 13 Алгоритм генетический Метод оптимизации, применяемый, среди прочего, для выбора наилучшей структуры нейронной сети. Принцип действия при использовании генетического алгоритма показан на рисунке. Вначале выбирается некоторое количество исходных решений (например, структур сети в рамках решения, называемого генетической нейронной сетью), которые образуют ПОПУЛЯЦИЮ. Эти исходные решения сопоставляются с подлежащей решению задачей (все сети подвергаются обучению), после чего проводится СЕЛЕКЦИЯ (в случае нейронной сети критерием селекции является экзамен). Решения, отобранные в результате селекции (получившие наилучшие оценки на экзамене), подвергаются операции СКРЕЩИВАНИЯ (отобранные случайным образом пары решений обмениваются отобранными случайным образом фрагментами своих параметров) и образуют решения-потомки. После проведения дополнительных случайных корректировок, называемых МУТАЦИЯМИ, решенияпотомки вводятся в ПОПУЛЯЦИЮ вместо решений-родителей – и цикл повторяется. ПОПУЛЯЦИЯ СЕЛЕКЦИЯ МУТАЦИЯ СКРЕЩИВАНИЕ Рышард Тадеусевич, Мачей Шаленец 14 Алгоритм обучения Это метод адаптации нейронной сети, потенциально являющейся инструментом для использования в очень широком спектре приложений, к решению конкретного класса задач, которые описываются примерами решений, содержащимися в обучающей выборке. Функционирование алгоритма обучения заключается в последовательном предъявлении обучающих данных вместе с пояснениями учителя о том, каким должен быть корректный отклик сети (так называемый эталонный отклик). Особенности реализации алгоритма обучения (точнее, множества алгоритмов, потому что их известно уже несколько десятков, если не сотен) слишком сложны для того, чтобы рассказывать о них в этой книге. Основная идея процесса обучения заключается в минимизации функции ошибки. При работе алгоритма обучения проводится итерационная модификация весов нейронной сети. Критерий останова алгоритма связан с применением так называемой оценочной выборки, которая определяет момент, когда сеть начинает утрачивать способность к обобщению результатов обучения. Данные Самообучение – шаг 1 Данные Самообучение – шаг 2 После нескольких шагов самообучения Данные Экзамен Класс А Класс В После проведения многочисленных шагов обучения сеть готова к экзамену, на котором проверяются ее знания и способность к обобщению. Нейронные сети. Толковый словарь 15 Алгоритм самообучения Это метод полностью самостоятельной адаптации нейронной сети к анализу данных, подаваемых на ее вход, без какого бы то ни было комментария или пояснения. Самообучающаяся сеть способна автоматически упорядочивать такие данные, разделять их на группы, идентифицировать и классифицировать. Необходимо подчеркнуть, что в отличие от обучения, когда сеть получает только знания, исходящие от учителя, при самообучении она должна как бы самостоятельно находить эти знания, что открывает совершенно новые прикладные возможности. Так же, как при использовании алгоритма обучения, прикладные возможности рассматриваемого класса сетей обусловлены способностью обученной нейронной сети обобщать полученные ею знания (обобщение). Как следствие, самостоятельно сформированные сетью критерии упорядочения и классификации входных данных могут использоваться и для того, чтобы упорядочивать или классифицировать новые данные, которые не могли быть обработаны сетью во время самообучения. Учитель Данные Обучение – шаг 1 Учитель Данные Обучение – шаг 2 После нескольких шагов обучения Данные Экзамен 16 Рышард Тадеусевич, Мачей Шаленец Недостаток самообучения состоит в том, что сеть практически полностью самостоятельно добывает знания (или даже сама создает их), но пользователь не оказывает никакого влияния на то, в какой форме эти знания представляются на выходе сети. В связи с этим интерпретация результатов самообучения и решений, получаемых обученной сетью в процессе экзамена, требует определенных усилий. Пользователь вначале должен понять, о чем сообщает сеть и каким способом, и только потом сможет получать пользу от применения самообучающейся сети. Наиболее известным представителем самообучающейся сети является нейронная сеть Кохонена. Нейронные сети. Толковый словарь 17 Анализ чувствительности Если в задаче, решаемой нейронной сетью, есть некоторое количество несущественных входных данных, и существует необходимость уменьшить их количество, эти данные можно исключить в ходе анализа чувствительности. Этот анализ проводится после обучения нейронной сети и показывает, какие входные данные наиболее важны. Мы узнаем это по возрастанию ошибки в случае исключения из входных данных конкретных переменных. Каждый раз после удаления из входных данных тех переменных, которые признаны несущественными, необходимо с самого начала проводить процесс обучения сети. Ошибка Ошибка Сеть без удаления данных Ошибка Сеть с удалением несущественных данных Сеть с удалением существенных данных 18 Рышард Тадеусевич, Мачей Шаленец Аппаратные реализации Большинство описанных в литературе нейронных сетей (в частности, все те приложения, которые представлены в предыдущих разделах нашей книги) реализованы с помощью программ моделирования нейронных сетей. Тем не менее следует упомянуть, что когда-то нейронные сети реализовывались аппаратно, а некоторые из них применяются и сейчас. Когда-то применялись специализированные масштабируемые системы ASIC (Application Specific Integrated Circuit), а в настоящее время они реализуются, главным образом, на базе программируемых систем FPGA (Field Programmable Gate Array). На рисунке представлен наиболее известный пример аппаратной реализации нейронной сети производства компании Intel. Изображение заимствовано 15 февраля 2014 г. с Интернет-страницы http://www.warthman.com/images/Intel%2080170%20B.jpg. Нейронные сети. Толковый словарь 19 Быстрое распространение Вариант алгоритма обратного распространения ошибки, который позволяет значительно ускорить процесс обучения благодаря адаптации на каждом шаге процесса обучения коэффициента обучения к локальным свойствам функции ошибки. На рисунке показан процесс обучения нейронной сети с помощью основного алгоритма обратного распространения ошибки, а также с помощью алгоритма быстрого распространения. Заметно, что в обоих случаях сеть обучилась корректно. Достигнут минимум функции ошибки, значения которой показаны на рисунке в виде горизонталей (как на географической карте). Однако видно, что количество итераций, реализованных при использовании алгоритма быстрого распространения, оказалось значительно меньше. Обратное распространение ошибки – 91 итерация Алгоритм быстрого распространения – 63 итерации Рышард Тадеусевич, Мачей Шаленец 20 Быстрые алгоритмы обучения Метод обратного распространения ошибки относительно примитивен, вследствие чего обучение сети происходит довольно медленно. Некоторого ускорения процесса обучения можно добиться с применением метода быстрого распространения (Quikpropagation), но это ускорение тоже не будет значительным. Тем не менее, существуют методы обучения, применение которых способно существенно ускорить обучение сети – хотя применимость этих ускоренных методов обучения зависит от выполнения функцией ошибки некоторых дополнительных условий. Поскольку далеко не всегда удается проверить, удовлетворяет ли функция ошибки этим условиям, применение ускоренных методов обучения связано с определенным риском (при невыполнении этих условий процесс обучения может оказаться расходящимся). Однако если эти методы применяются корректно, то степень ускорения процесса обучения оказывается очень высокой. В качестве примеров таких методов можно назвать алгоритмы сопряженных градиентов, квази-Ньютона, Левенберга-Марквардта (см. рисунок, а также раздел «Быстрое распространение»). Обратное распространение ошибки – 91 итерация Метод сопряженных градиентов – 22 итерации Алгоритм Левенберга– Марквардта – 7 итераций Нейронные сети. Толковый словарь Backpropagation См. раздел «Обратное распространение ошибки» 21 Рышард Тадеусевич, Мачей Шаленец 22 BIAS – свободный сигнал1 Большинство весов в нейронной сети связаны с сигналами, появляющимися на входах конкретных нейронов. Эти сигналы исходят либо из входных данных, подаваемых в сеть как описание подлежащей решению задачи, либо с выходов нейронов, расположенных в предыдущем слое нейронной сети. Иногда при обучении сети полезными оказываются веса, которые не связаны ни с одним сигналом. Такие свободные члены в уравнениях, описывающих нейроны либо целые сети, позволяют лучше описывать задачи, которые должны решаться сетью. Для обеспечения однородности описания нейронов, как использующих, так и не использующих такие свободные члены, в структуру нейронной сети часто вводятся генераторы искусственного псевдосигнала, обозначаемые аббревиатурой BIAS. Этот сигнал по определению всегда имеет значение +1 и подается на дополнительный вход нейрона. Вес, связанный с этим сигналом, подвергается процессу обучения так же, как и все остальные веса, с тем отличием, что в соответствующих формулах алгоритма обучения вместо реальных сигналов указывается BIAS. 1 В отечественной литературе также встречается термин «сигнал смещения» – Прим. перев. Нейронные сети. Толковый словарь 23 Вектор весов Параметры нейрона, которыми являются веса, упорядочены и пронумерованы так же, как конкретные входные данные, с которыми эти веса ассоциированы. Поэтому иногда оказывается удобно говорить о всем комплексе весов конкретного нейрона как о векторе весов. Вектор весов предопределяет свойства нейрона, поскольку каждое его изменение приводит к изменению (иногда – радикальному) поведения нейрона – см. рисунок в разделе «Веса». По аналогии с вектором весов комплекс входных данных (компонентов входного сигнала) тоже временами называют входным вектором или кратко сигналом. Взаимное положение вектора весов (представляющего собой результат процесса обучения) и входного вектора обусловливает отклик нейрона. Это следует из применяемого чаще всего агрегирования входных данных в форме линейного агрегирования. Дендриты Вес 2-го входа Сома Миелиновая Аксон оболочка Терминаль аксона Вектор весов Вес 1-го входа По аналогии с вектором весов одиночного нейрона речь также может идти о векторе весов всей нейронной сети – понимая под этим термином конкатенацию (объединение) векторов весов всех нейронов, входящих в состав сети. Рышард Тадеусевич, Мачей Шаленец 24 Вектор входной Комплекс входных данных, подаваемых на вход нейрона, имеет уникальный номер. Эта нумерация назначается случайным образом для удобства манипулирования входными данными и для упрощения математических формул, описывающих эти данные. С учетом нумерации входов речь часто идет о входных данных, подаваемых на конкретный нейрон либо на всю нейронную сеть, как о входном векторе. Компоненты этого вектора описывают объект, являющийся предметом распознавания в классификационных сетях либо для которого необходимо рассчитать конкретные выходные значения в регрессионных сетях. Форма Форма распознаваемого объекта Входной вектор Величина распознаваемого объекта Величина Распознаваемый объект Нейронные сети. Толковый словарь 25 Веса Параметры нейрона, определяющие его свойства и роли в процессе решения нейронной сетью поставленной задачи. Как правило, веса всей сети адаптирует применяемый алгоритм обучения или самообучения. Комплекс значений весов всех нейронов, установленных в результате обучения или самообучения, предопределяет знания, которыми обладает нейронная сеть. Дендриты Запах Сома Один и тот же оцениваемый объект: цветок красивой окраски с неприятным запахом Цвет Миелиновая Аксон оболочка Терминаль аксона Дендриты Запах Сома Цвет Аксон Диметрально различающиеся оценки одного и того же объекта двумя нейронами, имеющими разные веса Миелиновая оболочка Терминаль аксона На рисунке показано, как зависит поведение нейрона от приписывания его входам различных значений весов. Рышард Тадеусевич, Мачей Шаленец 26 Вход Сокращенное название пути ввода в конкретные нейроны либо во всю нейронную сеть входных данных. Иногда на жаргоне так называются сами входные данные, хотя это следует признать некорректным. Достоинством нейронной сети считается возможность подавать на ее вход непонятные для пользователя и неупорядоченные входные данные, а после завершения обучения на выходе сети получается, как правило, упорядоченный и полезный результат, который удобно и легко поддается интерпретации. Нейронные сети. Толковый словарь 27 Выбор коэффициента обучения Коэффиеиент обужения h Коэффициент обучения предопределяет скорость процесса обучения нейронной сети и должен адаптироваться к характеру функции ошибки. Однако поскольку при типовых применениях нейронных сетей характер функции ошибки чаще всего неизвестен, значение коэффициента обучения выбирается, чаще всего, интуитивно, а его оценивание проводится ex post, т.е. по результатам наблюдения за процессом обучения. Некоторые программы моделирования нейронных сетей предлагают пользователю значения коэффициента обучения по умолчанию (они обусловлены опытом разработчиков программного обеспечения), и пользователь по желанию это значение либо принимает, либо изменяет. Некоторые алгоритмы обучения нейронных сетей (например, Quickpropagation) содержат в себе механизм автоматической оптимизации значения коэффициента обучения, вследствие чего начальный выбор значения этого коэффициента пользователем имеет характер только «предварительной примерки». Заслуживающая внимания стратегия изменений коэффициента обучения в процессе обучения сети представлена на рисунке. Сети допускает много грубых озибок – она не должна «расзатыватися» слизком болизими изменениями весов Зрелый интенсивный проеесс обужения сети е уж т и ж ит й е С е р ны – д и со т ел ний о и а ж зна оди м н з е м бх ти ъ о об о не ра ни ег сох Колижество эпох проеесса обужения k 28 Рышард Тадеусевич, Мачей Шаленец Выборка обучающая Множество обучающих эпизодов, т.е. задач, содержащих входные данные и связанные с ними эталонные отклики. Одна часть обучающей выборки используется для обучения чети с применением алгоритма обучения, тогда как другая часть (как правило, около 20%) выделяется случайным образом в качестве оценочной выборки, используемой в процессе обучения только косвенно. Если обучающая выборка очень многочисленна, то иногда можно выделить из нее (случайным образом!) дополнительную тестовую выборку (около 10% случайно выбранных обучающих эпизодов). На рисунке приведен пример обучающей выборки, используемой при обучении сети распознаванию человеческих лиц. Конечно, каждая фотография связана с информацией о корректной идентификации лица на портрете, которая применяется при обучении для оценивания распознаваний, выдаваемых сетью. Нейронные сети. Толковый словарь 29 Выборка оценочная SSE Часть обучающей выборки (как правило, выбранные случайным образом около 20% обучающих эпизодов), предназначенная для проводимого в процессе обучения периодического оценивания, нацеленного на предотвращение явления переобучения. Контролируя в ходе обучения сети изменения ошибки SSE, можно заметить две тенденции: систематическое уменьшение ошибки для обучающей выборки (так как алгоритм обучения направлен на минимизацию этой ошибки) и вначале снижение ошибки для оценочной выборки (поскольку сеть сохраняет способность обобщения), а затем увеличение этой ошибки (что связано с явлением переобучения). Момент начала возрастания ошибки для оценочной выборки является сигналом для завершения обучения сети и получения наилучших значений ее весов из эпохи, предшествовавшей началу увеличения этой ошибки. Обучение Оценивание Эпоха Рышард Тадеусевич, Мачей Шаленец 30 Выборка тестовая Часть обучающей выборки, предназначенная для проведения (после завершения обучения) однократного контроля, т.е. проверки – не утратила ли сеть в процессе обучения способности к обобщению в силу каких-либо случайных обстоятельств. Тестовое множество формируется только при наличии очень большой обучающей выборки; в него включается около 10% обучающих эпизодов. Очень интересный пример применения тестовой выборки показан на рисунке, заимствованном (с небольшими изменениями) из докторской диссертации проф. П. Чеха из Шленского политехнического университета (Польша). В упомянутой докторской диссертации выявлялись повреждения зубчатых передач. Обучение и оценивание сети проводились на основании данных, полученных из компьютерного моделирования рассматриваемой передачи, тогда как для тестирования сети применялись данные о реальной передаче, в которую целенаправленно вносились повреждения и проводилась проверка – обнаружит ли их сеть? На наш взгляд, это эталонный пример тестовой выборки. Обучение Оценивание Тестирование И в завершение еще одно примечание: ошибка, определенная при использовании тестовой выборки, должна быть близка к ошибке, рассчитанной для оценочной выборки. Если ошибка, полученная для тестовой выборки, существенно больше ошибки для оценочной выборки, то обучение сети следует повторить с новой декомпозицией случайным образом обучающей выборки и формированием новой оценочной выборки и тестовой выборки. Нейронные сети. Толковый словарь 31 Выход Сокращенное название пути вывода выходных данных из конкретных нейронов или из всей нейронной сети. Иногда на жаргоне так называются сами выходные данные, хотя это следует признать некорректным. Каждый нейрон обладает своим выходом, на котором вырабатывается выходной сигнал, определяемый применяемым методом агрегирования входных данных и применяемой функцией активации. Однако понятие «выход нейрона» достаточно подробно обсуждалось в контексте раздела «нейрон», и мы не видим смысла обсуждать его отдельно. В то же время нетривиальные проблемы возникают при обсуждении выхода всей сети. В принципе таким выходом считается комплекс значений, появляющихся на выходах нейронов, составляющих выходной слой сети. Однако бывают ситуации, в которых от этого принципа следует отойти. Предположим, что мы обучаем нейронную сеть с двумя выходами А и В (см. левую часть рисунка). В нейронах обоих скрытых слоев должна накапливаться информация, необходимая для определения значений А и В. Иногда может оказаться полезным возникновение синергии между выходами и, совершенствуя функционирование сети в направлении корректных значений А, по случаю накапливаются знания, пригодные для определения значения В. 32 Рышард Тадеусевич, Мачей Шаленец Но чаще возникает ситуация, когда между выходами существует конфликт и при определении значений, пригодных для А, мы ухудшаем значения, подходящие для В – и vice versa. В таком случае лучше сконструировать две раздельные сети (см. правую часть рисунка). Каждую из них можно будет оптимально достроить для расчета требуемого выхода – соответственно А или В. Нейронные сети. Толковый словарь 33 GRNN (нейронная сеть обобщенной регрессии) С особенностями структуры этой сети можно ознакомиться в разделе «Сеть обобщенной регрессии». В сети GRNN реализованы свойства нейронов RBF (с характеристикой в форме гауссовской функции) и нейронов MLP (с сигмоидальной характеристикой), что позволяет моделировать исключительно сложные нелинейные зависимости. Рисунок иллюстрирует, как в сети GRNN создается такая сложная нелинейная зависимость. Рышард Тадеусевич, Мачей Шаленец 34 Данные входные Это информация в форме сигналов, подаваемых на входы нейронов входного слоя сети. Считается, что входные данные содержат всю информацию, необходимую для решения сетью поставленной перед ней задачи. Входные данные должны быть соответствующим образом подготовлены для того, чтобы корректно использоваться нейронной сетью. Здесь подаются входные данные Нейронные сети. Толковый словарь 35 Данные выходные Выходными данными называют информацию в форме сигналов, появляющихся на выходах нейронов выходного слоя сети. Эта информация содержит решение рассматриваемой задачи. Чаще всего, чтобы использовать выходные данные как решение задачи, необходимо их соответствующим образом интерпретировать, поскольку значения, появляющиеся на выходах нейронов выходного слоя, далеко не всегда понятны сами по себе. Как правило, способ интерпретации выходных данных определяется в обучающей выборке. Содержащиеся в этом множестве эталонные отклики показывают, как следует понимать конкретные выходные данные в контексте задач, которые сеть должна решать после обучения. Отсюда снимаются выходные данные Рышард Тадеусевич, Мачей Шаленец 36 Декомпозиция обучающих данных на подмножества Для обучения нейронной сети с учителем необходимо декомпозировать данные, как минимум, на две части: обучающая выборка и оценочная выборка. Очень часто из множества входных данных также выделяется третье подмножество – тестовая выборка, предназначенная для окончательного оценивания качества сети (ее способности к обобщению). Главная проблема, связанная с выделением подмножеств, заключается в необходимости иметь в каждом подмножестве обучающие эпизоды, репрезентативные для всего множества. Если из обучающего множества будут выбраны только уникальные комбинации, модель не будет в состоянии корректно распознавать их свойства. С другой стороны, если будут выбраны только стандартные комбинации, очень близкие или практически идентичные аналоги которых есть в обучающем множестве, вся процедура оценивания качества сети будет неэффективна, поскольку даже переобученная модель будет очень хорошо предсказывать результаты в процессе оценивания и тестирования. Можно выделить два способа декомпозиции обучающей выборки на подмножества: случайный (например, в соотношении 2:1:1) – корректный в случае очень обширного множества данных; кластерный – базируется на подобии структур данных. Случайное множество Данные Соотношение 2:1:1 Обучение Оценивание Тестирование Случайное кластерное множество Данные Сгруппированные данные Объединение в кластеры Обучение Оценивание 2:1:1 Тестирование Нейронные сети. Толковый словарь 37 Необходимо эмпирически подобрать количество кластеров, которое позволит пропорционально выбирать из каждого кластера представителей для каждого подмножества. В случае, когда вне зависимости от количества кластеров мы видим одиночные уникальные комбинации (т.е. кластеры, состоящие из одного элемента), необходимо включить их в обучающую выборку. Выбор представителей необходимо проводить случайным образом либо руководствуясь расстоянием от них до центра кластера. Рышард Тадеусевич, Мачей Шаленец 38 Изменения коэффициента обучения Коэффиеиент обужения h Коэффициент обучения можно изменять в процессе обучения нейронной сети, что чаще всего повышает качество получаемых результатов. Оптимальными представляются немонотонные изменения значений коэффициента обучения, показанные и обоснованные на приведенном ниже рисунке. Сети допускает много грубых озибок – она не должна «расзатыватися» слизком болизими изменениями весов Зрелый интенсивный проеесс обужения сети е уж т и ит Се е рж ны й – д и со т ел ний о и на и м ж а зн е м з бход и т ъ о об о не ра ни ег сох Колижество эпох проеесса обужения k Нейронные сети. Толковый словарь 39 Изменения ошибки Изменения ошибки, наблюдаемые в процессе обучения, чаще всего характеризуются тем, что вначале они происходят очень динамично (ошибка уменьшается очень быстро, а величина ее уменьшения поначалу очень велика), а затем уменьшается гораздо медленнее, причем на небольшую величину. Может показаться, что важнейшим является начальный период обучения нейронной сети (когда ошибка уменьшается быстро), тогда как совершенствование функционирования сети в период медленного уменьшения и так уже небольших ошибок имеет относительно небольшое значение. Ошибка SSE Крестиками обозначены элементы обучающей выборки До обучения SSE=11,9115 Непрерывная линия представляет результат функционирования сети Эпоха=4000; SSE=0,0578546 Эпоха=1000; SSE=3,37368 Количество эпох обучения Однако такая оценка неверна. Рисунок демонстрирует, что начальный быстрый период уменьшения ошибки связан по сути с тем, что нейронная сеть вначале только приспосабливает свое функционирование к свойствам решаемой задачи. В то же время относительно небольшое уменьшение ошибки в «медленный» период обучения ведет к существенной адаптации функционирования сети к эталонам, содержащимся в обучающей выборке. Рышард Тадеусевич, Мачей Шаленец 40 Инициализация весов Без нулей! Количество весов, которым присвоены именно такие значения Прежде чем нейронная сеть начнет обучаться с применением определенного алгоритма обучения, подлежащие обучению параметры сети (чаще всего веса) должны получить конкретные начальные значения, которые и должны корректироваться в процессе обучения. Это присвоение начальных значений называется инициализацией весов. Она заключается в том, что весам присваиваются случайные значения – как правило, небольшие по абсолютной величине, чтобы их изменение в процессе обучения не приводило к осложнениям. На рисунке приведена гистограмма весов после инициализации с применением алгоритма, известного как рандомизация Нгуена–Видроу (Nguyen–Widrow Randomization). Начальные значения, присвоенные весам сети Напоминание: гистограмма – это график, показывающий частоту использования в сети весов с различными значениями. Видно, что начальные значения большинства весов близки к нулю, хотя также встречаются очень большие положительные и отрицательные значения. Нулевое значение, как правило, исключается, поскольку соединение с нулевым весом функционирует как отсутствие соединения. Сеть, в которой на начальный момент времени были бы заданы нулевые значения весов, окажется лишенной некоторых своих соединений. Нейронные сети. Толковый словарь 41 Интерпретация качественных выходных данных нейронной сети Если в результате функционирования сети формируются выходные данные в численной форме, то именно они становятся решением рассматриваемой задачи и после возможного масштабирования не требуют никаких дополнительных преобразований. Если же сеть должна сгенерировать данные качественного характера (например, сформулировать решение или выбрать одну из возможностей), то применяется кодирование один-из-N, описанное в разделе «Подготовка качественных входных данных для нейронной сети». Если предположить, что сеть должна выработать решение в форме указания одной из N возможностей, строится сеть с N выходными нейронами. Каждой возможности соответствует один нейрон выходного слоя. Выходные нейроны генерируют сигналы, (чаще всего) соответствующие сигмоидальной функции активации, т.е. принимающие значения от 0 до 1. Для принятия решения о том, что выходные данные соответствуют i-й возможности, должны выполняться следующие условия: значение выхода i-го нейрона превышает уровень принятия решения; значения выходов остальных нейронов ниже уровня отклонения. Для каждого нейрона с номером i Голос за принятие возможности i Порог принятия Порог отклонения Голос за отклонение возможности i Что делать, если приведенные выше условия не выполняются, должен решать пользователь с учетом характера рассматриваемой задачи. Иногда можно согласиться с выбором i-го решения даже в случае, когда значение на выходе i-го нейрона не превышает порог принятия решения, однако это может привести к ошибочной классификации входных данных. Рышард Тадеусевич, Мачей Шаленец 42 Исключение излишних соединений Принцип «Каждый с каждым», повсеместно применяемый для создания многослойных нейронных сетей, приводит к тому, что перед началом процесса обучения многие соединения оказываются ненужными. Изначально неизвестно, какие соединения будут излишними, но их можно исключить после обучения сети, поскольку излишними можно считать все те соединения, веса которых после успешного завершения обучения остались нулевыми либо близкими к нулю. Исключение излишних соединений часто связано с исключением из нейронной сети ненужных нейронов – таких, выходы которых в результате исключения соединений перестали использоваться другими нейронами сети. После удаления части соединений нейронная сеть подвергается дообучению, в результате которого возможно исключение следующих излишних соединений. Исключение излишних соединений часто именуется английским термином pruning, в оригинале обозначающим применяемую в садоводстве операцию обрезки (деревьев, кустарников, лиан). Типичный pruning нейронной сети представлен на рисунке. Авторы прекрасно знают о нечитабельности надписей на схемах последовательных версий сети. Однако эти надписи не имеют сейчас никакого значения, поскольку важен только процесс упрощения структуры нейронной сети, который нагляден и легко интерпретируется. Надписи на схемах оставлены для подтверждения того, что схемы заимствованы из настоящего исследования реальной нейронной сети, а не были нарисованы исходя из воображения одного из авторов. Необрезанная сеть Среднее значение целевой функции 8.360е-01 Исключение 80% излишних соединений! Целевая функция 2.009е-01 (итерация 445) Целевая функция 2.049е-01 (итерация 449) Целевая функция 2.212е-01 (итерация 294) Целевая функция 2.067е-01 (итерация 436) Нейронные сети. Толковый словарь 43 Каждый с каждым Принцип соединения элементов сети «каждый с каждым» обусловлен фактом, что создатель сети изначально не знает, какие именно соединения окажутся полезными. Поэтому, как правило, при межслойных соединениях предполагается, что каждый нейрон предшествующего слоя соединяется с каждым нейроном последующего слоя. Для предотвращения недоразумений поясним, что слой считается предшествующим, если он расположен ближе к входу сети. В процессе обучения сети веса некоторых соединений получают нулевые значения. Это означает, что соответствующие им соединения считаются, по сути, неактивными. В результате происходит редукция соединений. Таким образом, сеть после обучения может содержать намного меньше соединений и не использовать многие нейроны, которые без какого-либо вреда можно исключить из ее структуры. 44 Рышард Тадеусевич, Мачей Шаленец Количество скрытых слоев В структуре нейронной сети может быть разное количество скрытых слоев. Решение о том, сколько скрытых слоев должно применяться, принимает конструктор сети, и это решение, как правило, имеет интуитивный характер. Тем более, надо понимать последствия принятия этого решения. На рисунке представлены условные формы областей решений, которые могут формироваться сетями с разным количеством скрытых слоев. Видно, что сети без скрытого слоя могут декомпозировать пространство входных сигналов на две части, разграниченные прямой линией (в многомерном случае, если сеть имеет много входов, — гиперплоскостью). Сеть, имеющая один скрытый слой, может выделить в пространстве входных сигналов произвольную однородную область с выпуклым контуром, называемую симплексом. И только сеть, имеющая два скрытых слоя, позволяет строить области решения, ограниченные невыпуклыми краевыми поверхностями, а также неоднородные области. Применение большего количества скрытых слоев не позволяет увеличить разнообразие областей решения, поэтому его следует признать нецелесообразным. Нейронные сети. Толковый словарь 45 Корректировка ошибки Обучающая выборка Доставка входных данных для выработки откликов Y1 и Y2 Изменение значений параметров нейронной сети (чаще всего весов), имеющее целью уменьшение ошибки, допускаемой нейронной сетью. Поскольку ошибка определяется на одном шаге обучения, ее корректировка не должна быть слишком радикальной, чтобы не попасть в ситуацию, в которой изменение параметров, обусловленное единственной комбинацией входных данных из обучающего множества, сможет исказить значения параметров, установленные ранее по другим комбинациям входных данных. На практике величина корректировки ошибки предопределяется коэффициентом обучения. Типовой процесс корректировки ошибки показан на рисунке. Модификация весов для уменьшения ошибки Ошибка! Ошибка! Доставка эталонных выходных значений для расчета ошибки Рышард Тадеусевич, Мачей Шаленец 46 Коэффициент обучения Коэффициент обучения (learning rate) – это параметр, связывающий локальные свойства функции ошибки нейронной сети (определяемые, например, с помощью алгоритма обратного распространения ошибки), отражающиеся (в процессе дифференцирования) на бесконечно малых изменениях весов, с функционированием, основанным на макроскопических (т.е. не бесконечно малых) изменениях весов на каждом шаге процесса обучения. Алгоритм обучения указывает, в каком направлении необходимо изменять веса, чтобы допускаемая сетью ошибка уменьшалась. В то же время выбор коэффициента обучения указывает, на какую величину должны изменяться веса в этом направлении. Если будет выбран слишком малый коэффициент обучения, то процесс обучения может длиться очень долго, потому что продвижение к финальному (оптимальному) комплексу значений всех весов будет слишком медленным. Если же мы применим слишком большой коэффициент обучения, то шаги станут слишком большими, и из-за немонотонной характеристики функции ошибки мы можем «перескочить» через нужную дорогу к точке, обеспечивающей минимум функции ошибки. В результате ошибка после коррекции весов может увеличиться, а не уменьшиться по сравнению с допущенной на предыдущем шаге (см. рисунок). Ошибка Старт Старт Малый коэффициент обучения Глобальный минимум Большой коэффициент обучения Веса В предельном случае слишком большое значение коэффициента обучения может вызвать нестабильность процесса обучения, поскольку значения весов вместо стабилизации могут изменяться до бесконечности. Полезной метафорой, разъясняющей интуитивное понимание значения коэффициента обучения, является сопоставление его со строгостью учителя. Нейронные сети. Толковый словарь 47 Минимум глобальный Эффект обучения нейронной сети оказывается позитивным только тогда, когда в результате этого обучения все веса получают значения, гарантирующие получение наименьшего значения ошибки всей нейронной сети. На графике функции ошибки это соответствует нахождению глобального минимума. На рисунке показана инверсия функции ошибки, поскольку максимум нарисовать проще, чем минимум, однако при обучении нейронных сетей мы стремимся, конечно, к нахождению минимума. Глобальный экстремум, хорошая адаптация сети Локальный экстремум, очень плохая адаптация сети 48 Рышард Тадеусевич, Мачей Шаленец Минимум локальный Процесс обучения нейронной сети является, в сущности, процессом минимизации функции ошибки. В ходе каждой минимизации существует опасность, что в результате вычислений будет найден локальный, а не глобальный минимум. На рисунке показано, чем угрожает эта ситуация: нейронная сеть, которая попала в «ловушку» локального минимума, плохо аппроксимирует входные данные (обозначенные на рисунке черными прямоугольниками). Здесь расположен глобальный минимум Так функционирует сеть, которая нашла локальный минимум Ошибка Так функционирует сеть, которая нашла глобальный минимум Здесь расположен локальный минимум Нейронные сети. Толковый словарь 49 Момент Компонент алгоритма обучения, позволяющий в процессе обучения изменять значения весов не сразу после изменения градиента ошибки, а с некоторым запаздыванием. Благодаря этому направление изменения весов сохраняется дольше (обучение оказывается более целенаправленным), а процесс обучения становится менее чувствительным к ловушке локальных минимумов. Обучение без момента Локальный минимум Обучение с моментом Глобальный минимум Рышард Тадеусевич, Мачей Шаленец 50 MLP См. раздел «Многослойный персептрон» Нейронные сети. Толковый словарь 51 Нейрон Основной элемент структуры нейронной сети. Этот элемент, обрабатывающий информацию, в определенной, но очень упрощенной степени имитирует функционирование биологической нервной клетки. Вообще-то говоря, вследствие этих упрощений рассматриваемые элементы, в принципе, не должны называться «нейронами», поскольку их свойства очень далеки от свойств реальных нервных клеток и их точных моделей (например, доступных в программе GENESIS). Однако название «нейрон» прижилось и применяется повсеместно. В структуре нейрона есть несколько входов и один выход. Важный компонент нейрона – комплект весов, свойства которых, определяющие поведение нейрона, как правило, задаются в процессе обучения. Агрегирование входных данных Расчет значений функции активации Как правило, в нейроне реализуются две операции: агрегирование входных данных (с учетом весов) и выработка выходного сигнала (выходных данных). С учетом способа агрегирования и формы функции активации выделяются различные типы нейронов. Чаще всего применяются линейные нейроны, сигмоидальные нейроны и радиальные нейроны. Вариантом сигмоидальных нейронов являются тангенсоидальные нейроны. Рышард Тадеусевич, Мачей Шаленец 52 Нейрон Кохонена В нейронных сетях Кохонена применяются нейроны, структурой и функциями очень похожие на радиальные нейроны, но отличающиеся одной особенностью, которая может иметь серьезное значение. Эти нейроны производят агрегирование входных сигналов в соответствии со схемой радиального агрегирования, но в качестве функции активации применяется характеристика, обратная сигналу суммарного возбуждения. По этой причине нейроны Кохонена реагируют очень сильным выходным сигналом при малом расстоянии между векторами входных данных и весов. При увеличении расстояния между этими векторами выходной сигнал нейрона быстро ослабевает и сохраняет небольшое значение для всех входных векторов за исключением тех, которые расположены близко к вектору весов. При практической реализации нейронов Кохонена необходимо ввести в функцию активации дополнительную защиту на случай перекрытия входного вектора с вектором весов. В связи с этим в знаменатель выражения, определяющего функцию активации, должна быть добавлена малая константа (например, 10–8), которая в нормальных условиях не имеет значения, поскольку она значительно меньше от находящегося в этом же знаменателе расстояния между входным вектором и вектором весов (рассчитанного путем радиального агрегирования). Однако эта константа предупреждает фатальные последствия деления на ноль в случае перекрытия входного вектора и вектора весов. Структура нейрона Кохонена изображена на рисунке. Нейронные сети. Толковый словарь 53 Нейрон линейный Это простейшая, но очень часто применяемая модель нейрона. Она предполагает линейное агрегирование входных данных и аналогичную (линейную) функцию активации. Линейное агрегирование Тождественная функция активации Сети, построенные из линейных нейронов, очень хорошо обучаются, однако возможности этих моделей ограничены, и не каждую задачу можно решить с их помощью. 54 Рышард Тадеусевич, Мачей Шаленец Нейрон осциллирующий (импульсный) Импульсные нейроны считаются более сложной версией «классических» нейронов. Как правило, их функционирование описывается системой простых дифференциальных уравнений, которые образуют математическую модель релаксационного осциллятора. Это означает, что выход такого нейрона генерирует периодический сигнал, который при соответствующем суммарном возбуждении близок к осцилляциям, характерным для нервной ткани человеческого мозга. Поэтому различные виды импульсных нейронов применяются для конструирования сетей, моделирующих (естественно, очень приближенным способом) поведение мозговой коры человека. В частности, такие сети применяются для анализа изображений, особенно для сегментации образов. Возбуждение осциллирующего нейрона, наряду с входным сигналом, учитывает сумму взвешенных выходов соседних нейронов. Благодаря этим локальным связям нейроны имеют возможность взаимной синхронизации, что является их особенностью. В сети, сконструированной из таких нейронов, группы одновременно возбуждаемых (синхронизированных, т.е. осциллирующих в одни и те же моменты времени) нейронов могут кодировать, например, однородные области анализируемого изображения. Нейронные сети. Толковый словарь 55 Нейрон радиальный Радиальные нейроны применяются в радиальных сетях RBF и в сетях обобщенной регрессии, обозначаемых как GRNN. Структура радиального нейрона предполагает применение радиального агрегирования входных данных и гауссовской функции в качестве функции активации. 56 Рышард Тадеусевич, Мачей Шаленец Нейрон сигмоидальный Это наиболее популярный нелинейный нейрон, применяемый при конструировании сетей MLP. В сигмоидальном нейроне применяется линейное агрегирование входных данных (часто с учетом компонента BIAS) и сигмоидальная функция активации. Следует отметить, что схема функционирования сигмоидального нейрона наиболее близка к функционированию реальной биологической нервной клетки. Еще раз подчеркнем, что в структурах и особенно в скрытых слоях подавляющего большинства успешно функционирующих нейронных сетей, практически используемых в различных сферах деятельности, применяются элементы в виде сигмоидальных нейронов. Нейронные сети. Толковый словарь 57 Нейрон тангенсоидальный Особенностью сигмоидального нейрона, наиболее популярного и чаще всего применяемого, является то, что его выходной сигнал может принимать только положительные значения. Такая функция активации часто называется униполярной. Биологические нервные клетки, которые моделируют все нейроны, применяемые для конструирования нейронных сетей, могут оперировать исключительно положительными сигналами, поэтому выбор сигмоидальной функции активации является выбором, направленным на обеспечение биологической достоверности сети. Однако в искусственной нейронной сети возможно использование как униполярных (исключительно положительных), так и биполярных (как положительных, так и отрицательных) сигналов. По этой причине в нейронных сетях начали применяться нейроны, функция активации которых описывается формулой гиперболического тангенса. Как показано на рисунке, эта функция имеет такую же форму, как и сигмоида, однако ее значения растянуты от –1 до +1, тогда как значения сигмоиды лежат в диапазоне от 0 до +1. Сигмоида Функция гиперболического тангенса К сожалению, не оправдались ожидания, что использование биполярной функции гиперболического тангенса в качестве функции активации вместо сигмоиды значительно улучшит функционирование нейронных сетей. Поэтому тангенсоидальные нейроны применяются реже, чем сигмоидальные нейроны. Рышард Тадеусевич, Мачей Шаленец 58 Области решений При обсуждении свойств нейронных сетей весьма полезным оказывается представление в системе координат, заданных входными данными, областей, в которых выходной сигнал сети принимает противоположные значения, например +1 и –1. Эти области, называемые областями решений, точно описывают поведение только такой сети, которая имеет два входа и один выход. Однако концепция областей решений также приносит пользу при качественном оценивании поведения нейронных сетей со значительно более сложной структурой. На рисунке показаны примеры областей решений простой сети с двумя входами и одним выходом. Области, которые вызывают появление на выходе сети сигнала +1, закрашены красным цветом, а области, которые вызывают появление на выходе сети сигнала –1, закрашены синим цветом. Нейронные сети. Толковый словарь 59 Обобщение Процесс обучения всегда основан на обучающей выборке, которая содержит обучающие эпизоды, т.е. варианты задач вместе с известными корректными решениями (эталонными откликами). Однако смысл обучения нейронной сети заключается в том, что она должна (после обучения) решать задачи, подобные тем, на которых обучалась, но не идентичные им. Такой перенос полученных знаний на новые ситуации называется обобщением. Угрозой для обобщения является переобучение. Если сеть оказалась переученной, она начинает избыточно адаптироваться к второстепенным (несущественным) подробностям конкретных обучающих эпизодов, не оказывающих важное влияние с точки зрения цели решаемой задачи. Эта ситуация демонстрируется на рисунке, представляющем пример функционирования простой сети, задача которой заключается в отображении функции одной переменной на основании множества точек, составляющих обучающую выборку. Обучающие эпизоды Проверочные эпизоды Сеть, сохранившая хорошую способность к обобщению Обучающие эпизоды Проверочные эпизоды Сеть, которая утратила способность к обобщению Для контроля, не утратила ли сеть способность к обобщению, применяется оценочная выборка. 60 Рышард Тадеусевич, Мачей Шаленец Обратное распространение ошибки Принцип определения значений ошибок для нейронов, лежащих в скрытых слоях, реализуется алгоритмом обучения нейронной сети. Обратное распространение ошибок используется алгоритмом backpropagation – исторически первым и по сегодняшний день одним из наиболее популярных алгоритмов обучения с учителем. Этот алгоритм применяется для обучения однонаправленных нейронных сетей различных типов. Он основан на концепции корректировки значений весов на каждом шаге процесса обучения по результатам оценивания ошибки, допущенной каждым нейроном при обучении сети. Необходимость применения обратного распространения ошибки обусловлена тем, что только ошибки в нейронах выходного слоя выявляются непосредственно на основе выходных данных и эталонных откликов, содержащихся в обучающей выборке. В то же время для нейронов скрытых слоев ошибка должна определяться путем обратного распространения. При таком обратном распространении конкретный нейрон получает (ему приписывается) значение ошибки, рассчитанное на основе значений ошибок всех тех нейронов, которым он высылал значение своего сигнала как компонента их входных данных. При расчете значения отправляемой в обратном направлении ошибки учитываются значения весов соединений между рассматриваемым нейроном и нейронами, ошибки которых отправлены ему в обратном направлении (в обратном, потому что оно противоположно направлению распространения сигнала в однонаправленной нейронной сети). После расчета значений ошибок нейронов скрытого слоя, расположенного ближе всего к выходу, процедура повторяется, причем рассчитанные значения ошибок принимаются в качестве известных, и таким же образом производится их обратное распространение в следующий скрытый слой, расположенный ближе к входу. Нейронные сети. Толковый словарь 61 Точно рассчитанные ошибки Ошибка, рассчитанная по методу обратного распространения Один из нейронов скрытого слоя Нейроны выходного слоя Рышард Тадеусевич, Мачей Шаленец 62 Обучающий эпизод Это эталон корректного решения задачи, которому должна научиться нейронная сеть. Типовая комбинация обучающих данных состоит из примера входных данных и эталонного отклика, содержащего комплект корректных выходных данных для тех входных данных, которые входят в первый компонент этого обучающего эпизода. Эталонный отклик Пример входных данных Ева На рисунке показана комбинация обучающих данных для гипотетической нейронной сети, которая после предъявления изображения распознаваемого человека должна сообщать его имя. Нейронные сети. Толковый словарь 63 Обучение Обучение – это процесс, основанный на демонстрации обучающих эпизодов (примеров правильно решенных задач), входящих в обучающую выборку. В ходе такой демонстрации сеть постепенно приобретает умение решать эти задачи. Адаптация сети основана на сравнении фактических откликов сети с эталонными откликами. Проводимая корректировка ошибки приводит к тому, что сеть после каждой демонстрации повышает шанс выработать отклик, более близкий к эталонному отклику. Еще одна цель обучения – сеть должна обобщить полученные знания для корректного решения аналогичных задач, не предъявлявшихся в процессе обучения (обобщение). Корректировка ошибки Ева Ян На рисунке показана схема обучения гипотетической нейронной сети, которая после демонстрации фотографии распознаваемого человека должна назвать его имя. Формально, обучение можно определить как итерационный процесс оценивания оптимальности значений параметров сети (чаще всего весов) на основании обучающей выборки. Метод изменения весов в процессе обучения определяется применяемым алгоритмом обучения. Рышард Тадеусевич, Мачей Шаленец 64 Отклик Термин, применяемый как синоним выходных данных. Может рассматриваться отклик одиночного нейрона либо отклик всей сети, отождествляемый с комплексом выходных данных для всех нейронов, входящих в состав выходного слоя сети. Отклик сети часто требует дополнительную интерпретацию – например, в нейронных классификационных сетях распознавание ведется на основании того, какой нейрон выходного слоя представляет наибольшее значение сигнала. Нейронные сети. Толковый словарь 65 Отклик эталонный Второй компонент любого обучающего эпизода, входящего в обучающую выборку. Фактически, это эталон корректных выходных данных (корректного отклика сети) для примера входных данных, представляющих собой первый компонент соответствующего обучающего эпизода. Эталонный отклик применяется для определения ошибки при использовании алгоритма обучения сети. На рисунке иллюстрируется использование эталонного отклика при обучении сети. Эталонное решение задачи Оценивание ошибки Постановка задачи Регулирование параметров сети Регулирование параметров сети Решение задачи обученной сетью Рышард Тадеусевич, Мачей Шаленец 66 Оценивание методом bootstrap Принцип функционирования, подобный n-кратному оцениванию, причем подмножества формируются путем случайного выбора с возвратом. Поэтому подмножества, применяемые для оценивания, могут содержать повторяющиеся элементы. Достоинством этого метода считается возможность формирования произвольных пропорций между мощностями обучающей и тестовой выборки (в случае n-кратного оценивания эта пропорция зависит от числа n). Некоторая ограниченность метода обусловлена фактом, что в перекрестном оценивании могут участвовать не все элементы входного множества (вследствие случайного выбора нет гарантии, что каждый элемент наверняка окажется в одном из оценочных подмножеств). (трехкратное оценивание) (метод bootstrap) На рисунке приведен пример декомпозиции множества обучающих эпизодов на три оценочные подмножества: раздельные для метода трехкратного оценивания и перекрывающиеся для метода bootstrap. Во втором случае (предусмотрено создание трех оценочных подмножеств) они содержат общие элементы. Для обоих методов в обучающее подмножество входят все остальные элементы множества входных данных. Нейронные сети. Толковый словарь 67 Оценивание методом leave-one-out Этот метод оценивания применяется при небольшой мощности обучающей выборки. В этом случае множество декомпозируется на одноэлементные подмножества. Каждый элемент используется для тестирования сети, при этом ее обучение производится с применением всех остальных элементов. Количество повторений такого действия равно количеству элементов во множестве входных данных. По сути, оценивание методом leave-one-out является n-кратным оцениванием, где n равно количеству обучающих эпизодов. Ошибка сети определяется как сумма случаев ее ошибочного функционирования (ошибочной классификации или прогнозирования), полученных для одиночных входных данных. Рышард Тадеусевич, Мачей Шаленец 68 Оценивание n-кратное При этом способе оценивания обучающая выборка декомпозируется на n непересекающихся подмножеств (как правило, с одинаковым количеством элементов). Одно из них применяется для тестирования сети, а остальные – для ее обучения. Эта операция повторяется n раз так, чтобы каждое подмножество исполнило роль оценочной выборки. Эффективность сети определяется обычно как среднее арифметическое ошибок классификации либо прогнозирования, полученных для конкретных оценочных подмножеств. Общее количество эпизодов Эксперимент 1 Эксперимент 2 Эксперимент 3 Тестовая выборка Эксперимент 4 k-кратное перекрестное оценивание (для k = 4) Нейронные сети. Толковый словарь 69 Оценивание перекрестное Для оценивания способности нейронной сети к обобщению можно применять метод, называемый перекрестным оцениванием. Он заключается в декомпозиции множества входных данных сети на ряд подмножеств, одно из которых выбирается в качестве оценочной выборки, а остальные используются для обучения сети (т.е. составляют обучающую выборку). Этот метод применяется, в частности, при ограниченном объеме входных данных. Противоположный подход – так называемое прямое оценивание, при котором случайным образом формируются только две выборки – обучающая и оценочная. Известны несколько вариантов метода перекрестного оценивания. Наиболее популярными считаются n-кратное оценивание, оценивание методом leave-one-out и оценивание методом bootstrap. В обучающую выборку В обучающую выборку В обучающую выборку В обучающую выборку В обучающую выборку В оценочную выборку Рышард Тадеусевич, Мачей Шаленец 70 Ошибка Обучающая выборка Подача входных данных i-го обучающего эпизода Для нейронов выходного слоя это мера расхождения между значениями на выходах этих нейронов и эталонными значениями, содержащимися в обучающей выборке. Для нейронов скрытого слоя ошибка должна рассчитываться по методу обратного распространения. Ошибка – очень важное понятие для процесса обучения сети, поскольку веса конкретных нейронов сети модифицируются так, чтобы минимизировать допускаемые сетью ошибки. Модифицировать веса так, чтобы уменьшить ошибки! Е1 Ошибка! Ошибка! Подача эталонного отклика для i-го обучающего эпизода D1 D2 для определения ошибок в откликах сети Y1 и Y2 Соответственно, процесс обучения нейронной сети можно трактовать как процесс минимизации функции ошибки. Нейронные сети. Толковый словарь 71 Переобучение Значение на выходе сети Слишком длительное обучение нейронной сети приводит к тому, что ее функционирование становится избыточно зависимым от свойств обучающих эпизодов, использовавшихся для обучения, в том числе и от второстепенных свойств, которые не должны влиять на способность к обобщению. Значение на входе сети На рисунке представлен пример функционирования переобученной сети. Функционирование сети (представленное на графике непрерывной линией) оказалось чрезмерно адаптировано к конкретным обучающим эпизодам (кружки на графике). Такая сеть будет характеризоваться очень плохим обобщением. Рышард Тадеусевич, Мачей Шаленец 72 Персептрон Термин часто ассоциируется с однонаправленными нейронными сетями, обучаемыми по методу обучения с учителем, которые предназначены для распознавания и классификации различных объектов (чаще всего образов). Это название было впервые использовано для определения аппаратной электромеханической нейронной сети, которую сконструировал и исследовал в 1960-м году Фрэнк Розенблатт в Корнуэльском университете. Внешний вид этой сети представлен фотографией, заимствованной 15 февраля 2014 г. с сайта http://www.rutherfordjournal.org/ images/TAHC_perceptron.jpg. На первом плане видны соединительные кабели, реализующие соединения между нейронами (видны на заднем плане в виде электромеханических модулей). Изменение весов в процессе обучения осуществлялось с помощью электродвигателей, которые вращали особые потенциометры. Внешний вид кабельных соединений приводит к мысли, что они имели случайный характер, однако нейронная сеть по завершении обучения корректно выполняла предъявляемые задания (распознавание символов, геометрических фигур и т.п.). Нейронные сети. Толковый словарь 73 Персептрон многослойный Очень популярный тип однонаправленной сети, также обозначаемый сокращением MLP (MultiLayer Perceptron). Сеть типа MLP имеет, как правило, следующую структуру: входной слой, один или два скрытых слоя, состоящих из сигмоидальных нейронов, а также выходной слой, состоящий из сигмоидальных нейронов или линейных нейронов. Обучение многослойного персептрона реализуется, чаще всего, с применением метода обратного распространения ошибки. На рисунке внутри квадратов, представляющих нейроны, приведены графики соответствующих функций активации, а окружностями обозначены подлежащие обучению веса. Рышард Тадеусевич, Мачей Шаленец 74 Подбор входных данных В ситуации, когда мы располагаем небольшим количеством обучающих эпизодов, рекомендуется провести отбор входных данных для уменьшения количества весов, необходимых для использования в процессе обучения. Существует несколько методов, пригодных для применения: Силовой метод (brute force). Создаются сети, использующие все возможные подмножества входных данных. Если для всех таких сетей будет использоваться один и тот же метод обучения, то выбор наилучшей комбинации входных данных может быть обусловлен наименьшим значением ошибки, полученной при использовании тестирующего множества. Исключение сильно коррелированных данных. Метод заключается в оценивании корреляции пар входных данных и исключении одной из переменных из тех пар, для которых коэффициент корреляции оказался выше заданного порога, например 0,9. Исключение данных с низкой изменчивостью. Если вариация входной переменной низкая, то ее информативность, вероятнее всего, невелика. По этой причине такую переменную можно исключить. Анализ чувствительности – обсуждается отдельно. Преобразование РСА – обсуждается отдельно. Генетический алгоритм – обсуждается отдельно. Генетическая нейронная сеть – обсуждается отдельно. Подбор входных данных Силовой метод (brute force) Исключение данных Преобразование РСА Генетические методы Анализ чувствительности Генетические нейронные сети Исключение данных с низкой изменчивостью Генетические алгоритмы Исключение сильно коррелированных данных Также см. пункт «Подбор входных данных – пример» Нейронные сети. Толковый словарь 75 Подбор входных данных – пример Представленный пример иллюстрирует подбор входных данных для конкретной задачи методом, использующим анализ чувствительности. При решении задачи прогнозирования потребности в тепловой энергии для Кракова вначале использовалась сеть с 10-ю входными переменными. Погрешность прогноза составила 7,2%. После проведения анализа чувствительности выяснилось, что три входные переменные можно исключить. Модифицированная сеть (с 7-ю входами) после обучения дала погрешность прогноза 1,8%. Процедуру повторили и исключили из сети две очередные наименее важные переменные. Однако после этого сокращения 5-входовая сеть дала погрешность прогноза уже 22,3%. Можно сделать вывод, что к сокращению входных данных необходимо подходить с особой осторожностью. Ошибка прогноза У на дал мы име ени х п не е т ер е зн ре ем а х ен чи ны х Ошибка прогноза У на дал мы име ени х п нее е д в ер ем зна ух ен чи ны х Ошибка прогноза Рышард Тадеусевич, Мачей Шаленец 76 Подготовка качественных входных данных для нейронной сети Входные данные, используемые в нейронных сетях, иногда должны быть представлены в качественной форме. В отличие от численных значений, такие данные могут принимать значения имен. Конкретное название указывает одно из возможных значений соответствующего показателя, т.е. несет значимую информацию. Но она не может непосредственно использоваться в вычислительных устройствах, поскольку не является цифровой. Тем не менее эта информация должна учитываться! Например, в задаче прогнозирования нейронной сетью рыночной стоимости жилья бόльшая часть входных данных имеет количественный характер (жилая площадь, возраст дома и т.п.), тогда как важную информацию о том, насколько комфортно жилье либо в каком районе города оно расположено, не удается выразить при помощи цифр. Такие входные данные преобразуются перед их вводом в нейронную сеть с помощью кодирования по методу «один-из-N». Кодирование заключается в том, что если рассматриваемый качественный показатель может принимать одно из N различающихся значений, то для его представления на вход сети должно использоваться N нейронов. Каждому из этих нейронов приписывается одно из допустимых значений. Например (см. рисунок), если показатель описывает происхождение товара, причем таким местом происхождения может быть Азия, Америка или Европа, то соответственно первый нейрон будет сигнализировать Азию, второй – Америку, а третий – Европу. Если мы захотим ввести в сеть, например, данные об американских товарах, то на первый нейрон надо будет подать значение 0 (товар не из Азии), на второй значение 1 (товар из Америки) и на третий 0 (товар не из Европы). При N возможных категориях всегда только на один вход подается 1, а на все остальные подается 0. Происхождение = {Азия, Америка, Европа} Азия: {1, 0, 0} Америка: {0, 1, 0} Европа: {0, 0, 1} Одна переменная – три нейрона! Нейронные сети. Толковый словарь 77 Подготовка количественных входных данных для нейронной сети Нейронная сеть представляет собой систему с очень высокой способностью адаптировать свое функционирование к решению различных задач. Однако при решении любой из этих задач только хорошая подготовка данных, подаваемых на входной слой сети, способно гарантировать целесообразное применение этого инструментария и искомый конечный результат. В качестве примера задачи, подлежащей решению, можно привести адаптацию изменчивости входных данных к диапазону изменчивости сигналов, которые могут появляться на выходах нейронов вследствие их нелинейной характеристики, что иллюстрирует представленный ниже рисунок. На рисунке видно, что входные данные необходимо сместить (так называемый offset) и масштабировать, чтобы они хорошо соответствовали значениям, присутствующим в нейронной сети и (в случае применения типовой функции активации) принимающим значение только из интервала от 0 до +1. Значительно труднее подготовить качественные входные данные для нейронной сети. Рышард Тадеусевич, Мачей Шаленец 78 Подготовка решаемой задачи к применению нейронной сети С помощью нейронной сети можно решать различные задачи, однако перед ее применением необходимо особым образом подготовить решаемую задачу. Эта подготовка заключается в соответствующей подготовке количественных входных данных для нейронной сети, а также (при необходимости) в подготовке качественных входных данных для нейронной сети и в определении соответствующей интерпретации качественных выходных данных нейронной сети (как правило, численные выходные переменные специальной интерпретации не требуют). Входные данные сети Решаемая задача Выходные данные задачи Выходные данные сети Интерпретация данных Входные данные задачи Подготовка данных Входные данные задачи Выходные данные задачи Без обсуждаемой в этом разделе подготовки постановка задачи для ее решения сетью может оказаться чрезвычайно сложной (как для процесса обучения, так и в ходе экзамена). Еще одно затруднение может быть связано с использованием выходных данных для генерации решений поставленной задачи. Нейронные сети. Толковый словарь 79 Преобразование PCA Это преобразование предназначено для трансформации входных данных, представленных в форме многокомпонентного вектора, к форме, в которой (почти) такое же количество полезной информации удается получить с применением вектора со значительно меньшим количеством компонентов (т.е. в пространстве меньшей размерности). В соответствии с классическим РСА компоненты вектора после преобразования декодируются (их взаимные корреляции равны нулю), а сами компоненты упорядочиваются по степени важности – первый компонент имеет наибольшее значение (вносит больше всего информации), следующий – немного меньшее значение и т.д. Последние компоненты вносят очень мало информации, поэтому их можно исключить. Таким образом, проведение РСА в качестве предварительной обработки сигнала перед его подачей в нейронную сеть позволяет уменьшить размерность входного слоя сети. рса1 рса2 На рисунке представлено условное множество входных данных в оригинальной системе координат с введенной системой координат РСА. Видно, что координата рса1 описывает изменчивость рассматриваемых данных настолько хорошо, что введение координаты рса2 не является необходимым. Благодаря этому двумерную задачу можно редуцировать до одномерной. Наряду с классическим преобразованием РСА применяется также нелинейное преобразование РСА, которое достигается с использованием автоассоциативной нейронной сети. 80 Рышард Тадеусевич, Мачей Шаленец Примеры входных данных Первый компонент каждого обучающего эпизода, принадлежащего к обучающей выборке. Это комплекс входных данных, для которого существует комплекс корректных выходных данных сети (так называемый эталонный отклик). На рисунке на пример входных данных указывает стрелка, выделяющая соответствующую область столбцов в типовой таблице, в которой могут готовиться данные, составляющие обучающую выборку нейронной сети. Нейронные сети. Толковый словарь 81 Программы моделирования нейронных сетей Концепция нейронной сети как инструментария для обработки информации может быть реализована двумя способами. Можно создавать специализированные устройства, в которых нейронная сеть представлена особой электронной системой. Однако чаще всего нейронная сеть представляется компьютерной программой, позволяющей определить структуру нейронной сети, провести процесс ее обучения, а также эксплуатировать сеть как информационный инструментарий для решения конкретных задач. У меня есть программы моделирования, поэтому я функционирую как нейронная сеть Я могу выполнять любые расчеты, как будто обладаю специально построенной сетью Наиболее известными программами моделирования нейронных сетей считаются Neural Network Toolbox для MATLAB и Statistica Neural Networks для программы Statistica. Бесплатные программы для моделирования нейронных сетей (вместе с исходными кодами на языке C#) можно скачать с Интернет-страницы http:// home.agh.edu.pl/~tad//. Рышард Тадеусевич, Мачей Шаленец 82 Процесс генетической оптимизации сети Старт Параметры сети Определение длины хромосомы Генерация исходной популяции Определение степени адаптации популяции Нет Условие завершения выполнено? Да Суммарная ошибка, допускаемая сетью Наилучшая структура нейронной сети может выбираться с помощью генетического алгоритма. Сконструированная таким образом генетическая нейронная сеть зачастую обладает лучшими свойствами, чем сеть, придуманная пользователем. Однако надо помнить, что процесс генетической оптимизации сети может оказаться длительным и очень бурным, поскольку из-за влияния случайных факторов в процессе поиска хорошего варианта сети может происходить внезапное улучшение ее функционирования, после которого следует столь же внезапное ухудшение. Эта ситуация представлена на рисунке, в левой части которого показана схема часто применяемого генетического алгоритма, а в правой части демонстрируется изменчивость качества сети (выражаемая допускаемой сетью суммарной ошибкой) в зависимости от номера популяции. Стоп Здесь идет поиск соответствующей хорошей сети Здесь сети уже прекрасно справляются с задачей! Выбор родителей Генерация новой популяции Номер популяции Нейронные сети. Толковый словарь 83 Процесс обучения Сущность процесса обучения заключается в том, что учитель при реализации алгоритма обучения модифицирует веса всех нейронов сети так, чтобы минимизировать функцию ошибки. Алгоритм обучения определяет только способ улучшения комплекса весов. Он функционирует, имея на очередном шаге процесса обучения худший комплекс весов так, что производится его изменение для получения лучшего (т.е. гарантирующего меньшую ошибку) нового комплекса весов. Этот процесс требует инициализации весов (чаще всего случайной – см. раздел «Инициализация весов»). При реализации процесса обучения важно найти глобальный минимум, гарантирующий действительно наилучшую адаптацию параметров сети к решаемой задаче, при одновременном обходе ловушек, какими являются многочисленные локальные минимумы. Значение ошибки для старого вектора весов Направление скорейшего уменьшения ошибки, выбранное алгоритмом обучения Перемещение по поверхности ошибки Новый (лучший) вектор весов Старый (худший) вектор весов Миграция в пространстве весов, составляющая основу процесса обучения Динамику процесса обучения определяет коэффициент обучения и возможная инерционность обучения, связанная, как правило, с термином момент. Рышард Тадеусевич, Мачей Шаленец 84 PNN См. раздел «Сеть вероятностная нейронная» Нейронные сети. Толковый словарь 85 Редукция входного слоя Входной слой нейронной сети не должен содержать слишком много нейронов. Эта проблема обсуждается в разделе «Входной слой», а здесь приведен пример сокращения входного слоя, т.е. уменьшения количества составляющих его элементов. Рассматривается классическая задача классификации трех сортов ириса2 (Setosa – Se, Versicolour – Ve и Virginica – Vi) на основании размеров лепестков, составляющих соцветие. Описание этой задачи также представлено в разделе «Входной слой». Лингвистические переменные Скрытый слой Выход Сетоза Версиколор Редукция излишних соединений Вирджиника Лингвистические переменные Лингвистические категории s, m, l означают соответственно значения малый (small), средний (medium) и большой (large) Скрытый Выход слой Сетоза 50 эпизодов, все распознаны корректно Версиколор 47 эпизодов, все распознаны корректно Вирджиника 53 эпизода, 3 ошибки На рисунке видно, что после процесса обучения и связанной с ним редукцией соединений из 12 входных данных осталось только 6, связанных с сигналами Х3 и Х4. Такая редукция данных вполне обоснована, поскольку результат распознавания в сети после 2 Эта задача является, фактически, стандартной и используется во многих тестах. Исходные данные для ее решения и необходимое описание размещено на интернет-странице http://archive.ics.uci.edu/ml/datasets/Iris. 86 Рышард Тадеусевич, Мачей Шаленец редукции соединений оказался удовлетворительным: корректно распознаны 50 ирисов сорта Se и 47 ирисов сорта Ve. Три ириса сорта Ve ошибочно отнесены к сорту Vi, тогда как все ирисы сорта Vi тоже распознаны безошибочно. Нейронные сети. Толковый словарь 87 Редукция соединений Как правило, при проектировании нейронной сети предполагается, что нейроны соседних слоев соединяются по принципу каждый с каждым. Однако в процессе обучения оказывается, что многие из этих соединений являются ненужными. При правильно проводимом обучении такие бесполезные соединения получают нулевые значения весов. Практически это означает, что эти связи не передают сигналы (любое значение сигнала, умноженное на нулевой вес, становится нулевым). Если нейронная сеть после обучения должна интенсивно эксплуатироваться, то имеет смысл проанализировать ее структуру и удалить все «обнуленные» соединения. В ходе редукции ненужных соединений тоже можно удалить ненужные нейроны – до которых не доходит ни одни ненулевой входной сигнал, а также те, выходные сигналы которых не передаются далее по сети (вследствие обнуления весов всех соединений, идущих от выходов этих нейронов). Высокую эффективность такой операции иллюстрирует рисунок, в левой части которого показана начальная структура нейронной сети, а в правой части – то, что от нее осталось после редукции соединений. Рышард Тадеусевич, Мачей Шаленец 88 RBF См. раздел «Сеть радиальная нейронная» Нейронные сети. Толковый словарь 89 Самообучение Самообучение, иначе называемое обучением без контроля или обучением без учителя, является вариантом обучения нейронных сетей, в котором процессы модификации значений весов этой сети проводятся с применением обучающего множества, не содержащего информацию о значениях, ожидаемых на выходах сети, при подаче на ее вход конкретных обучающих эпизодов. Соответственно, процесс самообучения, организованный на таком обучающем множестве, позволяет, в определенном смысле, свободно интерпретировать информацию, содержащуюся в предъявляемых обучающих эпизодах. Самообучение позволяет нейронным сетям решать задачи, связанные, например, с отсутствием информации о количестве и распределении классов в анализируемом множестве объектов. В этом случае речь идет о возможности решения нейронной сетью задачи группирования данных. Наиболее популярными алгоритмами самообучения считаются: алгоритм WTA (Winner Takes All – победитель получает все) и алгоритм KSFM (Kohonen’s Self-Organizing Feature Map – самоорганизующееся отображение Кохонена). В случае применения первого из этих алгоритмов после проведения самообучения получается информация об оценочном количестве классов, присутствующих в решаемой задаче, а также о приближенных значениях центров тяжеВыход сти этих классов, т.е. определяются представители конкретных классов Нейронная сеть, в виде конкретных нейронов. При обучаемая использовании более сложного алгоритмом алгоритма Кохонена наряду с укабез учителя занными выше данными задается Вход топологическое размещение представителей определенных классов в слое нейронов по принципу: нейроны, представляющие аналогичные классы, размещаются в структуре нейронной сети по соседству. Обучающий эпизод 90 Рышард Тадеусевич, Мачей Шаленец Самоорганизующееся отображение См. раздел «Сеть самоорганизующаяся нейронная» Нейронные сети. Толковый словарь 91 Сеть автоассоциативная нейронная Автоассоциативной называют нейронную сеть, в которой входной слой имеет тот же размер (то же количество нейронов), что и выходной слой. Кроме того, обучение такой сети нацелено на точное отражение на выходе принятых входных данных. Обоснованием для применения сети с такой структурой является факт, что между входным слоем сети и ее выходным слоем имеется, как минимум, один скрытый слой, содержащий гораздо меньше нейронов, чем входной слой и выходной слой. В этом промежуточном слое осуществляется сжатие представленных данных, тогда как структура сети между входным слоем и упомянутым скрытым слоем становится инструментом для сжатия данных. В свою очередь, та часть сети, которая расположена между скрытым слоем и выходным слоем, становится инструментом для декомпрессии данных. Сжатое представление данных Отображенные данные Данные до сжатия Обучение сети направлено на корректное отображение на выходе входных данных Автоассоциативные сети также применяются для реализации нелинейного преобразования РСА. Рышард Тадеусевич, Мачей Шаленец 92 Сеть большая нейронная Схемы нейронных сетей, обсуждаемых на соответствующих страницах нашей книги, чаще всего представлены состоящими из небольшого количества нейронов в конкретных слоях и, соответственно, с небольшим количеством соединений (см., например, рисунок в пункте структура сети). Тем не менее, реальные нейронные сети, применяемые авторами различных научных публикаций, содержат множество скрытых нейронов и, как правило, несколько выходов. На рисунке приведен пример схемы такой большой нейронной сети. По этому рисунку видно, что структуру такой сети отследить трудно. Тем более сложно делать какие-либо выводы о способе ее функционирования. Этими причинами обусловливается целесообразность изображения на схемах структур упрощенных сетей. Входной слой Первый скрытый слой Второй скрытый слой Выходной слой Нейронные сети. Толковый словарь 93 Сеть вероятностная нейронная Это нейронная сеть, в которой выходы рассматриваются как вероятности конкретных возможных решений. Сети этого типа часто обозначаются сокращением PNN (Probabilistic Neural Networks). Это радиальные сети, в которых количество нейронов в скрытом слое равно количеству обучающих эпизодов. Главное свойство вероятностных сетей – такая нормализация выходных сигналов, что их сумма (на всех выходах сети) равна единице. Соответственно, можно считать, что значения на конкретных выходах сети представляют вероятности категорий (распознавания), приписанных к этим выходам. Радиальные нейроны, количество которых соответствует количеству обучающих эпизодов Вероятность А Входные данные Вероятность B Вероятность C Вероятность D Сумма вероятностей А + В + С + D должна быть равна 1 Рышард Тадеусевич, Мачей Шаленец 94 Сеть генетическая нейронная Генетические нейронные сети (Genetic Neural Networks – GNN) являются комбинацией концепции оптимизации с помощью генетических алгоритмов с моделированием при помощи нейронных сетей. Преимущество GNN над классическими нейронными сетями заключается в том, что в процессе их оптимизации проводится не только обучение самих сетей, но и выбирается оптимальная структура нейронной сети и входного вектора. GNN оптимизируются с применением генетических алгоритмов. Популяция создается нейронными сетями, характеризующимися как различными входными данными, так и/или количеством нейронов скрытого слоя. Главным достоинством применения GNN считается то, что функция приспособленности оценивает качество нелинейных нейронных моделей, поэтому при проведении оптимизации отсутствует опасность исключения какой-либо значимой нелинейной связи. Наряду с этим, метод позволяет получить комплекс хорошо функционирующих сетей, которые могут решать рассматриваемую задачу различными взаимодополняющими способами. Недостаток процедуры GNN состоит в высокой вычислительной стоимости из-за итерационного обучения каждой сети (например, на протяжении 100 эпох) в популяции (например, 100 моделей) в каждом поколении эволюции (например, 1000 поколений). Популяция Обучение Оценивание и селекция Скрещивание и мутация См. также раздел «Процесс генетической оптимизации сети» Нейронные сети. Толковый словарь 95 Сеть классификационная нейронная Данные Вариант нейронной сети, в которой выходные сигналы имеют качественный характер (на выходе появляются числа, чаще всего из интервала [0, 1], однако они используются в качестве идентификатора решения). Следует обратить внимание, что каждому из рассматриваемых классов соответствует один нейрон выходного слоя. Классификация 96 Рышард Тадеусевич, Мачей Шаленец Сеть конкурентная нейронная В некоторых нейронных сетях среди нейронов входного слоя или топологической карты (в случае сети Кохонена) вводится механизм конкуренции. Этот механизм заключается в том, что выходные сигналы этих нейронов сравниваются между собой. После подачи в сеть конкретного входного сигнала на ее выходе разные нейроны выходного слоя или топологического слоя формируют сигналы с разными значениями. Из этих сигналов выбирается тот, который имеет наибольшее значение – соответствующий ему нейрон признается победителем (см. рисунок). Факт признания конкретного нейрона победителем имеет различные последствия. В частности, в некоторых сетях на этапе обучения изменяются веса только победителя, а в отдельных случаях – и его соседства. В классифицирующих сетях нейрон-победитель указывает корректную категоризацию входного сигнала либо корректное распознавание объекта, представленного этим сигналом. Победитель Нейронные сети. Толковый словарь 97 Сеть Кохонена нейронная Наиболее известная и чаще всего применяемая сеть с самообучением, реализующая принцип самоорганизации. Это также наиболее известный пример конкурентной сети, использующей концепцию соседства. В результате обучения такой сети возникает топологическая карта, априорная интерпретация которой невозможна (поскольку сеть обучается без учителя и пользователь не имеет контроля над ее работой). Однако после обучения на основе анализа конкретных примеров входных данных можно определить, какое значение имеют конкретные участки этой карты (образованной выходными сигналами, выработанными топологическим слоем). Структура сети Кохонена изображена на рисунке, который представляет собой только ориентировочную схему, потому что в действительности сети Кохонена функционируют в многомерных пространствах входных данных. В связи с этим входной слой содержит очень много нейронов (ассоциированных с большим количеством входных сигналов). Аналогично, типовой топологический слой сети Кохонена содержит очень много нейронов, благодаря чему сеть после обучения может успешно классифицировать входные данные и представлять очень тонкие различия между ними. Входной слой Технологический слой Рышард Тадеусевич, Мачей Шаленец 98 Сеть нейро-нечеткая Это реализация нечеткой системы принятия решений в сетевой форме (конкретно – в форме нейронной сети, Fuzzy Neural Network – FNN) с применением элементов, реализующих различные элементарные операции и функции. Сетевая структура позволяет реализовать процесс оптимизации, основанный на критерии среднеквадратичной погрешности с использованием метода наискорейшего спуска – аналогично методу обратного распространения ошибки, применяемого в однонаправленных нейронных сетях. Такое решение позволяет объединить достоинства нечетких систем принятия решений (прозрачность знаний) и нейронных сетей (возможность обучения). Благодаря сетевой структуре можно проводить оптимизацию параметров нечетких множеств в направлении корректного отображения эталонных элементов, содержащихся в обучающей выборке. Так же, как в методе обратного распространения ошибки, применяемом в нейронных сетях, в нейро-нечеткой сети тоже рассчитывается ошибка на выходе, которая распространяется в обратном направлении и вызывает корректировку параметров нечетких множеств. По сравнению с методом обратного распространения ошибки, применяемым в нейронных сетях, различия заключаются в функциях, реализуемых элементами нейро-нечеткой сети, а также в производных этих функций. Нейронные сети Нечеткая логика Аппроксимация произвольной многомерной функции Обучение на примерах Функции принадлежности Нечеткий вывод Простое применение FNN Нейронные сети. Толковый словарь 99 Сеть нейронная в процессе обучения Данные, представляющие подлежащую решению задачу Знания, накопленные Система, предназначенная для обработки информации, структура и принципы функционирования которой в определенной мере отражает функционирование элементов реальной (биологической) нервной системы. На биологических основах базируются схемы искусственных нейронов, входящих в состав сети, а также (в определенной степени) ее структура. Однако схемы соединений нейронов в нейронной сети выбираются интуитивно, а не отражают построение реальных нервных структур. Отличительным свойством нейронной сети как информационного инструментария является возможность компьютерного решения с ее помощью практических задач без их предварительной математической формализации. Следующее достоинство – при использовании нейронной сети отсутствует необходимость опираться на какие-либо теоретические основания решаемой задачи. Не должно выдвигаться даже предположение о причинно-следственных зависимостях между входом и выходом! Наиболее выдающееся свойство нейронной сети – ее способность обучения на основании примеров и возможность автоматического обобщения полученных знаний (обобщение). На рисунке представлена наиболее типовая схема практического применения нейронной сети. Результат, представляющий решение задачи Рышард Тадеусевич, Мачей Шаленец 100 Сеть обобщенной регрессии Нейронная сеть этого типа объединяет достоинства радиальной сети и сети MLP. Как правило, она обозначается аббревиатурой GRNN (Generalized Regression Neural Network). Структура этой сети с указанием роли конкретных слоев представлена на следующем рисунке. Входной слой. Предназначен для ввода данных в сеть Радиальный слой. Каждый нейрон представляет скопление, присутствующее во входных данных Регрессионный слой. Определяет элементы, необходимые для расчета выходного значения Выходной слой. Определяет отклик сети В радиальном слое, играющем роль аналога первого скрытого слоя, применяются радиальные нейроны, осуществляющие группирование входных данных. Этот слой может состоять из очень большого количества нейронов, что позволяет выявлять во множестве входных данных многочисленные скопления (см. раздел «Сеть радиальная»). Второй слой состоит только из двух суммирующих нейронов – он называется регрессионным слоем. Выходной нейрон выполняет только одно действие, в результате которого формируется частное результатов обоих суммирующих нейронов. Можно утверждать, что сеть GRNN обеспечивает наилучшее оценивание требуемого выходного значения по сравнению с другими нейронными регрессионными сетями. Нейронные сети. Толковый словарь 101 Сеть однонаправленная нейронная Как правило, нейронные сети конструируются так, что поток сигналов распространяется в них исключительно в направлении от входа (через возможные скрытые слои) к выходу. Исключено распространение сигналов в обратном направлении. Сети такого типа противопоставляются рекуррентным сетям. Сети, удовлетворяющие приведенному условию, называются однонаправленными сетями или сетями типа feedforward. Само по себе распространение сигналов в одном направлении (от входа к выходу) не определяет вид сети и принцип ее функционирования, поскольку среди однонаправленных нейронных сетей можно выделить, среди прочих, многослойные персептроны (сети MLP), радиальные сети (RBF), сети обобщенной регрессии (GRNN) и другие. На практике авторы чаще всего отождествляют название «однонаправленная сеть» с сетью типа MLP. Одно направление перемещения сигналов 102 Рышард Тадеусевич, Мачей Шаленец Сеть радиальная нейронная Вид однонаправленной нейронной сети, в которой применяется технология радиальных базовых функций (Radial Basis Function – RBF) и используются радиальные нейроны. Типовая структура радиальной сети (см. рисунок) состоит из входного слоя (как всегда, не задействованного непосредственно в процесс обработки информации), скрытого слоя, состоящего из радиальных нейронов (как правило, их очень много) и выходного слоя, вырабатывающего отклик сети. Радиальные нейроны предназначены для распознавания повторяемых и характерных свойств групп (скоплений) входных данных. Конкретный радиальный нейрон возбуждается, когда радиальная сеть сталкивается с ситуацией, подобной которую он ранее научился распознавать как представитель конкретной группы. В выходном слое радиальной сети чаще всего присутствует один линейный нейрон (это показано на рисунке), но бывают и отступления от этого правила. Нейронные сети. Толковый словарь 103 Сеть регрессионная нейронная Данные Вариант нейронной сети, в которой выходные сигналы имеют количественный характер (данные, появляющиеся на выходе, используются в форме численных значений). Это одна из наиболее часто практически применяемых форм нейронных сетей. Регрессия 104 Рышард Тадеусевич, Мачей Шаленец Сеть рекуррентная нейронная Нейронная структура, в которой сигнал, полученный на выходе сети, повторно попадает на ее вход (такое перемещение сигнала называется обратной связью). Однократное возбуждение структуры с обратной связью может генерировать целую последовательность новых явлений и сигналов, поскольку сигналы с выхода сети снова попадают на ее входы, генерируя новые сигналы вплоть до стабилизации выходных сигналов. Такое распространение выходных сигналов всех нейронов, спонтанно возникающее в сети и не поддающееся какому-либо контролю, часто сопровождается осцилляциями, стремительным нарастанием сигналов (иногда до бесконечности!) либо их бессмысленным угасанием вплоть до полного обнуления всей сети. Особенно сложны процессы возникновения и развития хаоса, с которыми в таких сетях часто приходится сталкиваться. Нейронные сети. Толковый словарь 105 Сеть самоорганизующаяся нейронная Самоорганизующиеся нейронные сети часто называются сетями Кохонена. Сети этого типа реализуют так называемое самоорганизующееся отображение (Kohonen’s Self-Organizing Feature Map – KSFM). Они тесно связаны со способом их обучения – неконтролируемым обучением, иначе называемым обучением без учителя или самообучением. Это означает, что процесс модификации весов проходит с применением обучающего множества, содержащего только информацию о входных значениях, не связанных с какимилибо эталонными выходными значениями. Такой подход позволяет специально подобранному алгоритму самообучения относительно свободно интерпретировать информацию, содержащуюся в примерах входных данных, находящихся в обучающей выборке. Благодаря этому становится возможным, например, определение количества классов векторов, рассматриваемых в решаемой задаче, и приписывание каждому классу представителя – одного из нейронов сети. Это общее свойство сетей, обучаемых алгоритмами без учителя, среди которых самоорганизующиеся нейронные сети выделяются процедурами модификации весов сети. В отличие от других алгоритмов, таких как, например, WTA (Winner Takes All – победитель получает все), в самоорганизующейся нейронной сети при презентации каждого обучающего эпизода модифицируются веса не только нейрона, представляющего класс, к которому принадлежит эта комбинация, но и веса нейронов, находящихся в топологическом соседстве этого нейрона. Такой подход позволяет отображать распределение классов в пространстве входных векторов на топологическое распределение нейронов, представляющих эти классы, по принципу: подобные друг другу классы представляются близкими друг к другу нейронами. Топологическое соседство может быть реализовано в одном или, чаще, в двух измерениях, что предопределяет одно- или двухразмерность слоя нейронов в самоорганизующейся сети. Рышард Тадеусевич, Мачей Шаленец 106 Выход Вход Нейронные сети. Толковый словарь 107 Сеть Хопфилда нейронная Это частный случай рекуррентной нейронной сети. Сеть Хопфилда представляет собой однослойную сеть регулярной структуры, состоящую из множества нейронов, соединенных по принципу каждый с каждым. Соединение выхода k-го нейрона с входом j-го нейрона характеризуется весом wkj. Такие соединения определены для всех k и j, что формирует огромное количество обратных связей, содержащихся в такой сети. Однако отсутствуют обратные связи, охватывающие один и тот же нейрон. Это означает, что выходной сигнал конкретного нейрона не поступает на его вход, поэтому значения весов wii равны нулю. Для стабильности поведения сети предполагается симметричность ее весов, т.е. вес wkj, соединяющий k-й нейрон с j-м нейроном, равен весу wjk, соединяющему j-й нейрон с k-м нейроном. Сеть Хопфилда в процессе обучения модифицирует свои веса wkj в зависимости от значения входного вектора. В режиме отображения эти веса не модифицируются, тогда как входной сигнал возбуждает сеть, которая благодаря обратным связям многократно принимает на свой вход выходной сигнал вплоть до стабилизации отклика. Сети Хопфилда применяются в качестве ассоциативных (особенно автоассоциативных) запоминающих устройств, а также как устройства для поиска приближенных решений оптимизационных задач. Наиболее известные достижения в этой области связаны с получением при помощи сети Хопфилда приближенных (однако удовлетворительных с практической точки зрения) решений «задачи коммивояжера». Рышард Тадеусевич, Мачей Шаленец 108 Сигналы Данные, которыми мы оперируем в нейронных сетях, часто называются сигналами, хотя по сути это числовые значения, участвующие в определенных вычислениях. Это относится как к входным данным, так и к выходным данным. Название «сигнал» прочно укоренилось в сообществах, часто использующих нейронные сети, а также среди исследователей, создающих новые сети и совершенствующих их функционирование. Причина в том, что нейробиологи, исследующие реальные нервные клетки, наблюдают протекающие в них процессы путем регистрации различных биоэлектрических сигналов (см. приведенный ниже рисунок, заимствованный 15 февраля 2014 г. с Интернет-страницы http://people.eku.edu/ ritchisong/301images/Neuron_action_potential.jpg), поэтому терминология их публикаций связана именно с сигналами. Осциллограф Электрод Нейрон В свою очередь, хотя создатели нейронных сетей в настоящее время в значительно степени удовлетворяются возможностями программ моделирования нейронных сетей, тем не менее часто обращаются к их аппаратным реализациям, в которых снова используются определенные сигналы – и не только электронные. Именно этим объясняется частое применение в публикациях о нейронных сетях (в том числе и в нашей книге) термина «сигналы» (входные, выходные и внутренние) в качестве синонима соответствующих данных (входных, выходных и внутренних). Нейронные сети. Толковый словарь 109 Слои в нейронных сетях Как правило, структура нейронной сети предполагает существование слоев нейронов. Слой представляет собой условное отображение способа размещения группы нейронов, выполняющих в сети определенную функцию. Выделяются входной слой, скрытые слои и выходной слой. Входной слой I скрытый слой II скрытый слой Выходной слой Декомпозиция сети на слои предопределяет, среди прочего, соединения нейронов. Чаще всего соединяются только нейроны, принадлежащие к соседним слоям. Рышард Тадеусевич, Мачей Шаленец 110 Слой входной Это слой нейронной сети, который не участвует непосредственно в выработке отклика сети. Роль нейронов входного слоя заключается в передаче входных данных в форме сигналов нейронам первого скрытого слоя. Связанная с входным слоем полезная особенность заключается в том, что в результате процесса обучения может быть проведена редукция соединений. Если такая редукция укажет на целесообразность удаления некоторых нейронов входного слоя, то соответствующие входные данные окажутся ненужными. Это имеет большое практическое значение, поскольку создатель нейронной сети часто не знает, какие из имеющихся входных данных пригодятся для решения задачи, а какие нет. Если только обучающая выборка окажется достаточно многочисленной, то можно провести эксперимент: подать на вход сети все имеющиеся данные и запустить процесс обучения. Если в результате обучения мы получим сеть, которая на экзамене будет характеризоваться малым значением ошибки, и одновременно произойдет значительное сокращение количества соединений, связанных со входным слоем, то можно признать, что в результате обучения сеть выбрала полезные входные данные и отбросила непригодные данные. Приведенный ниже рисунок иллюстрирует на конкретном примере, как функционирует механизм «Редукция входного слоя». Распознаваемые объекты (ирисы) Входной слой Сетоза Вирджиника Версиколор Ввод Измерения Нейронные сети. Толковый словарь 111 Слой выходной Множество нейронов, выходные сигналы которых рассматриваются как выходы всей сети, называется выходным слоем нейронной сети. Для создателя нейронной сети нетривиальной оказывается проблема, сколько нейронов в выходном слое должна иметь конструируемая сеть. Напрашивающийся ответ вроде бы простой: из способа формулирования задачи понятно, сколько выходных данных ожидает получить пользователь сети; в свою очередь, из этого следует, сколько нейронов должно содержаться в выходном слое сети. Однако такой ответ должен быть признан неполным, поскольку во многих случаях остается открытым вопрос: что лучше – получить необходимое количество выходных данных путем использования одной сети с несколькими выходами или применить несколько сетей, каждая из которых будет предоставлять только один выходной показатель? Представленные альтернативные возможности выдвигают различные требования к организации обучения сети. Эта проблематика дополнительно обсуждается в разделе «Выход». Рышард Тадеусевич, Мачей Шаленец 112 Слой скрытый Слой называется скрытым, если к нейронам этого слоя нет непосредственного доступа ни со стороны входа сети, ни со стороны ее выхода. Роль скрытого слоя заключается в преобразовании входных данных так, чтобы полученные выходные данные были пригодны для выработки решения всей задачи в выходном слое сети. Как правило, создатель нейронной сети испытывает затруднения при определении, сколько элементов должен содержать скрытый слой. Слишком малое количество нейронов в скрытом слое может сделать сеть слишком примитивной и неспособной справиться со сложной решаемой задачей. Наоборот, слишком большое количество нейронов в скрытом слое сделает сеть гораздо более интеллектуальной, но такую сеть будет очень сложно обучать. Количество нейронов в скрытом слое эмпирически оптимизируется для каждой конкретной задачи путем анализа качества функционирования сетей с разным количеством скрытых нейронов. Отдельной проблемой является определение количества скрытых слоев. Нейронные сети. Толковый словарь 113 Слой топологический Слой в нейронной сети Кохонена, на котором представляется результат функционирования этой сети в форме топологической карты. По завершении обучения нейроны топологического слоя получают приписанные к ним объекты (комплексы входных данных), которые особенно часто появлялись в процессе самообучения сети. Нейроны топологического слоя могут эти объекты обнаруживать, группировать, маркировать и классифицировать. Пример топологического слоя приведен на рисунке. Рышард Тадеусевич, Мачей Шаленец 114 Соединения Нейронная сеть образуется таким образом, что между выходами одних нейронов и входами других нейронов создаются соединения, предназначенные для однонаправленной передачи сигналов (данных). Существуют следующие виды соединений (см. рисунок): (m) – межслойные; (w) – внутрислойные; (n) – надслойные; (s) – автохтонные; (r) – рекуррентные. В большинстве практически применяемых сетей присутствуют только межслойные соединения, причем при реализации принципа каждый с каждым. Как правило, с каждым соединением связан вес, значение которого участвует в процессе агрегирования данных в нейроне. Значение веса может изменяться в процессе обучения. Нейронные сети. Толковый словарь 115 Соседство В большинстве нейронных сетей не учитывается конкретное расположение нейронов, поскольку это не имеет никакого значения. Исключением являются нейронные сети Кохонена, известные как самоорганизующиеся нейронные сети. В топологическом слое этих сетей расположение нейронов имеет значение, поскольку нейроны, расположенные вблизи нейрона-победителя (см. раздел «Сеть конкурентная нейронная»), т.е. являющиеся его соседями, поразному рассматриваются в процессе обучения и имеют особое значение при интерпретации результатов, вырабатываемых функционирующей (обученной) сетью. Нейронпобедитель Соседний нейрон Рышард Тадеусевич, Мачей Шаленец 116 Строгость учителя Неожиданная, но очень полезная аналогия, позволяющая лучше понять роль коэффициента обучения в процессе обучения нейронной сети. Одну из возможных интерпретаций строгости учителя (обучающего детей) и ее связи со значением коэффициента обучения нейронной сети иллюстрирует приведенный ниже рисунок. Большой коэффициент обучения действует как строгий учитель, принуждающий ученика после каждой ошибки к радикальному изменению поведения (сильные корректировки весов) Малый коэффициент обучения действует как добрый учитель, учитывающий незначительное влияние даже явно негативных оценок на действия, увеличивающие учебные достижения Один из выводов (очень полезных!), которые можно сделать на основе аналогии между коэффициентом обучения и строгостью учителя, заключается в необходимости и возможности изменения значения коэффициента обучения в процессе обучения сети. Нейронные сети. Толковый словарь 117 Структура нейронной сети Структура нейронной сети – это способ расположения и соединения нейронов. Структура типовой сети предполагает существование слоев, поскольку такое размещение нейронов облегчает определение структуры сети (в ситуации, когда пользователь должен решить – какая сеть ему необходима). Послойное размещение нейронов также упрощает управление работой сети как при ее реализации в форме компьютерной программной модели, так и в случае применения специализированных аппаратных решений (нейрочипов, нейрокомпьютеров и т.п.). Входной слой Скрытый слой (один или два) Выходной слой Как правило, в структуре сети можно выделить входной слой, выходной слой и скрытые слои. Количество скрытых слоев изменяется от нуля (сеть может не иметь скрытых слоев) до двух. Сети с бóльшим количеством скрытых слоев более интеллектуальны (они способны решать более сложные задачи), но их сложнее обучать. 118 Рышард Тадеусевич, Мачей Шаленец Суммарное возбуждение Суммарное возбуждение В структуре каждого нейрона должна быть предусмотрена операция агрегирования входных данных, поскольку одно из главных свойств нейрона – наличие у него нескольких входов и только одного выхода. Различные методы агрегирования обсуждаются в соответствующем разделе нашей книги, но здесь необходимо подчеркнуть факт, что результат этого агрегирования представляет собой скалярный сигнал, который далее используется в качестве аргумента функции активации. Именно этот скалярный сигнал называется суммарным возбуждением. Нейронные сети. Толковый словарь 119 SSE – сумма квадратов ошибок В процессе обучения нейронной сети необходимо контролировать развитие этого процесса, поскольку существует риск неполучения ожидаемого результата. Удобнее всего наблюдать, как изменяется значение ошибки на сменяющих друг друга эпохах процесса обучения. Поскольку сеть может иметь много выходов (обозначим их количество М), а эпоха состоит из R эпизодов обучения, необходимо принимать во внимание общую ошибку, суммируемую по всем эпизодам обучения и по всем выходам сети. Как правило, перед суммированием значения ошибок возводятся в квадрат для исключения эффекта компенсации отрицательных ошибок положительными ошибками. Кроме того, операция возведения в квадрат приводит к повышению влияния больших ошибок при одновременном уменьшении влияния малых ошибок. Получаемый показатель называется SSE (Sum Square Errors) и рассчитывается по формуле где dpk означает эталонный отклик, который должен появиться в результате представления обучающего эпизода с номером р на k-м выходе сети, а ypk – это значение, которое фактически появляется на этом выходе. Значение ошибки небольшое, но адаптация неудовлетворительная Эта кривая хорошо отображает бóльшую часть данных, но значение ошибки довольно большое 120 Рышард Тадеусевич, Мачей Шаленец SSE – это повсеместно применяемая в технологии нейронных сетей мера ошибки, допускаемой сетью, и большинство алгоритмов обучения сети ориентировано на ее минимизацию. Однако, как показано на рисунке, меньшее значение этой меры (которую характеризуют числа рядом с соответствующими графиками) не всегда означает лучшую адаптацию функционирования сети к эмпирическим данным, которые она должна распознавать. Нейронные сети. Толковый словарь 121 Топологическая карта В нейронной сети Кохонена этот слой, на котором представляется результат функционирования сети, называется топологическим слоем. Нейроны, лежащие в этом слое, специализируются на идентификации конкретных объектов, которые в процессе самообучения представлялись на входе сети. К каждому нейрону топологического слоя приписан конкретный объект, появление которого на входе сети приводит к тому, что именно этот нейрон оказывается победителем (см. раздел «Конкурентная нейронная сеть»). Расположение этих объектов и формирует топологическую карту, символически изображенную на рисунке. Знание топологической карты облегчает пользователю интерпретацию и использование результатов, вырабатываемых нейронной сетью Кохонена. Рышард Тадеусевич, Мачей Шаленец 122 Учитель Субъект, реализующий алгоритм обучения. Понятие «учитель» в случае обучения нейронной сети является определенной метафорой. В сущности, нет ни одного человека, который мог бы исполнить роль учителя нейронной сети, поскольку для формирования в сети требуемого объема знаний необходимо предъявление сотен, а временами тысяч комбинаций входных данных (на рисунке им соответствуют разные состояния работы моделируемой сетью машины) и корректировок весов (на рисунке они показаны желтыми стрелками). Однако при описании, как обучается и функционирует сеть, метафора учитель оказывается очень удобной, что и обусловливает ее повсеместное применение. Учитель Обозначения на рисунке: А – входные сигналы, направленные на объект, модель которого должна создать нейронная сеть в ходе обучения. Эти сигналы также передаются в сеть, моделирующую объект, и в компьютер, который исполняет роль «учителя»; В – выходные сигналы, генерируемые моделируемым объектом. Эти сигналы регистрируются компьютером, исполняющим роль Нейронные сети. Толковый словарь 123 «учителя», в качестве эталона корректного отклика, который должна выработать сеть; С – сигналы, вырабатываемые сетью и также регистрируемые компьютером, исполняющим роль «учителя»; D – корректировочное воздействие, изменяющее параметры нейронной сети. Вырабатывается компьютером, исполняющим роль «учителя», на основе алгоритма обучения по результатам сравнения сигналов В и С, которые должны становиться все более похожими друг на друга. При реализации алгоритма обучения также учитываются входные сигналы А. 124 Рышард Тадеусевич, Мачей Шаленец Функция активации После агрегирования входных данных с учетом весов формируется сигнал суммарного возбуждения. Роль функции активации заключается в том, что она должна определить способ расчета значения выходного сигнала нейрона на основе значений этого суммарного возбуждения. В литературе рассматриваются многочисленные формы функции активации, однако повсеместно применяются только четыре из них: линейная функция (линейный нейрон), сигмоидальная (сигмоидальный нейрон), тангенсоидальная (строго говоря, это функция гиперболического тангенса, но для краткости речь идет о тангенсоидальном нейроне) и функция Гаусса (радиальный нейрон). Линейная Сигмоидальная Тангенсоидальная Гаусса Отдельный (не показанный на рисунке) тип функции активации – гиперболическая функция (рассчитываемая как обратная аргументу), применяемая в нейронах Кохонена. Нейронные сети. Толковый словарь 125 Функция ошибки Ошибка, допускаемая нейронной сетью, зависит от коэффициентов весов, применяемых в сети и уточняемых алгоритмами обучения. Представим себе (см. рисунок), что в конкретный момент процесса обучения в сети сформирован конкретный набор весов (называемый на рисунке первым комплексом). Если при этом комплексе весов провести экзамен, то мы получим некоторое значение ошибки, представленное на рисунке с помощью вертикальной стрелки. Если значения комплекса весов изменяются (например, в результате обучения) и мы имеем дело со вторым комплексом, то для него также можно рассчитать ошибку и представить ее при помощи более короткой стрелки так, как показано на рисунке. Если такую же операцию расстановки вертикальных стрелок, обозначающих значения ошибки, мы выполним для каждой точки серой плоскости, представляющей все возможные комбинации весов, верхушки стрелок составят некоторую поверхность над серой плоскостью. Именно эта поверхность является необходимой для множества целей (в том числе для описания процесса обучения) функцией ошибки. Величина ошибки Е, допущенной сетью Сеть допустила такую ошибку при первом комплексе весов Сеть допустила такую ошибку при втором комплексе весов Второй комплекс весов Второй весовой коэффициент W2 Первый комплекс весов Первый весовой коэффициент W1 126 Рышард Тадеусевич, Мачей Шаленец Рисунок необходимо сопроводить некоторым комментарием: Чтобы представить на этом рисунке процесс построения функции ошибки, необходимо допустить, что она зависит исключительно от двух весовых коэффициентов, определяющих на рисунке серую плоскость. Это очень сильное упрощение, поскольку в действительности функция ошибки нейронной сети зависит от всех ее весов – а их могут быть сотни, иногда и тысячи. Однако нарисовать функцию, зависящую от тысячи переменных, мы не в состоянии, поэтому на рисунке представлена упрощенная (идеализированная) ситуация, рассчитанная на хорошее воображение уважаемого читателя. Развитое интуитивное воображение позволит понять, что происходит в этом многомерном пространстве весов при осуществлении реального процесса обучения. Нейронные сети. Толковый словарь Feedforward (прямое распространение) См. раздел «Однонаправленная нейронная сеть» 127 128 Рышард Тадеусевич, Мачей Шаленец FNN (нечеткая нейронная сеть) См. раздел «Cеть нейро-нечеткая» Нейронные сети. Толковый словарь 129 Экзамен Привычное название процесса тестирования результатов обучения либо самообучения нейронной сети. При проведении экзамена необходимо использовать задачи (комбинации данных), правильные решения которых известны, но которые ранее не применялись ни в качестве элементов обучающей выборки, ни в качестве элементов оценочной выборки. Часто для проведения экзамена формируется специальная тестовая выборка. Главная цель экзамена заключается в проверке способности сети обобщать накопленные знания. Пример экзамена нейронной сети представлен на рисунке. Обучающая выборка Диван Выход Вход Кресло Отклики сети в процессе экзамена могут оказаться не такими однозначными, как в процессе обучения, но если сигнал, соответствующий правильному решению, доминирует над сигналом ошибочного решения, то экзамен можно считать сданным успешно. Рышард Тадеусевич, Мачей Шаленец 130 Эпоха При обучении нейронной сети необходимо выполнить очень много шагов алгоритма обучения, прежде чем ошибка станет приемлемо малой. В то же время обучающая выборка содержит, как правило, ограниченное количество обучающих эпизодов. В типичных случаях объем этой выборки может быть в сотни или даже в тысячи раз меньше необходимого количества шагов алгоритма обучения. Напрашивается логичный вывод, что обучающая выборка должна использоваться в процессе обучения многократно. Для фиксации этого факта введено понятие «эпоха», которым обозначается однократное применение в процессе обучения всех обучающих эпизодов, содержащихся в обучающей выборке. После выполнения всех шагов, относящихся к одной эпохе, алгоритм обучения оценивает способность сети к обобщению результатов обучения с помощью оценочной выборки. Если выясняется, что ошибка, рассчитанная как на обучающей выборке, так и на оценочной выборке, демонстрирует очевидную тенденцию к уменьшению, то алгоритм обучения выполняет следующую эпоху. В противном случае процесс обучения завершается. Если бы при реализации очередных эпох обучающие эпизоды предъявлялись всегда в одной и той же последовательности, то существовала бы опасность того, что процесс обучения будет изменять веса по кругу, возвращаясь после каждого цикла в исходную точку. Эта ситуация представлена на рисунке, на котором в левой части показан именно такой «зацикленный» процесс изменения весов, не приводящий к обучению сети даже после очень длительного процесса обучения. На рисунке демонстрируется циклическое изменение значений двух избранных весов (потому что на рисунке Нейронные сети. Толковый словарь 131 можно изобразить только это), однако аналогичный неблагоприятный процесс также характерен для любых весов во всей сети. Зацикливание обучения можно предотвратить путем рандомизации обучающей выборки, т.е. благодаря изменению последовательности предъявления конкретных обучающих эпизодов в последующих эпохах. В таком случае процесс изменения весов в ходе обучения упорядочивается. Становится заметным, что он направлен на достижение определенной цели, соответствующей оптимальной комбинации весов, обеспечивающей решение стоящих перед сетью задач с минимальной ошибкой (что показано в правой части рисунка). Рышард Тадеусевич, Мачей Шаленец 132 Библиография 1. Tadeusiewicz R., Sieci neuronowe, Akademicka Oficyna Wydawnicza, Warszawa 1993 (wyd. I i II tego samego roku). http://winntbg. bg.agh.edu.pl/skrypty/0001/ 2. Korbicz J., Obuchowicz A., Uciński D., Sztuczne sieci neuronowe: podstawy i zastosowania, Akademicka Oficyna Wydawnicza, Warszawa, 1994. 3. Herz J., Krogh A., Palmer R.G., Wstęp do teorii obliczeń neuronowych, Wydawnictwa Naukowo-Techniczne, Warszawa 1995. 4. Jędruch W., Sztuczne sieci neuronowe, Wydawnictwo Naukowe PWN, Warszawa 1996. 5. Żurada J., Barski M., Jędruch W., Sztuczne sieci neuronowe. Podstawy teorii i zastosowania, Wydawnictwo Naukowe PWN, Warszawa1996. 6. Osowski S., Sieci neuronowe w ujęciu algorytmicznym, Wydawnictwo Naukowo-Techniczne, Warszawa 1996. 7. Master T., Sieci neuronowe w praktyce, Wydawnictwa NaukowoTechniczne, Warszawa 1996. 8. Rutkowska D., Piliński M., Rutkowski L., Sieci neuronowe, algorytmy genetyczne i systemy rozmyte, Wydawnictwo Naukowe PWN, Warszawa 1997. 9. Sieci Neuronowe, t. 6 monografii Biocybernetyka i Inżynieria Biomedyczna 2000, red. W. Duch, J. Korbicz, L. Rutkowski, R. Tadeusiewicz, Polska Akademia Nauk, Wydawnictwo EXIT, Warszawa 2000. 10. Sieci neuronowe w inżynierii biomedycznej, t. 9 monografii: Inżynieria biomedyczna. Podstawy i zastosowania, red. R. Tadeusiewicz, J. Korbicz, L. Rutkowski, W. Duch, Polska Akademia Nauk, Wydawnictwo EXIT, Warszawa 2013.