Нейронні мережі в системах керування динамічними об'єктами
Нейронні мережі в системах керування динамічними об'єктами
Нейронні мережі в системах керування динамічними об'єктамиТехнічне завданняХарків2005Технічне завданняЗмістВступ 1. Підстава для розробки.2. Призначення розробки.3. Вимоги до програмного виробу.3.1 Вимоги до функціональних характеристик.3.2 Вимоги до надійності.3.3 Умови експлуатації.3.4 Вимоги до маркування і пакування.3.5 Вимоги до транспортування і збереження.Вимоги до складу і параметрів технічних засобів.Вимоги до програмної документації.Стадії і етапи розробки.Порядок контролю і приймання.ВступГоловна мета даного курсового проекту провести огляд проблеми нейронних мереж, основних напрямків розвитку нейрокібернетики і областей використання нейронних мереж особливо для керування динамічними системами. Програмний виріб є демонстрацією можливостей нейронних мереж і методики їх побудови. Це програма, що реалізує нейронну мережу Хебба, що навчається користувачем поданням ряду символьних зображень на її вхід. Після завершення навчання програма виконує розпізнавання символів відповідно до набору зображень, що вона вивчила. Даний програмний виріб орієнтований на комп'ютери серії І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. Вимоги до програмної документації: - Пояснювальна записка; - Опис програми; - Текст програми; Стадії і етапи розробки. Розробка програми повинна вестись за наступним планом : одержання завдання; огляд літератури і вирішення поставлених задач, обгрунтування необхідності розробки; розробка структури вхідних і вихідних даних, уточнення методів рішення завдання; опис і розробка алгоритму рішення завдання; розробка структури програми та остаточне визначення конфігурації технічних засобів; розробка програми, іспити і налагодження; розробка програмної документації. Порядок контролю і приймання. При прийманні програмного виробу перевіряється : комплектність, зміст і оформлення програмної документації; відповідність програмного виробу програмним характеристикам; відповідність програмного виробу обговореному програмному та апаратному середовищу; надійність функцінування. Опис програми ЗмістОпис інтерфейсу програмного виробу Опис змінних Опис процедур і функцій Список літератури Опис інтерфейсу програмного виробу Програмний виріб - це програма, розроблена в середі програмування 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", або хрестик в верхньому правому куті вікна. Слід зберегти стан нейронної мережі і навчальні зображення якщо ви бажаєте повернутися до них пізніше, оскільки в іншому випадку всі напрацювання будуть втрачені. Опис змінних. |
Змінна | Тип | Призначення | | 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; Задають розміри, точніше - кількість комірок одного нейрона, його роздільну здатність. Опис процедур і функцій. procedure BitBtn1Click (Sender: TObject); Обробляє натискання на кнопку "Teaching". Виконує навчання нейронної мережі за поданими навчальними зображеннями доки мережа не почне реагувати на вхідні зображення вірно. procedure BitBtn2Click (Sender: TObject); Обробляє натискання на кнопку "Find". Реалізує пошук (ідентифікацію) відповідності поданого зображення із зображеннями які вивчила нейронна мережа шляхом послідовного подання зображення на нейрони мережі і порівняння реакції на нього. procedure BitBtn5Click (Sender: TObject); Обробляє натискання на кнопку "Save". Виконує збереження у файлі поточного стану мережі і навчальних зображень у спеціальному файлі. procedure BitBtn4Click (Sender: TObject); Обробляє натискання на кнопку "Load". Реалізує завантаження із спеціального файлу, збережені в ньому раніше важелі зв'язків нейронів нейронної мережі і навчальні зображення. Інші методи є допоміжними і слугують для малювання форми або для забезпечення інтерфейсу і спеціальних дій і викликаються із основних функцій, що описані вгорі. Список літератури 1. Баас Р., Фервай М., Гюнтер Х. Delphi 7: полное руководство. - К.: Издательская группа BHV, 2004. - 800 с. 2. Барский А.Б. Нейронные сети: распознавание, управление, принятие решений. - М.: Финансы и статистика, 2004. - 248 с. 3. Браславский И.Я., Зюзев А.М., Ишматов З.Ш., Аверьянов М.А., Барац Е.И., Костылев А.В. Синтез нейронного наблюдателя для асинхронного привода с прямым управлением моментом // Электротехника. - 2001. - № 12. - С. 31 - 34. 4. Кей А. Искусственные нейронные сети // Computerworld. - 2001. - № 9. - С. 34 - 38. 5. Клепиков В.Б., Сергеев С.А., Махотило К.В., Обруч И.В. Применение методов нейронных сетей и генетических алгоритмов в решении задач управления электроприводами. - М.: Электротехника, 1999. - № 5. - С. 2 - 6. 6. Клепиков В.Б., Сергеев С.А., Махотило К.В., Обруч И.В. Применение методов нейронных сетей и генетических алгоритмов в решении задач управления электроприводами // Электротехника. - 1999. - № 5. - С. 2 - 6. 7. Комашинский В.И. Нейронные сети и их применение в системах управления и святи. - М.: "Горячая линия - Телеком", 2003. - 96 с. 8. Методические указания к лабораторной работе "Нейронная сеть Хебба". - Харьков: НТУ "ХПИ", 2002. - 12 с. 9. Назаров А., Лоскутов А. Нейросетевые алгоритмы прогнозирования и оптимизации систем. - С-Пб.: Наука и Техника, 2003. - 492 с. 10. Перехов В.М. Современные способы управления и их применение в электроприводе // Электротехника. - 2000. - № 2. - С. 25 - 28. 11. Терехов В.А., Ефимов Д.В., Тюкин И.Ю., Антонов В.Н. Нейросетевые системы управления. - С-Пб: Издательство С.-Петербургского университета, 1999. - 265 с. 12. Уоссермен Ф. Нейрокомпьютерная техника. - М.: Мир, 1997. - 430 с. 13. Щетинин В.Г. Многослойная самоорганизация нейронных сетей оптимальной сложности // Автоматика и вычислительная техника. - Рига, 1998. - j4. - С. 30 - 37. 14. Handschin E., Kehlmann D., Hoffman W. Fault diagnosis in electrical energy systems using devic-specific artificial neural networks // Eng. Intell. Syst. Electr. Eng. Commun. - 1994. - Vol. 2, №. 4. - P. 255 - 262. 15. Hsieh K.-R., Chen W.-T. A Neural Network Model which Combines Unsupervised and Supervised Learning // IEEE Trans. on Neural Networks. - 1993. - Vol. 4, №. 2. - P. 35 - 39. 16. Mielczarska G.M., Mielczarski W. Применение нейронных сетей для оценки динамического состояния синхронных генераторов // Dynamic state estimation of a synchronous generator using neural-networks techniques. - № 92/15. - Inst. Eng., Austral. - 1992. - Р. 21 - 28. 17. Sankar K. Mitra S. Multilayer Perceptron, Fuzzy Sets and Classification // IEEE Transactions on Neural Networks. - Vol. 3, №5. - 1992. - Р. 683 - 696. 18. Srinivasan D. A novel approach to electrical load Forecasting based on a neural network // INNC-91. - 1991. - Р. 1172 - 1177. 19. Trzynadlowski A.M. Application of neural networks to the optimal control of Three-phase Voltage-Controlled Inverters // IEEE Trans. on Power Electronics. - 1994. - Vol. 9, №4. - Р. 34 - 38. 20. Trzynadlowski A.M., Legowski S. Application of neural networks to the optimal control of three-phase voltage-controlled inverters // IEEE Trans. Power Electron. - 1999. - Vol. 9, №.4. - P. 397 - 404. 21. Vaubois G. de La C., Moulinoux С., Derot B. The N Programming Language // Neurocomputing. - Vol. F68. - P. 89 - 92. 22. Widrow B., Lehr M.A. 30 Years of Adaptive Neural Networks: Perception, Madeline, and Back propagation // IEEE Computer Society. - 1992. - Р. 327 - 354. Пояснювальна записка зміст 1. Нейронні мережі - основні поняття і визначення 2. Історія еволюції нейронних мереж. Їх основні моделі 2.1. Модель Маккалоха 2.2. Модель Розенблата 2.3. Модель Хопфілда 2.4. Мережі зі зворотним розповсюдженням 3. Основні алгоритми навчання і функціонування нейронних мереж 3.1. Алгоритм навчання з вчителем (алгоритм зворотного розповсюдження багатошарових нейронних мереж) 3.2. Алгоритм навчання без вчителя (алгоритм прямого розповсюдження нейронних мереж) 3.3. Алгоритми функціонування мереж Хопфілда і Хемінга 4. Мережа Хебба. Алгоритм Хебба навчання нейронних мереж 5. Області вживання і задачі розв'язувані за допомогою нейронних мереж 6. Сучасні проекти і вироби, засновані на нейронних мережах 1. Нейронні мережі - основні поняття і визначення В останні десятиліття у світі бурхливо розвивається нова прикладна галузь математики, що спеціалізується на штучних нейронних мережах (НМ). Актуальність досліджень у цьому напрямку підтверджується масою різних застосувань НМ. Це автоматизація процесів розпізнавання образів, адаптивне керування, апроксимація функціоналів, прогнозування, створення експертних систем, організація асоціативної пам'яті і багато інших додатків. За допомогою НМ можна, наприклад, пророкувати показники біржового ринку, виконувати розпізнавання оптичних або звукових сигналів, створювати системи, що самонавчаються, здатні керувати автомашиною при паркуванні або синтезувати мову за текстом. Широке коло задач, розв'язувані НМ, не дозволяє в даний час створювати універсальні, могутні мережі, змушуючи розробляти спеціалізовані НМ, що функціонують за різними алгоритмами. Самі ж моделі НМ можуть бути програмного й апаратного виконання. Незважаючи на істотні розходження, окремі типи НМ володіють декількома загальними рисами. Так в основу штучних нейронних мереж покладені наступні риси живих нейронних мереж: – простий обробний елемент - нейрон; – дуже велике число нейронів бере участь в обробці інформації; – один нейрон зв'язаний з великим числом інших нейронів (глобальні зв'язки); – що змінюються по вазі зв'язку між нейронами; – масована паралельність обробки інформації. Прототипом для створення нейрона послужив біологічний нейрон головного мозку. Біологічний нейрон має тіло, сукупність відростків - дендридів (синапсів), по яких у нейрон надходять вхідні сигнали, і відросток - аксон, що передає вихідний сигнал нейрона іншим клітинам. Біологічна модель штучного нейрона приведена на рис. 1: Рис. 1 Штучний нейрон Спрощене функціонування нейрона можна представити в такий спосіб: 1) Нейрон одержує від дендридів набір (вектор) вхідних сигналів; 2) У тілі нейрона оцінюється сумарне значення вхідних сигналів. Однак входи нейрона нерівнозначні. Кожен вхід характеризується деяким ваговим коефіцієнтом, що визначає важливість інформації, що надходить по ньому. Таким чином, нейрон не просто підсумовує значення вхідних сигналів, а обчислює скалярний добуток вектора вхідних сигналів і вектора вагових коефіцієнтів; 3) Нейрон формує вихідний сигнал, інтенсивність якого залежить від значення обчисленого скалярного добутку. Якщо - воно не перевищує деякого заданого порогу, то вихідний сигнал не формується зовсім - нейрон "не спрацьовує"; 4) Вихідний сигнал надходить на аксон і передається дендридам інших нейронів. У такий спосіб поточний стан нейрона визначається, як зважена сума його входів плюс сигнал зсуву (зазвичай це 1), помножений на його коефіцієнт: (1.1) де S - сумарний вхідний сигнал; wi () - вагові коефіцієнти зв'язків вхідних сигналів х1, …, хп; w0 - ваговий коефіцієнт зв'язку сигналу зсуву. А вихід нейрона є функція його стану: y = f(s) (1.2) Виходячи з цього, біологічне представлення нейрону замінюють моделлю процесорного елемента наступного виду: Нелінійна функція f називається активаційною і може мати різний вигляд. Найбільш розповсюдженими функціями активації є бінарна (1.3) або біполярна (1.4) Багато авторів при описанні моделі нейрона використовують не сигнал зсуву, а поріг нейрона, що приводить до еквівалентної моделі елемента. У цьому випадку вираження (1.3) і (1.4) приймають відповідно вигляд: (1.5) (1.6) де (1.7) Графічне зображення бінарної і біполярної функцій активації для цього випадку представлене на рис. 3а і 3b. Зі зіставлення виразів (1.1)-(1.3) і (1.4)-(1.6) випливає, що кожному значенню порогу нейрона може бути поставлений у відповідність ваговий коефіцієнт w0 зв'язку сигналу зсуву і навпаки. Рідше використовуються лінійні бінарні або біполярні функції активації (рис. 3с и 3d): (1.8) де а дорівнює нулю для бінарних вихідних сигналів нейронів і а дорівнює мінус одиниці для біполярних сигналів; k, a0 постійні коефіцієнти. Також широко використовуються бінарна сигмоидальная або логічна сигмоидальная функція (рис. 3e): , (1.9) де ф - постійний коефіцієнт; і біполярна сигмоїдальна (рис. 3f): , (1.10) При зменшенні сигмоїд стає більш положистим, і в межі при =0 вироджується в горизонтальну лінію на рівні 0.5, а при збільшенні сигмоїд наближається, за зовнішнім виглядом, до функції одиничного стрибка з порогом у крапці x=0. Зручність сигмоїдальної функції в тому, що вона диференціюється на всій осі абсцис, що використовується в деяких алгоритмах навчання. Крім того, вона має властивість підсилювати слабкі сигнали краще, ніж сильні, і запобігає насичення від великих сигналів, тому що вони відповідають областям аргументів, де сигмоїд має положистий нахил. У нейронних мережах також використовуються й інші функції: радіально-симетрична (рис. 3g): , (1.11) К-значна бінарна (рис. 3h): (1.12) К-значна біполярна (рис. 3i): (1.13) Нейронні мережі відрізняються не тільки активаційною функцією їхніх нейронів, вони бувають одно- і багатошарової структури, відрізняються за засобом навчання. Так навчання НМ може вестися з вчителем або без нього. У першому випадку мережі пред'являються значення як вхідних, так і бажаних вихідних сигналів, і вона по деякому внутрішньому алгоритмі підбудовує ваги своїх синаптичних зв'язків. В другому випадку виходи НМ формуються самостійно, а ваги змінюються по алгоритму, що враховує тільки вхідні і похідні від них сигнали. Крім того різні алгоритми навчання, поділяються на два великих класи: детерміністські і стохастичні. У першому з них підстроювання ваг являє собою тверду послідовність дій, у другому - вона виробляється на основі дій, що підкорюються деякому випадковому процесові. Розвиваючи далі питання про можливу класифікацію НМ, важливо відзначити існування бінарних і аналогових мереж. Перші з них оперують із двійковими сигналами, вихід кожного нейрона може приймати тільки два значення: логічний нуль ("загальмований" стан) і логічна одиниця ("збуджений" стан). В аналогових мережах вихідні значення нейронів здатні приймати безперервні значення. Ще одна класифікація поділяє НМ на синхронні й асинхронні. У першому випадку у кожен момент часу свій стан змінює лише один нейрон. В другому - стан змінюється відразу в цілій групі нейронів, як правило, усього шару. Алгоритмічно хід часу в НМ задається ітераційним виконанням однотипних дій над нейронами. Вибір типу НМ, методу навчання, її структури здійснюється відповідно до особливостей і складності задачі. Для вирішення деяких окремих типів задач вже існують оптимальні, на сьогоднішній день, конфігурації. Якщо ж задача не може бути зведена до жодного з відомих типів, розробник змушений вирішувати складну проблему синтезу нової конфігурації. При цьому він керується декількома основними принципами: можливості мережі зростають зі збільшенням числа осередків мережі, щільності зв'язків між ними і числом виділених шарів; введення зворотних зв'язків поряд зі збільшенням можливостей мережі піднімає питання про динамічну стійкість мережі; складність алгоритмів функціонування мережі (у тому числі, наприклад, введення декількох типів синапсів - збудливих, гальмуючих та ін.) також сприяє посиленню потужності НМ. Питання про необхідні і достатні властивості мережі для вирішення того або іншого роду задач являє собою цілий напрямок нейрокомп'ютерної науки. Так як проблема синтезу НМ сильно залежить від розв'язуваної задачі, дати загальні докладні рекомендації важко. У більшості випадків оптимальний варіант виходить на основі інтуїтивного підбору відповідно до потужності і можливостей обчислювальної машини або мікросхеми на якій виконується НМ. 2. Історія еволюції нейронних мереж. Їх основні моделі 2.1. Модель Маккалоха Теоретичні основи нейроматематики були закладені на початку 40-х років. У 1943 році У. Маккалох та його учень У. Питтс сформулювали основні положення теорії діяльності головного мозку. Ними були отримані наступні результати: - розроблена модель нейрона як найпростішого процесорного елементу, що виконує обчислення перехідної функції від скалярного добутку вектора вхідних сигналів і вектора вагових коефіцієнтів; - запропонована конструкція мережі таких елементів для виконання логічних і арифметичних операцій; - зроблено основне припущення про те, що така мережа здатна навчатися, розпізнавати образи, узагальнювати отриману інформацію. Незважаючи на те, що за минулі роки нейроматематика пішла далеко вперед, багато тверджень Макклоха залишаються актуальними і зараз. Зокрема, при великій розмаїтості моделей нейронів принцип їхньої дії, закладений Макклохом і Питтсом, залишається незмінним. Недоліком даної моделі є сама модель нейрона "пороговим" видом перехідної функції. У формалізмі У. Маккалоха і У. Питтса нейрони мають стани 0, 1 та граничну логіку переходу зі стану в стан. Кожен нейрон у мережі визначає зважену суму станів всіх інших нейронів і порівнює її з порогом, щоб визначити свій власний стан. Пороговий вид функції не надає нейронній мережі достатньої гнучкості при навчанні і настроюванні на поставлене завдання. Якщо значення обчисленого скалярного добутку, навіть незначно, не досягає до заданого порогу, то вихідний сигнал не формується зовсім і нейрон "не спрацьовує". Це значить, що губиться інтенсивність вихідного сигналу (аксона) даного нейрона і, отже, формується невисоке значення рівня на зважених входах у наступному шарі нейронів. 2.2. Модель Розенблата Значний розвиток нейрокибернетика одержала в роботах американського нейрофізіолога Френсиса Розенблата (Корнельский університет). У 1958 році він запропонував свою модель нейронної мережі. Розенблат ввів у модель Маккаллока і Питтса здатність зв'язків до модифікації, що зробило її навчальною. Ця модель була названа персептроном. Спочатку персептрон являв собою одношарову структуру з твердою пороговою функцією процесорного елемента і бінарними або багатозначними входами. Перші персептрони були здатні розпізнавати деякі літери латинського алфавіту. Згодом модель персептрона була значно вдосконалена. Персептрон застосовувався для задачі автоматичної класифікації, що у загальному випадку полягає в поділі простору ознак між заданою кількістю класів. У двомірному випадку потрібно провести лінію на площині, що відокремлює одну область від іншої. Персептрон здатний поділяти простір тільки прямими лініями (площинами). Алгоритм навчання персептрона виглядає наступним чином: 1) системі пред'являється еталонний образ; 2) якщо виходи системи спрацьовують правильно, вагові коефіцієнти зв'язків не змінюються; 3) якщо виходи спрацьовують неправильно, ваговим коефіцієнтам дається невелике збільшення убік підвищення якості розпізнавання. Серйозним недоліком персептрона є те, що не завжди існує така комбінація вагових коефіцієнтів, при якій наявна безліч образів буде розпізнаватися даним персептроном. Причина цього недоліку полягає в тому, що лише невелика кількість задач припускає, що лінія, що розділяє еталони, буде прямою. Звичайно це досить складна крива, замкнута або розімкнута. Якщо врахувати, що одношаровий персептрон реалізує тільки лінійну поділяючу поверхню, застосування його там, де потрібно нелінійна, приводить до невірного розпізнавання (ця проблема називається лінійної нероздільністю простору ознак). Виходом з цього положення є використання багатошарового персептрона, здатного будувати ламаний кордон між розпізнаваними образами. Описана проблема не є єдиними труднощами, що виникають при роботі з персептронами - також слабко формалізований метод навчання персептрона. Персептрон поставив ряд питань, робота над вирішенням яких призвела до створення більш "розумних" нейронних мереж і розробці методів, що знайшли застосування не тільки в нейрокибернетиці (наприклад, метод групового обліку аргументів, застосовуваний для ідентифікації математичних моделей). 2.3. Модель Хопфілда У 70-і роки зацікавленість до нейронними мережами значно зменшала, однак роботи з їхнього дослідження продовжувалися. Був запропонований ряд цікавих розробок, таких, наприклад, як когнитрон, здатний добре розпізнавати досить складні образи (ієрогліфи і т.п.) незалежно від повороту і зміни масштабу зображення. Автором когнитрона є японський вчений И. Фукушима. Новий виток швидкого розвитку моделей нейронних мереж, що почався 8-9 років тому , пов'язаний з роботами Амари, Андерсона, Карпентера, Кохена та інших, і, особливо, Хопфилда, а також під впливом багатообіцяючих успіхів оптичних технологій і зрілої фази розвитку СБІС для реалізації нових архітектур. Початок сучасному математичному моделюванню нейронних обчислень було покладено роботами Хопфилда в 1982 році, у яких була сформульована математична модель асоціативної пам'яті на нейронній мережі з використанням правила Хеббиана для програмування мережі. Але не стільки сама модель стала поштовхом до появи робіт інших авторів на цю тему, скільки введена Хопфилдом функція обчислення енергії нейронної мережі. Це аналог функції Ляпунова в динамічних системах. Показано, що для одношарової нейронної мережі зі зв'язками типу "усі на всіх" характерна збіжність до однієї з кінцевої безлічі рівноважних крапок, що є локальними мінімумами функції енергії, що містить у собі усю структуру взаємозв'язків у мережі. Розуміння такої динаміки в нейронній мережі було й в інших дослідників. Однак, Хопфилд і Тэнк показали як конструювати функцію енергії для конкретної оптимізаційної задачі і як використовувати її для відображення задачі у нейронну мережу. Цей підхід одержав розвиток і для вирішення інших комбінаторних оптимізаційних задач. Привабливість підходу Хопфилда полягає в тому, що нейронна мережа для конкретної задачі може бути запрограмована без навчальних ітерацій. Ваги зв'язків обчислюються на підставі виду функції енергії, сконструйованої для цієї задачі. Розвитком моделі Хопфилда для вирішення комбінаторних оптимізаційних задач і задач штучного інтелекту є машина Больцмана, запропонована і досліджена Джефери Е. Хинтоном і Р. Земелом. У ній, як і в інших моделях, нейрон має стани 1, 0 і зв'язок між нейронами має вагу. Кожен стан мережі характеризується визначеним значенням функції консенсусу (аналог функції енергії). Максимум функції консенсусу відповідає оптимальному вирішенню задачі. Є наступна інформація про результати моделювання на ЕОМ роботи нейронної мережі. Моделювалася асинхронна робота мережі Хопфилда. Мережа працює добре, тобто без помилок відновлює еталонні образи з випадкових, якщо в неї записується не більш 15 % еталонних образів. Іспити проводилися для 30 нейронів і для 100 нейронів у мережі. Бралася деяка кількість випадкових векторів у якості еталонних і будувалася відповідна матриця ваг зв'язків. Моделювання при 100 нейронах було істотно більш повільним процесом, ніж при 30 нейронах, хоча якісна картина і у тому і в іншому випадках була та сама. Приблизно 88 % іспитів закінчувалися в еталонних станах, 10 % - у стійких станах, близьких до еталонного. При відстані ? 5 між початковим і еталонним векторами, еталонний стан досягався в 90 % випадків. Зі збільшенням відстані, імовірність влучення в найбільш близький еталонний стан гладко спадала. При відстані 12 імовірність дорівнювала 0.2. Стійкі стани, занадто близькі друг до друга, мають тенденцію "зливатися", вони попадають в одну западину на енергетичній поверхні. Програмувалася задача комівояжера на основі мережі Хопфилда. Мережею зі 100 нейронів для 20 різних випадкових початкових станів були визначені маршрути, 16 з яких були прийнятними, 50 % спроб дали 2 шляхи 2.83 і 2.71 (цифри приводяться, щоб показати як вони близькі) при найкоротшому 2.67. Це результати моделювання роботи мережі з безперервною моделлю нейрона. Моделювалася також задача комівояжера, але для мережі типу машина Больцмана, проводилася при наступних значеннях керуючих параметрів: A = 0.95, L = 10, M = 100 (A - позитивне число менше одиниці, але близьке до неї, L - число іспитів, що проводяться без змін, M - число послідовних іспитів, що не приводять до зміни стану машини, як критерію завершення процесу). Процес запускався 100 разів для n = 10 (усього в мережі N = n^2 нейронів) і 25 разів для n = 30 при різних нормальних станах машини Больцмана. Для n = 10 вийшов оптимальний результат, для n = 30 - вирішення на 14 % гірше оптимального. Відзначимо, що імовірний механізм функціонування машини Больцмана дає можливість одержати на ній трохи кращі результати оптимізації, чим на моделі Хопфилда. 2.4. Мережі зі зворотним розповсюдженням З розвитком теорії нейронних мереж вони стають усе більше і здобувають переважно багатошарову структуру. Одним із розповсюджених способів навчання цих мереж став спосіб зворотного поширення (back propogatіon). У таких НМ зв'язок між собою мають тільки сусідні шари, при цьому кожен нейрон попереднього шару зв'язаний із усіма нейронами наступного шару. Нейрони звичайно мають сигмоїдальну функцію активації. Перший шар нейронів називається вхідним і містить число нейронів відповідне розпізнаному образові. Останній шар нейронів називається вихідним і містить стільки нейронів, скільки класів образів розпізнається. Між вхідним і вихідним шарами розташовується один або більше схованих (тіньових) шарів. Визначення числа схованих шарів і числа нейронів у кожнім шарі для конкретної задачі є неформальною задачею. Принцип навчання такої нейронної мережі базується на обчисленні відхилень значень сигналів на вихідних процесорних елементах від еталонних і зворотньому "прогоні" цих відхилень до їхніх елементів, що породили, з метою корекції помилки. Ще в 1974 році Поль Дж. Вербос винайшов значно більш ефективну процедуру для обчислення величини, що називається похідною помилки по вазі, коли працював над своєю докторською дисертацією в Гарвардському університеті. Процедура, відома тепер як алгоритм зворотного поширення, стала одним з найбільш важливих інструментів у навчанні нейронних мереж. Однак цьому алгоритмові властиві і недоліки, головний з яких - відсутність скільки-небудь прийнятних оцінок часу навчання. Розуміння, що мережа зрештою навчиться, мало втішає, якщо на це можуть піти роки. Проте, алгоритм зворотного поширення має найширше застосування. Наприклад, успіх фірми NEC у розпізнаванні букв, був досягнутий саме завдяки алгоритмові зворотного поширення. 3. Основні алгоритми навчання і функціонування нейронних мереж 3.1. Алгоритм навчання з вчителем (алгоритм зворотного розповсюдження багатошарових нейронних мереж) Серед різних структур нейронних мереж (НМ) однієї з найбільш відомих є багатошарова структура, у якій кожен нейрон довільного шару зв'язаний із усіма аксонами нейронів попереднього шару або, у випадку першого шару, із усіма входами НМ. Такі НМ називаються повнозв'язними. Коли в мережі тільки один шар, алгоритм її навчання з вчителем досить очевидний, тому що правильні вихідні стани нейронів єдиного шару свідомо відомі, і підстроювання синаптичних зв'язків йдуть у напрямку, мінімізуючому помилку на виході мережі. На цьому принципі будується, наприклад, алгоритм навчання одношарового перцептрона. У багатошарових же мережах оптимальні вихідні значення нейронів усіх шарів, крім останнього, як правило, не відомі, і двох або більш шаровий перцептрон уже неможливо навчити, керуючись тільки величинами помилок на виходах НМ. Один з варіантів рішення цієї проблеми - розробка наборів вихідних сигналів, що відповідають вхідним, для кожного шару НМ, що, звичайно, є дуже трудомісткою операцією і не завжди здійсненно. Другий варіант - динамічне підстроювання вагових коефіцієнтів синапсів, у ході якої вибираються, як правило, найбільш слабкі зв'язки і змінюються на малу величину в ту або іншу сторону, а зберігаються тільки ті зміни, що спричинили зменшення помилки на виході всієї мережі. Очевидно, що даний метод "тику", незважаючи на свою удавану простоту, вимагає великих рутинних обчислень. І, нарешті, третій, більш прийнятний варіант - поширення сигналів помилки від виходів НМ до її входів, у напрямку, зворотньому прямому поширенню сигналів у звичайному режимі роботи. Цей алгоритм навчання НМ одержав назву процедури зворотного поширення. Саме він буде розглянутий надалі. Відповідно до методу найменших квадратів, мінімізуючою цільовою функцією помилки НМ є величина: , (3.1) де - реальний вихідний стан нейрону j вихідного шару N нейронної мережі при подаванні на її входи p-го образу; djp - ідеальний (бажаний) вихідний стан цього нейрону. Підсумовування ведеться по всіх нейронах вихідного шару і по всім оброблюваним мережею образам. Мінімізація ведеться методом градієнтного спуску, що означає підстроювання вагових коефіцієнтів у такий спосіб:
Страницы: 1, 2
|