Нейронные Сети С Учетом Веса (Wann)



Нейронные сети с учетом веса (WANN)

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

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

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

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

Это просто не работает таким образом.

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

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

Хотя в его основе действительно хорошие и правильные идеи.

Сами разработчики шутят, что мозг — это RNN + A3C (то есть рекуррентная сеть + алгоритм актор-критик для его обучения).

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

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

Более того, немлекопитающие животные (птицы, рыбы) вообще не имеют неокортекса, но при этом демонстрируют сложное поведение, недостижимое современными нейронными сетями.

У людей также есть физические ограничения в структуре мозга, которые трудно объяснить.

Например, разрешение одного глаза составляет примерно 100 мегапикселей (~100 миллионов светочувствительных палочек и колбочек), а это значит, что видеопоток с двух глаз должен быть около 200 мегапикселей с частотой не менее 15 кадров в секунду.

Но на самом деле зрительный нерв способен пропускать через себя не более 2-3 мегапикселей.

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

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

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

То же самое происходит и с детским смехом.

Хорошо известно, что младенцы с рождения запрограммированы на превосходное распознавание человеческих лиц.

Но что еще более важно, нервная система всех живых существ оптимизирована под условия их существования.

Малыш не будет часами кричать, если он голоден.

Он устанет. Или он чего-то испугается и замолчит. Лиса не будет тянуться к недоступному винограду до полного изнеможения или голодания.

Она предпримет несколько попыток, решит, что ему обидно, и уйдет. И это не процесс обучения, а поведение, предопределенное биологией.

И у разных видов оно разное.

Некоторые хищники сразу бросаются за добычей, другие подолгу сидят в засаде.

И они усвоили это не методом проб и ошибок, а это их биология, заданная инстинктами.

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

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

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

Последующие тренировки меняют эти веса, и все портится.

Исследователи из Google тоже задавался этим вопросом.

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

К сожалению, существующие алгоритмы оптимизации структуры сети, такие как поиск нейронной архитектуры (NAS), работают с целыми блоками.

После добавления или удаления которого нейросеть приходится обучать заново с нуля.

Это ресурсоёмкий процесс и полностью проблему не решает. Поэтому исследователи предложили упрощенную версию, названную «Нейронные сети, не зависящие от веса» (WANN).

Идея состоит в том, чтобы заменить все веса нейронной сети одним «общим» весом.

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

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

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

Потому что это работает за счет общей структуры сети.

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

А последующая точная настройка весов в ходе непрерывного обучения делает эту нейронную сеть еще лучше.

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

Ниже приведено сравнение сложности классической полносвязной нейронной сети (слева) и выбранной новой (справа).



Нейронные сети с учетом веса (WANN)

Для поиска такой архитектуры исследователи использовали алгоритм поиска топологии (NEAT).

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

картинки ниже).

И потом, в отличие от классического NAS, где ищутся оптимальные веса между нейронами, здесь все веса инициализируются одним-единственным числом.

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

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

При этом в качестве дополнительной цели оптимизации стараются минимизировать количество нейронов в сети.



Нейронные сети с учетом веса (WANN)

Ниже представлена общая схема алгоритма.



Нейронные сети с учетом веса (WANN)

  1. создается популяция простых нейронных сетей
  2. каждая сеть инициализирует все свои веса одним числом и для широкого диапазона чисел: w=-2.+2.
  3. полученные сети сортируются по качеству решения задачи и количеству нейронов (в меньшую сторону)
  4. у некоторых лучших представителей добавляется один нейрон, добавляется одна связь или изменяется функция активации в одном нейроне
  5. эти модифицированные сети используются в качестве исходных в пункте 1)
Это все хорошо, но для нейронных сетей предложены сотни, если не тысячи различных идей.

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

Как видно из рисунка, нейросеть хорошо работает со всеми вариантами общего веса (лучше с +1,0, но и с -1,5 она тоже пытается поднять маятник).

И после оптимизации этого единственного веса он начинает работать идеально (опция Fine-Tuned Weights на рисунке).



Нейронные сети с учетом веса (WANN)

Характерно то, что дополнительное обучение можно провести с использованием этого единственного общего веса, поскольку выбор архитектуры осуществляется по ограниченному дискретному числу параметров (в примере выше -2,-1,1,2).

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

Это похоже на то, как учатся животные.

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

Более подробная информация в недавняя статья в журнале Nature .

Ниже приведен пример сети WANN, найденной для задачи пиксельного управления автомобилем.

Обратите внимание, что это езда «голого инстинкта», с единым общим весом во всех суставах, без классической точной настройки всех весов.

В этом случае нейронная сеть оказывается предельно простой по своей структуре.



Нейронные сети с учетом веса (WANN)



Нейронные сети с учетом веса (WANN)

Еще один вариант использования WANN исследователи предлагают создавать ансамбли из сетей WANN. Так, обычная случайно инициализированная нейросеть на MNIST показывает точность около 10%.

Выбранная отдельная нейронная сеть WANN дает около 80%, но ансамбль WANN с разными общими весами уже показывает > 90%.

В результате предложенный исследователями из Google метод поиска исходной архитектуры оптимальной нейронной сети не только имитирует обучение животных (рождение с заложенными в них оптимальными инстинктами и дополнительное обучение на протяжении всей жизни), но и позволяет избежать моделирования всей жизни животных.

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

Которую просто нужно немного переобучить, чтобы получить вполне оптимальную нейросеть.



Ссылки

  1. Сообщение в блоге Google AI
  2. Интерактивная статья, в которой вы можете изменить значения общего веса и следить за результатом
  3. Статья в журнале Nature о важности запрограммированных инстинктов при рождении
Теги: #Машинное обучение #искусственный интеллект #нейронные сети
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.