Болезни Военный билет Призыв

Искусственный нейрон. Структура искусственного нейрона. Пороговая передаточная функция. Сети прямого распространения

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

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

Упрощение

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

Нам нужна модель преобразования входного сигнала в нужный нам выходной. Все остальное нас не волнует. Начинаем упрощать.

Биологическая структура → схема

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

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

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

Таким образом искусственная нейронная сеть может быть представлена в виде совокупности кружков (искусственных нейронов), связанных стрелками.

Электрические сигналы → числа

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

Электрический сигнал всегда будет электрическим сигналом. Концептуально ничего не изменяется. Но что же тогда меняется? Меняется величина этого электрического сигнала (сильнее/слабее). А любую величину всегда можно выразить числом (больше/меньше).

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

На входы сети мы будем подавать какие-то числа, символизирующие величины электрического сигнала, если бы он был. Эти числа будут продвигаться по сети и каким-то образом меняться. На выходе сети мы получим какое-то результирующее число, являющееся откликом сети.

Для удобства все равно будем называть наши числа, циркулирующие в сети, сигналами.

Синапсы → веса связей

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

Давайте характеризовать каждую такую связь определенным числом, называемым весом данной связи. Сигнал, прошедший через данную связь, умножается на вес соответствующей связи.

Это ключевой момент в концепции искусственных нейронных сетей, я объясню его подробнее. Посмотрите на картинку ниже. Теперь каждой черной стрелке (связи) на этой картинке соответствует некоторое число ​\(w_i \) ​ (вес связи). И когда сигнал проходит по этой связи, его величина умножается на вес этой связи.

На приведенном выше рисунке вес стоит не у каждой связи лишь потому, что там нет места для обозначений. В реальности у каждой ​\(i \) ​-ой связи свой собственный ​\(w_i \) ​-ый вес.

Искусственный нейрон

Теперь мы переходим к рассмотрению внутренней структуры искусственного нейрона и того, как он преобразует поступающий на его входы сигнал.

На рисунке ниже представлена полная модель искусственного нейрона.

Не пугайтесь, ничего сложного здесь нет. Давайте рассмотрим все подробно слева направо.

Входы, веса и сумматор

У каждого нейрона, в том числе и у искусственного, должны быть какие-то входы, через которые он принимает сигнал. Мы уже вводили понятие весов, на которые умножаются сигналы, проходящие по связи. На картинке выше веса изображены кружками.

Поступившие на входы сигналы умножаются на свои веса. Сигнал первого входа ​\(x_1 \) ​ умножается на соответствующий этому входу вес ​\(w_1 \) ​. В итоге получаем ​\(x_1w_1 \) ​. И так до ​\(n \) ​-ого входа. В итоге на последнем входе получаем ​\(x_nw_n \) ​.

Теперь все произведения передаются в сумматор. Уже исходя из его названия можно понять, что он делает. Он просто суммирует все входные сигналы, умноженные на соответствующие веса:

\[ x_1w_1+x_2w_2+\cdots+x_nw_n = \sum\limits^n_{i=1}x_iw_i \]

Математическая справка

Сигма – Википедия

Когда необходимо коротко записать большое выражение, состоящее из суммы повторяющихся/однотипных членов, то используют знак сигмы.

Рассмотрим простейший вариант записи:

\[ \sum\limits^5_{i=1}i=1+2+3+4+5 \]

Таким образом снизу сигмы мы присваиваем переменной-счетчику ​\(i \) ​ стартовое значение, которое будет увеличиваться, пока не дойдет до верхней границы (в примере выше это 5).

Верхняя граница может быть и переменной. Приведу пример такого случая.

Пусть у нас есть ​\(n \) магазинов. У каждого магазина есть свой номер: от 1 до ​\(n \) ​. Каждый магазин приносит прибыль. Возьмем какой-то (неважно, какой) ​\(i \) ​-ый магазин. Прибыль от него равна ​\(p_i \) ​.

\[ P = p_1+p_2+\cdots+p_i+\cdots+p_n \]

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

\[ P=\sum\limits^n_{i=1}p_i \]

Словами: «Просуммируй прибыли всех магазинов, начиная с первого и заканчивая ​\(n \) ​-ым». В виде формулы это гораздо проще, удобнее и красивее.

Результатом работы сумматора является число, называемое взвешенной суммой.

Взвешенная сумма (Weighted sum ) (​\(net \) ​) - сумма входных сигналов, умноженных на соответствующие им веса.

\[ net=\sum\limits^n_{i=1}x_iw_i \]

Роль сумматора очевидна – он агрегирует все входные сигналы (которых может быть много) в какое-то одно число – взвешенную сумму, которая характеризует поступивший на нейрон сигнал в целом. Еще взвешенную сумму можно представить как степень общего возбуждения нейрона.

Пример

Для понимания роли последнего компонента искусственного нейрона – функции активации – я приведу аналогию.

Давайте рассмотрим один искусственный нейрон. Его задача – решить, ехать ли отдыхать на море. Для этого на его входы мы подаем различные данные. Пусть у нашего нейрона будет 4 входа:

  1. Стоимость поездки
  2. Какая на море погода
  3. Текущая обстановка с работой
  4. Будет ли на пляже закусочная

Все эти параметры будем характеризовать 0 или 1. Соответственно, если погода на море хорошая, то на этот вход подаем 1. И так со всеми остальными параметрами.

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

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

Пусть на входы нашего нейрона мы подаем следующие сигналы:

Умножаем веса входов на сигналы соответствующих входов:

Взвешенная сумма для такого набора входных сигналов равна 6:

\[ net=\sum\limits^4_{i=1}x_iw_i = 5 + 0 + 0 + 1 =6 \]

Вот на сцену выходит функция активации.

Функция активации

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

Она преобразует взвешенную сумму в какое-то число, которое и является выходом нейрона (выход нейрона обозначим переменной ​\(out \) ​).

Для разных типов искусственных нейронов используют самые разные функции активации. В общем случае их обозначают символом ​\(\phi(net) \) ​. Указание взвешенного сигнала в скобках означает, что функция активации принимает взвешенную сумму как параметр.

Функция активации (Activation function )(​\(\phi(net) \) ​) - функция, принимающая взвешенную сумму как аргумент. Значение этой функции и является выходом нейрона (​\(out \) ​).

Функция единичного скачка

Самый простой вид функции активации. Выход нейрона может быть равен только 0 или 1. Если взвешенная сумма больше определенного порога ​\(b \) ​, то выход нейрона равен 1. Если ниже, то 0.

Как ее можно использовать? Предположим, что мы поедем на море только тогда, когда взвешенная сумма больше или равна 5. Значит наш порог равен 5:

В нашем примере взвешенная сумма равнялась 6, а значит выходной сигнал нашего нейрона равен 1. Итак, мы едем на море.

Однако если бы погода на море была бы плохой, а также поездка была бы очень дорогой, но имелась бы закусочная и обстановка с работой нормальная (входы: 0011), то взвешенная сумма равнялась бы 2, а значит выход нейрона равнялся бы 0. Итак, мы никуда не едем.

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

Графически эту функцию активации можно изобразить следующим образом.

На горизонтальной оси расположены величины взвешенной суммы. На вертикальной оси - значения выходного сигнала. Как легко видеть, возможны только два значения выходного сигнала: 0 или 1. Причем 0 будет выдаваться всегда от минус бесконечности и вплоть до некоторого значения взвешенной суммы, называемого порогом. Если взвешенная сумма равна порогу или больше него, то функция выдает 1. Все предельно просто.

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

\[ out(net) = \begin{cases} 0, net < b \\ 1, net \geq b \end{cases} \]

В этой записи нет ничего сложного. Выход нейрона (​\(out \) ​) зависит от взвешенной суммы (​\(net \) ​) следующим образом: если ​\(net \) ​ (взвешенная сумма) меньше какого-то порога (​\(b \) ​), то ​\(out \) ​ (выход нейрона) равен 0. А если ​\(net \) ​ больше или равен порогу ​\(b \) ​, то ​\(out \) ​ равен 1.

Сигмоидальная функция

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

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

Итак… самая часто используемая в нейронных сетях сигмоида - логистическая функция .

График этой функции выглядит достаточно просто. Если присмотреться, то можно увидеть некоторое подобие английской буквы ​\(S \) ​, откуда и пошло название семейства этих функций.

А вот так она записывается аналитически:

\[ out(net)=\frac{1}{1+\exp(-a \cdot net)} \]

Что за параметр ​\(a \) ​? Это какое-то число, которое характеризует степень крутизны функции. Ниже представлены логистические функции с разным параметром ​\(a \) ​.

Вспомним наш искусственный нейрон, определяющий, надо ли ехать на море. В случае с функцией единичного скачка все было очевидно. Мы либо едем на море (1), либо нет (0).

Здесь же случай более приближенный к реальности. Мы до конца полностью не уверены (в особенности, если вы параноик) – стоит ли ехать? Тогда использование логистической функции в качестве функции активации приведет к тому, что вы будете получать цифру между 0 и 1. Причем чем больше взвешенная сумма, тем ближе выход будет к 1 (но никогда не будет точно ей равен). И наоборот, чем меньше взвешенная сумма, тем ближе выход нейрона будет к 0.

Например, выход нашего нейрона равен 0.8. Это значит, что он считает, что поехать на море все-таки стоит. Если бы его выход был бы равен 0.2, то это означает, что он почти наверняка против поездки на море.

Какие же замечательные свойства имеет логистическая функция?

  • она является «сжимающей» функцией, то есть вне зависимости от аргумента (взвешенной суммы), выходной сигнал всегда будет в пределах от 0 до 1
  • она более гибкая, чем функция единичного скачка – ее результатом может быть не только 0 и 1, но и любое число между ними
  • во всех точках она имеет производную, и эта производная может быть выражена через эту же функцию

Именно из-за этих свойств логистическая функция чаще всего используются в качестве функции активации в искусственных нейронах.

Гиперболический тангенс

Однако есть и еще одна сигмоида – гиперболический тангенс. Он применяется в качестве функции активации биологами для более реалистичной модели нервной клетки.

Такая функция позволяет получить на выходе значения разных знаков (например, от -1 до 1), что может быть полезным для ряда сетей.

Функция записывается следующим образом:

\[ out(net) = \tanh\left(\frac{net}{a}\right) \]

В данной выше формуле параметр ​\(a \) ​ также определяет степень крутизны графика этой функции.

А вот так выглядит график этой функции.

Как видите, он похож на график логистической функции. Гиперболический тангенс обладает всеми полезными свойствами, которые имеет и логистическая функция.

Что мы узнали?

Теперь вы получили полное представление о внутренней структуре искусственного нейрона. Я еще раз приведу краткое описание его работы.

У нейрона есть входы. На них подаются сигналы в виде чисел. Каждый вход имеет свой вес (тоже число). Сигналы на входе умножаются на соответствующие веса. Получаем набор «взвешенных» входных сигналов.

Затем взвешенная сумма преобразуется функцией активации и мы получаем выход нейрона .

Сформулируем теперь самое короткое описание работы нейрона – его математическую модель:

Математическая модель искусственного нейрона с ​\(n \) ​ входами:

где
​\(\phi \) ​ – функция активации
\(\sum\limits^n_{i=1}x_iw_i \) ​ – взвешенная сумма, как сумма ​\(n \) ​ произведений входных сигналов на соответствующие веса.

Виды ИНС

Мы разобрались со структурой искусственного нейрона. Искусственные нейронные сети состоят из совокупности искусственных нейронов. Возникает логичный вопрос – а как располагать/соединять друг с другом эти самые искусственные нейроны?

Как правило, в большинстве нейронных сетей есть так называемый входной слой , который выполняет только одну задачу – распределение входных сигналов остальным нейронам. Нейроны этого слоя не производят никаких вычислений.

Однослойные нейронные сети

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

Выглядит однослойная нейронная сеть следующим образом:

На этой картинке входной слой обозначен кружками (он не считается за слой нейронной сети), а справа расположен слой обычных нейронов.

Нейроны соединены друг с другом стрелками. Над стрелками расположены веса соответствующих связей (весовые коэффициенты).

Однослойная нейронная сеть (Single-layer neural network ) - сеть, в которой сигналы от входного слоя сразу подаются на выходной слой, который и преобразует сигнал и сразу же выдает ответ.

Многослойные нейронные сети

Такие сети, помимо входного и выходного слоев нейронов, характеризуются еще и скрытым слоем (слоями). Понять их расположение просто – эти слои находятся между входным и выходным слоями.

Такая структура нейронных сетей копирует многослойную структуру определенных отделов мозга.

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

Многослойные нейронные сети обладают гораздо большими возможностями, чем однослойные.

Работу скрытых слоев нейронов можно сравнить с работой большого завода. Продукт (выходной сигнал) на заводе собирается по стадиям. После каждого станка получается какой-то промежуточный результат. Скрытые слои тоже преобразуют входные сигналы в некоторые промежуточные результаты.

Многослойная нейронная сеть (Multilayer neural network ) - нейронная сеть, состоящая из входного, выходного и расположенного(ых) между ними одного (нескольких) скрытых слоев нейронов.

Сети прямого распространения

Можно заметить одну очень интересную деталь на картинках нейросетей в примерах выше.

Во всех примерах стрелки строго идут слева направо, то есть сигнал в таких сетях идет строго от входного слоя к выходному.

Сети прямого распространения (Feedforward neural network ) (feedforward сети) - искусственные нейронные сети, в которых сигнал распространяется строго от входного слоя к выходному. В обратном направлении сигнал не распространяется.

Такие сети широко используются и вполне успешно решают определенный класс задач: прогнозирование, кластеризация и распознавание.

Однако никто не запрещает сигналу идти и в обратную сторону.

Сети с обратными связями

В сетях такого типа сигнал может идти и в обратную сторону. В чем преимущество?

Дело в том, что в сетях прямого распространения выход сети определяется входным сигналом и весовыми коэффициентами при искусственных нейронах.

А в сетях с обратными связями выходы нейронов могут возвращаться на входы. Это означает, что выход какого-нибудь нейрона определяется не только его весами и входным сигналом, но еще и предыдущими выходами (так как они снова вернулись на входы).

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

Сети с обратными связями (Recurrent neural network ) - искусственные нейронные сети, в которых выход нейрона может вновь подаваться на его вход. В более общем случае это означает возможность распространения сигнала от выходов к входам.

Обучение нейронной сети

Теперь давайте чуть более подробно рассмотрим вопрос обучения нейронной сети. Что это такое? И каким образом это происходит?

Что такое обучение сети?

Искусственная нейронная сеть – это совокупность искусственных нейронов. Теперь давайте возьмем, например, 100 нейронов и соединим их друг с другом. Ясно, что при подаче сигнала на вход, мы получим что-то бессмысленное на выходе.

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

Что мы можем менять в нейронной сети?

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

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

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

Остается только один вариант – менять веса связей .

Обучение нейронной сети (Training) - поиск такого набора весовых коэффициентов, при котором входной сигнал после прохода по сети преобразуется в нужный нам выходной.

Такой подход к термину «обучение нейронной сети» соответствует и биологическим нейросетям. Наш мозг состоит из огромного количества связанных друг с другом нейросетей. Каждая из них в отдельности состоит из нейронов одного типа (функция активации одинаковая). Мы обучаемся благодаря изменению синапсов – элементов, которые усиливают/ослабляют входной сигнал.

Однако есть еще один важный момент. Если обучать сеть, используя только один входной сигнал, то сеть просто «запомнит правильный ответ». Со стороны будет казаться, что она очень быстро «обучилась». И как только вы подадите немного измененный сигнал, ожидая увидеть правильный ответ, то сеть выдаст бессмыслицу.

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

Именно с этой целью и создаются обучающие выборки .

Обучающая выборка (Training set ) - конечный набор входных сигналов (иногда вместе с правильными выходными сигналами), по которым происходит обучение сети.

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

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

Тестовая выборка (Testing set ) - конечный набор входных сигналов (иногда вместе с правильными выходными сигналами), по которым происходит оценка качества работы сети.

Мы поняли, что такое «обучение сети» – подбор правильного набора весов. Теперь возникает вопрос – а как можно обучать сеть? В самом общем случае есть два подхода, приводящие к разным результатам: обучение с учителем и обучение без учителя.

Обучение с учителем

Суть данного подхода заключается в том, что вы даете на вход сигнал, смотрите на ответ сети, а затем сравниваете его с уже готовым, правильным ответом.

Важный момент. Не путайте правильные ответы и известный алгоритм решения! Вы можете обвести пальцем лицо на фото (правильный ответ), но не сможете сказать, как это сделали (известный алгоритм). Тут такая же ситуация.

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

Обучение с учителем (Supervised learning ) - вид обучения сети, при котором ее веса меняются так, чтобы ответы сети минимально отличались от уже готовых правильных ответов.

Где взять правильные ответы?

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

Если мы хотим, чтобы сеть прогнозировала рост/падение цен, то обучающую выборку надо делать, основываясь на прошлых данных. В качестве входных сигналов можно брать определенные дни, общее состояние рынка и другие параметры. А в качестве правильных ответов – рост и падение цены в те дни.

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

Обучение без учителя

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

Что же происходит при таком обучении сети? Оказывается, что при таком «обучении» сеть начинает выделять классы подаваемых на вход сигналов. Короче говоря – сеть начинает кластеризацию.

Например, вы демонстрируете сети конфеты, пирожные и торты. Вы никак не регулируете работу сети. Вы просто подаете на ее входы данные о данном объекте. Со временем сеть начнет выдавать сигналы трех разных типов, которые и отвечают за объекты на входе.

Обучение без учителя (Unsupervised learning ) - вид обучения сети, при котором сеть самостоятельно классифицирует входные сигналы. Правильные (эталонные) выходные сигналы не демонстрируются.

Выводы

В этой главе вы узнали все о структуре искусственного нейрона, а также получили полное представление о том, как он работает (и о его математической модели).

Более того, вы теперь знаете о различных видах искусственных нейронных сетей: однослойные, многослойные, а также feedforward сети и сети с обратными связями.

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

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

Вопросы и задачи

Материал этой главы надо знать очень хорошо, так как в ней содержатся основные теоретические сведения по искусственным нейронным сетям. Обязательно добейтесь уверенных и правильных ответов на все нижеприведенные вопросы и задачи.

Опишите упрощения ИНС по сравнению с биологическими нейросетями.

1. Сложную и запутанную структуру биологических нейронных сетей упрощают и представляют в виде схем. Оставляют только модель обработки сигнала.

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

Функцию активации часто обозначают за ​\(\phi(net) \) ​.

Запишите математическую модель искусственного нейрона.

Искусственный нейрон c ​\(n \) ​ входами преобразовывает входной сигнал (число) в выходной сигнал (число) следующим образом:

\[ out=\phi\left(\sum\limits^n_{i=1}x_iw_i\right) \]

Чем отличаются однослойные и многослойные нейронные сети?

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

Многослойные нейронные сети, помимо входного и выходного слоев, имеют еще и скрытые слои. Эти скрытые слои проводят какие-то внутренние промежуточные преобразования, наподобие этапов производства продуктов на заводе.

В чем отличие feedforward сетей от сетей с обратными связями?

Сети прямого распространения (feedforward сети) допускают прохождение сигнала только в одном направлении – от входов к выходам. Сети с обратными связями данных ограничений не имеют, и выходы нейронов могут вновь подаваться на входы.

Что такое обучающая выборка? В чем ее смысл?

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

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

Что понимают под обучением сети?

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

Что такое обучение с учителем и без него?

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

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

Была представлена модель нервной системы, опишу теорию и принципы, которые легли в её основу.

Теория основана на анализе имеющейся информации о биологическом нейроне и нервной системе из современной нейробиологии и физиологии мозга.

Сначала приведу краткую информацию об объекте моделирования, вся информация изложена далее, учтена и использована в модели.

НЕЙРОН

Нейрон является основным функциональным элементом нервной системы, он состоит из тела нервной клетки и её отростков. Существуют два вида отростков: аксоны и дендриты. Аксон – длинный покрытый миелиновой оболочкой отросток, предназначенный для передачи нервного импульса на далекие расстояния. Дендрит – короткий, ветвящийся отросток, благодаря которым происходит взаимосвязь с множеством соседних клеток.

ТРИ ТИПА НЕЙРОНОВ

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

В зависимости от конфигурации выделяют три типа нейронов:

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

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

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

Обычно в статьях по искусственным нейронным сетям оговаривается наличие только моторных нейронов (с центробежным аксоном), которые связаны в слои иерархической структуры. Подобное описание применимо к биологической нервной системе, но является своего рода частным случаем, речь идет о структурах, базовых условных рефлексов. Чем выше в эволюционном значении нервная система, тем меньше в ней превалируют структуры типа «слои» или строгая иерархия.

ПЕРЕДАЧА НЕРВНОГО ВОЗБУЖДЕНИЯ

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

СИНАПС

При активации синапса он выбрасывает порции медиатора, эти порции могут варьироваться, чем больше выделится медиатора, тем вероятнее, что принимаемая сигнал нервная клетка будет активирована. Медиатор, преодолевая синоптическую щель, попадает на постсинаптическую мембрану, на которой расположены рецепторы, реагирующие на медиатор. Далее медиатор может быть разрушен специальным разрушающим ферментом, либо поглощен обратно синапсом, это происходит для сокращения времени действия медиатора на рецепторы.
Так же помимо побудительного воздействия существуют синапсы, оказывающие тормозящее воздействие на нейрон. Обычно такие синапсы принадлежат определенным нейронам, которые обозначаются, как тормозящие нейроны.
Синапсов связывающих нейрон с одной и той же целевой клеткой, может быть множество. Для упрощения примем, всю совокупность, оказываемого воздействия одним нейроном, на другой целевой нейрон за синапс с определённой силой воздействия. Главной характеристикой синапса будет, является его сила.

СОСТОЯНИЕ ВОЗБУЖДЕНИЯ НЕЙРОНА

В состоянии покоя мембрана нейрона поляризована. Это означает, что по обе стороны мембраны располагаются частицы, несущие противоположные заряды. В состоянии покоя наружная поверхность мембраны заряжена положительно, внутренняя – отрицательно. Основными переносчиками зарядов в организме являются ионы натрия (Na+), калия (K+) и хлора (Cl-).
Разница между зарядами поверхности мембраны и внутри тела клетки составляет мембранный потенциал. Медиатор вызывает нарушения поляризации – деполяризацию. Положительные ионы снаружи мембраны устремляются через открытые каналы в тело клетки, меняя соотношение зарядов между поверхностью мембраны и телом клетки.


Изменение мембранного потенциала при возбуждении нейрона

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

ТЕОРИЯ ЭЛЕКТРОМАГНИТНОГО ВЗАИМОДЕЙСТВИЯ

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

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

Какое же направление для передачи возбуждения является предпочтительным? В различных экспериментах связанных с образованием безусловных рефлексов, можно определить, что в нервной системе образуются пути или рефлекторные дуги, которые связывают активируемые участки мозга при формировании безусловных рефлексов, создаются ассоциативные связи. Значит, нейрон должен передавать возбуждения к другим активным участкам мозга, запоминать направление и использовать его в дальнейшем.
Представим вектор начало, которого находится в центре активной клети, а конец направлен в точку паттерна определённую для данного нейрона. Обозначим, как вектор предпочитаемого направления распространения возбуждения (T, trend). В биологическом нейроне вектор Т может проявляться в структуре самой нейроплазмы, возможно, это каналы для движения ионов в теле клетки, или другие изменения в структуре нейрона.
Нейрон обладает свойством памяти, он может запоминать вектор Т, направление этого вектора, может меняться и перезаписываться в зависимости от внешних факторов. Степень с которой вектор Т может подвергается изменениям, называется нейропластичность.
Этот вектор в свою очередь оказывает влияние на работу синапсов нейрона. Для каждого синапса определим вектор S начало, которого находится в центре клетки, а конец направлен в центр целевого нейрона, с которым связан синапс. Теперь степень влияния для каждого синапса можно определить следующим образом: чем меньше угол между вектором T и S, тем больше синапс будет, усиливается; чем меньше угол, тем сильнее синапс будет ослабевать и возможно может прекратить передачу возбуждения. Каждый синапс имеет независимое свойство памяти, он помнит значение своей силы. Указанные значения изменяются при каждой активизации нейрона, под влиянием вектора Т, они либо увеличиваются, либо уменьшаются на определённое значение.

МАТЕМАТИЧЕСКАЯ МОДЕЛЬ

Входные сигналы (x1, x2,…xn) нейрона представляют собой вещественные числа, которые характеризуют силу синапсов нейронов, оказывающих воздействие на нейрон.
Положительное значение входа означает побудительное воздействие, оказываемое на нейрон, а отрицательное значение – тормозящее воздействие.
Для биологического нейрона не имеет значение, откуда поступил возбуждающий его сигнал, результат его активности будет идентичен. Нейрон будет активизирован, когда сумма воздействий на него будет превышать определённое пороговое значение. Поэтому, все сигналы проходят через сумматор (а), а поскольку нейроны и нервная система работают в реальном времени, следовательно, воздействие входов должно оцениваться в короткий промежуток времени, то есть воздействие синапса имеет временный характер.
Результат сумматора проходит пороговую функцию (б), если сумма превосходит пороговое значение, то это приводит к активности нейрона.
При активации нейрон сигнализирует о своей активности системе, передовая информацию о своём положении в пространстве нервной системы и заряде, изменяемом во времени (в).
Через определённое время, после активации нейрон передает возбуждение по всем имеющимся синапсам, предварительно производя пересчет их силы. Весь период активации нейрон перестает реагировать на внешние раздражители, то есть все воздействия синапсов других нейронов игнорируются. В период активации входит так же период восстановления нейрона.
Происходит корректировка вектора Т (г) с учётом значения точки паттерна Pp и уровнем нейропластичности. Далее происходит переоценка значений всех сил синапсов в нейроне(д).
Обратите внимание, что блоки (г) и (д) выполняются параллельно с блоком (в).

ЭФФЕКТ ВОЛНЫ

Если внимательно проанализировать предложенную модель, то можно увидеть, что источник возбуждения должен оказывать большее влияние на нейрон, чем другой удалённый, активный участок мозга. Следовательно возникает вопрос: почему же все равно происходит передача в направлении другого активного участка?
Данную проблему я смог определить, только создав компьютерную модель. Решение подсказал график изменения мембранного потенциала при активности нейрона.


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

КОГНИТИВНАЯ КАРТА

Используя теорию электромагнитного взаимодействия, можно объяснить многие явления и сложные процессы, протекающие в нервной системе. К примеру, одним из последних открытий, которое широко обсуждается в науках о мозге, является открытие когнитивных карт в гиппокампе.
Гиппокамп – это отдел мозга, которому отвечает за кратковременную память. Эксперименты на крысах выявили, что определённому месту в лабиринте соответствует своя локализованная группа клеток в гиппокампе, причем, не имеет значение, как животное попадает в это место, все равно будет активирован соответствующий этому месту участок нервной ткани. Естественно, животное должно помнить данный лабиринт, не стоит рассчитывать на топологическое соответствие пространства лабиринта и когнитивной карты.

Каждое место в лабиринте представляется в мозге, как совокупность раздражителей различного характера: запахи, цвет стен, возможные примечательные объекты, характерные звуки и т. д. Указанные раздражители отражаются на коре, различных представительствах органов чувств, в виде всплесков активности в определённых комбинациях. Мозг одновременно обрабатывает информацию в нескольких отделах, зачастую информационные каналы разделяются, одна и та же информация поступает в различные участки мозга.


Активация нейронов места в зависимости от положения в лабиринте (активность разных нейронов показана разным цветом).

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

Заключение

У многих возникнет вопрос, где в данной работе предпосылки к элементу разумности или проявления высшей интеллектуальной деятельности?
Важно отметить, что феномен человеческого поведения, есть следствие функционирования биологической структуры. Следовательно, чтобы имитировать разумное поведение, необходимо хорошо понимать принципы и особенности функционирования биологических структур. К сожалению, в науке биологии пока не представлен четкий алгоритм: как работает нейрон, как понимает, куда необходимо отращивать свои дендриты, как настроить свои синапсы, что бы в нервной системе смог сформироваться простой условный рефлекс, на подобие тех, которые демонстрировал и описывал в своих работах академик И.П. Павлов.
С другой стороны в науке об искусственном интеллекте, в восходящем (биологическом) подходе, сложилось парадоксальная ситуация, а именно: когда используемые в исследованиях модели основаны на устаревших представлениях о биологическом нейроне, консерватизм, в основе которого берётся персептрон без переосмысления его основных принципов, без обращения к биологическому первоисточнику, придумывается все более хитроумные алгоритмы и структуры, не имеющих биологических корней.
Конечно, никто не уменьшает достоинств классических нейронных сетей, которые дали множество полезных программных продуктов, но игра с ними не является путем к созданию интеллектуально действующей системы.
Более того, не редки заявления, о том, что нейрон подобен мощной вычислительной машине, приписывают свойство квантовых компьютеров. Из-за этой сверхсложности, нервной системе приписывается невозможность её повторения, ведь это соизмеримо с желанием смоделировать человеческую душу. Однако, в реальности природа идет по пути простоты и элегантности своих решений, перемещение зарядов на мембране клетки может служить, как для передачи нервного возбуждения, так и для трансляции информации о том, где происходит данная передача.
Несмотря на то, что указанная работа демонстрирует, как образуются элементарные условные рефлексы в нервной системе, она приближает к пониманию того, что такое интеллект и разумная деятельность.

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

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

Теги:

  • нейронные сети
  • искусственный интеллект
  • мозг
Добавить метки

Адаптивные информационные системы

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

Адекватно отражать знания проблемной области в каждый момент времени;

Быть пригодными для легкой и быстрой реконструкции при изменении проблемной среды.

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

В процессе разработки адаптивных информационных систем применяется оригинальное или типовое проектирование. Оригинальное проектирование предполагает разработку информационной системы с «чистого листа» на основе сформулированных требований. Реализация этого подхода основана на использовании систем автоматизированного проектирования, или CASE-технологий (Designer2000, SilverRun, Natural Light Storm и др.).

При типовом проектировании осуществляется адаптация типовых разработок к особенностям проблемной области. Для реализации этого подхода применяются инструментальные средства компонентного (сборочного) проектирования информационных систем (R/3, BAAN IV, Prodis и др.).

Главное отличие подходов состоит в том, что при использовании CASE-технологии каждый раз при изменении проблемной области выполняется генерация программного обеспечения в целом, а при использовании сборочной технологии – конфигурирование модулей и только в редких случаях – их переработка.

Тема 2. Искусственные нейронные сети. Архитектура и классификация нейронных сетей.

Представление о детальном устройстве головного мозга появилось только около ста лет назад. В 1888 г. испанский доктор Рамони Кайал экспериментально показал, что мозговая ткань состоит из большого числа связанных друг с другом однотипных узлов – нейронов. Более поздние исследования при помощи электронного микроскопа показали, что все нейроны, независимо от типа, имеют схожую организационную структуру (рис. 2.1). Естественная нервная клетка (нейрон) состоит из тела (сомы), содержащего ядро, и отростков – дендритов, по которым в нейрон поступают входные сигналы. Один из отростков, ветвящийся на конце, служит для передачи выходных сигналов данного нейрона другим нервным клеткам. Он называется аксоном. Соединение аксона с дендритом другого нейрона называется синапсом. Нейрон возбуждается и передает сигнал через аксон, если число пришедших по дендритам возбуждающих сигналов больше, чем число тормозящих.


Рисунок 2.1 – Строение биологического нейрона.

В 1943 г. В. Маккаллох и В. Питтс предложили систему обработки информации в виде сети, состоящей из простых вычислителей, созданных по принципу биологического нейрона. Искусственная нейронная сеть (ИНС) представляет собой совокупность простых вычислительных элементов (процессоров) – искусственных нейронов, соединенных некоторым образом так, чтобы между ними обеспечивалось взаимодействие. Искусственные нейроны характеризуются правилом комбинирования входных сигналов и передаточной функцией, позволяющим вычислить выходной сигнал.

Рисунок 2.2 – Кибернетическая модель нейрона.

Информация, поступающая на вход нейрона, суммируется с учетом весовых коэффициентов сигналов:

, (2.1)

где w 0 – сдвиг (порог, смещение) нейрона.

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

Сдвиг обычно интерпретируется как связь, исходящая от элемента, активность которого всегда равна 1. Обычно, для удобства входной вектор расширяется добавлением этого сигнала до х = (1,х 0 ,...,x n) и порог w 0 вносится под знак суммы:

Передаточная функция, или функция активации нейрона, является правилом, согласно которому взвешенная сумма поступивших сигналов P преобразуется в выходной сигнал нейрона Y, который передается другим нейронам сети, т. е. Y=f(P). На рисунке 2.3 показаны графики наиболее распространённых функций активации нейронов.

Пороговая функция пропускает информа­цию только в том случае, если алгебраическая сумма входных сигналов превышает некоторую постоянную величину Р*, на­пример:

Пороговая функция не обеспечивает достаточной гибкости ИНС при обучении. Если значение вычисленного потенциала не достигает заданного порога, то выходной сигнал не формируется и нейрон «не срабатывает». Это приводит к снижению интенсив­ности выходного сигнала нейрона и, как следствие, к формиро­ванию невысокого значения потенциала взвешенных входов в следующем слое нейронов.

Линейная функция дифференцируема и легко вычисля­ется, что в ряде случаев позволяет уменьшить ошибки выходных сигналов в сети, так как передаточная функция сети также явля­ется линейной. Однако она не универсальна и не обеспечивает решения многих задач.

Определенным компромиссом между линейной и ступенча­той функциями является сигмоидальная функция активации Y = 1/(1+exp(-kP)), которая удачно моделирует передаточную харак­теристику биологического нейрона (рис. 3.3, в).

Рисунок 2.3 – Функции переноса искусственных нейронов:

а) линейная; б) ступенчатая; в) сигмоидальная.

Коэффициент k определяет крутизну нелинейной функции: чем больше k, тем ближе сигмоидальная функция к пороговой; чем меньше k, тем она ближе k линейной. Тип функции переноса выбирается с учетом конкретной зада­чи, решаемой с применением нейронных сетей. Например, в за­дачах аппроксимации и классификации предпочтение отдают сигмоидальной кривой.

Архитектура и классификация ИНС

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

В 1958 г. Фрэнк Розенблатт предложил следующую модель нейронной сети – персептрона. Персептрон Розенблатта (рис. 2.4) состоит из k нейронов, имеет d входов, k выходов и только один слой настраиваемых весов w ij .

Рисунок 2.4 – Персептрон Розенблатта.

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

Персептрон способен решать линейные задачи. Число входов сети определяет размерность пространства, из которого выбираются входные данные: для двух признаков пространство оказывается двумерным, для трех – трехмерным, а для d признаков – d-мерным. Если прямая или гиперплоскость в пространстве входных данных может разделить все образцы на соответствующие им классы, то проблема является линейной, в противном случае – нелинейной. На рисунке 2.5 показаны множества точек на плоскости, причём в случае а) граница линейная, в случае – б) нелинейная.

Рисунок 2.5 – Геометрическое представление линейной (а) и

нелинейной (б) задач.

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

Рисунок 2.6 – Схема многослойного персептрона.

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

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

Рисунок 2.7 – Классификация распространённых видов ИНС.

Тема 3. Сети типа персептрон

Задача классификации образов. Обучение с учителем

Ф. Розенблатт предложил использовать персептрон для задач классификации. Многие приложения можно интерпретировать, как проблемы классификации. Например, оптическое распознавании символов. Отсканированные символы ассоциируются с соответствующими им классами. Имеется немало вариантов изображения буквы "Н" даже для одного конкретного шрифта – символ может оказаться, например, смазанным, – но все эти изображения должны принадлежать классу "Н".

Когда известно, к какому классу относится каждый из учебных примеров, можно использовать стратегию обучения с учителем. Задачей для сети является ее обучение тому, как сопоставить предъявляемый сети образец с контрольным целевым образцом, представляющим нужный класс. Иными словами, знания об окружающей среде представляются нейронной сети в виде пар "вход-выход". Например, сети можно предъявить изображение буквы "Н" и обучить сеть тому, что при этом соответствующий "Н" выходной элемент должен быть включен, а выходные элементы, соответствующие другим буквам – выключены. В этом случае входной образец может быть набором значений, характеризующих пиксели изображения в оттенках серого, а целевой выходной образец – вектором, значения всех координат которого должны быть равными 0, за исключением координаты, соответствующей классу "Н", значение которой должно быть равным.

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

Рисунок 3.1 – Концепция обучения ИНС с учителем.

Алгоритм обучения перцептрона включает следующие шаги:

· Системе предъявляется эталонный образ.

· Если результат распознавания совпадает с заданным, весовые коэффициенты связей не изменяются.

· Если ИНС неправильно распознает результат, то весовым коэффициентам дается приращение в сторону повышения качества распознавания.

Рис. 2.2. Структура искусственного нейрона

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

Математическая модель нейрона:

, (2.1)

где s - результат суммирования (sum); w i - вес (weight) синапса, ; - компонент входного вектора (входной сигнал), ; b — значение смещения (bias); n - число входов нейрона; у - выходной сигнал нейрона; f — нелинейное преобразование (функция активации).

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

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

На входной сигнал s нелинейный преобразователь отвечает выходным сигналом f (s ), который представляет собой выход y нейрона. Примеры активационных функций представлены в табл. 2.1, а графики наиболее распространенных активационных функций – на рис. 2.2.

Таблица 2.1

Функции активации нейронов

Название

Область значений

Линейная

Полулинейная

Логистическая (сигмоидальная)

Гиперболический тангенс (сигмоидальная)

Экспоненциальная

Синусоидальная

Сигмоидальная (рациональная)

Шаговая (линейная с насыщением)

Пороговая

Модульная

логистическая функция или сигмоид (функция S -образного вида)(рис.


2.3):

. (2.3)

При уменьшении a сигмоид становится более пологим, в пределе при a = 0 вырождаясь в горизонтальную линию на уровне 0,5, при увеличении а сигмоид приближается к виду функции единичного скачка с порогом T . Из выражения для сигмоида очевидно, что выходное значение нейрона лежит в диапазоне (0, 1). Одно из ценных свойств сигмоидальной функции — простое выражение для ее производной, применение которой будет рассмотрено в дальнейшем:

. (2.4)

Рис. 2.3. Графики активационных функций: а – функция единичного скачка; б – линейный порог (гистерезис); в – сигмоид (логистическая функция), формула (3); г – сигмоид (гиперболический тангенс)

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

Разработка искусственных нейронных сетей началась в начале ХХ века, но только в последние 20 лет, когда вычислительные системы стали достаточно мощными, нейронные сети получили широкое распространение. Создание нейронных сетей было вызвано попытками понять принципы работы человеческого мозга и, без сомнения, это будет влиять и на дальнейшее их развитие. Однако, в сравнении с человеческим мозгом нейронная сеть сегодня представляют собой весьма упрощенную модель, но несмотря на это весьма успешно используются при решении самых различных задач. Хотя решение на основе нейронных сетей может выглядеть и вести себя как обычное программное обеспечение, они различны в принципе, поскольку большинство реализаций на основе нейронных сетей «обучается», а «не программируется»: сеть учиться выполнять задачу, а не программируется непосредственно.

На рисунке ниже приведена модель нейрона, лежащего в основе искусственных нейронных сетей.

В этой модели нейрона можно выделить три основных элемента:

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

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

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

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

Таким образом, математическая модель нейрона может быть представлена выражением:

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

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

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

1. Единичный скачок или жесткая пороговая функция

Простая кусочно-линейная функция. Если входное значение меньше порогового, то значение функции активации равно минимальному допустимому, иначе – максимально допустимому.

2. Линейный порог

Несложная кусочно-линейная функция. Имеет два линейных участка, где функция активации тождественно равна минимально допустимому и максимально допустимому значению и есть участок, на котором функция строго монотонно возрастает.

3. Логистическая функция (сигмоид)

Монотонно возрастающая всюду дифференцируемая -образная нелинейная функция с насыщением.

Определяется следующим выражением:

где a – параметр наклона сигмоидальной функции активации. Изменяя этот параметр, можно построить функции с различной крутизной.

4. Функция гиперболический тангенс, разновидность сигмоиды, задаваемая следующим выражением:

где a – это также параметр, влияющий на наклон сигмоидальной функции.

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

Функции активации типа единичного скачка и линейного порога встречаются довольно редко. В практических задачах почти всегда применяется сигмоидальная функция активации – логистическая или (чаще) гиперболический тангенс.

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

Таким образом, построение НС для решения конкретной задачи осуществляется в два этапа:

1) Выбор типа (архитектуры) нейронной сети.

2) Подбор весов (обучение) нейронной сети.

Можно выделить два основных подхода к созданию искусственных нейронных сетей:

1) Аппаратный – физическое моделирование, создание специализированных микросхем («нейрочипов»), плат расширения, компьютеров, реализующих все необходимые алгоритмы.

Преимущество : высокое быстродействие.

Недостатки : недостаточная гибкость, высокая стоимость аппаратных решений (в основном, в силу малосерийности их производства).

2) Программный – создание программ и инструментариев, рассчитанных на компьютеры традиционной архитектуры. Сети создаются в памяти компьютера, всю работу выполняют его собственные процессоры.

Преимущества : гибкость, невысокая стоимость аппаратных платформ, возможность применения стандартного математического ПО (например, Matlab, в составе которого имеется пакет для проектирования нейронных сетей Neural Networks Toolbox, или свободно распространяемого нейросимулятора NeuroPro).

Недостаток : в некоторых приложениях реального времени (особенно в тех, где требуется адаптивная подстройка весов нейронной сети в процессе ее функционирования на реальном объекте) может ощущаться нехватка быстродействия.

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

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

Сложность искусственных нейронных сетей, с которыми имеют дело современные исследователи, пока еще не идет ни в какое сравнение с биологическим прототипом. Количество нейронов в них обычно не превышает сотню (примерно такую же сложность имеет центральный нервный узел дождевого червя), в то время как сознание человека обеспечивается синхронной работой нескольких десятков миллиардов (!) нейронов. Проблема повышения вычислительной мощности искусственных сетей состоит в том, что при увеличении количества нейронов в сети время, необходимое на подстройку их весов (обучение) известными на сегодняшний день методами, возрастает в геометрической прогрессии. Таким образом, эксперимент по созданию нейронной сети, состоящей из тысячи и более нейронов, хотя и возможен технически (модель одного математического нейрона занимает в компьютерной памяти не более 1 килобайта), но не имеет реального смысла, так как период обучения такой сети может оказаться значительно больше времени жизни самого экспериментатора. Совершенно очевидно, что в человеческом мозге существуют некие механизмы «быстрого» обучения (предположительно связанные с динамическими взаимодействиями «нейронных ансамблей»), которые еще только предстоит открыть нейрофизиологам. Открытие таких механизмов несомненно обеспечит прорыв и в создании по-настоящему «разумных» искусственных нейронных сетей.

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