Авторы  Вадим Калинин
 

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

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

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

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

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

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

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

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

Датой появления концепции искусственного нейрона можно считать 1943 год. Именно тогда вышла легендарная статья Питса и Мак-Каллока "Логическое исчисление идей, имманентных в нервной деятельности".

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

Мак-Каллок - сияющий сорт интеллектуала-энциклопедиста. Он начал свою карьеру, как бакалавр искусств, стал впоследствии доктором медицины и венцом всему вместе с Питсом придумал искусственный нейрон.

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

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

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

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

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

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