[Net, TR, Ac, El] = trainb (net, Pd, Tl, Ai, Q, TS, VV, TV)
info = trainb (code)
TRAINB не викликається безпосередньо. Для виклику функції необхідно викликати TRAIN для мережі, при визначенні якої властивість NET.trainFcn встановлено як 'trainb'.
TRAINB навчає мережу шляхом модифікації ваг і зміщень в пакетному режимі. Ваги і зміщення модифікуються після повного проходу всіх вхідних даних.
Вхідні параметри:- NET - нейронна мережа;
- Pd - вектори вхідних затримок;
- Tl - вектори еталонів шару;
- Ai - початкові умови вхідних затримок;
- Q - розмір пакета;
- TS - тимчасові кроки;
- VV - порожня матриця або структура контрольних векторів;
- TV - порожня матриця або структура тестових векторів.
- NET - тренована мережу;
- TR - запис, що включає параметри тренування;
- TR.epoch - кількість епох тренування;
- TR.perf - параметр тренування;
- TR.vperf - параметр контрольної перевірки;
- TR.tperf - параметр тестування;
- Ac - сумарні виходи шару для останньої доби;
- El - помилки шару для останньої доби.
- net.trainParam.epochs - (100) - Максимальна кількість епох тренування;
- net.trainParam.show - (25) - Кількість епох між графіками (NaN - без графіка);
- net.trainParam.goal - (0) - Умова зупинки по відхиленню від еталону;
- net.trainParam.time - (inf) - Максимальний час тренування в секундах;
- net.trainParam.max_fail - (5) - Максимальна кількість помилок на контрольному масиві.
- Pd - NoxNixTS масив осередків, кожен елемент якого P - матриця DijxQ;
- Tl - NlxTS масив осередків, кожен елемент якого P - матриця VixQ;
- Ai - NlxLD масив осередків, кожен елемент якого Ai - матриця SixQ;
- Ni = net.numInputs
- Nl = net.numLayers
- LD = net.numLayerDelays
- Ri = net.inputs.size
- Si = net.layers.size
- Vi = net.targets.size
- Dij = Ri * length (net.inputWeights.delays)
- VV.PD, TV.PD - Затримки контрольних / тестових входів;
- VV.Tl, TV.Tl - Контрольні / тестові зразки шару;
- VV.Ai, TV.Ai - Вхідні початкові умови контрольного / тестового масиву;
- VV.Q, TV.Q - Розмір пакету контрольних / тестових масивів;
- VV.TS, TV.TS - Тимчасові кроки контрольного / тестового масиву.
Контрольні вектори використовуються для дострокової зупинки тренування, якщо показник функціонування мережі на контрольному масиві векторів перестане поліпшуватися або буде залишатися на одному рівні для MAX_FAIL епох поспіль. Тестові вектори використовуються для подальшого тестування мережі, щоб оцінити узагальнюючі властивості і не впливають на процес тренування мережі.
TRAINB (CODE) повертає інформацію для кожної з рядків CODE:- 'Pnames' - Імена параметрів тренування;
- 'Pdefaults' - Параметри тренування за замовчуванням;
Стандартну мережу, яка використовує TRAINB можна створити за допомогою функцій NEWLIN.
Для того, щоб створити для користувача мережу, яку необхідно тренувати за допомогою TRAINB, потрібно:
1) Встановити NET.trainFcn як 'trainb'. Тим самим значення NET.trainParam будуть значеннями за замовчуванням для функції TRAINB.
2) Поставити навчальні функції NET.inputWeights.learnFcn.
3) Поставити навчальні функції NET.layerWeights.learnFcn.
4) Поставити навчальні функції NET.biases.learnFcn. (Параметри навчання ваг і зміщень буде автоматично вибрано як значення за замовчуванням для обраних навчальних функцій)
Для того, щоб навчити мережу, потрібно:
1) Встановити необхідні значення для властивостей NET.trainParam.
2) Встановити необхідні значення параметрів навчання ваг і зміщень.
3) Викликати функцію TRAIN.
Кожен вага і зміщення модифікуються відповідно до його навчальної функції після кожної епохи (один прохід по всьому набору вхідних векторів).
Тренування зупиняється якщо виконується одна з наступних умов:
1) Досягнуто максимальне значення кількості епох "EPOCHS".
2) Ви перевищили значення максимального часу тренування "TIME".
3) Ефективність функціонування досягне значення "GOAL".
4) Контрольне значення функціонування збільшилася більш ніж "MAX_FAIL" раз поспіль після після того, як воно в останній раз зменшилася (при використанні контрольного масиву).