X = reshape (A,[N,1]) - процедура перетворення двовимірного масиву A[N1,N2] в
одновимірний вектор-стовпець X[N,1], де N=N1*N2.
Процедура множення масиву на 1 призводить до зміни типу елементів масиву з logical (для елементів бітового формату) на double.
Для ефективної роботи ШНМ недостатньо використання лише однієї навчальної реалізації для кожного класу. Це пов’язано з тим, що реалізації на етапі безпосереднього розпізнавання) відрізняються від навчальних по ряду причин:
- різноманіття шрифтів і стилів друкованих символів;
- неточності сканування;
- низька якість друку, дефекти паперу, тощо.
Таким чином, в програмі необхідно сформувати додаткові навчальні реалізації шляхом незначного спотворення еталонних образів, які були завантажені з графічних файлів. Спотворення еталону реалізується шляхом додавання до нього рівномірного шуму типу «Сіль та перець», який полягає у випадковому спотворенні частини пікселів зображення. Ступінь спотворення характеризується числом p=[0;1], що визначає долю спотворених пікселів.
Такий підхід при формуванні реалізацій дозволить, по-перше, оперативно отримати велику кількість навчальних реалізацій, і,по-друге, регулювати (шляхом зміни значення p) ступінь внутрікласової різноманітності.
підготовка даних, необхідних для створення нейронної мережі
Така підготовка даних полягає в:
1) формуванні двовимірного масиву навчальних реалізацій XR[N,K], кожний стовпець якого складається з N значень ознак, а число стовпців K дорівнює загальна кількості реалізацій для всіх класів;
2) формуванні двовимірного масиву міток (бажаних значень на виході ШНМ) YR[NY,K], де NY – число виходів ШМН (число нейронів вихідного шару); K – загальна кількість реалізацій для всіх класів. Мітка YR[:,k] (в загальному випадку – вектор-стовпець) відповідає k-тій реалізації XR[:,k];
3) формування двовимірного масиву R[N,2], що визначає нижній R(n,1) та верхній R(n,2) допуск для n-ої ознаки, n=1,…,N.
створення ШНМ, завдання параметрів навчання нейронної мережі та її навчання
Створення ШНМ mynet виконується за допомогою команди:
mynet = newnnn (P1,P2,…PL),
де newnnn – тип ШНМ;
P1,…,PL – параметри ШНМ.
В даній роботі використовується ШНМ типа багатошаровий перцептрон, який створюється за допомогою команди команди:
mynet = newff (R, [A1 A2 … AL], {F1 F2 … FL}, BTF, PF),
де R - масив мінімальних і максимальних значень входних нейронів (ознак);
Ai - число нейронів i-го шару, починаючи з першого прихованого прошарку, i=1,…,L;
Fi - функція активації нейронів i-го прошарку, за замовчанням ‘tansig’;
BTF - функція навчання мережі, за замовчанням ‘trainlm’;
PF - критерій зупину, за замовчанням ‘mse’ (мінімум середньо квадратичного відхілення).
Додаткові параметри, що задаються при створенні мережі:
mynet.performFcn=’msereg’ - навчання ШНМ виконується за методом регуляризації;
mynet.performParam.ratio=0.1 - значення параметру регуляризації;
mynet.trainParam.show=5 - число епох, після виконання яких виводяться параметри навчання;
mynet.trainParam.epochs=500 - максимальне число епох при навчанні мережі;
mynet.trainParam.goal=0.02 - значення цільової функції, при досягненні якого процес навчання зупиняється.
Процес навчання ШНМ виконується командою:
mynet = train (mynet, XR, YR) .
Для розв’язання задач розпізнавання друкованих символів рекомендується використовувати тришарову ШНМ (один прихований прошарок) з числом нейронів:
N= N1 ·N2 - у вхідному прошарку;
A1=20 - у прихованому прошарку;
A2=1 - у вихідному прошарку.
Робота ШНМ, тобто формування вихідного сигналу Y при вхідному X[N,1] виконується командою:
Y = sim (mynet, X).
Для випадку, коли вихідний сигнал приймає цілочисельні значення, рекомендується використовувати округлення
Y = round (sim (mynet, X)).
На рис. 2 подані приклади розпізнавання символів, поданих на рис. 1. Навчання ШНМ проводилось для M=10 класів для кожного виду символу і при значені параметра спотворення символів p=0,1.
Результат розпізнавання: «2» «3» «5»
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.