2005
Технічне завдання
1. Підстава для розробки.
2. Призначення розробки.
3. Вимоги до програмного виробу.
3.1 Вимоги до функціональних характеристик.
3.2 Вимоги до надійності.
3.3 Умови експлуатації.
3.4 Вимоги до маркування і пакування.
3.5 Вимоги до транспортування і збереження.
4. Вимоги до складу і параметрів технічних засобів.
5. Вимоги до програмної документації.
6. Стадії і етапи розробки.
7. Порядок контролю і приймання.
Головна мета даного курсового проекту провести огляд проблеми нейронних мереж, основних напрямків розвитку нейрокібернетики і областей використання нейронних мереж особливо для керування динамічними системами. Програмний виріб є демонстрацією можливостей нейронних мереж і методики їх побудови. Це програма, що реалізує нейронну мережу Хебба, що навчається користувачем поданням ряду символьних зображень на її вхід. Після завершення навчання програма виконує розпізнавання символів відповідно до набору зображень, що вона вивчила. Даний програмний виріб орієнтований на комп'ютери серії ІBM PS сумісних ПЭВМ із операційною системою Windows 95, 98, Me, XP, NT.
1. Підстава для розробки:
Підставою для розробки є завдання на курсове проектування.
2. Призначення розробки:
Метою розробки є огляд напрямків науки нейрокібернетики, що займається проблемою розробки і використання нейронних мереж для систем керування динамічними процесами. А також написання демонстраційної програми, що програмно реалізує мережу Хебба для розпізнавання символів.
3. Вимоги до програмного виробу:
3.1. Вимоги до функціональних характеристик:
3.1.1. Програмний виріб повинен реалізувати нейронну мережу Хебба.
3.1.2. Програмний виріб повинен реалізувати зручний інтерфейс навчання нейронної мережі і процесу розпізнавання символів.
3.1.3. Має бути реалізована візуалізація процес навчання і розрахунку важелів зв’язків нейронів.
3.1.4. Має бути реалізована можливість збереження і завантаження результатів навчання нейронної мережі.
3.2. Вимоги до надійності:
Програмний виріб повинний стійко функціонувати в апаратному і програмному середовищі, обговореному в п.4
3.3. Умови експлуатації:
Умови експлуатації програмного виробу цілком визначаються умовами експлуатації застосованих технічних засобів і носіїв даних.
3.4. Вимоги до маркування і пакування :
Вимоги до маркування і пакування не висуваються.
3.5. Вимоги до транспортування і збереження :
Вимоги до транспортування і збереження не висуваються.
4. Вимоги до складу і параметрів технічних засобів:
Для функціонування програмного виробу необхідна ІBM AT/XT і PS/2 чи сумісна з нею, з наступними мінімальними системними характеристиками:
- OS Windows 95
- Pentium I 100 MHz
- 16 Mb RAM
- відеоадаптер будь-якого класу;
- комп’ютерна миша;
- клавіатура.
5. Вимоги до програмної документації:
- Пояснювальна записка;
- Опис програми;
- Текст програми;
6. Стадії і етапи розробки.
Розробка програми повинна вестись за наступним планом :
1) одержання завдання;
2) огляд літератури і вирішення поставлених задач, обгрунтування необхідності розробки;
3) розробка структури вхідних і вихідних даних, уточнення методів рішення завдання;
4) опис і розробка алгоритму рішення завдання;
5) розробка структури програми та остаточне визначення конфігурації технічних засобів;
6) розробка програми, іспити і налагодження;
7) розробка програмної документації.
7. Порядок контролю і приймання.
При прийманні програмного виробу перевіряється :
1) комплектність, зміст і оформлення програмної документації;
2) відповідність програмного виробу програмним характеристикам;
3) відповідність програмного виробу обговореному програмному та апаратному середовищу;
4) надійність функцінування.
Опис програми
1. Опис інтерфейсу програмного виробу
2. Опис змінних
3. Опис процедур і функцій
Список літератури
1. Опис інтерфейсу програмного виробу
Програмний виріб – це програма, розроблена в середі програмування Delphi, і є програмною моделлю нейронної мережі Хебба. Даний виріб дозволяє проводити розпізнання вхідного сигналу відповідно до чотирьох навчальних, а також відслідковувати процес навчання і функціонування нейронної мережі.
Запуск програми відбувається із натисканням на відповідному виконуваному файлі (.exe), після чого користувач може спостерігати вікно програми, зображене на рисунку 1.
Рис. 1 Вигляд вікна програми на початку роботи
В лівій частині вікна ми можемо спостерігати п’ять полів, розбитих на 10×10 комірок – це нейрони, поля, куди заносяться користувачем, шляхом натискання курсором миші, навчальні зображення (верхні чотири поля) і сигнал, що розпізнається (п’яте окреме поле). Кожне поле супроводжується кнопкою "Clean", що дозволяє швидко очистити поле, якщо введено невірне зображення.
В правій частині вікна програми знаходиться інформаційне поле (Рис. 1), куди виводиться текстова інформація, щодо ініціалізації важелів зв’язків нейронів, стану нейронної мережі і результатів розпізнання. Це поле дозволяє з середини спостерігати за нейронною мережею.
Під інформаційним вікном знаходиться п'ять кнопок: "Save", "Load", "Teaching", "Find" і "Exit". При запуску програми кнопки "Save" і "Find" не активні.
На початку роботи користувач може задати навчальні зображення (Рис. 2), або скористатися кнопкою "Load", про яку розмова піде пізніше. Коли навчальні зображення задані, користувач має навчити нейронну мережу шляхом натискання на кнопку "Teaching", після чого мережа навчається і готова до розпізнання вхідних зображень. В інформаційному полі можна спостерігати стан нейронної мережі. Кнопки "Save" і "Find" активізувались (Рис. 2).
Рис. 2 Навчання нейронної мережі
Після навчання нейронної мережі користувач може задати вхідний сигнал в лівому нижньому полі і натиснути кнопку "Find". Нейронна мережа подасть вхідне зображення на кожний нейрон і ідентифікує вхідний сигнал відповідно до навчальних зображень, виділивши відповідну назву червоним кольором і повідомивши про це в інформаційному полі (Рис. 3).
Рис. 3 Пошук відповідності вхідного сигналу еталонному
Слід зазначити, що процес вводу одних і тих же навчальних зображень при кожній роботі з нейронною мережею можна не виконувати. Для цього після навчання мережі треба зберегти її поточний стан і навчальні зображення у файлі шляхом натискання кнопки "Save" (Рис. 4).
Рис. 4 Збереження поточного стану нейронної мережі
Збережені дані (навчальні зображення і стан нейронної мережі) можуть бути відновлені із файлу шляхом натискання на кнопку "Load" (Рис. 5).
Рис. 5 Відновлення стану нейронної мережі із файлу
Програма повідомляє про щасливе завершення операції або помилку, якщо інформаційний файл відсутній чи неможливе його відкриття або збереження на диску.
Ці можливості і кнопки "Clean" (Рис. 6) значно полегшують роботу із програмою і є дуже зручними.
Рис. 6 Використання кнопок "Clean" для очищення полів нейронів
Завершення роботи програми виконується при натисканні на кнопку "Exit", або хрестик в верхньому правому куті вікна. Слід зберегти стан нейронної мережі і навчальні зображення якщо ви бажаєте повернутися до них пізніше, оскільки в іншому випадку всі напрацювання будуть втрачені.
2. Опис змінних.
Змінна | Тип | Призначення |
Form1 | TForm1 | Змінна, що ідентифікує головну форму. Слугує для звернення до елементів форми |
M | array [0..4] of one_element; one_element = array [0..str*stol + 4] of integer | Масив, що описує матриці важелів зв’язків нейронів, а також реакцію кожного нейрона на зображення |
W | W_type; W_type = array [0.3, 0..str*stol] of integer | Масив, що описує навчальні зображення, які подаються на вхід нейронної мережі |
S | S: S_type; S_type = array [0..3] of integer | Масив результуючих сум реакції нейронів мережі на подане зображення |
f | f: file of W_type; W_type = array [0..3, str*stol] of integer | Змінна, що ідентифікує файл, який складається із записів типу W_type. Необхідна для роботи із файлом для збереження і завантаження стану нейронної мережі |
Вибір константних даних
yes = 'y';
no = 'n';
Слуговують для ідентифікації станів активності і неактивності комірок елементів TStringGrig, що описують нейрони.
str = 10;
stal = 10;
Задають розміри, точніше – кількість комірок одного нейрона, його роздільну здатність.
3. Опис процедур і функцій.
procedure BitBtn1Click (Sender: TObject);
Обробляє натискання на кнопку "Teaching". Виконує навчання нейронної мережі за поданими навчальними зображеннями доки мережа не почне реагувати на вхідні зображення вірно.
procedure BitBtn2Click (Sender: TObject);
Обробляє натискання на кнопку "Find". Реалізує пошук (ідентифікацію) відповідності поданого зображення із зображеннями які вивчила нейронна мережа шляхом послідовного подання зображення на нейрони мережі і порівняння реакції на нього.