Однієї з областей застосування нейронних мереж є розпізнавання образів. Апроксимаційні можливості НМе грають тут першорядну роль.
Приклад 4.
Необхідно побудувати і навчити нейронну мережу для рішення задачі розпізнавання цифр. Ціль цього приклада - показати загальний підхід до рішення задач розпізнавання образів. Тому, щоб не захаращувати виклад технічними деталями, позначимо лише ключові моменти, думаючи, що на даному етапі читач готовий самостійно зробити відповідні дії з NNTool.
Система, що має бути синтезувати за допомогою нейронної мережі, буде навчена сприймати символи, близькі до шаблонового (рис. 16).
Рис. 16. Монохромне зображення вихідних даних | Рис. 17. Графічне представлення масиву вихідних даних |
Набори вихідних даних (не плутати з цільовими даними) можна як завантажувати з файлів зображень, так і створювати безпосередньо в MATLAB. Рис. 17 ілюструє вміст масиву вихідних даних. Одержимо навчальні дані, наклавши шум на набір вихідних даних (рис. 18).
|
|
Рис. 18. Навчальні дані | Рис. 19. Вікно імпорту і завантаження даних з MAT-файлу |
У задачах класифікації, до яких відноситься даний приклад, кількість виходів мережі відповідає числу поділюваних мережею класів. Цей факт повинний бути врахований при виборі архітектури мережі і на етапі формування цільових даних. Мережа класифікації дає найбільше значення на виході, що відповідає придатному класу. При добре сконструйованій і навченій НМе значення інших виходів будуть помітно менше.
Для рішення цієї задачі обрана мережа Feed-forward backprop з п'ятьма сигмоїдними нейронами першого шару і п'ятьма лінійними нейронами другого шару. Алгоритм навчання - Левенберга-Маркардта. З такою конфігурацією мережа після восьми епох навчання дала помилку порядку 10-30.
Щоб упевнитися в правдивості результату, ми прогнали мережу на заготовленій контрольній множині. Мережа бездоганно розділила і нову вибірку зашумленних символів.
Завершуючи приклад, відзначимо, що вже зараз успішно розробляються різноманітні системи розпізнавання образів (візуальних, звукових), що базуються на нейронних мережах. Прикладом можуть послужити програми розпіз-навання сканованого тексту. Вони достатньо широко поширені серед власників оптичних сканерів і в реальному масштабі часу справляються з поставленими задачами.
Імпорт-експорт даних
На практиці часто приходиться переносити дані з одного комп'ютера на інший чи користатися зовнішніми, стосовно NNTool, засобами обробки даних. У зв'язку з цим виникає необхідність збереження результатів роботи і завантаження даних. Не менш важливий обмін даними між NNTool і MATLAB, оскільки простори їх змінних не перетинаються.
|
|
Ці задачі вирішують засоби імпорту-експорту і завантаження-збереження даних. Доступ до них здійснюється через головне вікно NNTool (рис. 1)за допомогою кнопок Import і Export.
Імпорт
Джерелом служить змінна в робочому просторі MATLAB, а пунктом призначення - змінна в робочому просторі NNTool. Натиснувши кнопку Import, попадаємо у вікно "Імпорт-завантаження даних" (Import or Load to Network/Data Manager). За замовчуванням тут встановлена опція завантаження з робочого простору MATLAB, тому в центрі вікна з'являється список приналежних йому змінних. Вибравши мишею потрібну змінну в полі "Вибір змінної" (Select a Variable), - їй можна задати довільне ім'я в полі "Ім'я" (Name), під яким вона буде скопійована в NNTool. Коли змінна виділена, NNTool аналізує її тип і робить доступними для вибору ті "Категорії даних" (Import As), що підтримуються. Вказавши одну з них, варто натиснути кнопку "Імпортувати" (Import), щоб завершити копіювання. Після того, як усі дії успішно проведені, ім'я імпортованої змінної з'явиться в одному зі списків головного вікна NNTool.
Завантаження з файлу
Тут джерело - файл. При цьому важливо, щоб його формат підтримувався NNTool. У придатному форматі зберігаються так звані MAT-файли. Вони містять бінарні дані і дозволяють MATLAB зберігати змінні будь-яких підтримуваних типів і вимірностей. Такі файли можуть створюватися, наприклад, у процесі роботи з NNTool. Щоб завантажити змінні з MAT-файлу в NNTool, необхідно відкрити вікно імпорту, натиснувши кнопку "Import" головного вікна NNTool. Потім слід зазначити опцію "Завантажити з файлу" (Load from disk file) і, натиснувши "Огляд" (Browse), відкрити файл із даними, що зберігаються у форматі MAT-файлів. Найчастіше, це файли з розширенням MAT. У результаті, список у вікні імпорту заповниться іменами змінних, збережених у зазначеному MAT-файлі. Подальша послідовність дій цілком збігається з описаної в пункті Імпорт (рис. 19).
Експорт
Ця функція копіює задані змінні з NNTool у робочий простір MATLAB. Вона доступна по натисканню кнопки Export головного вікна NNTool. У вікні експорту єдиним списком перераховані змінні всіх категорій, представлених у NNTool. Тут необхідно виділити ті з них, що підлягають експорту, і натиснути Export. Тепер виділені змінні скопійовані в робочий простір MATLAB.
Збереження у файлі
У цілому, процедура схожа з експортом, за одним виключенням: відзначивши змінні, варто натиснути кнопку "Зберегти" (Save). Тоді з'явиться вікно, у якому можна задати ім'я файлу. Його можна вказати без розширення - за замовчуванням NNTool прикріпить розширення MAT. Це зв'язано з тим, що NNTool зберігає дані тільки у форматі MAT-файлів (рис. 20).
Рис. 20. Вікно експорту і збереження даних у MAT-файлі
Ми розглянули найпростіші задачі, для рішення яких застосовувалися нейронні мережі прямого поширення. NNTool дозволяє вирішувати значно більш широке коло задач, надаючи можливість використовувати мережі різноманітних архитектур, з пам'яттю і без пам'яті, зі зворотними зв'язками і без таких. При цьому варто мати на увазі, що успіх багато в чому залежить від розуміння поводження конструйованих мереж і їхніх апроксимаційних можливостей.
Варіанти завдань
Виконати апроксимацію функціональної залежності в середовищі NNTOOL, порівняти отриманий результат з результатом апроксимації на підставі систем нечіткого висновку типу Мамдані (лаб. робота №2).
№ варіанту | Тип функції | Область визначення змінних | Примітки |
y=F (x 1, x 2) = sin(x 1 + x 2) – x 1 | x 1, x 2 [0, 2pi] | ||
y= F (x 1, x 2)=exp(– x 1)+ sin(x 2/2) | x 1, x 2 [0, 2pi] | ||
y=F (x 1, x 2, x 3) = sin(x 1 + x 2 + x 3) | x 1, x 2, x 3 [0, 2pi/3] | ||
y=F (x 1, x 2, x 3) = cos(x 1 + x 2 + x 3) | x 1, x 2, x 3 [0, 2pi/3] | ||
y=F (x 1, x 2, x 3) = sin((x 1+ x 2 + x 3)/2) | x 1, x 2, x 3 [0, 2pi/3] | ||
y=F (x 1, x 2, x 3) = cos((x 1+ x 2 + x 3)/2) | x 1, x 2, x 3 [0, 2pi/3] | ||
y=F (x 1, x 2, x 3) = exp(– x 1) + exp(– x 2) + exp(x 3/2) | x 1, x 2, x 3 [0, 2pi/3] | ||
y=F (x 1, x 2, x 3) = sin(x 1 + x 2 + x 3) | x 1, x 2, x 3 [0, 2pi/3] |
|
|
Розв¢язання прикладних задач в середовищі нейромереж Neural Networks.
Мета роботи
1. Опанувати техніку розв¢язання задач в середовищі нейромереж – Neural Networks.
2. Визначити місце і роль штучних нейромереж в загальному контексті штучного інтелекту та інтелектуальних систем.