Как я нейроны паял
Здравствуйте. Наверное, многие из вас слышали об искуcственном интеллекте и очевидно что это — важная тема, которая изменяет сегодня нашу жизнь. Над созданием ИИ работает множество учёных. На данный момент существуют два фундаментальных подхода: нейробиология и нейросети. Лично я считаю нейробиологию более перспективной, но менее развитой т.к. о том, как именно работают нейроны мы знаем сегодня всё ещё очень мало. Нейросети являются наиболее развитым подходом, который, однако фактически достиг пределов развития т.к. для улучшения результатов требуются всё большие и большие вычислительные ресурсы. Кроме того, его отношение к настоящим нейронным сетям и нейронам весьма опосредованное и представляет собой всего лишь приблизительную математическую модель.
Подойдём к вопросу иначе: если нейрон - это электрохимическая структура, то можем ли мы попытаться воспроизвести его химическую активность с помощью электронных компонентов? Другими словами, можем ли мы составить электрическую цепь аналогичную нейрону?
Cтроение
Итак, нейрон состоит из клеточного тела и специальных отростков - дендритов (в них поступает сигнал) и аксона (из него сигнал выходит). Между собой нейроны соединяются синапсами. Различают 5 видов нейронов: униполярный, псевдоуниполярный, биполярный, мультиполярный, безаксонный, каждый из которых имеет разное число отростков.
О функциях и строении нейронов мы знаем мало, но зато хорошо знаем о функции синапса - проведении сигнала только в одном направлении.
Вообще, они бывают двух видов: химические и электрические. Химические, проводят импульс только в одном направлении, они наиболее распространены. Электрические проводят импульс в обоих направлениях. Важная деталь в устройстве электрического синапса, заключается в том, что он соединяет не только внутренние части нейронов, но и внешние. Я считаю что ток идёт и внутри нейрона и снаружи, т.к. уже доказано, что внешняя часть электроположительна относительно внутренней. В дальнейших рассуждениях будем считать, что внешняя часть нейрона представляет минус, землю, а внутренняя плюс, сигнал.
Существует радиодеталь функция которой идентична химическому синапсу — это диод. Когда ток течёт только в одном направлении (от "плюса" к "минусу") диод не требуется. Но, если в каждом нейроне есть постоянно заряжающаяся и разряжающаяся часть, то чтобы при разрядке ток не пошёл в обратном направлении, он должен быть перекрыт синапсом.
Какая деталь могла бы смоделировать постоянную зарядку и разрядку? Такой деталью может послужить либо дроссель, либо конденсатор. Конечно, дроссель не мог бы сформироваться в настоящем нейроне т.к. катушка из проволоки имеет уже достаточно сложную форму для природного происхождения, но конденсатор — напротив, очень простая радиодеталь состоящая всего из двух проводящих пластин разделённых диэлектриком.
Скорее всего функцию конденсатора должно взять на себя клеточное тело. Конденсатор примечателен тем, что способен реализовать функцию памяти, ведь конденсатор способен держать заряд, а значит его естественная разрядка будет означать «забывание, очередная подача сигнала восстановит заряд.
Такая гипотеза имеет косвенное подтверждение в том факте, что область в которой мозг хранил бы память, так и не была найдена. Из чего можно сделать следующий вывод, что функция памяти осуществляется всеми видами нейронов, а как мы знаем: у всех видов нейронов имеется клеточное тело.
Униполярный нейрон
Униполярный нейрон имеет только один отросток - нейрит, выполняющий функции дендрита и аксона, т.е. сигнал по нему идёт в обе стороны. Предположим, что в униполярном нейроне одна пластина конденсатора будет соединена c нейритом, а другая с землёй. В таком случае наша модель (схема) сможет выполнять функцию памяти. Известно, что униполярные нейроны не встречаются отдельно, они всегда прикреплены к другим нейронам. Если основному нейрону не хватает ёмкости его клеточного тела (т.е. конденсатора), то к нему должен быть прикреплён униполярный. Выглядит логичным, что такая пара соединена электрическим синапсом, иначе бы это не работало.
Псевдоуниполярный нейрон
Чувствительный нейрон принимающий сигналы от органов чувств. Его схема почти идентична схеме униполярного нейрона, с той разницей, что это самостоятельный нейрон, отделённый диодом. Для его моделирования удобно использовать советские германиевые диоды т.к. они имеют меньшее сопротивление. Если схема верна, то единственная функция псевдоуниполярного нейрона должна быть запоминающей, но всё же можно предположить, что он делает что-то ещё. Возможно получить ситуацию в которой моделируется пороговая функция: т.е. малый сигнал не проходит, а большой проходит без изменений. Это выглядит аналогичным принципу известному из нейробиологии - "всё или ничего", но работает только при условии, когда после нейрона данного типа не подключается синапс (диод).
Биполярный нейрон
Биполярный нейрон имеет один аксон и один дендрит. Если предыдущие модели были верны, то этот вид нейрона должен иметь следующее строение: одна обкладка конденсатора соединяется с аксоном, а другая - с дендритом. Конденсатор при таком подключении не будет пропускать постоянный ток и не составит преграду переменному.
Можно предположить только одно применение биполярному нейрону: не давать неисправному органу чувств посылать неверные сигналы. По всему человеческому телу распределены тысячи рецепторов и в ситуации когда один из них перестаёт корректно работать, он будет либо молчать, либо непрерывно посылать сигнал. Жить в таких условиях стало бы некомфортно. Биполярный нейрон позволит условно выключить такой сенсор. Эта гипотеза подтверждается тем, что биполярные нейроны находят во многих органах чувств: сетчатке глаза, обонятельном эпителии, слуховом и вестибулярном ганглиях.
Соберём схему этого нейрона. Подаём на вход постоянное напряжение, и видим на экране вольтметра что оно быстро стремится к нулю из-за нарастающего сопротивления конденсатора.
Мультиполярный нейрон
Мультиполярный нейрон имеет один аксон и множество дендритов, т.о. он складывает все входящие в него импульсы в один.
Сложить напряжения можно было бы обычным последовательным соединением, но в случае когда сигналы с сенсоров будут равны нулю, такая схема работать не будет. Следовательно, необходимо параллельно сенсорам подключить два резистора (примерно 220 Ом, для схемы с двумя входами и 1 кОм для схемы с тремя), а так же не забыть про конденсатор. Тогда получится схема моделирующая мультиполярный нейрон. Модель является масштабируемой, т.е. можно складывать как два сигнала, так и (например) десять.
При обычном подключении в схеме складываются два напряжения, но если перевернуть полярность сенсора, то таким же образом можно и вычитать. Т.к. с сенсора будет приходить отрицательное напряжение, а схема всё так же выполняет сложение, то результатом станет вычитание (через сложение).
В нейробиологии известно о существовании возбуждающих и тормозящих сигналов. Предположим, что сигналы положительного напряжения являются возбуждающими, а отрицательного - тормозящими.
Проведём эксперимент:
При подключении кроны к одному из входов, получаем: +6 В.
При подключении кроны к другому входу, получаем также: +6 В
При подключении батареек сразу к обоим входам, получаем: +12 В
Теперь, развернём полярность одной (любой) из батареек, получаем: 0 В
Развернём полярность второй из батареек, получаем: -12 В.
Проведём ещё один эксперимент.
У нас есть три солнечные батареи подключённые через входы мультиполярного нейрона к одному светодиоду на выходе. На одну батарею постоянно падает свет, но напряжения с неё не хватает, чтобы заставить светодиод светить на всю мощность. Вторая батарея подключена так, чтобы напряжение на нейроне складывалось, а третья - перевёрнута. Тогда можно сказать, что одна батарея выдаёт возбуждающий импульс, в то время, как вторая — перевёрнута, и, следовательно, выдаёт тормозящий импульс. Если мы светим на одну панель, то светодиод начинает светить ярче, но если светим на другую, то он вообще перестаёт светить.
Безаксонный нейрон
У безаксонных нейронов невозможно выделить аксон или дендрит, т.к. всё его отростки одинаковы. В таком случае, по строению это просто мультиполярный нейрон. Но всё же, про безаксонные нейроны мы знаем очень мало.
Робот
Теперь, когда смоделированы схемы для всех видов нейронов, можно попытаться собрать робота. Самый простой способ движения для робота - это виброход. Возьмём два компьютерных вентилятора и приклеим на них гайки, а затем зафиксируем их на общем корпусе.
При подаче напряжения робот должен начать движение, но также хотелось бы научить его и тормозить. Здесь возникает проблема: всё датчики (касания, давления) доступные в продаже не выдают напряжения достаточного для проведения эксперимента. Поэтому, можно заменить датчик простой кнопкой. Однако, это имеет недостаток: при аналоговом датчике скорость вентилятора менялась бы в зависимости от степени нажатия, в то время как у кнопки всего два положения: нажата или нет.
Робот будет использовать три вида нейронов: униполярные, псевдоуниполярные и мультиполярные. На входе получившейся схемы нейросети устанавливаем два псевдоуниполярных нейрона, затем мультиполярный нейрон (на который постоянно подаётся положительное напряжение, но если нажать кнопку начнёт подаваться отрицательное). Параллельно конденсатору мультиполярного нейрона подключается конденсатор униполярного.
Здесь возникает следующая (опять, чисто электрическая проблема) - сопротивление диодов. Несмотря на то, что диодов в схеме всего лишь два, тока после них оказывается уже недостаточно для раскрутки вентилятора. В качестве обходного решения берётся транзистор, вентилятор подключается к эмиттеру, ещё один источник тока - к коллектору, а на базу подаётся напряжение с нейросети. Всего потребуются две таких схемы: по одной для каждого вентилятора, в результате робот оказывается состоящим из 8 моделей нейронов.
Если робот сталкивается с препятствием, то кнопка нажимается и один из вентиляторов перестаёт крутится.
Такой робот имеет преимущества по сравнению с подобным проектом на Arduino (если предположить наличие подходящих датчиков).
Во-первых, на Arduino такой проект работал бы как цикл, в котором сначала берутся значения с датчиков, считаются и только затем, соответствующие напряжения подаются на вентиляторы. Быстродействие простой электрической схемы значительно выше.
Во-вторых, простая электрическая схема проще и дешевле. Процессор используемый в Arduino UNO состоит из 100 000 транзисторов. Т.е. 18 дешёвых радиодеталей способны выполнить работу для которой обычно используются, как минимум 100 000 транзисторов.
Выводы
В данном проекте было осуществлено схемотехническое моделирование работы нейронов и их объединение в более сложные структуры — нейросети. Экспериментально был проверен и смоделирован ряд предположений касающихся природы нейробиологических явлений. Удалось создать модель простейшего робота.