глибоке навчання невиконаним завданням без зображення?


12

Наразі існує багато цікавих додатків для глибокого вивчення комп’ютерного зору чи обробки природних мов.

Як це в інших, більш традиційних галузях? Наприклад, у мене є традиційні соціально-демографічні змінні плюс, можливо, багато лабораторних вимірювань і хочу передбачити певну хворобу. Це буде додатком для глибокого навчання, якщо у мене буде багато спостережень? Як би я побудував тут мережу, я думаю, що всі фантазійні шари (згортки тощо) насправді не потрібні ?! Просто зробити це глибоким?

На моєму конкретному наборі даних я спробував деякі загальні алгоритми машинного навчання, такі як випадкові ліси, gbm і т. Д. Із змішаними результатами щодо точності. У мене обмежений досвід глибокого навчання з розпізнаванням зображень.


1
Можливо, вам буде краще поглянути на інший підхід, наприклад, XGBoost, залежно від того, скільки коштує "безліч спостережень". Чи можете ви уточнити, чи ваша мета полягає в тому, щоб спеціально спробувати підходи до глибокого навчання або отримати найкращу точність?
Ніл Слейтер

@NeilSlater моєю метою було б досягти більш високої точності, ніж усталені методи, такі як xgboost, якщо це можливо в такому випадку
spore234

1
Це можливо, але, на мій досвід, малоймовірно, якщо у вас дійсно багато даних.
Ніл Слейтер

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

Відповіді:


10

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

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

На моєму досвіді, намагаючись використовувати глибокі (-ish, зазвичай ~ 5 шарів) нейронні мережі в змаганнях Kaggle:

  • Випадання все ще є високоефективним для регуляризації та підвищення точності

  • Нормалізація введення - зазвичай має значення 0, стандартний девіатон 1, є важливим

  • Функції активації прихованого шару можуть змінити значення. Хоча ReLU зменшує деякі проблеми із зниклими градієнтами, на мій досвід, він менш надійний із несигнальними даними, і вам потрібна інша форма. Якщо у вас всього кілька шарів, сигмоїд або танг все одно працюють добре. В іншому випадку, подивіться на герметичні ReLU, PReLU, ELU та інші варіанти ReLU, які намагаються виправити свої проблеми з "мертвими" нейронами.

  • Скористайтеся оптимізаторами, призначеними для глибокого навчання, наприклад, Адама, Адаграда або RMSProp

  • Використовуйте підхід для ініціалізації ваги, який працює з глибоким навчанням, наприклад, Glorot.

  • Подумайте про використання шарів нормальної партії. Я не маю багато досвіду, але я бачив, як інші люди добре справляються з таким підходом.

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


1

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

Я вважаю терміни «глибоким навчанням» як оманливі: мережа не вчиться, ви можете лише навчити її.

Якщо припустити, що ви можете створити навчальний і тестовий набір, на високому рівні ви можете використовувати

  • Багатошаровість: якщо ваші дані не мають порядку і структури мають фіксовану позицію.

  • Рекурсивні мережі: якщо порядок даних має важливе значення для класифікації

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

Для отримання гарної настройки, як і кількості шарів, потрібні спроб та помилки; це свого роду чорна магія.

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