жко передбачити її порядок. Якщо вибрати невиправдано великий порядок, мережа може виявитися занадто гнучкою і може уявити просту залежність складним чином. Це явище називається перенавчанням. У разі мережі з недостатньою кількістю нейронів, навпаки, необхідний рівень помилки ніколи не буде досягнутий. Тут у наявності надмірне узагальнення.
Для попередження перенавчання застосовується наступна техніка. Дані діляться на дві множини: навчальне (Training Data) і контрольне (Validation Data). Контрольне безліч в навчанні не використовується. На початку роботи помилки мережі на навчальному та контрольному множинах будуть однаковими. У міру того, як мережа навчається, помилка навчання убуває, і, поки навчання зменшує дійсну функцію помилки, помилка на контрольному безлічі також буде спадати. Якщо ж контрольна помилка перестала спадати або навіть стала рости, це вказує на те, що навчання слід закінчити. Зупинка на цьому етапі називається ранньої зупинкою (Early stopping).
Таким чином, необхідно провести серію експериментів з різними мережами, перш ніж буде отримана підходяща. При цьому щоб не бути введеним в оману локальними мінімумами функції помилки, слід кілька разів навчати кожну мережу.
Якщо в результаті послідовних кроків навчання і контролю помилка залишається неприпустимо великий, доцільно змінити модель нейронної мережі (наприклад, ускладнити мережу, збільшивши число нейронів, або використовувати мережу іншого виду). У такій ситуації рекомендується застосовувати ще одне безліч - тестове безліч спостережень (Test Data), яке являє собою незалежну вибірку з вхідних даних. Підсумкова модель тестується на цій множині, що дає додаткову можливість переконатися в достовірності отриманих результатів. Очевидно, щоб зіграти свою роль, тестове безліч повинно бути використано тільки один раз. Якщо його використовувати для коригування мережі, воно фактично перетвориться на контрольне безліч.
Установка верхнього прапорця (див. малюнок 9.8) дозволить задати контрольне безліч і відповідний вектор цілей (можливо, той же, що при навчанні). Установка нижнього дозволяє задати тестове безліч і вектор цілей для нього.
Навчання мережі можна проводити в різних режимах. У зв'язку з цим, в NNTool передбачено дві вкладки, що представляють навчальні функції: розглянута раніше вкладка Train і ??laquo; Адаптація (Adapt). Adapt вміщує вкладку інформація адаптації (Adap-tion Info), на якій містяться поля, схожі за своїм призначенням з полями вкладки Training Info і виконують ті ж функції і вкладку параметри адаптації (Adaption Parameters). Остання містить єдине поле Проходи (passes). Значення, вказане в цьому полі, визначає, скільки разів всі вхідні вектори будуть представлені мережі в процесі навчання.
Параметри вкладок Train і Adapt в MATLAB використовуються функціями train і adapt, відповідно.
Роздільна лінійно-невіддільних множин. Розглянута задача синтезу логічного елемента І може трактуватися як задача розпізнавання лінійно відокремлюваних множин. На практиці ж частіше зустрічаються задачі розділення лінійно невіддільних множин, коли застосування персептронов з функцією активації з жорстким обмеженням не дасть рішення. У таких випадках слід використовувати інші функції активації. Показовим прикладом лінійно невіддільною завдання є створення нейронної мережі, що виконує логічну функцію виключає АБО .
Завдання - 2. Нехай потрібно створити нейронну мережу, що виконує логічну функцію виключає АБО .
Виконання роботи. Розглянемо таблицю істинності логічної функції виключає АБО
P1P2A000011101110
Що ж мається на увазі під лінійної неотделимостью множин? Щоб відповісти на це питання, зобразимо безліч вихідних значень в просторі входів (див. Малюнок 9.10), слідуючи наступним правилом: поєднання входів P1 і P2, при яких вихід A звертається в нуль, позначаються кружком, а ті, при яких A звертається в одиницю- хрестиком.
Малюнок 9.10. Стани логічного елемента виключає АБО
Наша мета - провести межу, що відокремлює безліч нулів від безлічі хрестиків. З побудованої картини на малюнку 9.10 видно, що неможливо провести пряму лінію, яка б відокремила нулі від одиниць. Саме в цьому сенсі безліч нулів лінійно невіддільне від безлічі одиниць, і персептрони, розглянуті раніше, в принципі, не можуть вирішити розглянуту задачу.
Якщо ж використовувати персептрони зі спеціальними нелінійними функціями активації, наприклад, сігмоідной, то рішення задачі можливо.
Виберемо персептрон з двома нейронами прихованого шару, у яких функції активації сігмоідной, і одним вихідним нейроном з лінійною функцією ак...