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

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

Відвідав Стенфордський симпозіум, присвячений перетину deep learning і neuroscience, отримав масу задоволення.

Розповідаю про цікаве - наприклад, доповідь Дена Ямінса про застосування нейромереж для моделювання роботи зорової кори головного мозку.

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

Ось лінк на повну доповідь, він кльовий, але дивитися, мабуть, краще після читання посту.

Ден займається computational neuroscience, тобто намагається обчислювальними методами допомогти дослідженню мозку. І там, як і скрізь, трапляється deep learning.

Взагалі, пристрій зорової кори на високому рівні ми трохи розуміємо

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

V1 ще називається primary visual cortex і він непогано досліджений - там є нейрони, які проганяють якісь фільтри над зображенням, і активуються на лініях під різними кутами і простеньких градієнтах.

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

Є навіть успіхи в моделюванні цієї частини - мовляв, придумати якусь модель, подивитися як нейрони активуються на вхідному зображенні, зафіксувати, і потім ця модель цілком собі пророкує активації цих нейронів на нових картинках.

З V4 і IT (більш високими рівнями обробки) так не виходить.

Звідки взагалі беруться дані про біологічні нейрони?

Типовий експеримент виглядає так - береться мавпочка, їй в деяку частину мозку втикаються електроди, які знімають сигнали з нейронів, в які вони потрапили. Мавпочці показують різні картинки і знімають сигнал з електродів. Так роблять на декількох сотнях нейронів - кількість нейронів всього в досліджуваних частках мозку величезна, міряють всього сотні.

Виявляється, якщо спробувати зафіксувати модель на активацію біологічних нейронів у V4 і IT, відбувається оверфіттинг - даних мало і для нових картинок модель вже нічого не пророкує.

Ден-сотоваріщі пробують зробити по-іншому

Давайте візьмемо модель і натренуємо її на якесь завдання розпізнавання, щоб штучні нейрони в ній розпізнавали щось на цих картинках.

Раптом вони будуть передбачати активації біологічних нейронів краще?

Ось тепер уважно стежимо за руками.

Вони тренують моделі (CNNs і більш прості моделі зі звичайного computer vision) розпізнавати об'єкти на синтетичних картинках.

Картинки ось такі:

Об'єкт не корелює з бекграундом - може бути і літак на тлі озера, і голова на тлі якогось дикого лісу (я так розумію, щоб виключити prior у навчанні).

Всього на картинках 8 категорій об'єктів - голови, машини, літаки, щось ще.

І ось тренують моделі різної структури і глибини розпізнавати категорію об'єкта. Серед інших моделей є і CNNs pretrained на Imagenet, і вони прибирають з тренувального датасета категорії об'єктів, які вони використовували в своїх синтетичних картинках.

Далі, на основі натренованої CNN вони «» пророкують «» активації біологічних нейронів наступним чином.

Беруть якийсь training set (окремі категорії об'єктів), вибирають якийсь рівень в CNN і нейрони в якійсь частині мозку і будують лінійний класифікатор, який пророкує активації біологічних нейронів на основі штучних.

Тобто, пробують наблизити активацію біологічного нейрона як лінійну комбінацію з активацій штучних нейронів в якомусь шарі (адже один до одного їх точно ніяк не поєднати, їх зовсім різна кількість). А потім перевіряють наскільки воно має передбачувальну силу на тестовому наборі, де були зовсім інші об'єкти.

Сподіваюся, пояснити вийшло.

Тобто у них як вихід CNN - щось типу ідентифікації біологічного нейрона?

Ні! Вихід CNN - це класифікатор об'єктів на картинках.

CNN тренується класифікувати зображення, про біологічні нейрони вона нічого не знає. Розмічені дані для сітки - це який об'єкт на картинці, без знання про біологічні нейрони.

А потім зафіксували ваги в CNN, і фіттім активації біологічних нейронів як лінійну комбінацію активацій нейронів штучних.

а чому лінійна комбінація, а не ще одна сітка?

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

А потім на нових тестових картинках перевіряємо, чи вийшло у нас передбачити активацію в біологічних нейронах.

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

Кожна точка на цьому графіку - це якась випробувана модель.

По осі X - наскільки вона добре класифікує, по осі Y - наскільки вона добре пророкує біологічні нейрони.

Синя хмара - це моделі, які або не тренувалися взагалі, або тренувалися з нуля і там багато не дуже глибоких, а червоні точки вгорі справа - це моделі pretrained на imagenet і тотальний deep learning.

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

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

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

Тобто, навчання на активаціях нейронів не генералізується, а навчання на виділенні об'єктів - це значно потужніший constraint.

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

Можна подивитися як різні рівні нейромережі пророкують активації різних ділянок мозку:

Виявляється, що останні рівні добре пророкують IT (останню стадію), але не V4 (проміжну). А V4 найкраще передбачають проміжні рівні мережі.

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

Тобто у них нейронна мережа виглядає приблизно так само, як біологічні нейрони в мозку?

Швидше, є щось схоже в тому, через які етапи проходить процес розпізнавання.

Сказати, що «» архітектура «» та ж, звичайно, не можна (зрозуміло, це анітр не можна вважати доказом, ітд ітп)

Наступний етап - ну ок, припустимо отримали можливість моделювати невідомо як працюючий мозок якийсь інший незрозуміло як працюючою коробкою. Яка в цьому радість?

Подальша робота - як можна це використовувати, щоб щось нове зрозуміти про роботу мозку.

Я розповім про один приклад, у самому виступі є ще два.

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

Здавалося б, це більш "низькорівневі" "фічі, ніж клас об'єкта, і можна очікувати, що вони визначаються на більш низьких рівнях розпізнавання в мозку - давайте перевіримо це на моделі.

Виявляється, фіг там!

Навіть ось такі "низькорівневі" "фічі краще корелюють з високорівневими активаціями, а не низькорівневими. Потім вони провели додаткові експерименти на живому мозку і побачили те ж саме - ті лінії і куточки, які ми звикли бачити в патернах перших шарів не мають відношення до «ліній» орієнтації високорівневих об'єктів.

Інформація про позицію і взаємне розташування об'єктів цілком собі доходить до високого рівня.

Це підтверджує вже до цього існуючу теорію, що остання стадія (IT) - працює зі сформованою високорівневою моделлю, де є об'єкти, їх розташування, взаємні відносини ітд ітп і перетворює їх на щось потрібне мозку далі.

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

(Продовжуємо дилетантські питання) А вони у своїй CNN використовували модель з такою ж кількість шарів? Ну тобто, а якщо зменшити кількість шарів ефекти схожості зникають?

Ні, кількість «» шарів «» в мозку штука складна - там є і наскрізні зв'язки, і фідбек. Кількість шарів у CNN принципово менша, ніж у мозку.

А як тоді йде розмова про IT і V4?

Ну, в мозку IT і V4 - це багато-багато рівнів, а в нейромережі рівнів мало. Біологічні нейрони з IT і V4 - це ті, в які потрапив електрод. З якого "біологічного лейєра" "всередині них вийшло - з того вийшло.

Цікаво ще наступне. Якщо вірити Рамачандрану, то visual cortex - це не просто feed-forward мережа, всі шари спілкуються з усіма шарами в обох напрямках. Є навіть приклад, коли можна зорову систему вивести з рівноваги через різного роду оптичні ілюзії.

Тобто ніхто не гарантує, що активація біологічних нейронів якось пов'язана з самим процесом розпізнавання, а не з тим, що через вид літачка у мавпи починає чесатися нога, а нейрони вже реагують на те, що у неї нога чешеться?

Ні, це нейрони з області, яка відомо, що пов'язана з visual cortex (цю частину про мозок ми худо-бідно знаємо - почесатися там бути не може, це далі по стіку).

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

Сподіваємося, зійдуться в сингулярність!