Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Інтелектуальні системи Методичні вказівки до ви...doc
Скачиваний:
7
Добавлен:
25.11.2019
Размер:
4.88 Mб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

НАЦІОНАЛЬНІЙ УНІВЕРСИТЕТ

ХАРЧОВИХ ТЕХНОЛОГІЙ

ІНТЕЛЕКТУАЛЬНІ СИСТЕМИ

МЕТОДИЧНІ ВКАЗІВКИ

до виконання лабораторних робіт

для студентів за напрямом підготовки

6.050202 “Автоматизація та комп’ютерно-інтегровані технології”

денної та заочної форм навчання

Всі цитати, цифровий СХВАЛЕНО

та фактичний матеріал, на засіданні кафедри

бібліографічні відомості автоматизації і комп’ютерно-

перевірені. Написання інтегрованих технологій

одиниць відповідає Протокол № 6

стандартам. від 21.12.2010 р.

Підпис(и) автор(ів)___________________

«12» 04 2011 р.

КИЇВ НУХТ 2011

Інтелектуальні системи. Методичні вказівки до виконання лабораторних робіт для студентів за напрямом підготовки 6.050202 “Автоматизація та комп’ютерно-інтегровані технології” денної та заочної форм навчання / Уклад.: В.Д. Кишенько, Я.В. Смітюх, М.Д. Місюра, С.С. Шаруда, Є.С. Проскурка. – К.: НУХТ, 2011. – 48 с.

Рецензент: Б.М. Гончаренко, д-р. техн. наук, професор

Укладачі: В.Д. Кишенько, канд. техн. наук

Я.В. Смітюх, канд. техн. наук

М.Д. Місюра, канд. техн. наук

С.С. Шаруда, канд. техн. наук

Є.С. Проскурка

Відповідальний за випуск В.Д. Кишенько, канд. техн. наук, доц.

Лабораторна робота №1

Нейронні мережі. Розробка прогнозуючої нейронної мережі.

Мета: Дослідити роботу прямоточної нейронної мережі. Вивчення алгоритмів навчання.

Теоретичні відомості.

Нейронна мережа – це сукупність нейронів, що зв’язані великою кількістю зв’язків.

Під штучною нейронною мережею розуміють математичну модель, а також пристрій паралельних обчислень, що представляє собою систему штучних нейронів, що з’єднані та ті, що взаємодіють між собою.

Штучні нейронні мережі являють собою розподілені і паралельні системи, здатні до адаптивного навчання шляхом аналізу позитивних і від’ємних впливів. Елементарним перетворювачем в даних мережах є штучний нейрон або просто нейрон, названий так за аналогією з біологічним прототипом. До теперішнього часу запропоновано і вивчено велику кількість моделей нейроноподобних елементів і нейронних мереж.

Штучний нейрон це вузол штучної нейронної мережі, що являє собою спрощену модель природного нейрона. Математично штучний нейрон представляють як деяку нелінійну функцію від одного аргументу – лінійної комбінації всіх вхідних сигналів. Дану функцію називають функцією активації.

На рис.1 схематично зображений приклад одного нейрону:

Рис. 1. Штучний нейрон.

Він складається з елементів трьох типів: помножувачі (синапсів), суматора і нелінійного перетворювача. Синапси здійснюють зв'язок між нейронами, помножують вхідний сигнал на число, що характеризує силу зв'язку (вага синапсу). Суматор виконує додавання сигналів, що надходять по синаптичним зв'язкам від інших нейронів, і зовнішніх вхідних сигналів. Нелінійний перетворювач реалізує нелінійну функцію одного аргументу – виходу суматора. Ця функція називається функцією активації чи передаточною функцією нейрона. Нейрон в цілому реалізує скалярну функцію векторного аргументу.

Математична модель штучного нейрону:

де S - результат підсумовування (sum); Wi – вага (weight) синапсу, i = 1 ... n; Xі – компонент вхідного вектора (вхідний сигнал), i = 1 ... n; b – значення зміщення (bias); n – число входів нейрона; Y – вихідний сигнал нейрона; f(S) – нелінійне перетворення (функція активації).

У загальному випадку вхідний сигнал, вагові коефіцієнти та зміщення можуть приймати дійсні значення, а в багатьох практичних задачах – лише деякі фіксовані значення. Вихід Y визначається видом функції активації і може бути як дійсним, так і цілим.

Синаптичні зв’язки з позитивними вагами називають збуджуючими, з негативними – гальмівними. Описаний обчислювальний елемент можна вважати спрощеною математичною моделлю біологічних нейронів. Щоб підкреслити відмінність нейронів біологічних і штучних, останні іноді називають нейроподібні елементи або формальними нейронами.

На вхідний сигнал S нелінійний перетворювач відповідає вихідним сигналом f(S), який представляє собою вихід Y нейрона.

На рис. 2 зображені приклади функцій активації.

Рис. 2. Функції активації: а) функція одиничного стрибка, б) лінійний поріг (гістерезис), в) сигмоїд (логістична функція), г) сигмоїд (гіперболічний тангенс).

  • Порогова: ;

  • Логістична (сигмоїдна) ;

  • Гіперболічний тангенс: .

Однією з найбільш поширених є нелінійна функція активації, так звана логістична функція, або сигмоїда (функція S-подібного виду).

Серед всіх видів нейронних мереж виділяють прямоточні і рекурсивні, одношарові і багатошарові.

Очевидно, що процес функціонування нейронної мережі, тобто сутність дій, які вона здатна виконувати, залежить від величин синаптичних зв’язків, тому, маючи певну структуру нейронної мережі, що відповідає якої-небудь задачі, розробник мережі повинен знайти оптимальні значення всіх змінних вагових коефіцієнтів (деякі синаптичні зв’язки можуть бути постійними).

Цей етап називається навчанням нейронної мережі, і від того, наскільки якісно він буде виконаний, залежить здатність мережі вирішувати поставлені перед нею проблеми під час експлуатації. На етапі навчання окрім параметра якості підбору вагів важливу роль відіграє час навчання. Як правило, ці два параметри пов’язані зворотною залежністю і їх доводиться вибирати на основі компромісу.

Навчання нейронної мережі може вестися з вчителем або без вчителя. У першому випадку мережі подаються значення як вхідних, так і бажаних вихідних сигналів, і вона, по деякому внутрішньому алгоритму, підлаштовує ваги своїх синаптичних зв’язків. У другому випадку виходи нейронної мережі формуються самостійно, а ваги змінюються за алгоритмом, що враховує тільки вхідні і похідні від них сигнали.

Існує велика кількість різних алгоритмів навчання, які поділяються на два великі класи: детерміновані та стохастичні. У першому з них підстроювання вагів являє собою жорстку послідовність дій, у другому – здійснюється на основі дій, що підкоряється деякому випадковому процесу.

Розглянемо алгоритм навчання з учителем (рис. 3).

Рис. 3. Структурна схема системи навчання нейтронної мережі.

Хі – вхідні значення, Yі – вихідні значення, Yе – еталонний сигнал, Wij – ваги нейронної мережі, – похибка навчання.

Розглянемо більш детально алгоритм навчання нейронної мережі з вчителем для одношарової нейронної мережі, прикладом якої є одношаровий персептрон.

1) Проініціалізувати елементи вагової матриці (зазвичай невеликими випадковими значеннями).

2) Подати на входи один із вхідних векторів, які мережа повинна навчитися розрізняти і обчислити її вихід.

3) Якщо вихід правильний, перейти на крок 4.

Інакше обчислити різницю між еталонним Yе і отриманим Yі – значеннями виходу:

Модифікувати ваги у відповідності до формули:

,

де t і t+1 – номери відповідно поточної та наступної ітерацій; η – коефіцієнт швидкості навчання, 0 <η <1; i – номер входу; j – номер нейрону в шарі.

Очевидно, що, якщо Yе > Yі, вагові коефіцієнти будуть збільшені і тим самим зменшать помилку. В іншому випадку вони будуть зменшені, і Yі теж зменшиться, наближаючись до Yе.

4) Цикл із кроку 2, поки мережа не перестане помилятися.

На другому кроці на різних ітераціях по черзі у випадковому порядку пред’являються всі можливі вхідні вектори. На жаль, не можна заздалегідь визначити число ітерацій, які потрібно виконати, а в деяких випадках і гарантувати повний успіх.

У багатошарових же мережах оптимальні вихідні значення нейронів всіх шарів, крім останнього, як правило, не відомі, і дво- або більш шаровий персептрон вже неможливо навчити, керуючись тільки величинами помилок на виходах нейронної мережі. Один з варіантів вирішення цієї проблеми – розробка наборів вихідних сигналів, що відповідають вхідним, для кожного шару нейронної мережі, що, звичайно, є дуже громіздкою операцією і не завжди є здійсненною. Другий варіант – динамічне підстроювання вагових коефіцієнтів синапсів, в ході якого вибираються, як правило, найбільш слабкі зв’язки і змінюються на малу величину в ту чи іншу сторону, а зберігаються тільки ті зміни, які спричинили зменшення помилки на виході всієї мережі. Очевидно, що даний метод "тику", незважаючи на свою простоту, вимагає громіздких рутинних обчислень. І, нарешті, третій, більш прийнятний варіант – поширення сигналів помилки від виходів нейронної мережі до її входів, у напрямку, зворотному прямому поширенню сигналів у звичайному режимі роботи. Цей алгоритм навчання нейронної мережі отримав назву процедури зворотного поширення.