Що приховують нейронні мережі?

Стаття є вільним перекладом The Flaw Lurking In Every Deep Neural Net .
 
Нещодавно опублікована стаття з нешкідливим заголовком є, ймовірно, найбільший новиною в світі нейронних мереж з моменту винаходу алгоритму зворотного поширення . Але що ж у ній написано?
 
У статті " Інтригуючі властивості нейронних мереж " за авторством Christian Szegedy, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow and Rob Fergus, команди, що включає авторів з проекту Google по глибокому навчанню, коротко описуються два відкриття в поведінці нейронних мереж, суперечать тому, що ми думали перш. І одне з них, чесно кажучи, приголомшує.
 
Перше відкриття ставить під сумнів припущення, яке ми так довго вважали вірним, що нейронні мережі упорядочівют дані. Довгий час вважалося, що в багатошарових мережах на кожному рівні нейрони навчаються розпізнавати особливості для наступного шару. Менш сильним було припущення, що останній рівень може распозновать істотні і зазвичай значущі особливості.
 
Стандартний спосіб з'ясувати, чи так це насправді, це знайти для конкретного нейрона така безліч вхідних даних, яке максимізує вихідне значення. Яку б особливість це безліч ні виділяло, передбачається, що нейрон реагує саме на неї. Наприклад, в задачі розпізнавання осіб нейрон може реагувати на присутність очі або носа на зображенні. Але зауважте — немає причини, за якою такі особливості повинні збігатися з тими, які виробить чоловік.
 
Було виявлено, що особливість окремого нейрона можна трактувати як змістовну НЕ боллее, ніж у випадкового безлічі нейронів. Тобто, якщо ви виберете випадковим чином безліч нейронів і знайдете зображення, максимизирующие вихідне значення, ці зображення будуть настільки ж семантично схоже, як і у випадку c одним нейроном.
 
Це означає, що нейронні мережі не «дескрембліруют» дані, відображаючи особливості на окремі нейрони, наприклад, вихідного шару. Інформація, яку витягує нейронна мережа, настільки ж розподілена між усіма нейронами, наскільки вона зосереджена в одному з них. Це цікава знахідка, і вона веде до іншої, ще більш цікавою…
 
 У кожній нейронної мережі є «сліпі плями» в тому сенсі, що існують набори вхідних даних, дуже близькі до того, щоб бути класифікованими правильно, які при цьому розпізнаються невірно.
 
З самого початку дослідження нейронних мереж передбачалося, що нейронні мережі вміють робити узагальнення. Тобто, якщо ви навчите мережу розпізнавати зображення котів, використовуючи певний набір їхніх фотографій, вона зможе, за умови, що була навчена правильно, розпізнавати котів, яких до цього не зустрічала.
 
Це припущення включало інше, ще більш «очевидне», згідно з яким якщо нейронна мережа класифікує фотографію кота як «кота», то вона буде класифікувати так само і злегка змінену версію цього зображення. Для створення такого зображення потрібно трохи змінити значення деяких пікселів, і поки ці зміни невеликі, людина не помітить різниці. Імовірно, не помітить її і комп'ютер.
 
 
Як би там не було, це не так
Роботою дослідників став винахід оптимізаційного алгоритму, який починає виконання з правильно класифікованого прикладу і намагається знайти невелику зміну вхідних значень, яке призведе до помилкової класифікації. Звичайно, не гарантується, що така зміна взагалі існує — і якщо припущення про послідовність роботи нейронної мережі, згадане раніше, вірно, то пошук не приводив би результатів.
 
Однак, результати є.
 
Було доведено, що для різних наборів нейронних мереж і вихідних даних можна з великою ймовірністю згенерувати такі «суперечать приклади» з тих, що розпізнаються правильно. Цитуючи статтю:
 
 
Для всіх мереж, які ми вивчали, і для кожного набору даних нам завжди вдається згенерувати дуже схожі, візуально відрізнити, що суперечать приклади, які розпізнаються невірно.
 
Щоб було зрозуміло, для людини вихідне і суперечливе зображення виглядають однаково, але мережа класифікує їх по-різному. У вас може бути дві фотографії, на яких не просто зображені два кота, але навіть один і той же кіт, з точки зору людини, але комп'ютер буде разпозняет одного правильно, а іншого — ні.
 
 
 Зображення праворуч класифіковані правильно, картинки ліворуч — неправильно. Посередині зображені різниці двох зображень, помножених на 10, щоб зробити відмінності відіміми.
 
 
 На лівій картинці непарні колонки класифіковані правильно, а парні — ні. На правій зображенні все розпізнається вірно, навіть випадкове спотворення вихідних зображень, представлене в парних колонках. Це показує, що зміни повинні бути дуже специфічними — потрібно рухатися в строго певному напрямку, щоб знайти приклад протиріччя.
 
Що ще сильніше вражає, так це якась загальність, яка, здається, об'єднує всі ці приклади. Відносно велика частка прикладів розпізнається невірно як мережами, навченими на загальних даних, але з різними параметрами (кількість шарів, регуляризація або початкові коефіцієнти), так і мережами з однаковими параметрами, навченими на різних наборах даних.
 
 
Спостереження, описані вище, наводять на думку, що суперечливість прикладів це щось глобальне, а не просто результат перенавчання .
 
Це, напевно, найвидатніша частина результату: для кожного правильно класифікованого прикладу існує інший такий приклад, невідмітний від вихідного, але класифікується невірно незалежно від того, яка нейронна мережа або навчальна вибірка були використані.
 
Тому, якщо у вас є фотографія кота, існує набір невеликих змін, які можуть зробити так, що мережа буде розпізнавати кота як собаку — незалежно від мережі та її навчання.
 
 
Що все це означає?
Дослідники налаштовані позитивно і використовують суперечать приклади для навчання мережі, домагаючись правильної її рабти. Вони відносять ці приклади до особливо складних видів навчальних даних, які можуть бути використані для поліпшення мережі та її здатності узагальнювати.
 
Однак, це відкриття, здається, є щось більше, ніж просто поліпшена навчальна вибірка.
 
Перше, про що ви можете подумати «Ну і що, що кіт може бути класифікований як собака?» . Але якщо ви трохи змініть ситуацію, питання може звучати як «Що, якщо безпілотний автомобіль, який використовує глибоку нейронну мережу, не розпізнає пішохода перед собою і буде думати, що дорога вільна?» .
 
Послідовність і стабільність глибоких нейронних мереж важлива для їх практичного застосування.
 
Виникає також філософське питання щодо сліпих областей, згаданих раніше. Якщо основою глибоких нейронних мереж послужила біологічна модель, чи можна застосувати до неї отриманий результат? Або, кажучи простіше, чи містить людський мозок подібні вбудовані помилки? Якщо ні, то чим він так сильно відрізняється від нейронних мереж, що намагаються копіювати його роботу? У чому секрет його стабільності та послідовності?
 
Одним з пояснень може бути те, що це ще один прояв прокляття розмірність . Відомо, що з ростом розмірності простору обсяг гіперсфери експоненціально концентрується на її кордоні. Враховуючи, що кордони рішень знаходяться в просторі дуже великої розмірності, здається логічним, що найбільш добре класифіковані приклади будуть розташовуватися близько до кордону. У цьому випадку можливість класифікувати приклад невірно дуже близька до можливості зробити це правильно — потрібно лише визначити напрямок убік найближчої межі.
 
Якщо це все пояснює, то зрозуміло, що навіть людський мозок не може уникнути подібного ефекту і повинен якось справлятися з цим. Інакше, кішки перетворювалися б у собак з тривожною регулярністю.
 
 
Підсумок
Нейронні мережі виявили новий тип нестабільності, і не схоже, що можуть приймати рішення послідовно. І замість того, щоб «латати діри», включаючи суперечливі приклади в навчальні вибірки, наука повинна досліджувати і усунути проблему. Поки цього не відбудеться, ми не може покладатися на нейронні мережі там, де безпека критично важлива…
 
 

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

0 коментарів

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