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