14:28 

За 50 лет до конца света - 2/4

almaburu
Часть первая

Часть вторая

2.0

Самое время отложить нейросети и поговорить о червях, а именно о черве Caenorhabditis elegans. Нейробиологи обожают его за то что он необычайно тупой - в мозгу c.elegans 300 нервных клеток. Этого оказалось однако ж достаточно для того чтобы управлять довольно сложным поведением - черви жрут, плодятся, не натыкаются на стенки и умеют ныкаться при первом же признаке опасности.

Как они то делают?

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

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

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

- Ага! - , сказали ученые - так мозг червя это просто функция положения мышцы от сигналов рецепторов в единицу времени.

Пока окрыленные этим фактом исследователи бросились потрошить мозг дрозофилы (и обнаружили что снять коннектом 10к нейронов несколько сложнее), другие исследователи взяли обычного лего робота с моторчиками и колесиками и решили что наверное нет никакой принципиальной разницы между сигналами аналоговых и механических рецепторов. Раз уж развертка сети лежала в открытом доступе, эту сеть загрузили в простенький процессор лего, входы повесили на инфракрасные датчики, выходы на колеса и запустили робота бегать по столу.
(www.youtube.com/watch?v=YWQnzylhgHc)

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

- Ага, - сказали третьи чуваки, глядя на все это получившееся безобразие - призрак в машине, сейчас вам будет.

-----
Наступил 2015 год.

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

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

Осталось придумать как ее найти.

---------------------
- А что если мы тупо подберем ее? - сказали исследователи.
- Ват - сказали другие исследователи.

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

Сразу возникает масса проблем. Скажем, для картинки размером 100x100 пикселей у нас уже 10000 входных значений, а это очень много. С такими темпами у нас получатся гигантские матрицы, которые мы будем подбирать миллионы лет. А как уж распознавать еще большие фотографии никто и не знает.

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

Так родились сверточные (convoluted) сети - сети, которые берут матрицу в очень много параметров и фильтруют ее, сворачивая к набору параметров уже значительно меньшему.
--
Все это конечно было ужасно интересно, но пока что никакого практического применения не имело. Что же случилось такого в 2015 году, что изменило баланс сил?

2.1

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

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

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

----
И вот в июне 2015 тихой сапой вышла публикация Стенфорда, в которой они сложили два плюс два и предложили архитектуру сети, которая позже будет упоминаться как Deep Residual Network.

Вот ссылка. В отличие от других ссылок по этой стоит пройти и прокрутить ее в самый конец.

cs.stanford.edu/people/karpathy/deepimagesent/

Для тех кто не хочет идти по ссылке или не очень понимает что там tl;dr - это сетка которая берет картинку и выдает описание из серии “пять коричневых котов балансируют на доске для серфинга” с точностью примерно в 90%.

DRN собрал вместе много очень очень интересных хаков.

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

___
Хозяйке на заметку:

Архитектура нейронных сетей пока очень примитивна, и по большей части не имеет ничего общего с тем как работает человеческий мозг, но и тут есть сдвиги. Так, месяц назад гугл сделал long term memory сеть, которая очень очень очень напоминает структуру коры головного мозга:
deepmind.com/blog/differentiable-neural-compute...

___

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

Затем наступило затишье примерно на полгода, за время которого гугл, убер и фейсбук поделили между собой всех сколь бы то ни было принадлежащих к области ML(machine learning), а остальные подобрали крохи.
Ну и заснули мы в эпоху веб 2.0, а проснулись в эпоху machine learning и AI.

Это было начало, повторюсь, мы слабо оцениваем последствия трендов. Последствия повалились как из рога изобилия в 2016. Убер, гугл и автомобильные концерны решили задачу “как проехать из точки ‘а’ в точку ‘b’ никого при этом не сбив”, и так мы получили самоуправляемые машины.

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

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

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

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

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

URL
Комментарии
2017-01-24 в 11:32 

Болотный Пёс
История с "прозвоном" 300 нейронов, к сожалению, сильно упрощена. Активация реального нейрона определяется не только "весом" входных сигналов, но и местами поступления входных сигналов (которыми может выступать буквальная любая точка поверхности нейрона), а так же задействованными нейромедиаторами (сигналы одной "мощности" через один и тот же синапс, но разными нейромедиаторами вызывают разный отклик у нейрона). Ещё у всех нейронов есть собственные "генераторы тактовой частоты" (с регулируемой частотой), которые обеспечивают дополнительный входной сигнал "изнутри" нейрона. Конечно не трудно смоделировать то, что нейрон может передавать "входные" и "выходные сигналы" по одним и тем же синапсам, но вот то что он может формировать новые синапсы (и входные и выходные) в любой точке своей поверхности в ответ на внешнюю стимуляцию, а "бесполезные" синапсы со временем отмирают - смоделировать в разы труднее. Ну и наконец да - активационные "веса" нейронов непрерывно меняются под влиянием биологических процессов, происходящих в самом нейроне, который использует получаемые нейромидиаторы как что-то вроде витаминов - не получая их нейрон физически гибнет, и потому, если оказывается в ситуации "голода" - старается "добиться" их получения, посылая сигналы другим нейронам.

2017-01-24 в 20:19 

almaburu
Болотный Пёс, это очень хороший комментарий.

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

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

URL
2017-01-24 в 22:46 

Болотный Пёс
Ну, для начала я не оспариваю саму идею нейронных сетей как аналога процессов в ЦНС животных. Моя претензия только к тому, что сложность даже самой простой ЦНС, вроде 300-нейронной ЦНС червя, на порядки выше сложности модели, которую ты привела в пример. Я искренне верую в то, что "призрак в машине" это сложная, но теоретически решаемая задача. Но я не верю в "прозвон" ЦНС. В современных моделях аналогом нейрона выступает нечто вроде небольшой микросхемы, в то время как на самом деле его аналогом должен выступать как минимум полноценный процессор.

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

2017-01-25 в 04:26 

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

Это вопрос мощности, вон у приставок нинтендо даже железо с багами эмулируют.
Другое дело, конечно, нужно ли так эмулировать :)

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

Нейронные сети уже давно нелинейны, RNN (рекурсивные нейронные сети) это проза жизни, и подвидов рекурсивных сетей с внутренними состояниями очень много, начиная от уже классической LSTM (long short term memory, используется для генерации данных на плохо формализуемых наборах, например генерации текстов) и заканчивая редкими зверями вроде growing neural forest, способными менять свою топологию на лету.

Ок, я перечитала предложение и теперь не уверена что понимаю его правильно. Если это аргумент против того что мы можем перенести состояние отдельно взятого мозга сохранив личность и память - так никто пока за это и не агитирует!

URL
2017-01-25 в 10:21 

Болотный Пёс
Но ведь "ghost in the shell" это и есть "перенос состояния отдельно взятого мозга с сохранением личности и памяти".

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

   

Waking up from the Yokohama dream.

главная