Нотатки з MBC Symposium: застосування deep learning в моделюванні мозку

Відвідав Стенфордський симпозіум, присвячений перетину deep learning і пеигоѕсіепсе, отримав масу задоволення.
Розповідаю про цікаве — наприклад, доповідь Дена Яминса про застосування нейромереж для моделювання роботи зорової кори головного мозку.
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 (цю частину про мозок ми сяк-так знаємо — пошкрябати там бути не може, це далі по стеку).
Підсумувавши — прямий напрямок робіт скоріше про використання нових моделей для вивчення роботи мозку, але є якісь непрямі натяки, що якось це занадто добре працює, можливо є загальні механізми.
Сподіваємося, зійдуться в сингулярність!

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.