Вибір кількості нейронів і шарів


Апроксимація багатомірної функції.

Розглянемо багатомірну функцію , де вектор yмає NO компонент, а вектор x— NI компонент. Найпростіший спосіб формалізації — використовувати мережа з NI входами і NO виходами.

Компоненти вектора xподаються на вхід мережі, y— знімаються на виході. Мережа навчається на відомих значеннях функції f.

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

Чим більше кількість нейронів і шарів, тим ширше можливості мережі, тим повільніше вона навчається і працює і тим більше нелінійною може бути залежність вхід-вихід.

Кількість нейронів і шарів зв'язано:

1) зі складністю задачі;

2) з кількістю даних для навчання;

3) з необхідною кількістю входів і виходів мережі;

4) з наявними ресурсами: пам'яттю і швидкодією машини, на якій моделюється

мережа;

Були спроби записати емпіричні формули для числа шарів і нейронів, але застосовність формул виявилася дуже обмеженою.

Якщо в мережі занадто мало нейронів чи шарів:

1) мережа не навчиться і помилка при роботі мережі залишиться велика;

2) на виході мережі не будуть передаватися різкі коливання апроксимованої функції y(x).

Перевищення необхідної кількості нейронів теж заважає роботі мережі.

Якщо нейронів чи шарів занадто багато:

1) швидкодія буде низькою, а пам'яті буде потрібно багато — на Фон-неймовских ЕОМ;

2) мережа перенавчиться: вихідний вектор буде передавати незначні і несуттєві деталі в досліджуваній залежності y(x), наприклад, шум чи помилкові дані;

3) залежність виходу від входу виявиться різко нелінійною: вихідний вектор буде істотний але і непередбачено мінятися при малій зміні вхідного вектора x;

4) мережа буде нездатна до узагальнення: в області, де немає чи мало відомих крапок функції y(x) вихідний вектор буде випадковий і непередбачений, не буде адекватний рішаємої задачі.

Підготовка вхідних і вихідних даних

Дані, що подаються на вхід мережі і знімаються з виходу, повинні бути правильно підготовлені.

Один з розповсюджених способів — масштабування:

де — вихідний вектор, x— масштабування. Вектор m— усереднене значення сукупності вхідних даних. з — масштабний коефіцієнт.

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

1) нейрони вхідного шару виявляться в постійному насиченні (|m| великий, дисперсія вхідних даних мала) чи будуть увесь час загальмовані (|m| малий, дисперсія мала);

2) вагові коефіцієнти приймуть дуже великі чи дуже малі значення при навчанні (у залежності від дисперсії), і, як наслідок, розтягнеться процес навчання і знизиться точність.

Розглянемо набір вхідних даних для мережі з одним входом:

Якщо функція активації — гіперболічний тангенс із безліччю значень, то при вагарнях коефіцієнтах біля одиниці нейрони вхідного шару виявляться в насиченні для всіх . Застосуємо масштабування з m=10,2 і c=4. Це дасть значення в припустимому діапазоні (-1;1).

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

Інші способи підготовки даних

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

чи

де — значення курсу в i-й день.

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

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