Як ефективно моделювати нейромережу?


13

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


1
Вам справді потрібен NN? Цей метод вважається застарілим (частково тому, що взагалі дуже важко відповісти на ваші запитання).

1
@mbq: можливо, це має бути окремим питанням, але ви можете розширити свою заяву про те, що нейронні мережі вважаються застарілими? (а ким?)
naught101

1
@ naught101 Це коментар від 2010 року ... Сьогодні ми, на жаль, пережили це безумство, тому нам доведеться почекати кілька років, щоб

1
@mbq: це не відповідає на моє запитання. Але , можливо , це робить: stackoverflow.com/questions/683124/neural-networks-obsolete
naught101

Відповіді:


25

Я б дав поради:

  1. Вичерпайте можливості лінійних моделей (наприклад, логістична регресія) перед тим, як перейти до нейронних мереж, особливо якщо у вас багато особливостей і не надто багато спостережень. Для багатьох проблем Neural Net не виконує прості лінійні класифікатори, і єдиний спосіб дізнатися, чи є ваша проблема в цій категорії, - це спробувати її і побачити.

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

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

  4. Якщо ви використовуєте MLP, то використовуйте регуляризацію. Якщо ви зробите це, він буде менш чутливим до варіантів архітектури, таких як оптимізація кількості прихованих одиниць. Натомість все, що вам потрібно зробити, - це вибрати хороше значення для параметра регуляризації. Байєсівський "доказовий фреймворк" Маккея забезпечує хороший метод встановлення параметра регуляризації. Якщо ви використовуєте регуляризацію, то кількість спостережень і кількість змінних стає набагато меншим питанням.

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

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

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

Якщо ви користувач MATLAB (як я), я настійно рекомендую програмне забезпечення NETLAB (Ian Nabney та Chris Bishop) або програмне забезпечення, яке входить до книги Гауссового процесу для машинного навчання Расмуссена та Вільямса. Я ще можу настійно рекомендувати книгу "Нейронні мережі для розпізнавання образів" Кріса Бішопа для всіх, хто починає роботу з нейронних мереж. Це блискуча книга, яка охоплює матеріал з великою чіткістю та мінімальним рівнем математики, необхідної для того, щоб зрозуміти, що ви робите, і більшість із них реалізовані в програмному забезпеченні NETLAB (яке також може працювати під Octave).

HTH

PS Найкращий спосіб моделювання нейронної сітки - це, ймовірно, використання байєсівського підходу на основі гібридного Монте-Карло (HMC), розробленого Радфордом Нілом. Взагалі проблеми починаються з моделювання, коли ви намагаєтеся оптимізувати деякі параметри, і в кінцевому підсумку ви переоцінюєтесь. Найкраще рішення - ніколи нічого не оптимізувати, а замість цього маргіналізувати (інтегрувати) параметри. На жаль, ця інтеграція не може бути здійснена аналітично, тому вам потрібно використовувати підходи на основі вибірки. Однак це (а) обчислювально дорого та (б) трохи "чорне мистецтво" і вимагає глибокого розуміння та досвіду.

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