Нейронные сети

В последнее время появились системы управления, сходные по принципу работы с человеческим мозгом [6]. Такие системы, использующие сети, состоящие из простых обрабатывающих элементов и легко адаптируемые к выполнению совершенно разных задач, называют искусственными нейронными сетями. Слово «искусственные» в дальнейшем будем опускать, подразумевая, что речь идет не о биологических нейронных сетях и процессах в человеческом мозге, а о сетях, которые реализуются программными или аппаратными средствами. Нейронные сети не программируются, а, подобно человеческому мозгу, обучаются тому, как надо правильно реализовать конкретную задачу. Нейронная сеть представляет собой, по сути дела, искусственный интеллект, хотя в сравнении с человеческим мозгом это лишь весьма упрощенная абстракция.

Нейронные сети реализуются в программах, составленных для компьютеров. Они представляют собой совокупность элементов, соединенных так, чтобы между ними обеспечивалось взаимодействие, т.е. передача информации от одних элементов другим. Эти элементы называют также, по аналогии с биологическим прототипом, нейронами или узлами. Они представляют собой простые процессоры, состоящие из сумматора ? и нелинейного преобразователя f (рис. 5.12). Вычислительные возможности таких процессоров обычно ограничиваются некоторыми правилами комбинирования входных сигналов (для сумматора ?) и правилами активизации (для нелинейного преобразователя f).

Выходной сигнал элемента вычисляется по совокупности входных сигналов. Каждый входной сигнал элемента и х2,х„) поступает на его вход со своим весовым коэффициентом (весом) или уровнем значимости (w{, w2yw„). В зависимости от весовых коэффициентов входные сигналы Xj элемента усиливаются или ослабляются. Чаще всего входные сигналы элемента комбинируются путем суммирования их взвешенных значений. Если обозначить результат комбинирования входных сигналов элемента буквой s (см. рис. 5.12), то можно записать

Здесь Ь — сигнал сдвига, постоянный сигнал, получаемый от внутреннего элемента.

Структура элемента нейронной сети

Рис. 5.12. Структура элемента нейронной сети

Значение выходной величины у элементов электронной сети называют активностью и вычисляют по правилу активизации с помощью функции активности, или передаточной функции, f(s) по правилу у = /($) (см. рис. 5.12). На вход функции активности поступает значение комбинированного ввода данного элемента. Сигнал активности (сигнал выхода) элемента может быть равен комбинированному вводу, т.е. у = s (линейная, или тождественная, функция активности) (рис. 5.13, а), или принимает только два значения: 0 или 1, в зависимости от значения комбинированного ввода у = f(s) (пороговая функция) (рис. 5.13, б). В последнем случае

Здесь Q — пороговое значение, которое может стать равным нулю, если его предварительно вычесть из значения комбинированного входа (рис. 5.13, в). На рис. 5.13, г показана сигмоидальная функция активности. Выходное значение этой функции непрерывно принимает значения от О до 1.

Таким образом, нейрон полностью описывается своими весами w и функцией активности f(s). Получив набор чисел в виде вектора X входных сигналов (xl9 хъ хп), нейрон выдает некоторое число у на выходе. Выход у есть результат преобразования входного вектора X и определяется правилом комбинирования входных сигналов и видом функции активности. Выход у может быть как действительным, так и целым числом.

Если элемент (нейрон), имеющий два входа, изобразить упрощенно (см. рис. 5.14) и принять функцию активности линейной {у = s), то выходной сигнал его будет равен

или в векторном выражении

Функции активности элемента

Рис. 5.13. Функции активности элемента

Хотя элементы нейронной сети (элементарные процессоры) очень просты, тем не менее, будучи соединенными в достаточно большую сеть с управляемым взаимодействием, они способны выполнять довольно сложные задачи. Задача, которую выполняет сеть (или ее программа), описывается в терминах весовых значений связей, с помощью которых элементы связываются в сеть. Выходные сигналы элементов передаются другим элементам по взвешенным связям со своими весами. Таким образом, чтобы задать сеть, необходимо знать связи элементов и вес каждой связи.

Упрощенное изображение элемента нейронной сети

Рис. 5.14. Упрощенное изображение элемента нейронной сети

Программист указывает связи элементов и их направления, а значения весовых коэффициентов определяются в процессе обучения на основе тех данных, которые сеть будет получать в процессе обучения. Весовые коэффициенты можно определить и без проведения обучения, но как раз самое большое преимущество нейронных сетей заключается в их способности обучаться. Это позволяет решать задачу в тех случаях, когда нет достаточных знаний о способе ее решения.

Итак, работа нейронной сети состоит в преобразовании входного вектора X в выходной вектор У, причем это преобразование задается весами сети w и передаточными функциями нейронов /($). Передаточные функции всех нейронов в сети фиксированы, а веса являются параметрами, которые могут изменяться в процессе обучения.

Целью обучения является изменение весовых коэффициентов таким образом, чтобы в результате получить требуемые характеристики поведения сети. Типичной формой обучения является и управляемое обучение, когда для каждого набора данных, подающихся в процессе обучения на вход сети, известен соответствующий выходной набор.

Рассмотрим процесс обучения на простом примере для одного нейрона. Пусть заданы две пары значений входных сигналов { {, х21 и х12, х2>2) и соответствующая им пара значений выходных сигналов х и у2) для элемента, изображенного на рис. 5.14. Требуется определить значения весовых коэффициентов. Для двух наборов входных и выходных значений в соответствии с уравнением (5.18) составим два уравнения с двумя неизвестными коэффициентами и w2

Решим систему уравнений (5.21) методом Крамера. Значения неизвестных определяются по формулам

или в матричной форме

где А — главный определитель системы,

Дwx определитель, который получается из главного определителя, если вместо первого столбца подставить столбец свободных членов,

Дт2 определитель, который получается из главного определителя, если вместо второго столбца подставить столбец свободных членов,

Тогда

Заметим, что если задать другую пару входных и выходных значений, то вновь полученные значения весов могут отличаться от значений, полученных ранее. В этом случае веса корректируют так, чтобы отклонения выходных значений от заданных для всех наборов входных и выходных значений были минимальными.

Обычно в начале обучения весовые коэффициенты устанавливаются равными случайным малым значениям. Расхождение между тем, что дает в этом случае сеть, и тем, что должно быть на самом деле, составляет ошибку, которую используют для корректировки весов. Существуют различные правила корректировки весов, которые здесь не рассматриваются. Функциональная схема обучения нейронной сети показана на рис. 5.15.

Функциональная схема обучения нейронной сети

Рис. 5.15. Функциональная схема обучения нейронной сети

Структура связей нейронной сети отражает то, как соединены элементы сети. В одних моделях каждый элемент может быть связан со всеми другими элементами сети. В других моделях элементы организованы в уровни (слои), где связи допускаются только между элементами смежных слоев (рис. 5.16). В некоторых моделях допускаются обратные связи. Возможности здесь практически не ограничены, и на первый взгляд задача кажется необозримой. Однако из этого вовсе не следует, что проектирование нейронной сети следует начинать с нуля. Существует несколько десятков ней- росетевых архитектур, для которых разработаны специальные алгоритмы обучения. Для каждой конкретной задачи разработаны модели сети и указан тип связей. Наиболее популярны многослойные структуры.

Структура связей обычно представляется в виде весовой матрицы (вектора) W. Каждый элемент такой матрицы представляет собой значение весового коэффициента для связи, идущей от элемента i к элементу j.

Для нейронной сети для множества входных и выходных значений уравнения в матричной форме примут вид

Сетевые слои

Рис. 5.16. Сетевые слои

Здесь [X] — матрица входных значений, [W] — матрица-столбец (вектор) неизвестных весовых коэффициентов, [Y] — вектор выходных значений.

Решение системы ищется в виде

где [X]-1 — обращенная матрица входных значений.

В завершение процесса обучения сеть тестируют на данных, не предъявленных в процессе обучения. В результате можно оценить, насколько хорошо сеть работает с данными, которые в процессе обучения были ей неизвестны.

В настоящее время существуют программные продукты, позволяющие реализовать нейросетевые структуры и системы с нечеткой логикой. Так, например, в математической системе MATLAB версий 5.2 и 5.3 (пакет Simulink) имеются два инструментальных средства: Networks Toolbox (нейронные сети) и Fuzzy Logic Toolbox (нечеткая логика). Описание этих пакетов можно найти в публикациях из списка рекомендуемой литературы.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >