Міністерство освіти і науки України
Національний університет «Львівська політехніка»
кафедра САПР
Звіт
до лабораторної роботи №6
на тему:
«ОПТИМІЗАЦІЯ МОДЕЛІ НЕЙРОННОЇ МЕРЕЖІ
ГЕНЕТИЧНИМИ АЛГОРИТМАМИ У СЕРЕДОВИЩІ MATLAB»
Виконав: cт. гр. КН-3
Львів-2008
МЕТА РОБОТИ
Вивчити і закріпити знання та основні аспекти роботи, а також отримати практичні навички оптимізації моделі нейронної мережі за допомогою генетичних алгоритмів у середовищі програми Matlab.
ТЕОРИТИЧНІ ВІДОМОСТІ
Реалізація генетичних алгоритмів у середовищі Matlab.
Генетичні алгоритми і графічне меню прямого пошуку. Генетичні алгоритми і графічне меню прямого пошуку – це набір функцій, які розширюють можливості графічного меню оптимізації і обчислювального числового середовища програми Matlab. Генетичні алгоритми і графічне меню прямого пошуку включають програму для розв’язання задач оптимізації, використовуючи генетичні алгоритми прямого пошуку. Алгоритми дають можливість розв’язувати низку задач оптимізації, які знаходяться за межами стандартного графічного меню оптимізації. Всі функції графічного меню інструментів – це М-файли Matlab, сформовані з тверджень Matlab, які реалізують спеціалізовані алгоритми оптимізації. Коди Matlab для цих функцій можна побачити, використовуючи протокол (твердження) type function_name.Можливості генетичних алгоритмів і графічного меню прямого пошуку можна розширити, написавши власні М-файли або використовуючи панель інструментів в комбінації з Simulink.
Запуск генетичних алгоритмів. Щоб запустити генетичні алгоритми, треба натиснути на клавішу Start y режимі Ran solver. Після цього в полі Current generations буде показаний номер поточного покоління. Поля Status і Results покажуть повідомлення "GA runnig". Коли робота алгоритму припиняється, поля Status і Results показують повідомлення "GA terminated". Поки алгоритми запускаються, параметри в панелі інструментів можна змінювати. Зміни будуть прийняті в наступному поколінні. Поки зміни, які з’являються на початку наступного покоління, не будуть прийняті, поля Staus і Results генерують повідомлення Changes pending. На початку наступного покоління з’являється повідомлення Changes applied.
Написання М-файлів для функцій, які треба оптимізувати. Для використання генетичних алгоритмів і графічного меню прямого пошуку спочатку треба написати М-файл, який обчислює функцію, що має бути оптимізована. М-файл повинен бути вектором-рядком, довжина якого дорівнює числу незалежних змінних для цільової функції, і повертатися скалярною величиною.
Припустимо, що треба мінімізувати функцію. М-файл, який обчислює цю функцію, повинен бути вектором-рядком x довжини 2, відповідаючи змінним EMBED Equation.3 і EMBED Equation.3 , і повертати скалярну величину, рівну значенню функції в точці x. Для того, щоб написати М-файл, необхілно виконати такі кроки:
1. Вибрати команду New у файловому меню Matlab.
2. Вибрати М-файл. Ця команда відкриває новий М-файл у редакторі.
3. В М-файлі ввести такі два рядки кодів:
function z = my_fun(x)
z = x(1) ^2 - 2*x(1) *x(2)+ 6*x(1)+ x(2) ^2 - 6*x(2);
4. Зберегти М-файл у папці на шляху Matlab.
Для того, щоб перевірити, що М-файл повертає правильне значення, треба ввести my_fun([2 3]). Отримана відповідь буде мати такий вигляд: ans =-5.
Примітка. Не слід використовувати Editor/Debugger для того, щоб виправити несправності М-файлу для цільової функції під час роботи панелі графічного алгоритму або меню пошуку за шаблоном. Це призводить до появи повідомлень на мові Java в командному вікні і ускладнює виправлення несправностей.
Виклик генетичних алгоритмів. Існує два шляхи: генетичні алгоритми можна викликати за допомогою панелі інструментів:
викликаючи функцію генетичних алгоритмів ga в командному рядку;
використовуючи меню генетичних алгоритмів та графічний інтерфейс для генетичних алгоритмів.
Для того, щоб викликати генетичні алгоритми в командному рядку, треба викликати функцію генетичних алгоритмів ga з синтаксичною структурою [x fval] = ga(@fitnessfun, nvars, options), де
@fitnessfun - шлях до функції придатності;
nvars - число незалежних змінних для функції придатності;
оptions – структура, яка містить опції для генетичних алгоритмів. Якщо ці аргументи не задаються, функція ga використовує свої опції.
Використання функції ga є зручним, якщо потрібно:
повернути результати безпосередньо до робочого простору Matlab;
керувати генетичними алгоритмами багаторазово з різними опціями, викликаючи функцію ga з М-файлу;
керувати генетичними алгоритмами багаторазово з різними опціями, викликаючи функцію ga з М-файлу.
Використання інструментів генетичних алгоритмів. Меню інструментів генетичних алгоритмів - це графічний інтерфейс користувача, який дає можливість використовувати генетичні алгоритми без роботи в командному рядку. Щоб відкрити панель інструментів генетичних алгоритмів, треба ввести команду Gatool. Для використання панелі інструментів генетичних алгоритмів треба ввести інформацію про:
функцію придатності - цільову функцію, яку треба мінімізувати. Ввести функцію придатності потрібно у формі @fitnessfun, де fitnessfun.m – М-файл, який обчислює функцію придатності. Знак @ вказує шлях функції до fitnessfun.
число змінних -- довжина вхідного вектора функції прилатності. Для функції my_fun, описаної при написанні М-файлів для функцій, які треба оптимізувати, вводиться 2.
Щоб запустити генетичні алгоритми, треба клацнути на клавіші Start. Панель інструментів покаже результати оптимізації в полях Status i Results. Опції для генетичних алгоритмів можна змінити на панелі Options. Для того, щоб переглянути опції в одній з категорій, перелічених на панелі, треба клацнути поряд з нею на знаку +. Отримати більш конкретнуї інформацію можна в меню генетичних алгоритмів і в детальному описі панелі інструментів.
Функція Растрінга. Розглянемо, як у середовищі Matlab можна знайти мінімум функції Растрінга, тобто функції, яка часто використовується для тестування генетичних алгоритмів. Панель інструментів містить М-файл rastriginsfcn.m, який обчислює значення функції Растрінга. Функція Растрінга має багато місцевих мінімумів -- "впадин". Однак, вона має тільки один глобальний мінімум, який знаходиться в точці [0 0] простору x-y. У будь-якому локальному мінімумі, окрім [0 0], значення функції Растрінга є більшим, ніж 0. Чим віддаленішим є локальний мінімум від початку координат, тим більшим є значення функції в цій точці.
Завдання.
Ознайомитися з теоретичними відомостями.
Увімкнути комп'ютер. Переконатись у наявності встановленої програми Matlab. Запустити програму Matlab.
Оптимізувати за допомогою тулбоксу Genetic Algorithms програми Matlab модель нейронної мережі з прикладу 1. Отримати: графік значень параметрів EMBED Equation.3 та EMBED Equation.3 після початкової та кінцевої генерацій, наведені на рис. 2, якщо EMBED Equation.3 , де n - № прізвища студента у списку групи; графік динаміки енергетичної функції у нормалізованих одиницях, поданий на рис. 3, якщо EMBED Equation.3 ; графік форми енергетичної функції для EMBED Equation.3 рівновіддалених на інтервалі EMBED Equation.3 та EMBED Equation.3 значень параметрів EMBED Equation.3 та EMBED Equation.3 , показаний на рис. 4, якщо EMBED Equation.3 ; графік ліній однакового рівня енергетичної функції, поданий на рис. 5, якщо EMBED Equation.3 ; графік форми енергетичної функції для EMBED Equation.3 та EMBED Equation.3 значень параметрів EMBED Equation.3 та EMBED Equation.3 , показаний на рис. 6, якщо EMBED Equation.3 ; графік ліній однакового рівня для EMBED Equation.3 та EMBED Equation.3 значень параметрів EMBED Equation.3 та EMBED Equation.3 , поданий на рис. 7, якщо EMBED Equation.3 .
Написати на мові Matlab програму моделювання аналогової нейронної мережі, яка описується диференційним рівнянням (1). Узагальнивши
написану програму, отримати графіки розподілу зон кількості переможців в залежності від значень вхідних сигналів EMBED Equation.3 та EMBED Equation.3 , показані на рис. 8 і рис. 9.
Оптимізувати за допомогою тулбоксу Genetic Algorithms програми Matlab модель нейронної мережі з прикладу 1 при наявності у множині параметрів моделі (1) парамера EMBED Equation.3 . Отримати: графік динаміки енергетичної функції у нормалізованих одиницях, показаний на рис. 10, якщо EMBED Equation.3 ; графік розподілу зон кількості переможців в залежності від значень вхідних сигналів EMBED Equation.3 та EMBED Equation.3 , поданий на рис. 11, якщо EMBED Equation.3 .
Отримати: графік динаміки станів EMBED Equation.3 в нормалізованих одиницях та нормалізованому масштабі часу, поданий на рис. 12, якщо EMBED Equation.3 ; графік динаміки станів EMBED Equation.3 , показаний на рис. 13, якщо EMBED Equation.3 . Порівняти результати функціонування моделі нейронної мережі, отриманої за допомогою евристичного пошуку, та моделей, оптимізованих за допомогою генетичних алгоритмів.
Проінформувати викладача про завершення роботи.
Продемонструвати на комп’ютері та пояснити результати виконання отриманих завдань.
9. Оформити звіт.
Оскільки n=8, то потрібно отримати графік динаміки енергетичної функції у нормалізованих одиницях, поданий на рис. 3.
Хід роботи.
Долучимо до множини параметрів моделі (1), які повинні бути оптимізовані, парамер EMBED Equation.3 . Обмежимо значення EMBED Equation.3 діапазоном EMBED Equation.3 , а значення EMBED Equation.3 та EMBED Equation.3 залишимо у попередніх діапазонах. Задамо параметрам початкові значення EMBED Equation.3 , EMBED Equation.3 відповідно та значення ваг енергетичної функції (7) EMBED Equation.3 . Застосуємо EMBED Equation.3 дискретних значень вхідних сигналів EMBED Equation.3 у діапазоні EMBED Equation.3 , EMBED Equation.3 значень параметрів EMBED Equation.3 , кількість генерацій генетичних алгоритмів EMBED Equation.3 та умову EMBED Equation.3 . В результаті мінімізації енергетичної функції (7) за допомогою генетичних алгоритмів отримуються наступні значення параме-
трів моделі (1): EMBED Equation.3 . Динаміка енергетичної функції у нормалізованих одиницях представлена на рис. 10. Розподіл зон кількості переможців в залежності від значень вхідних сигналів EMBED Equation.3 та EMBED Equation.3 для отриманих параметрів представлений на рис. 11. Як можна побачити з порівняння рис. 11 та рис. 9, розмір діапазону коректного функціонування моделі (1) збільшився і визначається нерівністю EMBED Equation.3 , тобто є максимально можливим. Можна пересвідчитись у тому, що для будь-якої іншої кількості EMBED Equation.3 вхідних сигналів EMBED Equation.3 , які задовольняють умову (7), розмір зони коректного функціонування моделі на рис. 11 буде залишатись незмінним. Отриманий розв’язок є стійким до зміни значень параметрів моделі (1).
Змоделюємо динаміку вихідних сигналів моделі (1). Задамо значення EMBED Equation.3 та EMBED Equation.3 з тим, щоб вихідні сигнали розміщувались у необхідному діапазоні з рис. 11. Динаміка станів EMBED Equation.3 в норма-
лізованих одиницях та нормалізованому масштабі часу має форму, представлену на рис. 12. Згідно з рис. 12 компоненти EMBED Equation.3 демонструють влас-
тивість вибору більшого з двох сигналів. Переможцем є EMBED Equation.3 , вказуючи на те, що вхідний сигнал EMBED Equation.3 є більшим, ніж EMBED Equation.3 . Змінимо значення вхідних сигналів мережі на EMBED Equation.3 . Динаміка станів EMBED Equation.3 буде мати форму, представлену на рис. 13. Згідно з рис. 13, компоненти EMBED Equation.3 демонструють властивість (4).
Отже, генетичні алгоритми дозволяють оптимізувати модель нейронної мережі другого порядку (1) шляхом оптимізації значень її параметрів EMBED Equation.3 , EMBED Equation.3 та розміру діапазону коректних розв’язків. Відмітимо, що для надійного знаходження за допомогою генетисних алгоритмів значень параметрів моделі (1) доцільним є використання значної кількості ( EMBED Equation.3 ) дискретних точок EMBED Equation.3 та EMBED Equation.3 , максимально дозволену умовою (8) кількість EMBED Equation.3 дискретних значень вхідних сигналів EMBED Equation.3 та кількість генерацій генетичних алгоритмів EMBED Equation.3 . Це дає можливість уникати виконання виснажливого пошуку “правильних” початкових значень параметрів EMBED Equation.3 та чисел EMBED Equation.3 .
Отримані результати.
1. Динаміка максимальної та середньої величини енергетичної функції EMBED Equation.3 в залежності від кількості генерацій EMBED Equation.3 .
Висновки
На цій лабораторній роботі я вивчив і закріпив знання та основні аспекти роботи, а також отримав практичні навички оптимізації моделі нейронної мережі за допомогою генетичних алгоритмів у середовищі програми Matlab.