Трубаров Андрій АнатолійовичФакультет обчислювальної техніки і інформатикиКафедра електронних обчислювальних машинСпеціальність: Системне програмуванняТема випускної роботи:Організація навчання нейронних мереж за допомогою генетичного алгоритму оптимізаціїНауковий керівник: Святний Володимир АндрійовичРеферат за темою випускної роботиВступЗ кожним днем задачі, які розв'язуються за допомогою комп'ютерних систем, усе більше й більше ускладнюються. Для їхнього вирішення створено безліч методів, технологій і концепцій, які постійно вдосконалюються. При цьому, поряд з міцно устояними й широко застосовуваними методами, усе ширше розвиваються й використовуються інші, нетрадиційні підходи. Один з них пов'язаний зі штучними нейронними мережами. Першою спробою створення й дослідження штучних нейронних мереж вважається робота Дж. Маккалока (J. McCulloch) і У. Питтса (W. Pitts) "Логічне вирахування ідей, що відносяться до нервової діяльності" (1943 р.) [1], у якій були сформульовані основні принципи побудови штучних нейронів і нейронних мереж. І хоча ця робота була лише першим етапом, багато ідей, описані тут, залишаються актуальними й на сьогоднішній день. Штучні нейронні мережі являють собою пристрої паралельних обчислень, що складаються з безлічі взаємодіючих простих процесорів. Такі процесори звичайно винятково прості, особливо в порівнянні із процесорами, використовуваними в персональних комп'ютерах. Кожен процесор подібної мережі має справу тільки із сигналами, які він одержує, і сигналами, які він періодично посилає іншим процесорам, і, проте, будучи з'єднаними в досить велику мережу з керованою взаємодією, такі локально прості процесори разом здатні виконувати досить складні завдання [2]. Штучні нейронні мережі мають прямий зв'язок з біологією, тому що вони складаються з елементів, функціональні можливості яких аналогічні більшості функцій біологічного нейрона. Ці елементи можна організувати у відповідність із анатомією мозку, і вони демонструють велику кількість властивому мозку властивостей. Наприклад, нейронні мережі можуть навчатися, ґрунтуючись на своєму досвіді, можуть проектувати попередні прецеденти на нові випадки й визначати значимі властивості вхідної інформації, що має надлишкові дані. Нервова система людини має приголомшуючу складність. Близько 1011 нейронів беруть участь у приблизно 1015 передавальних зв'язках, що мають довжину метр і більше. Кожен нейрон має багато якостей, спільними з іншими елементами тіла, але його унікальною здатністю є приймання, обробка й передача електрохімічних сигналів по нервових шляхах, які утворять комунікаційну систему мозку [3]. На рис. 1 показана структура типового біологічного нейрона. Дендрити йдуть від тіла нервової клітки до інших нейронів, де вони приймають сигнали в точках з'єднання –синапсах. Прийняті синапсом вхідні сигнали підводять до тіла нейрона. Тут вони підсумовуються, причому одні входи прагнуть збудити нейрон, інших - перешкодити його збудженню. Коли сумарне збудження в тілі нейрона перевищує деякий поріг, нейрон збуджується, посилаючи по аксону сигнал іншим нейронам. У цієї основної функціональної схеми багато ускладнень і виключень, проте, більшість штучних нейронних мереж моделюють лише ці прості властивості. Рис. 1. Структура біологічного нейрона Штучна нейронна мережа, як й її біологічний прототип, повинна пройти навчання для того, щоб мати можливість вирішувати поставлені перед нею задачі. Існує безліч різних алгоритмів навчання нейронних мереж, що класифікуються по певних параметрах. Одним із найперспективних напрямків є стохастичні алгоритми - зокрема, генетичний алгоритм. Генетичний алгоритм заснований на природно-біологічному принципі еволюції, коли одне покоління згодом змінюється іншим. При цьому більший шанс вижити й продовжити свій рід мають більше пристосовані особини. У генетичному алгоритмі роль поколінь грають ітерації, а роль особин - рішення, з яких найбільш близькі до бажаного результату продовжують брати участь у вирішенні задачі. Мета й задачіМетою даної магістерської роботи є дослідження застосовності генетичного алгоритму до навчання нейронної мережі, організація навчання мережі за допомогою генетичного алгоритму на прикладі задачі розпізнавання символів, визначення оптимальної структури мережі. Для досягнення поставленої мети будуть вирішуватися наступні задачі:
Актуальність темиНейронні мережі дозволяють вирішувати дуже широке коло завдань. Це розпізнавання образів і класифікація, прийняття рішень і керування, кластеризація, прогнозування й апроксимація, стиснення даних й асоціативна пам'ять. Найважливіша властивість нейронних мереж, що свідчить про їхній величезний потенціал і широкі прикладні можливості, складається в паралельній обробці інформації одночасно всіма нейронами. Інше не менш важлива властивість нейронної мережі складається в здатності до навчання й до узагальнення отриманих знань. Мережа має риси так називаного штучного інтелекту. Натренована на обмеженій множини навчальних вибірок, вона узагальнює накопичену інформацію й виробляє очікувану реакцію стосовно до даних, що не обрабатывались у процесі навчання. Незважаючи на значну кількість уже відомих практичних додатків штучних нейронних мереж, можливості їхнього подальшого використання для обробки сигналів не вивчені остаточно, і можна висловити припущення, що нейронні мережі ще протягом багатьох років будуть засіб розвитку інформаційної техніки [4]. Передбачувана наукова новизна й практичні результатиСистема організації навчання й тестування нейронної мережі припускає завдання параметрів, що ставляться як до структури самої мережі (її топології), так і до застосовуваних алгоритмів її навчання. Для нейронної мережі такими параметрами є, наприклад, кількість нейронів у шарі, кількість шарів. Параметрами, що характеризують безпосередньо алгоритм навчання, є, наприклад, різні коефіцієнти швидкості навчання, початкові значення ваг мережі, припустима погрішність навчання. Визначення оптимальних параметрів мережі для конкретних завдань є актуальним питанням, що вирішується в даній роботі. Огляд досліджень і розробок за темоюУ світі існує велика кількість реалізацій нейронних мереж для вирішення самих різних задач на різних мовах програмування. Однієї з найвідоміших є розробка Flood - бібліотека нейронної мережі на С++ з відкритим вихідним кодом[5]. Також перспективними є розробки Європейського центра м'яких обчислень [6]. Що стосується зв'язку генетичного алгоритму й навчання нейронних мереж, те тут також є деякі розробки. Одна із найцікавіших - розробка NeuroGen [7]. NeuroGen містить у собі гібридний паралельний алгоритм генетичного пошуку й стандартне зворотнє розповсюдження для навчання нейронних мереж на системах з розподіленою пам'яттю. Пакет містить кілька тестових програм, які можуть бути скомпільовані й запущені як на кластері, так й як звичайна однопотокова С-програма. Що стосується національного рівня, то в нашій країні є вкрай мале число досліджень і розробок по даній темі. Набагато більше матеріалів можна знайти в наших сусідів, Росії. Короткий список програмного забезпечення по нейронних мережах і генетичному алгоритмі можна знайти на сторінці «Посилання» у відповідному підрозділі. Варто відзначити, що вагомий внесок у дослідження нейронних мереж і генетичних алгоритмів вносять випускники ДонНТУ [8]. Власні результатиНа даний момент спроектована й розроблена об’єктно-орієнтована модель нейронної мережі й початкова версія системи тестування й аналізу. Нейронна мережа характеризується кількістю шарів, які, у свою чергу, характеризуються, кількістю нейронів. Нейрон являє собою математичну модель простого процесора, що має кілька входів й один вихід (рис. 2) [9]. Вектор вхідних сигналів перетвориться нейроном у вихідний сигнал з використанням трьох функціональних блоків: локальної пам'яті, блоку підсумовування й блоку нелінійного перетворення. Рис. 2. Структура штучного нейрона Вектор локальної пам'яті містить інформацію про вагові множники, з якими вхідні сигнали будуть інтерпретуватися нейроном. Ці змінні ваги є аналогом чутливості пластичних синаптичних контактів. Вибором ваг досягається та або інша інтегральна функція нейрона. У блоці підсумовування відбувається накоплення загального вхідного сигналу (звичайно позначуваного символом net), рівного зваженій сумі входів: Прохід сигналів двошарової нейронної мережі від її входу до виходів представлений на рис.3. Рис. 3. Формування вихідних сигналів двошарової мережі (Анімація складається з 7 кадрів, загальна тривалість цикла - 7 секунд. Обсяг файла - 24 KБ.) Навчання нейронної мережі відбувається за допомогою алгоритму зворотного поширення помилки. Поширення сигналів помилки походить від виходів нейронної мережі до її входів, у напрямку, зворотному прямому поширенню сигналів у звичайному режимі роботи [10]. ВисновкиНейронні мережі є одним із найцікавіших напрямків методів вирішення складних задач різної класифікації, оскільки вони відносяться до області штучного інтелекту, що не залишає байдужим жодного дослідника. За допомогою нейронних мереж можна вирішувати задачі, які вимагали б значно менших обчислювальних потужностей, ніж стандартні методи. Навчання нейронних мереж - це і є сама їхня суть. У роботі планується провести дослідження декількох методів навчання, особлива увагу приділивши при цьому генетичному алгоритму. Генетичні алгоритми є досить потужним засобом і можуть із успіхом застосовуватися для широкого класу прикладних завдань, включаючи ті, які важко, а іноді й зовсім неможливо, вирішити іншими методам. Однак, генетичні алгоритми, як й інші методи еволюційних обчислень, не гарантує виявлення глобального рішення за поліноміальний час. Генетичні алгоритми не гарантують і того, що глобальне рішення буде знайдено, але вони гарні для пошуку "досить гарного" рішення задачі "досить швидко". Там, де задача може бути вирішена спеціальними методам, майже завжди такі методи будуть ефективніше ГА й у швидкодії й у точність знайдених рішень. Головною же перевагою генетичних алгоритмів є те, що вони можуть застосовуватися навіть на складних завданнях, там, де не існує ніяких спеціальних методів. Навіть там, де добре працюють існуючі методики, можна досягти поліпшення сполученням їх з генетичними алгоритмами. Перелік використаних джерел
|