Как стать автором
Обновить

Обучение живых и «биологичная» нейронная сеть

Время на прочтение18 мин
Количество просмотров9.4K

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

В машинном обучении укоренились термины обучение без учителя (англ. unsupervised — без контроля) и обучение с учителем (англ. supervised — под контролем). Обучение без учителя – это обучение по неразмеченным данным, или примерам. А обучение с учителем это обычно обучение по некоторым размеченным данным, обучение на примерах при котором результат регулируется и корректируется некоторым внешним механизмом с учётом этой самой разметки. Иногда термин «обучение без учителя» применяют в случае, когда у нас имеется некий агент, которого мы помещаем в некую среду, причём агент изначально не знает по каким правилам и законам действует среда, и без внешней помощи агент обучается взаимодействовать с этой средой. Если у агента имеется некий механизм оценки достижения цели, то это уже можно назвать термином — обучение с подкреплением.

Насколько корректны и применимы эти термины к обучению живых организмов?

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

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

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

Но и нервная система Человека не является «чистым листом», многому нет необходимости учиться: дышать, пить молоко, взаимодействовать с матерью через улыбку и плачь, есть множество рефлексов. Само дальнейшее обучение человека будет происходить по строго определённой программе заложенной также от рождения, имеется ряд механизмов, которые будут вести это обучение в определённом русле.

Я не утверждаю, что универсальный алгоритм обучения с «чистого листа» невозможен, просто в живой природе нет этому примеров. Поэтому искать такой алгоритм очень сложная задача, это практически поиск чего-то в полной темноте. Но у нас есть примеры интеллектов животных, и интеллекта Человека, понимание их природы это более лёгкий путь. Если понять, как работает человеческий интеллект, понять, как он обучается, тогда и можно задаваться вопросами о более универсальных алгоритмах.

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

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

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

Что же такое статистическое обучение (statistical learning) для живых? Это очень важный аспект обучения живых, который также следует позаимствовать для машин. Представите себе новорождённого ребёнка, он обладает множеством базовых рефлексов, он обладает небольшой и хаотичной рефлекторной моторной активностью, его мозг практически полностью сформирован, он обладает практически полным набором нейронов, даже более полным, чем взрослый человек. И уже с первых моментов своей жизни его обучение уже началось. Его мозг наполняет практически непрерывный поток информации в виде «видео и аудио данных», тактильных ощущений, информации от мышц, вестибулярных органов и прочего. Что же делает мозг со всей этой информацией? Чему он учится? Ведь по большей части информация, с которой приходится работать не является размеченной, это просто непрерывный поток информации. И мозг стремится нарушить эту непрерывность, формируя якоря. Якорь – термин, в психологии обозначающий некую образную метку или ассоциативную связь в сознании человека, которая отвечает за вызов у него конкретного состояния. Мозг создаёт метки в потоке информации и создаёт он их на основе повторений.

Статистическое обучение хорошо проявляется в обучении речи и умении различать звуки. К примеру, в экспериментах, где детям 10-12 месяцев требуется различить среди звуков «ра… ра… ра..» иногда появляющийся звук «ла», среди детей англоязычных и детей из Японии существуют большие различия. Дело в том, что в английском языке звуки [r] и [l] отличаются, это два разных звука. В японском языке между этими двумя звуками разницы нет. Поэтому дети из Японии с трудом улавливают эту разницу в отличие от англоязычных детей. Но в возрасте 6-8 месяцев все дети в одинаковой средней степени проходят эти тесты.

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



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

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

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

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

Обучение мухи


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

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

Давайте вкратце разберем, как устроен обонятельный анализатор мухи.



Входы в сеть – обонятельные рецепторы (X). Обонятельных рецепторов у плодовой мушки примерно 50, они реагируют на концентрацию в воздухе определённых молекул, соответственно каждый рецептор реагирует на свои тип молекул или химических маркеров. Запахи могут состоять из множества химических маркеров подобно спектральному срезу, для каждого запаха характерна своя картина активности рецепторов. Следующий дублирующий рецепторы слой нейронов (A), их также 50, он делает небольшое преобразование сигнала, по существу повторяет сигналы от рецепторов. Затем идёт слой нейронов Кеньона (the Kenyon cells, B) – ганглии, насчитывающие в себе около 2 000 нейронов, связи с предыдущим слоем равномерно распределены, так чтобы каждый нейрон из ганглия (B) имели связь примерно с 10% (6 из 50) нейронов входного слоя. Активность этого ганглия будет подавляться обратной ингибирующей системой (С), так чтобы в активности находилось только 5% нейронов максимум от всего ганглия (100 из 2 000). Тем самым из вектора размерностью 50 мы получаем вектор размерностью 2 000, но при этом этот вектор разреженный, то есть имеет в себе большое число нулей (95%). Многие исследователи нашли в этом ассоциацию с хеш-функцией, на мой взгляд, это сравнение некорректно и даже вредно, так как может ввести в заблуждение, далее я объясню подробно, почему так думаю.

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

Можно подумать, что энкодер плодовой мушки это своего рода преобразователь 50-ти мерного вещественного определяющего запах вектора в 2 000-ти мерный бинарный разреженный код, хеш-код. Можно даже оценить размер такого преобразования: 2 000*1999*1998*…*1901≈1*10329 (100 из 2 000 активных). Да-а, с такими возможностями за свою короткую жизнь муха может насладиться бесчисленным количеством оттенков запахов цветов, трав и фруктов. Но давайте оценим, на какие классы необходимо выделить запахи мухе для успешного выживания и оставления потомства. Я смог выделить всего 4 класса (возможно специалисты по мухам добавят ещё):

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

Всего четыре. Четыре формы поведения. Целесообразно ли использовать хеш-код которым можно закодировать 1*10329 значений всего для 4-х классов?

Как отмечает в своей статье Чарльз Ф. Стивенсон при данной конфигурации энкодера два случайных запаха с высокой долей вероятности будут иметь два непересекающихся множества активных клеток Кеньона (the Kenyon cells), а два очень близких запаха будут иметь настолько схожую картину активности этих клеток, что это не даст возможность различить запахи. Получается, что возможности кодирования запахов грибовидным телом мухи изначально нами была переоценена.

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

Когда проводится реверс-инжиниринг подобных биологических нервных схем, то очень часто забывают, что имею дело не с математическими моделями нейронов, а с биологическими клетками. И эти биологические клетки априори не работают как точные автоматы, на их точность влияют множество внешних и внутренних факторов, что компенсируется избыточностью в их количестве. Нейроны формируют нервную ткань и именно свойства нервной ткани определяют характер обработки информации ею. В данном случае активность только 5% от всей популяции клеток Кеньона говорит о том, что достаточно точно и ясно мы можем выделить только 20 запахов (100 / 5) и на каждый такой запах выделяется по 100 нейронов. Там где в биологической нервной сети используется 2 000 нейронов всё можно свести к 20 нейронам математическим. Если соотношение в два порядка Вам кажется большим, то в отношении млекопитающих эта цифра будет в три порядка. Подробнее об этом я писал в статье «Сравнение мозга с нейронной сетью». Часто можно увидеть, как для оценки размеров памяти человеческого мозга преумножают общее количество нейронов и среднее число синапсов у одной клетки, полученное число не самом деле не отражает фактически ничего.

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

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


Хотя некоторые опорные вектора запахов должны быть «зарезервированы» на уровне ДНК, хотя бы по одному запаху на каждый из 3-х классов. Этого требует рефлекторная теория, которая говорит о том, что формирование новых условных рефлексов возможно только на основе уже имеющихся рефлексов. Сложно представить, чтобы природа не позаботилась о том, чтобы новорожденной мухе не пришлось эмпирическим путём определять, что в этом мире съедобно, а что ядовито, а что есть самка/самец своего вида. Для этого достаточно зарезервировать всего три опорных вектора запахов (для нейтральных запахов не нужно), с остальными запахами можно разобраться и в процессе жизнедеятельности и обучения.

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


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

Давайте рассмотрим один вариант развития этой системы, которое доступно для плодовой мушки лишь в одну мутации. Дупликация – разновидность хромосомной мутации при которой участок хромосомы оказывается удвоенным. Очень часто дупликация обозначает увеличение в объёме каких-нибудь тканей, а иногда даже удвоение органа. Представим особь плодовой мушки, у которой в результате такой мутации ткани ганглиев с клетками Кеньона увеличилась вдвое с 2 000 до 4 000 клеток, это достаточно реалистичный сценарий. С одной стороны такая особь получает преимущество, она лучше может дифференцировать запахи, в пространстве решений распознавания запахов уже будет больше локусов. Но вместе с тем возникает проблема в снижении обобщающей способности этой системы. Локусы стали меньше, а значит, требуется больше обучающих примеров, чтобы охватить все спектры.


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

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


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

Доступно и коротко о сетях Кохонена


«Биологичные» нейронные сети


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

Наша сеть имеет вход в виде массива точек 28*28, каждая точка число от 0 до 1 в градации 256. Сеть состоит из двух слоёв: первый слой условно назовём слой Кохонена, второй слой – слой Хебба.



Слой Кохонена представим массивом нейронов 32*32, каждый такой нейрон связан со всеми входами сети. Каждая такая связь определяется весом, вещественным числом от 0 до 1. Все веса будем хранить в одном массиве размером 896*896 (32*28=896), я использую для этого изображения, для простоты и наглядности, поэтому будем называть этот массив картой синаптических связей, или картой весов. Карту весов изначально заполним случайными значениями. Когда на вход сети подаётся образ, то определяется уровень активности каждого нейрона слоя Кохонена, через близость входного вектора и вектора хранящегося в весах нейрона.

$Ai=∑(1 - |Wij – Ij|) / n;$


где Ai – итоговая активность i-го нейрона; Wij – j-тый вес i-го нейрона; Ij – j-тый элемент входа; n – длина векторов.

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

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


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

Пример карты Кохонена на примерах MNIST


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

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


После предъявления сети 2 000 случайных примеров мы заполним все веса всех нейронов слоя различными примерами, здесь выделяются примеры разных цифр с различным их начертанием. Для того, чтобы увидеть результат работы слоя в режиме выполнения, делаем следующее: во-первых, определяем уровень активности каждого нейрона в слое Кохонена по формуле описанной выше, во-вторых, определяем максимальные и минимальные значения активности в слое. Далее вычисляем для каждого нейрона значение отношения к максимальному и минимальному значениям, по формуле (факт — min)/(max — min). Тем самым минимальное значение приравнивается к 0, а максимальное к 1. Уже так мы наглядно видим, какие нейроны максимально близки к входному вектору, а какие максимально удалены. Так как полученные значения находятся в интервале от 0 до 1, мы можем сделать эту картину еще острее, контрастнее просто возведя это значение в определённую степень (у меня в примерах степень 15). Так максимумы останутся единицами, а значения сильно меньшие единицы станут практически равными нулю. Эту операцию назовём эскалацией.



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

Этим занимается второй слой сети – слой Хебба. Слой Хебба имеет 10ть нейронов, по количеству классов, карта весов этого слоя имеет размер 32*320, то есть все нейроны слоя Кохонена связаны со всеми нейронами слоя Хебба. Обучение этого слоя достаточно тривиально: при сочетании активности нейронов из слоя Хебба и слоя Кохонена связь-вес усиливается, при отсутствии сочетания ослабевает. При выполнении веса просто суммируются, и как в слое Кохонена побеждает только одни нейрон из слоя. Победивший нейрон и является ответом сети.

Эти два слоя могут обучаться как совместно, так и по отдельности. К примеру, мы можем предъявить 2 000 случайных примеров, обучая слой Кохонена и параллельно передавать информацию о классе примера на слой Хебба обучая его. Для моей реализации в таком режиме достаточно 2 000 примеров для результата в районе ≈82% качества (тест проходит на 10 000 тестовых примерах).

Ещё пример обучения, который ближе к биологическому, это когда слой Кохонена обучается на случайных неразмеченных примерах. Тем самым формируя базовые образы. Затем можно представить сети несколько размеченных примеров от 10 до 1000 и обучать при этом только слой Хебба.



Сеть была обучена на 2 000 не размеченных примерах и достаточно дообучить её на 300 размеченных примеров для качества выше 80%.

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

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

Исходник:
github.com/BelkinAndrey/BrainSquared

Download build for Windows: MNIST; Fashion-MNIST

В сравнении


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

Обучение по бэкпропу и обучение биологичных сетей:



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

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

Для эволюции большую роль играла скорость обучения, а не точность. Человек не может по фотографии родинки диагностировать опухоль с вероятностью 99,8%. Точность конёк машин, а не Человека. Описанная сеть ближе к биологическим, чем нейронные сети, обучаемые на основе бэкпропа.

В заключение


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



Ведь наш мозг и его зрительный анализатор в частности способен пассивно наблюдая обучаться и создавать высокоуровневые, так называемые, эмбеддинги, фичи, причём эти эмбеддинги будут связаны с активностью конкретных нейронов. И при этом мозг не использует бэкпроп, и при этом ему требуется меньше примеров.
Теги:
Хабы:
Всего голосов 13: ↑13 и ↓0+13
Комментарии20

Публикации

Истории

Работа

Data Scientist
95 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн