Давайте винаходити велосипеди!!!

Мотивації пост.


Я займаюся алгоритмів навчання нейронних мереж. Поки що простих нерекурентных нейронних мереж. Поки порівняно простими алгоритмами, тією або іншою формою градієнтних спусків. Сьогодні розмовляв на цікавому семінарі з нейроинформатике, і мене запитали, навіщо перевідкривати те, що придумано?
І правда, є ж матлаб. Будь-хто може в два рухи створити і навчити стандартну сітку одним з готових стандартних і вже оптимізованих алгоритмів, навчити який-небудь страшно стандартної задачі класифікації і все у нього буде добре. Тим більше це актуально, враховуючи що з 70-их років минулого століття у справі зворотного поширення помилки не сталося нічого принципово нового. А нові сітки вже теж є в матлабе.
У цьому пості я постараюся показати чому…
потрібно винаходити велосипед.

Менше слів, так би мовити, більше картинок. Я сів і за кілька годин зробив пару відео.

Будемо вирішувати задачку з попередньої моєї статті. Назвімо стандартну перевірену десятелетиями мережа, багатошаровий перцептрон в 4 шаруючи по 10 нейронів, полносвязанный з додатковим биас-синапсом у кожного нейрона (з часів Румельхарта немає нічого більш нудного). На вхід йому будемо подавати координати в діапазоні [-1;1], а на виході очікувати передбачення у вигляді трьох чисел, якого кольору точка повинна бути на фотографії летить павича в цьому місці. А потім запитуємо в мережі кольору для всіх точок в рамках картинки і дивимося чого вона навчилася.

Зліва картинка яку малює мережа, у неї внизу RMSE — середньоквадратична помилка мережі по всім точкам картинки. Праворуч внизу графік середньоквадратичної помилки по всіх точках епохи. Точки вибираються випадково, тому помилка відрізняється від середньої по всіх даними. Графік динамічно перемасштабируется щоб було краще видно. А вгорі у графіка масштаб. Нарешті останній верхній правий квадрат це положення мережі у випадковому двомірному фазовому просторі. Цей метод візуалізації докладно описаний в одній з моїх прошлыйх статей. Дуже зручно щоб розуміти що там всередині мережі відбувається.

Першу мережу Будемо вчити самим дубовим методом — звичайним градієнтним спуском. Навчальні приклади будемо згодовувати пачками по 300 точок. Метод і досі використовується як частина більш складних алгоритмів. Наприклад, при навчанні козирних глибоких мереж. На відео 1000 епох по одному кадру на епоху. Швидкість адаптивна, в діапазоні 0.1-0.01


На відео видно, що вже до середини навчання мережу майже перестає покращувати помилку на позначці RMSE = 0.35, але по фазової картинці видно, що в мережі йде якийсь стійкий бічній дрейф нижче рівня шуму. Пройдемо ще приблизно 8000 епох за кілька останніх кадрів і побачимо локальний мінімум в якому цей дрейф закінчується. Мережа зупинилася на рубежі RMSE=0.308, далі над нею знущатися вже бессмыслено.


Тепер назвімо друге відео. Ті ж самі 4 шари по 10 нейронів. Але тут я включаю майже всю міць моїх кращих полустохастических алгоритмів, придуманих у процесі переизобретения велосипеда. Розміри пачки для Mini-batch адаптивно змінюються з 100 до 1000, швидкість також ходить на півтора порядку.


Відразу видно, що тут все набагато бадьоріше. Мережа за 100 епох проходить межа, до якого метод з підручника не дотягнувся і за багато тисяч, і вже через 500 епох ми милуємося на набагато більш красиву картинку, яка змогла дотягнутися до RMSE=0.24 можливо це ще не кінець і це драматично краще алгоритмів без стохастики. На картинці видно, що мережа освоїла набагато більш красиві перетворення.


Але справа навіть не в цьому. Давайте порівняємо цей досить непоганий результат з картинкою з минулої статті. Отриманої майже тими ж алгоритмами з стохастикой, але на мережі, у якої немає такого рудимента, як фіксовані шари. RMSE=0.218


Особисто мені одного погляду достатньо, щоб зрозуміти, що перш ніж рухатися далі деякі речі в нейроинформатике не завадило б і перевідкрити. Як казав Джобс «Stay Hungry. Stay Foolish.» Дуже багато в нейронауках може бути покращено самим звичайним людиною на звичайному домашньому комп'ютері, якщо у нього буде ідея, і він выкроит час щоб їй займатися. Занадто мало знань поки що накопичено тут, занадто багато залишилося у спадщину від часів комп'ютерів, що займають поверх, занадто багато чудових алгоритмів просто ніхто ні разу не спробував.

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

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

0 коментарів

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