Як класифікувати дані, що мають форму спіралі?


9

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


Відповіді:


11

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

Я не знайшов способу це зробити на ігровому майданчику, тому я просто створив кілька функцій, які повинні допомогти у цьому (функції гріха). Після 500 ітерацій воно насититься і коливатиметься на рівні 0,1 балів. Це говорить про те, що подальше поліпшення не буде зроблено, і, швидше за все, я повинен зробити прихований шар ширшим або додати ще один шар.

Не дивно, що додавши лише один нейрон до прихованого шару, ви легко отримаєте 0,013 після 300 ітерацій. Подібне відбувається і шляхом додавання нового шару (0,017, але після значно більш тривалих 500 ітерацій. Також не дивно, оскільки складніше поширювати помилки). Швидше за все, ви можете пограти зі швидкістю навчання або зробити адаптивне навчання, щоб зробити його швидшим, але тут справа не в цьому.

введіть тут опис зображення


Сферичні координати! Нагадував про недооцінку.
Souradeep Nanda

4
@SouradeepNanda ви знайдете багато математичних речей, які люди вважають непотрібними в школі надзвичайно важливими в ML
Сальвадор Далі

Тільки для таких цікавих, як я, я намагаюся повторити результати , але все не йде так гладко
кодування,

4

В ідеалі нейронні мережі повинні мати можливість самостійно з’ясувати функцію, не надаючи нам сферичних особливостей. Після деяких експериментів я зміг вийти на конфігурацію, де нам не потрібно нічого, крімХ1 і Х2. Ця сітка сходилася приблизно через 1500 епох, що досить довго. Тож найкращим способом все-таки може бути додавання додаткових функцій, але я просто намагаюся сказати, що без них все-таки можна сходитися.

Рішення без додаткових функцій


3

Обманом ... thetaєарктан(у,х), r є (х2+у2).

Теоретично, х2 і у2 повинні працювати, але, на практиці, вони якось провалилися, хоча, іноді, це працює.

введіть тут опис зображення


Чи можете ви детальніше розповісти про те, як вас "обдурили"? Як ви додали ці функції? Ви завантажили ігровий майданчик з GitHub і змінили його? Або є більш прямий спосіб зробити це?
Джим

Мені було цікаво, як застосувати цей хак теж. Намагався це робити всередині браузера, але не пощастило з цим. Тоді я вирішив розщедрити вихідний код і додав нові функції введення. Побачити його можна тут
Канкут

0

розчин спіралі для ігрового майданчика для ванілі

Це приклад ігрового майданчика для ванілі Tensorflow без додаткових функцій та жодних модифікацій. Пробіг для спіралі залежно від 187 до ~ 300 епох. Я використовував регуляризацію Lasso L1, щоб я міг усунути коефіцієнти. Я зменшив розмір партії на 1, щоб утримати вихід від перевищення. У своєму другому прикладі я додав деякий шум до набору даних, а потім підвищив L1 для компенсації.

введіть тут опис зображення


0

Рішення я прийшов після того, як годину випробування , як правило , збігається всього 100 епох .

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

! [0,6% помилка тесту

Я дізнався кілька речей із цього спірального експерименту: -

  • Вихідний шар повинен бути більшим або рівним вхідному шару . Принаймні, це я помітив у випадку цієї проблеми зі спіраллю.
  • Тримайте початкову швидкість навчання в такому випадку, як 0,1, у цьому випадку, коли ви наближаєтесь до низької помилки тесту, як 3-5% або менше, зменшіть рівень навчання на позначку (0,03) або два. Це допомагає швидше конвергуватися і уникає стрибків навколо глобальних мінімумів.
  • Ви можете побачити ефекти високого рівня навчання, перевіривши графік помилок у верхньому правому куті.
  • Для менших розмірів партії, таких як 1, 0,1 занадто висока швидкість навчання, оскільки модель не зможе конвергуватися, коли вона стрибає навколо глобальних мінімумів.
  • Отже, якщо ви хочете зберегти високу швидкість навчання (0,1), збережіть також високий розмір партії (10). Зазвичай це дає повільне, але більш плавне зближення.

Випадково рішення, яке я придумав, дуже схоже на рішення, яке надав Сальвадор Далі .

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.