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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Схема искусственного нейрона
1.Нейроны, выходные сигналы которых поступают на вход данному
2.Сумматор входных сигналов
3.Вычислитель передаточной функции
4.Нейроны, на входы которых подаётся выходной сигнал данного
5.w_i — веса входных сигналов

Иску́сственный нейро́н (математический нейрон Маккалока — Питтса[en], формальный нейрон[1]) — узел искусственной нейронной сети, являющийся упрощённой моделью естественного нейрона. Математически, искусственный нейрон обычно представляют как некоторую нелинейную функцию от единственного аргумента — линейной комбинации всех входных сигналов. Данную функцию называют функцией активации[2] или функцией срабатывания, передаточной функцией. Полученный результат посылается на единственный выход. Такие искусственные нейроны объединяют в сети — соединяют выходы одних нейронов с входами других. Искусственные нейроны и сети являются основными элементами идеального нейрокомпьютера.[3]

Биологический прототип[править | править исходный текст]

Биологический нейрон состоит из тела диаметром от 3 до 100 мкм, содержащего ядро (с большим количеством ядерных пор) и другие органеллы (в том числе сильно развитый шероховатый ЭПР с активными рибосомами, аппарат Гольджи), и отростков. Выделяют два вида отростков. Аксон — обычно длинный отросток, приспособленный для проведения возбуждения от тела нейрона. Дендриты — как правило, короткие и сильно разветвлённые отростки, служащие главным местом образования влияющих на нейрон возбуждающих и тормозных синапсов (разные нейроны имеют различное соотношение длины аксона и дендритов). Нейрон может иметь несколько дендритов и обычно только один аксон. Один нейрон может иметь связи с 20-ю тысячами других нейронов. Кора головного мозга человека содержит 10—20 миллиардов нейронов.

История развития[править | править исходный текст]

Математическая модель искусственного нейрона была предложена У. Маккалоком и У. Питтсом вместе с моделью сети, состоящей из этих нейронов. Авторы показали, что сеть на таких элементах может выполнять числовые и логические операции[4]. Практически сеть была реализована Фрэнком Розенблаттом в 1958 году как компьютерная программа, а впоследствии как электронное устройство — перцептрон. Первоначально нейрон мог оперировать только с сигналами логического нуля и логической единицы[5], поскольку был построен на основе биологического прототипа, который может пребывать только в двух состояниях — возбужденном или невозбужденном. Развитие нейронных сетей показало, что для расширения области их применения необходимо, чтобы нейрон мог работать не только с бинарными, но и с непрерывными (аналоговыми) сигналами. Такое обобщение модели нейрона было сделано Уидроу и Хоффом[6], которые предложили в качестве функции срабатывания нейрона использовать логистическую кривую.

Связи между искусственными нейронами[править | править исходный текст]

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

Математическая модель[править | править исходный текст]

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

y = f(u), где u=\sum_{i=1}^{n} w_i x_i + w_0 x_0

Здесь x_i и w_i — соответственно сигналы на входах нейрона и веса входов, функция u называется индуцированным локальным полем, а f(u) — передаточной функцией. Возможные значения сигналов на входах нейрона считают заданными в интервале [0,1]. Они могут быть либо дискретными (0 или 1), либо аналоговыми. Дополнительный вход x_0 и соответствующий ему вес w_0 используются для инициализации нейрона[8]. Под инициализацией подразумевается смещение активационной функции нейрона по горизонтальной оси, то есть формирование порога чувствительности нейрона[5]. Кроме того, иногда к выходу нейрона специально добавляют некую случайную величину, называемую сдвигом. Сдвиг можно рассматривать как сигнал на дополнительном, всегда нагруженном, синапсе.

Передаточная функция нейрона[править | править исходный текст]

Передаточная функция f(u) определяет зависимость сигнала на выходе нейрона от взвешенной суммы сигналов на его входах. В большинстве случаев она является монотонно возрастающей и имеет область значений [-1,1] или [0,1], однако существуют исключения. Также для некоторых алгоритмов обучения сети необходимо, чтобы она была непрерывно дифференцируемой на всей числовой оси[8]. Искусственный нейрон полностью характеризуется своей передаточной функцией. Использование различных передаточных функций позволяет вносить нелинейность в работу нейрона и в целом нейронной сети.

Классификация нейронов[править | править исходный текст]

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

  • Входные нейроны — принимают исходный вектор, кодирующий входной сигнал. Как правило, эти нейроны не выполняют вычислительных операций, а просто передают полученный входной сигнал на выход, возможно, усилив или ослабив его;
  • Выходные нейроны — представляют из себя выходы сети. В выходных нейронах могут производиться какие-либо вычислительные операции;
  • Промежуточные нейроны — выполняют основные вычислительные операции[9].

Основные типы передаточных функций[править | править исходный текст]

Линейная функция активации с насыщением

Линейная передаточная функция[править | править исходный текст]

Сигнал на выходе нейрона линейно связан со взвешенной суммой сигналов на его входе.

f(x) = tx,

где t — параметр функции. В искусственных нейронных сетях со слоистой структурой нейроны с передаточными функциями такого типа, как правило, составляют входной слой. Кроме простой линейной функции могут быть использованы её модификации. Например полулинейная функция (если её аргумент меньше нуля, то она равна нулю, а в остальных случаях, ведет себя как линейная) или шаговая (линейная функция с насыщением), которую можно выразить формулой[10]:

f(x) = \begin{cases}0 & \text{if } x \leq 0\\1 & \text{if } x \geq 1\\x & \text{else}\end{cases}

При этом возможен сдвиг функции по обеим осям (как изображено на рисунке).

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

Пороговая функция активации

Пороговая передаточная функция[править | править исходный текст]

Другое название — функция Хевисайда. Представляет собой перепад. До тех пор пока взвешенный сигнал на входе нейрона не достигает некоторого уровня T — сигнал на выходе равен нулю. Как только сигнал на входе нейрона превышает указанный уровень — выходной сигнал скачкообразно изменяется на единицу. Самый первый представитель слоистых искусственных нейронных сетей — перцептрон[11] состоял исключительно из нейронов такого типа[5]. Математическая запись этой функции выглядит так:

f(x) = \begin{cases}1 & \text{if } x \geq T\\0 & \text{else}\end{cases}

Здесь T = -w_0x_0 — сдвиг функции активации относительно горизонтальной оси, соответственно под x следует понимать взвешенную сумму сигналов на входах нейрона без учёта этого слагаемого. Ввиду того, что данная функция не является дифференцируемой на всей оси абсцисс, её нельзя использовать в сетях, обучающихся по алгоритму обратного распространения ошибки и другим алгоритмам, требующим дифференцируемости передаточной функции.

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

Сигмоидальная передаточная функция[править | править исходный текст]

Один из самых часто используемых, на данный момент, типов передаточных функций. Введение функций сигмоидального типа было обусловлено ограниченностью нейронных сетей с пороговой функцией активации нейронов — при такой функции активации любой из выходов сети равен либо нулю, либо единице, что ограничивает использование сетей не в задачах классификации. Использование сигмоидальных функций позволило перейти от бинарных выходов нейрона к аналоговым[12]. Функции передачи такого типа, как правило, присущи нейронам, находящимся во внутренних слоях нейронной сети.

Логистическая функция[править | править исходный текст]

Математически логистическую функцию функцию можно выразить так:

\sigma(x) = \frac {1}{(1+\exp (-tx))}

Здесь t — это параметр функции, определяющий её крутизну. Когда t стремится к бесконечности, функция вырождается в пороговую. При t = 0 сигмоида вырождается в постоянную функцию со значением 0,5. Область значений данной функции находится в интервале (0,1). Важным достоинством этой функции является простота её производной:

\cfrac{d\sigma(x)}{dx} = t f(x) (1-f(x))

То, что производная этой функции может быть выражена через её значение облегчает использование этой функции при обучении сети по алгоритму обратного распространения[13]. Особенностью нейронов с такой передаточной характеристикой является то, что они усиливают сильные сигналы существенно меньше, чем слабые, поскольку области сильных сигналов соответствуют пологим участкам характеристики. Это позволяет предотвратить насыщение от больших сигналов[14].

Гиперболический тангенс[править | править исходный текст]

Использование функции гиперболического тангенса

th(Ax) = \frac{\exp (Ax) - \exp (-Ax)}{\exp (Ax) + \exp (-Ax)}

отличается от рассмотренной выше логистической кривой тем, что его область значений лежит в интервале (-1;1). Так как верно соотношение

th(\frac{A}{2}x) = 2\sigma(x)-1,

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

Радиально-базисная функция передачи[править | править исходный текст]

Радиально-базисная функция передачи (RBF) принимает в качестве аргумента расстояние между входным вектором и некоторым наперед заданным центром активационной функции. Значение этой функции тем выше, чем ближе входной вектор к центру[15]. В качестве радиально-базисной можно, например, использовать функцию Гаусса:

y=\exp(-\frac{(S-R)^2}{2\sigma^ 2}).

Здесь S = ||\mathbf{X}-\mathbf{C}|| — расстояние между центром \mathbf{C} и вектором входных сигналов \mathbf{X}. Скалярный параметр \sigma определяет скорость спадания функции при удалении вектора от центра и называется шириной окна, параметр R определяет сдвиг активационной функции по оси абсцисс. Сети с нейронами, использующими такие функции, называются RBF-сетями. В качестве расстояния между векторами могут быть использованы различные метрики[16], обычно используется евклидово расстояние:

S = \sqrt{ \sum_{j=1}^{N} { (x_j-c_j)^2 } }.

Здесь x_j — j-я компонента вектора, поданного на вход нейрона, а c_j — j-я компонента вектора, определяющего положение центра передаточной функции. Соответственно, сети с такими нейронами называются вероятностными и регрессионными[17].

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

Другие функции передачи[править | править исходный текст]

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

  • Экспонента f(x) = \exp (-Ax);
  • Тригонометрический синус;
  • Модульная: f(x) = \left| x \right|;
  • Квадратичная.

Стохастический нейрон[править | править исходный текст]

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

f(u) = \begin{cases}1 & \text{с вероятностью} P(u) \\0 & \text{с вероятностью} 1-P(u)\end{cases},

где распределение вероятности P(u) обычно имеет вид сигмоида:

\sigma(u) = \frac {A(T)}{1+\exp (-u/T)},

a нормировочная константа A(T) вводится для условия нормализации распределения вероятности \int^1_0 \sigma(u) du = 1. Таким образом, нейрон активируется с вероятностью P(u). Параметр T — аналог температуры (но не температуры нейрона) и определяет беспорядок в нейронной сети. Если T устремить к 0, стохастический нейрон перейдет в обычный нейрон с передаточной функцией Хевисайда (пороговой функцией).

Моделирование формальных логических функций[править | править исходный текст]

Нейрон с пороговой передаточной функцией может моделировать различные логические функции. Изображения иллюстрируют, каким образом можно, задав веса входных сигналов и порог чувствительности, заставить нейрон выполнять конъюнкцию(логическое «И») и дизъюнкцию(логическое «ИЛИ») над входными сигналами, а также логическое отрицание входного сигнала[19]. Этих трех операций достаточно, чтобы смоделировать абсолютно любую логическую функцию любого числа аргументов.

Схема нейрона, настроенного на моделирование логического «И»  
Схема нейрона, настроенного на моделирование логического «ИЛИ»  
Схема нейрона, настроенного на моделирование логического «НЕ»  

См. также[править | править исходный текст]

Примечания[править | править исходный текст]

  1. Л. Г. Комарцова, А. В. Максимов «Нейрокомпьютеры», МГТУ им. Н. Э. Баумана, 2004 г., ISBN 5-7038-2554-7
  2. По аналогии с нейронами активации
  3. Миркес Е. М., Нейрокомпьютер. Проект стандарта. — Новосибирск: Наука, 1999. — 337 с. ISBN 5-02-031409-9
  4. В статье McCulloch W.S., Pitts W. A logical Calculus of Ideas Immanent in Nervous Activity — Bull. Mathematical Biophysics, 1943 online
  5. 1 2 3 Л. Н. Ясницкий, «Введение в искусственный интеллект», Изд. Академия, 2005 г., ISBN 5-7695-1958-4; стр.29
  6. В работе Widrow B., Hoff M.E. Adaptive switching circuits. 1960 IRE WESTCON Conferencion Record. — New York, 1960
  7. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.11
  8. 1 2 В. А. Терехов — Нейросетевые системы управления — с.12-13
  9. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.14
  10. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.12
  11. Очень часто в литературе можно встретить название персептрон
  12. Л. Н. Ясницкий — Введение в искусственный интеллект — с.34
  13. CIT forum — Нейрокомпьютеры — архитектура и реализация
  14. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.13
  15. Л. Н. Ясницкий — Введение в искусственный интеллект — с.77
  16. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.349
  17. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.348
  18. Text
  19. Л. Н. Ясницкий — Введение в искусственный интеллект — c.30

Литература[править | править исходный текст]