Pull to refresh

Заметки с MBC Symposium: применение deep learning в моделировании мозга

Reading time6 min
Views11K

Посетил Стенфордский симпозиум, посвященный пересечению deep learning и neurosciencе, получил массу удовольствия.


image


Рассказываю про интересное — например, доклад Дэна Яминса о применении нейросетей для моделирования работы зрительной коры головного мозга.


Disclaimer: пост написан на основе изрядно отредактированных логов чата closedcircles.com, отсюда и стиль изложения, и уточняющие вопросы.


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


Дэн занимается computational neuroscience, т.е. пытается вычислительными методами помочь исследованию мозга. И там, как и везде, случается deep learning.


Вообще, устройство зрительной коры на высоком уровне мы чуть-чуть понимаем


image


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


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


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


С V4 и IT (более высокими уровнями обработки) так не получается.


Откуда вообще берутся данные про биологические нейроны?


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


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


Дэн-сотоварищи пробуют сделать по-другому


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


Вот теперь внимательно следим за руками.


Они тренируют модели (CNNs и более простые модели из обычного computer vision) распознавать объекты на синтетических картинках.


Картинки вот такие:


image


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


И вот тренируют модели разной структуры и глубины распознавать категорию объекта. В числе прочих моделей есть и CNNs pretrained на Imagenet, и они убирают из тренировочного датасета категории объектов, которые они использовали в своих синтетических картинках.


Далее, на основе натренированной CNN они "предсказывают" активации биологических нейронов следующим образом.
Берут некий training set (отдельные категории объектов), выбирают какой-то уровень в CNN и нейроны в какой-то части мозга и строят линейный классификатор, который предсказывает активации биологических нейронов на основе искусственных.


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


Надеюсь, объяснить получилось.


То есть у них в качестве выхода CNN — что-то типа идентификации биологического нейрона?
Нет! Выход CNN — это классификатор объектов на картинках.
CNN тренируется классифицировать изображения, про биологические нейроны она ничего не знает. Размеченные данные для сетки — это какой объект на картинке, без знания о биологических нейронах.
А потом зафиксировали веса в CNN, и фиттим активации биологических нейронов как линейную комбинацию активаций нейронов искусственных.


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


Так вот, картинка c результатами!


image


Каждая точка на этом графике — это какая-то опробованная модель.
По оси X — насколько она хорошо классифицирует, по оси Y — насколько она хорошо предсказывает биологические нейроны.
Синее облако — это модели, которые или не тренировались вообще, или тренировались с нуля и там много не очень глубоких, а красные точки вверху справа — это модели pretrained на imagenet и тотальный deep learning.


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


Вопрос может в сторону, но все же. А нельзя ли тогда учить модель классифицировать что-то, используя в качестве учителя — нейроны в мозгу? Типа показали картину + взяли данные из мозга и скормили это в CNN?
Это то самое, о чем я говорил раньше — так как нейронов ты знаешь мало, такая модель начинает оверфиттить и предсказательной силой не обладает.
То есть, обучение на активациях нейронов не генерализируется, а обучение на выделении объектов — это значительно более мощный constraint.


А теперь термояд.


Можно посмотреть как разные уровни нейросети предсказывают активации разных участков мозга:


image


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


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


Следующий этап — ну ок, предположим получили возможность моделировать неизвестно как работающий мозг какой-то другой непонятно как работающей коробкой. Какая в этом радость?


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


Я расскажу про один пример, в самом выступлении есть еще два.
Давайте попробуем вытащить не только классификацию, а еще какие-то сигналы из картинки — угол наклона, размер, позицию итд.


image


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


Оказывается, фиг там!
Даже вот такие "низкоуровневые" фичи лучше коррелируют с высокоуровневыми активациями, а не низкоуровневыми. Потом они провели дополнительные эксперименты на живом мозге и увидели то же самое — те линии и уголки, которые мы привыкли видеть в паттернах первых слоев не имеют отношения к "линиям" ориентации высокоуровневых объектов.
Информация о позиции и взаимном расположении объектов вполне себе доходит до высокого уровня.


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


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


А как тогда идет разговор про IT и V4?
Ну, в мозгу IT и V4 — это много-много уровней, а в нейросети уровней мало. Биологические нейроны из IT и V4 — это те, в которые попал электрод. Из какого "биологического лейера" внутри них получилось — из того получилось.


Интересно еще следующее. Если верить Рамачандрану, то visual cortex — это не просто feed-forward сеть, все слои общаются со всеми слоями в обоих направлениях. Есть даже пример, когда можно зрительную систему вывести из равновесия через разного рода оптические иллюзии.


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


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

Tags:
Hubs:
+24
Comments18

Articles

Change theme settings