Про проблему one-shot навчання для нейромереж

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

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

Є, як мінімум, три мейнстримых підходу до вирішення проблеми:

1) Регуляризация. Суть зазвичай у тому, щоб змушувати мережу під час навчання мінімізувати паразитні ко-адаптації нейронів один до одного. Наприклад, нехай нейрони деякого шару навчилися розпізнавати довгі вуха, і їх активація збігалася з підписом «кролик». Є спокуса виставити високий вагу для цього ознаки та інші особливо не шукати. «Довгі вуха -> кролик», і все. Щоб зменшити ймовірність переоцінки приватних ознак, можна під час навчання деякі нейрони тимчасово виключати з процесу ( і тим самим дизаблить для мережі частину вивчених ознак, провокуючи її на пошук нових) і т. д.

2)Архітектурні хитрості. Щоб побороти прокляття розмірності на рівні одного нейрона, можна конструювати мережу таким чином, щоб у нейронів не було багато синапсів. Наприклад, перші шари класифікатора картинок роблять не полносвязными, а згортковими (де кожен нейрон дивиться лише на частину картини).

3) Transfer learning (перенесення знань). Це коли фічі, витягнуті на одному датасете або завдання, переиспользуют, щоб прискорити/поліпшити навчання на іншому. Найпростіший варіант — коли нижні шари беруть від вже навченої на великому датасете мережі, а зверху прилаштовують не навчені шари. У самому справі, якщо нейрона треба навчитися розпізнавати екзотичних тварин, то його завдання спроститься, якщо йому дадуть у підпорядкування таких нейронів, які вже «знають» вуха, носи, очі. Це краще, ніж шукати закономірності в голих градієнтах.

Але, мабуть, самий багатообіцяючий варіант (на мій погляд) — це внутрішній transfer learning.

Нехай у датасете є рідкісна категорія. Наприклад, багато фотографій тварин взагалі, але мало конкретно фотографій леопардів. Мережа не зможе з нуля за кількома семплам витягнути універсальне признаковое опис леопарда. Але якщо було багато фоток тигрів і левів, то мережа знає потрібні ознаки для них. Якщо вона тепер звідки дізнається, що леопард, тигр і лев — об'єкти одного класу(кішки), то частина опису тигрів/львів можна трансфернуть леопардові. Переплутати його з великим диваном стане складніше, тому що хоч у дивана є характерні плями леопарда, але інших ознак котячих немає.

Задача про внутрішній трансфер знань адресується state-of-art, але вважати її вирішеною, здається, поки рано. Вона розбивається на дві підзадачі: по-перше, мережа повинна здогадатися, що рідкісна мітка (леопард) може бути приватним випадком кішок. По-друге, знаючи, що леопард приватний випадок кішки, потрібно всередині мережі «законнектить» базові ознаки кішок до леопардові. Навіть якщо вирішити тільки другу підзадачу, навчання мереж спроститься. Можна буде зробити так:
  • вчимо сітку на великому датасете про сучасних тварин
  • говоримо, що мамонт це як би слон, але з шерстю і бивнями
  • вуаля, жодного семпла з мамонтом не показували, а вона вже вміє вгадувати його на картинках


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

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

Показовий эксперимент. Щура дресирують здійснювати якийсь рух передніми лапами. Знаходять у її корі репрезентацію лап і дивляться на маркери процесів, пов'язаних з синапсами. І зауважують, грубо, три фази навчання. У першій фазі (тільки почали дресирування) локальна мережа генерує нові сполуки. У другій фазі навик поліпшується, а з'єднання знищуються — як частина нових, так і старих. У третій фазі навик вже встановлений і не змінюється, а кількість з'єднань стало приблизно таким, яким було до початку навчання. Але тепер це інша схема «проводки». Зокрема, збільшилася подання передніх лап за рахунок нових горизонтальних зв'язків у корі біля цього регіону.

На перший погляд, це принципово не відрізняється від того, як бекпроп занулял б ваги синапсів. Синапс став важити нуль — його б не стало в карті. Знову набрав вагу — з'явився в ній. Але є одне але. Якщо наша штучна мережа, яка навчається бекпропом, не є абсолютно повнозв'язної (а вона не є, інакше прокляття розмірності), то немає можливості швидко прокинути сильну зв'язок між нейронами, не з'єднаними спільним ребром. А для one-shot навчання швидкість побудови нових асоціацій бажана. Якщо нейрон А завжди з'єднаний тільки з нейронами Б, В і Г, то він змушений шукати зв'язок тільки між цими ознаками. Задаючи неполносвязный коннектом без можливості додавати нові зв'язки, ми, по суті, робимо сильне припущення, що предметна область може бути ефективно представлена ось таким конкретним графом зв'язків між сутностями. Або його подграфом. А якщо ні? Наприклад, предметна область містить приховані взаємозв'язки а-ля «курка-яйце», а у нас на графі погано з реккурентностью…

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

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

Коли робити гіпотезу?
Для біологічного нейрона зазвичай виділяють два стани: Up і Down. В обох станах потенціал в сомі нижче порогу, тобто не достатній для генерації спайків, і нейрон мовчить. Але важливо те, що спайк швидше сгенерируется з Up-стану, ніж з Down, тому Up-нейрон ще називають пред-збудженим.

Гістограма збоку на малюнку показує, наскільки не рівноймовірні різні значення потенціалу. Чітко виділяються два «улюблених» — обидва підпорогові.

Коли прямий (feedforward) сигнал поширюється по мережі біологічних нейронів, то він породжує як активовані (тобто стріляють спайками), так і перед-порушені нейрони.

Є думка, що безліч пред-збуджених нейронів являють собою можливі варіанти розвитку подій з даного контексту. Тобто якщо ми раніше бачили кролика в клітці, і зараз бачимо клітку, то можна перед-активувати нейрони кролика, навіть якщо він сховався, і прямо зараз ми його не бачимо. Якщо наступної миті кролик вигляне, то ми не будемо здивовані. Слідуючи цій гіпотезі, якщо в наступний момент feedforward-сигнал не активує жоден з поточного безлічі Up-нейронів, то це буде еквівалентно нездійснених очікувань. Якщо активується хтось із Down-нейронів, то — виникнення чогось несподіваного. І те, і те назвемо умовно WTF-моментами. Чим більше їх виникає, тим, мабуть, гірше модель, і її треба модифікувати. Ця міра могла б згодитися як частина оптимізованної функції.

На основі цих пре-активованих нейронів і перемоделирования коннектома, само собою напрошується experiment-driven навчання. Вчені показали, що діти-дошкільнята схильні спонтанно винаходити інформативні експерименти під час ігор: якщо дитина хоч раз бачить, що АБВГ ->X і БВГ->X, то він робить висновок, що A не впливає на Х, і, більш того, він схильний ставити експеримент з ізолювання впливу Б, В, Р на Х окремо. Тобто далі він виключає з контексту Б, і дивиться, як змінюється Х. Серія таких експериментів призводить до появи детермінованої моделі залежностей між сутностями а-ля «зміна А точно спричиняє зміну Х».

Всередині нейромережі подібна штука, імхо, могла б виглядати якось так:

Правда, щоб це запрацювало, нейрони повинні реагувати не на саме наявність фічі в feedforward-сигналі, а на її поява/зміна. І тут саме час згадати, що…

… сітківка не передає сцену, а зміни сцени
Детальніше тут. Спайк-трейны (послідовності спайків) показують більшу кореляцію по відношенню події зміни на сцені, ніж до її попередньому або новому стану. Сітківка в цьому не самотня. Якщо покласти руку на шорстку поверхню і не рухати, то шорсткість «зникає». Це прояв більш загального властивості нейронів адаптуватися до статики. Якщо купа нейронів віддає перевагу яскраво реагированть саме на зміни чогось у часі, то від цього має бути якийсь профіт, так?

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

Такі послідовності кадрів називають когерентними, і успішно використовують [0][1] для навчання розріджених автоэнкодеров. Завдання автоэнкодера — «витягнути» інваріанти предметної області. Виділити те, що залишається стійким до трансформацій. Собака залишається собакою, хоч поверне голову, хоч вильнет хвостом. Зміни на когерентних кадрів — як раз, зазвичай, і є трансформації певного інваріанта. Звідси і профіт в тому, щоб відокремлювати изменняющееся від статичного — так інваріанти будуть выучиваться швидше.

Якщо уявити інваріант (собаку) як сукупність змінних (порода, поточна поза, колір шерсті), а трансформації як зміни значень цих змінних, то між когерентними фреймами змінюються значення змінних відразу. Якісь зафіксовані, а якісь змінюються, причому змінюються не раптом, а поступово. Це можна використовувати. У самому справі, мозок не просто знаходить інваріанти — він уміє «промотувати» всередині себе ланцюжки їх трансформацій, зменшуючи або збільшуючи крок дискретизації. Якщо ми побачили танцюриста спочатку в одній позі, А потім в іншій позі Б, то ми можемо уявити анімацію перекладом його з А в Б.



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

Вона собою композицію «вертушок». У центрі вертушки знаходяться нейрони, що відповідають на всі кути нахилу, і їх можна розглянути як спільне звернення до змінної «нахил». А в іншому карта влаштована так, що поруч з нахилом 90 опиняться, скажімо, 85 і 95, але ніколи не 0. Тобто, нейрони розставлені так, щоб мінлива вздовж вертушки варіювалася плавно. Кажуть, що формування схожої структури можна досягти картами Кохонена.
Гіпотези і несуперечність моделі
Ще одне гіпотетичне гідність карт-вертушок, присвячених однієї змінної, може бути в можливості реалізації принципу логічного винятку.

Є змінна «тип тварини», і у неї є значення «качка», «кролик» і т. д. Якщо нейромережа вибудувала вірну модель предметної області, то змінна повинна приймати тільки одне значення для однієї тварини одноразово. Бути одночасно білим і кроликом можна, а качкою і кроликом немає. Якщо наступна гіпотеза, що додається в модель, для однієї тварини активує одночасно два значення змінної «тип тварини», то в моделі протиріччя. Це трохи схоже на те, як ми ставимо уявні експерименти.

Карта значень змінної і one-shot навчання
Ну так от… навіщо городити город про ці самі картки, змінні і додавання нових синапсів. Уявіть, що мережа не знає, що таке кролик. І є всього одна відяшка з одним рудим кроликом, щоб навчитися (реалістичні умови для дітей). Якщо в нейромережі вже сформувалася карта-вертушка квітів (тобто як вищеописана, тільки про колір), то, побачивши, що зараз распознался рудий колір, можна одним ходом зробити узагальнення, що кролики бувають різних кольорів. Адже, насправді, в центрі вертушки поруч з рудим нейроном є нейрон, який відповідає за всі кольори відразу. Досить прокинути новий синапс від нього до «нейрона кролика» або на зразок того. Це буде еквівалентно гіпотезі «кролики можуть бути різних кольорів, і вона буде зроблена за одним(!) кролику.

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

Групувальні клітини
Вище описувався спосіб, як мережа могла б робити «гіпотези», пробрасывая між нейронами нові синапси. Але з біологічної точки зору, все-таки, цей процес не такий вже швидкий. За секунду новий синапс не нарастишь. А ми можемо формувати деякі гіпотези дуже швидко. Побачили, наприклад, збентеженого кота і розсипаний корм — і відразу готова гіпотеза що сталося.

У біологічних нейронів є одна цікава особливість. Вони схильні синхронізувати і десинхронизировать свою активність за допомогою маніпуляцій з фазами коливань. І ось цей механізм уже працює набагато швидше. Він (згідно поточної теорії в нейрофізіології) є основою швидкого зв'язування окремих функцій у єдине ціле. Наприклад, нехай кілька нейронів відповідали кожен за розпізнавання маленької рисочки. А рисочки виявилися належать одному контуру. Тоді знайдеться группирующая клітка (G-cell) у вищій нейромережі, яка в даному конкретному контексті почне працювати як свого роду синхронізатор. Вона їм буде посилати спайки в якості зворотного зв'язку і підтримувати їх синхронність. Якщо далі на сцені відбулася якась зміна, і стало вигідно одну з рисок розглядати як таку, що входить в інший контур, то вища мережа рассинхронизирует цю риску від старого контуру.

(на картинці: гіпотетична схема з G-cells і двома контурами у вхідному зображенні).

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

Семантичне відстань і fast mapping
Якщо ми бачимо розсипану їжу (А) і збентеженого кота (В), то можливо це кіт розсипав їжу (В->А). А можливо, тут попрацювала прихована змінна — прийшла собака, розсипала їжу, збентежила кота і пішла (C-> & C->B). Можуть бути різні пояснення, чому дві змінні виявилися в одному контексті:

Якщо припустити (як одну з гіпотез), що до спостереження АВ призвело деякий С, то його логічно взяти з контекстної околиці АВ. Тобто у згаданому випадку ми заподозрим швидше собаку, ніж Титанік — тому що Титанік ніколи не зустрічався в одному контексті з сутностями «корм», «розсипаний», «тварина», «кухня».

Об'єднання сутностей контексти допомогло б точніше будувати першу, грубу гіпотезу (яка fast mapping). На користь того, що в корі існує подібна семантична карта, говорить, наприклад, маппінг слів та відповідної їм активності на fMRI:

Apartment, bedroom, rented, lived і справді зазвичай разом ходять.

P. S.: А що ви думаєте про проблему з заголовка?

БібліографіяPhase resetting in neurons (вікі)
Distributed processing and temporal codes in neuronal networks Cogn Neurodyn., 2009
Spike Synchrony Reveals є поява of Proto-Visual Objects in CortexThe Journal of Neuroscience, 2015
Six principles of visual cortical dynamics Front. Syst. Neurosci., 2010
Discriminative Transfer Learning with Tree-based Настоятелі NIPS, 2013
Dropout: A Simple Way to Prevent Neural Networks from OverfittingJournal of Machine Learning Research, 2014
Spine plasticity in the motor cortex Current Opinion in Neurobiology, 2010
Predicted contextual modulation залежить від with distance from pinwheel centers in the orientation preference map Scientific Reports, 2011
Reducing Overfitting in Deep Networks by Decorrelating Representations ICLR 2016
Self-taught learning of a deep invariant representation for visual tracking via temporal slowness principle Pattern Recognition, 2015
Experience-dependent structural synaptic plasticity in the mammalian brain Nature Reviews Neuroscience, 2009
Word Learning in a Domestic Dog: Evidence for «Fast Mapping» Science, 2004
A model of the formation of a self-organized cortical representation of color IBM Research

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

0 коментарів

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