Моя магістерська робота присвячена дослідженню можливостей нейромережного алгоритму "Неокогнітрон" в області розпізнавання образів, підданих різним перекручуванням: зрушенням, поворотам, зміні форми, шуму [1]. Дана робота має на увазі реалізацію оптимальної моделі неокогнітрону, що справляється з поставленими задачами, зокрема, з розпізнаванням арабських цифр, використовуючи мінімум обчислювальних ресурсів комп'ютера.
Вхідними даними для системи є:
Вихідні дані - індекси класів, яким належать вхідні образи.
Проблема ефективного розпізнавання образів має важливе значення в сферах автоматизації певних процесів людської діяльності, зв'язаних з ідентифікацією різних об'єктів навколишнього світу, наприклад, авторизація робочого персоналу по відбитках пальців чи сітківці ока, ідентифікація продукту і розрахунок ціни в магазині по штриху-коду і так далі.[2]
У ході розвитку кібернетичних наук було розроблено безліч методів по розпізнаванню образів. Однак вони мають істотні недоліки, такі як вузька спеціалізованність застосування, а також необхідність використання додаткових алгоритмів обробки зображень для зменшення впливу шуму і т.д.[1] У результаті останніх медичних досліджень з'явилася можливість змоделювати нейромережу, структура якої ґрунтується на будівлі зорової кори головного мозку. Модель цієї мережі - неокогнітрон - виявила високу ефективність її застосування для розпізнавання образів.
Реалізовані на даний момент моделі неокогнітрону носять скоріше демонстративний характер, тому що існуючі на даний момент комп'ютери не мають достатньої продуктивності. Дослідження в області оптимізації архітектури неокогнітрону дозволять вирішити цю проблему[3].
У ході даній роботі буде розроблений нейромережний алгоритм, що виконує швидке і точне розпізнавання вхідних образів з різним ступенем перекручування. Буде проведений аналіз ефективності функціонування неокогнітрону при різних параметрах системи. Крім того, будуть виконані дослідження впливу різних факторів на якість розпізнавання.
Базова модель неокогнітрону була уведена Фукушимой у 1980 році [3] як розширення когнітрону - нейромережного алгоритму, здатного розпізнавати складні образи. Неокогнітрон показав відмінні результати по розпізнаванню образів, підданих зсувам у позиції, зашумленню, перекручуванню форми. Проте, неокогнітрон не справлявся з задачами розпізнавання образів, повернених на деякий кут, а процес розпізнавання займав досить тривалий час.
У плині багатьох літ Неокогнітрон удосконалився завдяки праці вчених. Були введені 2 моделі неокогнітронів, стійких до повороту вхідного образа:
R-неокогнітрон втрачає свою ефективність при великому числі класів, до яких можуть належати образи, тому що час розпізнавання зростає експоненціально в залежності від числа нейронів.
TD-R-неокогнітрон виконує т.зв. ментальний поворот образа, визначаючи кут і порівнюючи з еталоном. Даний принцип має багато загального з поводженням людини: коли людина дивиться на картину, повернену на 90 градусів, він визначає кут і намагається нахилити свою голову, щоб зрозуміти, що намальовано на картині.
На даний момент існує кілька версій реалізації неокогнітрону, що мають незначні розходження:
Останні мають більш високу швидкість навчання і стабільність. Однак їхній недолік полягає у тому, що передбачається використання додаткової інформації про належність усього вхідного образа цілком і його окремих частин до того чи іншого класу.[3]
Моделі, що навчаються без учителя, є більш адаптивними й оптимальними. Вони базуються на представленнях про зорову систему сприйняття людини.
Неокогнітрон являє собою багатошарову нейронну мережу, що самоорганізується та моделює систему сприйняття людини. Його шари створені з безлічі нейронів, згрупованих у площини - двовимірні масиви. Нейрон одного шару одержує сигнали від обмеженого числа нейронів попереднього шару, і надсилає вихідні сигнали невеликій кулькості нейронів наступного шару.[1]
У структурі неокогнітрону використовуються три типи нейронів - S-нейрони ("прості" нейрони), C-нейрони ("складні" нейрони) і гальмуючі нейрони. Докладніше про функціонування кожного з них - у розділі Опис нейронів. Шари згруповані парами, за кожним S-шаром, що містить одні тільки S-нейрони, йде C-шар. Площини будь-якого S-шару навчаються розпізнавати визначені особливості вхідного образу, а площини C-шарів комбінують результати розпізнавання.[2]
Кількість нейронів у площинах зменшується від шару до шару. Останній C-шар містить безліч площин, що містять по одному нейрону, що реагує на визначений вхідний образ. Вхідний шар містить одну площину нейронів, і передає розпізнаваний образ на вхід першому S-шару.[1]
Кожна площина S-шару одержує вхідні сигнали від усіх площин попереднього C-шару, тобто кожен нейрон у будь-якій S-площині зв'язаний із групами нейронів із усіх C-площин, позиційно розташованих у тих самих областях. Нейрони площини C-шару одержують вхідні сигнали тільки від нейронів відповідної їй площини попереднього S-шару.
Кожен нейрон реагує на вихідні сигнали нейронів попереднього шару, що лежать у його області зв'язку. Чим глибше рівень нейрона, тим більше стає його рецептивна область. Таким чином, кожен нейрон останнього шару сприймає увесь вхідний образ неокогнітрону. Розміри областей зв'язку вибираються таким чином, щоб для сусідніх нейронів вони перекривалися, а усі разом покривали вхідний образ цілком.
Усі нейрони, що використовуються в неокогнітроні, є аналоговими, тобто їхні входи і виходи мають не-негативне речовинне значення. Усього використовуються 3 типи нейронів - S-нейрони, C-нейрони і гальмуючі нейрони.
Розглянемо функціонування S-нейрона. Як показано на малюнку 2, він одержує безліч збудливих вхідних сигналів від нейронів C-шаруючи - U(k), що збільшують його вихідний сигнал. З іншого боку, вплив вихідного сигналу гальмуючого нейрона - v, - зменшує його реакцію. Кожне з'єднання з нейроном попереднього шару має свій позитивний коефіцієнт - a(k). Коефіцієнт з'єднання з гальмуючим нейроном позначений як b.
Позначимо вихідний сигнал S-нейрона як w. Він обчислюється по формулі, приведеної в мал. 3
Функція активації є лінійної при позитивних значеннях вхідного сигналу, і рівної нулю в інших випадках.
Гальмуючий нейрон має ту ж область зв'язку, що і S-нейрон.
Вихід гальмуючого нейрона визначається по наступній формулі
Коефіцієнти предсинаптичних зв'язків з C-шаром гальмуючого нейрона зафіксовані і не змінюються, а їхні значення зменшуються від середини області зв'язку до її країв, причому їхня сума дорівнює 1.
Розглянемо обчислювальні процеси, зв'язані з роботою C-нейрона. Коефіцієнти зв'язків від S-шару до C-шару визначаються один раз і не змінюються надалі, їхні значення визначаються аналогічно коефіцієнтам гальмуючих нейронів [1]. Вихідне значення C-нейрона визначається по формулі:
де функція ксі дає значення x/(a+x) при позитивному x, і 0 - у противному випадку.
Навчання неокогнітрону відбувається по методу "навчання без учителя", тобто в процесі навчання неокогнітрону подаються на вхід образи без додаткової інформації про те, якому класу вони належать. Навчання виконується послідовно, від шару до шару.
Як згадувалося вище, змінюються тільки a(k) і b-коефіцієнти S-нейронів по наступним формулах:
де q - коефіцієнт навчання, u(k) - вихід k-го нейрона З-шаруючи, c(k) - вагарні коефіцієнт предсинаптичного зв'язку гальмуючого нейрона, v - вихід гальмуючого нейрона.
Споконвічно вагарні коефіцієнти a(k) і b приймають значення, близькі до нуля.
Процес навчання орієнтований на те, щоб кожна окрема площина нейронів S-шаруючи навчилася реагувати на окрему особливість вхідного образа. Але можуть виникнути такі ситуації, що нейрони в різних площинах при навчанні на тих самих образах дадуть досить високі вихідні сигнали і збільшать свої коефіцієнти. Щоб цього уникнути, були введені стовпці конкуренції. Для кожного нейрона вибирається область певного розміру, до якої входить визначене число сусідів. Ця область - область зрізу для одного зі стовпців. У цей же стовпець входять нейрони з тієї ж самої області всіх інших площин даного шару. Стовпці, також як і області зв'язку, можуть частково перекривати один одного.
Після того, як були полічені вихідні сигнали для всіх нейронів S-шаруючи, у кожнім стовпці конкуренції вибирається кандидат - нейрон, що має найбільший вихідний показник. Цей нейрон записується в список кандидатів для площини, у якій знаходиться. Потім, для кожної площини, з її списку вибирається кандидат з максимальним виходом, і змінюються вагові коефіцієнти його зв'язків. Ці коефіцієнти передаються на всі нейрони цієї ж площини. Таким чином, на кожну особливість вхідного образу будуть реагувати нейрони тільки однієї площини[1].
На даний момент реалізована система, що успішно справляється з завданням розпізнавання арабських цифр. Реалізовано алгоритм читання вхідного образа. Реалізовано алгоритми розпізнавання і навчання. Були проведені іспити працюючої системи. На компьютері з процесором Intel Celeron 900Mhz процес навчання на образах з дозволом 19x19, у ході якого кожен образ подавався на вхід нейромережі 100 разів, триває 10.3 секунди, а процес розпізнавання - 0.1 секунди. Неокогнітрон успішно розпізнає перекручені образи.
У даний час ведеться розробка автоматизованого процесу навчання на наборах образів. Ведуться дослідження з оптимізації характеристик нейроалгоритму.
Неокогнітрон показав дуже гарні результати при розпізнаванні образів. Розвиток даної моделі є дуже перспективним завданням, рішення якого дозволить створити універсальну систему по ідентифікації різних об'єктів. На даний момент система має певні недоліки, такі як низька швидкість навчання, зафіксовані параметри вхідних образів. Але ці проблеми є розв'язними.