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

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Схема искусственного нейрона
1. Нейроны, выходные сигналы которых поступают на вход данному
2. Сумматор входных сигналов
3. Вычислитель передаточной функции
4. Нейроны, на входы которых подаётся выходной сигнал данного
5. [math]\displaystyle{ w_i }[/math] — веса входных сигналов

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

Биологический прототип

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

История развития

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

Связи между искусственными нейронами

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

Математическая модель

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

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

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

Передаточная функция нейрона

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

Классификация нейронов

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

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

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

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

Линейная передаточная функция

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

[math]\displaystyle{ f(x) = tx }[/math],

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

[math]\displaystyle{ f(x) = \begin{cases}0 & \text{if } x \leq 0\\1 & \text{if } x \geq 1\\x & \text{else}\end{cases} }[/math]

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

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

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

Пороговая передаточная функция

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

[math]\displaystyle{ f(x) = \begin{cases}1 & \text{if } x \geq T\\0 & \text{else}\end{cases} }[/math]

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

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

Сигмоидальная передаточная функция

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

Логистическая функция

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

[math]\displaystyle{ \sigma(x) = \frac {1}{(1+\exp (-tx))} }[/math]

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

[math]\displaystyle{ \cfrac{d\sigma(x)}{dx} = t \sigma(x) (1-\sigma(x)) }[/math]

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

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

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

[math]\displaystyle{ \operatorname{th}(Ax) = \frac {e^{Ax} - e^{-Ax}} {e^{Ax} + e^{-Ax}} }[/math]

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

[math]\displaystyle{ \operatorname{th}\left(\frac{t}{2}x\right) = 2\sigma(x)-1 }[/math],

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

Модифицированный гиперболический тангенс

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

[math]\displaystyle{ \operatorname{mth}x= \frac {e^{x} - e^{-x}} {e^{ax} + e^{-bx}}, (a,b \gt 1), }[/math]

масштабированной по оси ординат до интервала [-1;1] позволяет получить семейство сигмоидальных функций.

Радиально-базисная функция передачи

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

[math]\displaystyle{ y=\exp\left(-\frac{(S-R)^2}{2\sigma^ 2}\right) }[/math].

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

[math]\displaystyle{ S = \sqrt{ \sum_{j=1}^{N} { (x_j-c_j)^2 } } }[/math].

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

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

Другие функции передачи

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

Стохастический нейрон

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

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

где распределение вероятности [math]\displaystyle{ P(u) }[/math] обычно имеет вид сигмоида:

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

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

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

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

[math]\displaystyle{ f(u) = \begin{cases}1 & \text{if } u \geqslant T\\0 & \text{else}\end{cases} }[/math], где [math]\displaystyle{ u=\sum_{i=1}^{n} w_i x_i + 0 }[/math]

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

НЕ T -1,0
w -1,5
x 0 1
f 1 0
И T 1,5
w1 1,0
w2 1,0
x1 0 0 1 1
x2 0 1 0 1
f 0 0 0 1
ИЛИ T 0,5
w1 1,0
w2 1,0
x1 0 0 1 1
x2 0 1 0 1
f 0 1 1 1

См. также

Примечания

  1. Л. Г. Комарцова, А. В. Максимов «Нейрокомпьютеры», МГТУ им. Н. Э. Баумана, 2004 г., ISBN 5-7038-2554-7
  2. По аналогии с нейронами активации
  3. Миркес Е. М., Нейрокомпьютер. Проект стандарта. Архивная копия от 15 июня 2009 на Wayback Machine — Новосибирск: Наука, 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. 5,0 5,1 5,2 Ясницкий, 2005, с. 29.
  6. В работе Widrow B., Hoff M.E. Adaptive switching circuits. 1960 IRE WESTCON Conferencion Record. — New York, 1960
  7. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.11
  8. 8,0 8,1 В. А. Терехов — Нейросетевые системы управления — с.12-13
  9. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.14
  10. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.12
  11. Очень часто в литературе можно встретить название персептрон
  12. Ясницкий, 2005, с. 34.
  13. CIT forum — Нейрокомпьютеры — архитектура и реализация. Дата обращения: 16 ноября 2007. Архивировано 10 мая 2008 года.
  14. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.13
  15. Ясницкий, 2005, с. 77.
  16. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.349
  17. В. В. Круглов, В. В. Борисов — Искусственные нейронные сети. Теория и практика — с.348
  18. Text
  19. Ясницкий, 2005, с. 30.

Литература

  • Терехов В.А., Ефимов Д.В., Тюкин И.Ю. Нейросетевые системы управления. — 1-е. — Высшая школа, 2002. — С. 184. — ISBN 5-06-004094-1.
  • Круглов В. В., Борисов В. В. Искусственные нейронные сети. Теория и практика. — 1-е. — М.: Горячая линия - Телеком, 2001. — С. 382. — ISBN 5-93517-031-0.
  • Каллан Р. Основные концепции нейронных сетей = The Essence of Neural Networks First Edition. — 1-е. — «Вильямс», 2001. — С. 288. — ISBN 5-8459-0210-X.
  • Ясницкий Л. Н. Введение в искусственный интеллект. — 1-е. — Издательский центр «Академия», 2005. — С. 176. — ISBN 5-7695-1958-4.
  • Комарцова Л. Г., Максимов А. В. Нейрокомпьютеры. — 1-е. — Изд-во МГТУ им. Н.Э. Баумана, 2002. — С. 320. — ISBN 5-7038-1908-3.
  • Савельев А. В. Концепция многопроцессорного нейрона // Искусственный интеллект. Интеллектуальные и многопроцессорные системы. — Донецк-Таганрог- Минск, 2006. — С. 293-300.
  • Савельев А. В. Нейрокомпьютеры в изобретениях // журнал «Нейрокомпьютеры: разработка, применение»., Издательство "Радиотехника". — Москва, 2004. — № 2-3. — С. 33-49.
  • Lakhmi C. Jain; N.M. Martin Fusion of Neural Networks, Fuzzy Systems and Genetic Algorithms: Industrial Applications. — CRC Press, CRC Press LLC, 1998
  • Емельянов В. В., Курейчик В. В., Курейчик В. Н. Теория и практика эволюционного моделирования. — М: Физматлит, 2003.

Внешние ссылки