- •Теоретичні відомості
- •Визначення складу знань та їх розподіл
- •Побудова моделі предметної області
- •Методи побудови системи понять предметної області
- •Методи встановлення взаємозв'язків між поняттями предметної області:
- •Методи встановлення семантичних відношень між поняттями предметної області
- •Контрольні питання
- •Варіанти завдань
- •Побудувати модель визначеної предметної області, використовуючи методи побудови системи понять та встановлення семантичних відношень між поняттями:
- •несправності комп’ютера;
- •Тема: Експертні системи. Побудова баз знань ЕС.
- •Структура експертних систем
- •атрибутивні зв’язки (має властивість, має значення).
- •Семантичні мережі можуть мати складну та громіздку структуру.
- •Рівні представлення і рівні детальності
- •Організація знань у базі знань
- •Контрольні питання
- •Варіанти завдань
- •Теоретичні відомості
- •Контрольні питання
- •Варіанти завдань
- •Теоретичні відомості
- •Рис. 2. Методика розробки ЕС
- •Прототипи і життєвий цикл експертної системи
- •Прикладами областей застосування, що потребують гнучкості з боку створення та поповнення бази знань, є: планування виробництва, проектування і діагностика в області електроніки, обчислювальної техніки та машинобудування.
- •Контрольні питання
- •Варіанти завдань
- •Створити та протестувати прототип ЕС відповідно варіанту. Вказати сильні та слабкі сторони створеного прототипу, шляхи його вдосконалення.
- •Вимоги до експертної системи і звіту
- •Тема: Нейронні мережі. Персептрон. Побудова та дослідження персептрона.
- •Теоретичні відомості
- •Рис. 3. Штучний нейрон
- •Навчання персептрона
- •Розглянемо алгоритм навчання з учителем.
- •Контрольні питання
- •Варіанти завдань
- •Оцінка алгоритму зворотнього поширення
- •Контрольні питання
- •Варіанти завдань
- •Тема: Нейронні мережі. Побудова та навчання нейромережі для вирішення задачі прогнозування.
- •Постановка задачі прогнозування курсу UKB/USD
- •Контрольні питання
- •Методичні рекомендації по вирішенню задачі та вимоги до звіту
- •Тема: Нейронні мережі. Побудова та навчання нейромережі для розпізнавання образів.
- •Рис.7. Структурна схема мережі Хопфілда
- •2. Розраховується новий стан нейронів
- •Рис. 9. Структурна схема мережі Хемінга
- •Алгоритм функціонування мережі Хемінга наступний:
- •Завдання: побудувати ЕС в області медичної діагностики.
- •Частина 1
- •Частина 2
- •Частина 3
- •Частина 4
- •Частина 5
Контрольні питання
1.Штучний нейрон.
2.Поняття вагового коефіцієнту та активаційної функції.
3.Персептрон.
4.Навчання персептрона. Проблеми.
Варіанти завдань
У файлах розмістити зображення цифр. Наприклад:
.......*.
....*.*.
.......*.
.......*.
Реалізувати персептрон для розпізнавання цифр та розділення їх на парні та непарні. Кількість шарів і нейронів у шарах підібрати експериментальним шляхом.
Дослідити:
−скільки ітерацій знадобилося для навчання персептрона?
−використання якої порогової функції дає найкращий результат?
−яка імовірність одержання правильної відповіді для розробленої мережі?
Зміст звіту
Звіт про виконання лабораторної роботи повинен містити опис та роздруківку програмної реалізації персептрона, приклади образів цифр для розпізнавання та результати розпізнавання. Також необхідно привести результати досліджень.
Лабораторна робота № 6 Тема: Нейронні мережі. Процедура зворотнього поширення помилки.
Мета: Ознайомитися з алгоритмом зворотнього поширення помилки та створити його програмну реалізацію.
Теоретичні відомості Модель мережі зі зворотнім поширенням помилки
Серед різних структур нейронних мереж однією з найбільш відомих є багатошарова структура, у якій кожен нейрон довільного шару зв’язаний із всіма аксонами нейронів попереднього шару чи, у
33
випадку першого шару, із усіма входами НМ. Такі НМ називаються повнозв’язними. Коли в мережі тільки один шар, алгоритм її навчання з учителем досить очевидний, тому що правильні вихідні стани нейронів єдиного шару відомі, і підстроювання синаптичних зв'язків йде у напрямку, що мінімізує помилку на виході мережі. По цьому принципу будується алгоритм навчання одношарового персептрона. У багатошарових мереж оптимальні вихідні значення нейронів усіх шарів, крім останнього, невідомі, і двох чи більше шаровий персептрон уже неможливо навчити, керуючись тільки величинами помилок на виходах НМ. Один із варіантів рішення цієї проблеми – розробка наборів вихідних сигналів, що відповідають вхідним, для кожного шару НМ, що, є дуже трудомісткою операцією. Другий варіант – динамічне підстроювання вагових коефіцієнтів синапсів, у ході якого вибираються найбільш слабкі зв'язки і змінюються на малу величину в ту чи іншу сторону, а зберігаються тільки ті зміни, що спричинили зменшення помилки на виході всієї мережі. Даний метод, незважаючи на свою удавану простоту, вимагає громіздких рутинних обчислень. І, нарешті, третій, більш прийнятний варіант – поширення сигналів помилки від виходів НМ до її входів, у напрямку, зворотньому прямому поширенню сигналів у звичайному режимі роботи. Цей алгоритм навчання НС одержав назву процедури зворотного поширення помилки. Однак цьому алгоритму властиві і недоліки, головний з який - відсутність прийнятних оцінок часу навчання. Проте алгоритм зворотнього поширення має широке застосування.
Припустимо, що необхідно навчити мережу розпізнавати рукописні цифри. Можна скористатися матрицею, з 256 сенсорів, кожний з яких реєструє присутність чи відсутність чорнильної цятки в межах маленької площі - фрагмента однієї цифри. Для мережі, таким чином, буде потрібно 256 вхідних елементів (по одному на кожен сенсор), 10 вихідних елементів (по одному на кожну можливу цифру) і деяка кількість прихованих елементів. Для кожної цифри мережа повинна генерувати високу активність у відповідному вихідному елементі і низьку в інших вихідних елементах.
Щоб натренувати систему пред'явимо їй зображення цифри і порівняємо дійсну активність на 10 вихідних елементах з бажаною активністю. Потім підрахуємо помилку, представлену як квадрат різниці між дійсним і бажаним виходом. Після цього змінимо вагу кожного зв'язку для того, щоб зменшити помилку. Описаний процес тренування ми повторюємо з багатьма різними написаннями кожної цифри, поки мережа не навчиться правильно розпізнавати всі можливі зображення.
34
Щоб реалізувати цю процедуру, нам потрібно змінювати кожну вагу на величину, пропорційну швидкості, з якою змінюється помилка
вміру зміни ваги. Ця величина (похідна помилки по вазі, позначається EW) обчислюється не просто. Один із способів обчислення EW полягає
втому, щоб змінити вагу на дуже малу величину і подивитися, як
зміниться помилка. Однак цей метод неефективний, оскільки вимагає окремих варіацій для кожної з багатьох ваг.
Приблизно в 1974 році Поль Дж. Вербос винайшов значно більш ефективну процедуру для обчислення EW, коли працював над своєю докторською дисертацією в Гарвардському університеті. Процедура, відома тепер як алгоритм зворотного поширенням (back propagation algorithm), стала одним з найбільш важливих інструментів у навчанні нейронних мереж.
Алгоритм зворотного поширення найпростіше зрозуміти, коли всі елементи мережі линійні. Алгоритм обчислює кожну EW, спочатку обчислюючи EA - швидкість, з якою змінюється помилка при зміні рівня активності елемента. Для вихідних елементів EA є просто різницею між дійсним і бажаним виходом. Щоб обчислити EA для схованого елемента в шарі, що безпосередньо передує вихідному шару, потрібно спочатку ідентифікувати усі ваги між цим схованим елементом і вихідними елементами, з якими з'єднаний даний схований елемент. Потім помножити ці ваги на величини EA для цих вихідних елементів і скласти отримані добутки. Ця сума і дорівнює EA для даного схованого елемента. Обчисливши EA для всіх елементів схованого шару, що сполучений з вихідним, ми можемо аналогічним чином розрахувати EA і для інших шарів, рухаючись в напрямку, зворотньому тому напрямку, у якому активність нейронів поширюється по мережі. Після того, як значення EA для елемента обчислено, підрахувати EW для кожного вхідного зв'язку елемента вже нескладно. Величина EW є добутком EA і активності у вхідному ланцюзі.
Для нелінійних елементів алгоритм зворотнього поширенням включає додатковий крок - перед переміщенням у зворотньому напрямку EA необхідно перетворити в EI - швидкість, з якою змінюється помилка по мірі зміни сумарного входу елемента.
Щоб реалізувати алгоритм зворотного поширення, спочатку дамо математичний опис нейронної мережі. Припустимо, що елемент j - типовий елемент вихідного шару, а елемент i - типовий елемент шару, що передує вихідному. Активність елемента вихідного шару визначається двокроковою процедурою. Спочатку обчислюється
сумарний зважений вхід Xj за допомогою формули
X j = å(Yi × Wij ) |
(1) |
i |
|
35
де Yi - рівень активності i-го елемента в попередньому шарі і Wij - вага зв’язку між i-м і j-м елементами.
Далі, елемент обчислює активність Yi за допомогою деякої
функції від сумарного зваженого входу. Звичайно застосовується сігмафункція:
æ |
(−Xj ) ö |
(2) |
Yj =1 / ç1 +e |
÷ . |
|
è |
ø |
|
Після того, як активності усіх вихідних елементів визначені, |
||
мережа обчислює помилку, що визначається виразом |
|
|
E = 12 × å(Yj -Dj )2 , |
(3) |
|
j |
|
|
де Yj - рівень активності j-го елемента у верхньому шарі, а Dj -
бажаний вихід j-го елемента.
Алгоритм зворотного поширення помилки складається з чотирьох кроків:
1)Обчислити, наскільки швидко змінюється помилка при зміні
вихідного елемента. Ця похідна помилки (EA) є різницею між дійсною й очікуваною активністю
EA j = |
dE |
= Yj − Dj . |
(4) |
|
|||
|
dYj |
|
2)Обчислити, наскільки швидко змінюється помилка по мірі зміни сумарного входу, одержуваного вихідним елементом. Ця величина
( E1 ) є результатом кроку 1, помноженого на швидкість зміни вихідного елемента зі зміною його сумарного входу
E1j |
= |
dE |
= |
dE |
× |
dYj |
= E1jYj(1 - Yj ) . |
(5) |
|
dX j |
dYj |
dX j |
|||||||
|
|
|
|
|
|
3)Обчислити, як швидко змінюється помилка по мірі зміни ваги на вхідному зв’язку вихідного елемента. Ця величина ( EW ) є
результатом кроку 2, помноженого на рівень активності елемента, з якого виходить зв'язок.
EW = |
dE |
= |
dE |
× |
dX j |
= E |
1j |
Y |
|
|
|
||||||
ij |
dWij |
|
dX j dXij |
i . (6) |
||||
|
|
|
|
36