
Лабораторна робота №1
Тема: Нейронні мережі
Завдання: Побудова власної нейронної мережі розпізнання букв
1. Нейромережа - це навчальна система. Вона діє не тільки відповідно за заданим алгоритмом і формулами, але і на підставі минулого досвіду. Нейромережа складається з нейронів. Нейрон - це просто якась уявна чорна коробка, у якій купка вхідних отворів і один вихідний. Причому як вхідна, так і вихідна інформація може бути аналоговою.
На рис.1. показаний фрагмент нейромережі, за яким ми можемо представити наступне.
Рис. 1. Фрагмент нейронної мережі
1. У мережі розпізнають вхідний (рецепторний) шар, що сприймає сигнали зовнішнього збудження і вихідний шар, що визначає результат рішення задачі розпізнавання або прийняття рішень.
2. Кожен нейрон обробляє сигнальну інформацію Вхідні дані у вигляді сигналів формуються на рецепторному шарі.
3. Функції активації бувають різні, але прості за обсягом обчислень. У найпростішому випадку така функція співпадає з лінійною формою.
4. Знайдена зважена сума, що перевищила поріг є величиною збудження нейрона
5. Нейронна мережа працює в двох режимах: в режимі навчання і в режимі розпізнавання (робочому режимі).
У режимі навчання на рецепторному шарі мережі пред'являються еталони. Ваги зв'язків на шляху проходження збудження формують таким чином, щоб на вихідному шару максимально збудився нейрон, з яким пов'язано рішення з даного еталону.
Одношарові штучні нейронні мережі
Найпростіша
мережа складається з групи нейронів,
що утворюють шар, як показано в правій
частині рис. 2. Зазначимо, що вершини-кола
служать лише для розподілу вхідних
сигналів. Вони не виконують будь-яких
обчислень і тому не будуть вважатися
шаром. Кожен елемент з множини входів
окремою
вагою з'єднаний з кожним штучним нейроном.
А кожен нейрон видає зважену суму входів
в мережу.
Рис. 2.
Зручно
вважати ваги елементами матриці
Матриця має
рядків
і
стовпців,
де
-
число входів, а
-
число нейронів. Наприклад,
- вага, що зв'язує другий вхід з третім
нейроном.
2. Нейронна мережа для розпізнавання символів
Побудова "схемотехнічної" моделі розпізнавання букв
Нехай перед нами екран, розбитий на дванадцять клітин, 4 x 3. Клітини відображають дискретність елементів зображення. При фокусуванні зображення клітина або засвічується, або ні. "Засвічування" визначає одиничне значення величини її збудження, "не засвічування" - нульове. Так, буква О визначає засвічення клітин, яка визначається на рис.3. Буква А засвічує екран, як показано на рис.4.
Для того щоб визначити букву О, необхідно всі сигнали збудження клітин екрану, засвіченні буквою О, подати на кон'юнктор, який реалізує схему 3. Одиничний сигнал на виході кон'юнктор, як показано на рис.3, сформується тоді і тільки тоді, коли засвітяться всі клітини екрана, на яке лягає зображення літери О. Наявність одиничного сигналу на виході кон'юнктора і визначить відповідь: "Це буква О".
Рис. 3. Навчання букві "О"
Рис. 4. Навчання букві "А"
Те ж необхідно зробити і для букви А.
Помітимо кожну клітину екрана її координатами. Тоді на мові математичної логіки зроблене нами можна записати у вигляді логічних висловлювань - предикатів:
Перетворимо отриману нами навчену схему в нейронну мережу (рис.5). Кожна клітина екрану - це нейрон-рецептор, який в результаті засвічення знаходить деяку величину збудження, приймаючу значення між нулем і одиницею. Рецептори, що замінили екран, утворюють вхідний, або рецепторний, шар нейромережі.
Рис. 5. Нейронна мережа для розпізнавання букв "О" і "А"
Оскільки робота мозку імітується на логічному рівні, функція активації вибирається досить простою. Так, в нашому прикладі досить вибрати наступну функцію активації для знаходження величини збудження i-го нейрона:
Спочатку знаходимо
Потім покладемо
Тут підсумовуються всі сигнали (величини збудження), які прийшли від всіх нейронів, пов'язаних з даними. Поріг може бути єдиним для всіх нейронів. Однак він підбирається так, щоб виключити збудження нейрона вихідного шару при показі не передбаченої, "чужої" літери.
Перевіримо, як побудована нейромережа реагує на чітко задані еталони букв. Під чіткістю будемо розуміти те, що величина збудження, реально відображає вірогідність, максимальна і дорівнює одиниці. Проведемо верифікацію побудованої нейромережі.
Нехай
при показі букви О
засвітилися нейрони-рецептори (1,1),
(1,2), (1,3), (2,1), (2,3), (3,1), (3,3) , (4,2). Тоді, при h
= 0 величини збудження нейронів приймуть
значення
.
Нейрон О
збудився більше, ніж нейрон А, вказуючи
тим самим, що швидше за все була показана
буква О. Аналогічно можна розрахувати
реакцію нейромережі на всі можливі
конфігурації чітко заданих еталонів
літер.