Лабораторна робота №8, Програма Нейросимулятор
Код роботи: 2492
Вид роботи: Лабораторна робота
Предмет: Штучний інтелект
Тема: №8, Програма Нейросимулятор
Кількість сторінок: 10
Дата виконання: 2017
Мова написання: українська
Ціна: 250 грн (+ програма)
1. Ясницкий Л. Н.. Черепанов Ф. М. Искусственный интеллект. Элективный курс: Методическое пособие по преподаванию. - М.: БИНОМ. Лаборатория знаний. 2011. - 216 с.
Мета: ознайомитися з роботою програми «Нейросимулятор».
Хід роботи
1. Ознайомитися та вивчити теоретичний матеріал.
Теоретичний матеріал
Програма «Нейросимулятор» дозволяє створювати і застосовувати нейронні мережі персептронного типу. Вона може працювати в чотирьох режимах: «Проектнрование сети», «Обучение», «Проверка» і «Прогноз». Перехід з одного режиму в інший здійснюється шляхом натискання відповідних закладок, розташованих у верхній частині робочого вікна (рис. 1).
Рис. 1 - Робоче вікно програми Нейростимулятор
В режимі «Проектування мережі» є можливість змінювати кількість вхідних і вихідних нейронів, кількість прихованих шарів, кількість нейронів в прихованих шарах, види і параметри активаційних функцій.
Причому, всяка зміна структури мережі автоматично відбивається на її графічному поданні.
Спробуйте поміняти структуру персептрона - додати один або два нейрона в прихований шар, змінити кількість вхідних і вихідних нейронів. Зверніть увагу на можливість запам'ятовування внесених змін за допомогою клавіш, розташованих у верхньому лівому кутку робочого вікна: «Сохранить проект» і «Загрузить проект». Збереження поточних станів вашого проекту рекомендується періодично проводити на всіх стадіях його виконання.
Після експериментів зі зміною структури мережі, поверніть її в первинний стан, натиснувши кнопку «Сбросить настройки». Переконавшись, шо ваш персептрон має два входи і один вихід, переведіть програму в режим «Навчання», натиснувши відповідну закладку у верхній частині робочого вікна. Тепер Ваша мета полягає в тому, щоб створити множину навчальних прикладів. У нашому випадку - це таблиця множення, яку потрібно навчити персептрон. Натискаючи кілька разів кнопку «Додати навчальний приклад» (на кнопці зображений знак «+»). введіть цифри, як показано на рис. 2. Це і є множина навчальних прикладів, в даному випадку - таблиця множення на 2 і на 3.
Рис. 2 - Введено навчальну множину прикладів – таблиця множення на 2 і на 3
Зверніть увагу, що у вашій таблиці множення не вистачає одного прикладу: 2x5 = 10. Цей приклад «забутий» спеціально. Після того, як нейромережа буде навчена, ми запитаємо її. скільки буде 2x5 і перевіримо, таким чином. її здатність до узагальнення.
Зверніть увагу на те. шо «по умовчанню» в програмі «Нейросимулятор» (рис. 2) вибраний алгоритм зворотного поширення помилки, шо коефіцієнт швидкості навчання встановлений 0,08, а кількість епох навчання - 300. шо початкові значення синаптичних ваг (ініціалізація ваг) задані випадково по стандартному закону розподілу.
Натиснувши клавішу «Обучить сеть», ви запустите процес навчання персептрона методом зворотного поширення помилки, який буде відображатися у вигляді графіка залежності максимальної (синій колір) і середньоквадратичної (червоний колір) помилок навчання від числа епох навчання (рис. 3).
Після виконання 300 епох навчання припиняється, однак ви його можете продовжити, натискаючи клавішу «Учимся», причому при кожному натисканні цієї клавіші процес навчання продовжується ще на 300 епох. Зверніть увагу, шо потрібну кількість епох навчання (наприклад. 1000 замість 300) можна задати до початку процесу навчання.
Рис. 3 - Графічне відображення процесу навчання мережі
Рис. 4 - В режимі Проверка можна порівняти бажані виходи мережі d1 з його дійсними виходами у1
Якщо помилка навчання не знижуватиметься, натисніть кнопку «Закрыть» і почніть процес навчання заново. Домігшись зниження максимальної помилки навчання, наприклад, до 0,01, закрийте графічне зображення (натисканням клавіші «Закрыть») і переведіть програму в режим «Проверка». Натисніть кнопку «Скопировать из обучающих примеров», а потім - кнопку «Вычислить». У вікні (рис. 4) ви можете порівняти бажані виходи мережі (d1) з тим. шо нарахував навчений вами персептрон (у1). Наприклад, як видно з першого рядка, замість того, щоб видати 2x1=2, персептрон відповів: 2x1=2,0901. Помилка навчання εL на цьому прикладі склала: |2,0902-2|=0,0902. шо в відсотках (щодо максимального значення виходу мережі тах(d1)=27 становить:
Аналогічно можна підрахувати помилку навчання на другому прикладі:
потім на третьому і т.д., а потім вибрати максимальну по всіх прикладах відносну помилку навчання персептрона. Значення цієї помилки можна побачити в нижній частині робочого вікна: 1,05%.
Після того, як Ви знайшли максимальну помилку навчання персептрона. натисніть клавішу «Сбросить примеры», а потім - клавішу «Добавить строку» введіть приклад, якого не було в навчальній множині: 2x5=10. після чого натисніть кнопку «Вычислить». Відповідь зображена на рис. 5. Помилка узагальнення склала 0,93% .
Рис. 5 - Мережа відповідала, що два помножити на п’ять буде приблизно 9,9074
Більш хороших результатів можна домогтися, скориставшись наслідком з теореми Арнольда - Колмогорова - Хехт-Нільсена:
де Ну - розмірність вихідного сигналу: Q - число елементів навчальної вибірки; Nw - необхідне число синаптичних ваг; Nx - розмірність вхідного сигналу. Оцінивши за допомогою цієї формули необхідну кількість синаптичних ваг. можна розрахувати число нейронів у прихованих шарах. Наприклад, число нейронів прихованого шару двошарового персептрона:
Підставляючи в формулу число вхідних нейронів Nх=2. число вихідних нейронів Nу=1 і кількість навчальних прикладів Q=18. отримаємо оцінку необхідної кількості синаптичних зв'язків нейромережі:
3,48 ≤ Nw ≤ 41
Застосування формули дає оцінку необхідної кількості прихованих нейронів:
1,2 ≤ N ≤ 13,7.
Як бачимо, інтервал допустимих значень N вийшов вельми широким. Виберемо значення N посередині отриманого інтервалу:
Рис. 6 - Структура мережі із 7 нейронами прихованого шару
Рис. 7 - Графічне відображення процесу навчання мережі з 7 нейронами прихованого шару
Повернувшись в режим «Проектирование сети», збільшимо кількість нейронів прихованого шару до семи (рис. 6). Потім, виконуючи навчання мережі (рис. 7) і перевірку її прогнозуючих властивостей, отримуємо значно кращий результат, наведений на рис. 8 і рис. 9, з яких видно, шо помилка навчання мережі εL знизилася до 0,33%. а помилка узагальнення εr знизилася до 0,11%.
Рис. 8 - Результат роботи мережі з 7 нейронами прихованого шару
Помилка навчання склала: εL = 0,33%
Рис. 9 - Результат роботи мережі з 7 нейронами прихованого шару
Помилка узагальнення склала: εr =0,11%
І на закінчення, натисніть кнопку «Вычислить и округлить». Результат буде наступним: 2x5=10,0. Як пам'ятаєте, цього прикладу не було в навчальній множині прикладів. Персептрон сам «здогадався», скільки буде два помножити на п'ять, блискуче проявивши свої узагальнюючі властивості, які він успадкував від свого прототипу - людського мозку [1].
У програмі «Нейросімулятор» передбачена можливість обміну даними з додатком Microsoft Excel. Для цього в режимах «Обучение», «Проверка» та «Прогноз» є кнопки «Загрузить из Excel-файла» і «Отправить в Excel-файл». Завдяки цьому, є можливість використовувати редактор Microsoft Excel, зокрема - готувати в ньому навчальні і тестуючі приклади, а також обробляти результати нейропрогнозів. використовуючи графічні можливості Microsoft Excel.
Наприклад, множину навчальних прикладів таблиці множення, шо приведена на рис. 2. можна було попередньо підготувати в редакторі Microsoft Excel (див. Рис. 10). а потім завантажити його в програму «Нейрсимулятор» в режимі «Обучение» натиснувши клавішу «Загрузить из Excel-файла».
Рис. 10 - Множина навчальних прикладів таблиці множення на 2 і на 3, підготовлена в редакторі Microsoft Excel
Режим «Прогноз» відрізняється від режиму «Проверка» тим. шо в ньому не потрібно вказувати бажані вихідні сигнали персептрона. Відповідно, не обчислюється і різниця між бажаними і дійсними значеннями (похибка). В цьому режимі персептрон виконує прогнозування - обчислює вихідні значення, використовуючи компоненти вхідного вектора X, шо вводяться користувачем.
Більш докладну інформацію по роботі з програмою «Нейросімулятор». а також приклади її застосування для вирішення широкого кола практичних задач ви знайдете в книжці [1].
2. Завантажити файл LR8.exe. Виконати завдання описані в теоретичній частині.
3. Зробити покроковий звіт з обов'язковими скрінами і висновками.
4. Вислати на ел. почту файл.