ацииUserIdIntegerИдентификатор пользователяAccessDateDateДата-час авторизацииAccurancyFloatТочность, з якої користувач був розпізнаний нейронною мережею
Таблиця 2.10 - Структура таблиці TextFragments
ПолеТипОписаниеIdIntegerИдентификатор авторізацііTextTextТекст
2.4 Структура нейронної мережі та формат даних
біометричний ідентифікація нейронний мережу
Для рішення завдання розпізнавання клавіатурного почерку засобами бібліотеки класів BPNeuralNetwork була застосована штучна нейронна мережа типу персептрон, навчання якої здійснювалося на основі алгоритму зворотного поширення помилки. Була обрана наступна структура мережі:
- п'ятдесят нейронів у вхідному шарі;
- десять нейронів у внутрішньому шарі;
- по одному нейрону для кожного користувача у вихідному шарі.
Навчальні дані формуються наступним чином: за кожним входом закріплюється одне з буквосполучень, які знаходяться в таблиці KeyCombinations бази даних, тобто контрольоване додатком. У процесі прямого поширення сигналу в нейронної мережі на її входи подаються тимчасові значення, отримані від користувачів для відповідного буквосполучення, нормалізовані щодо відрізка [- 1; 1]. Кожен вихідний нейрон в процесі навчання вчиться приймати значення 0 або 1 за наступним правилом:
, (2.1)
де i - номер користувача, якому належить вхідний вектор значень.
2.5 Опис ключових моментів реалізації програми
Розробка додатка велася із застосуванням можливостей бібліотеки Qt версії 4.8.0. Вона поділена на велику кількість модулів, з яких були використані наступні:
· QtCore - класи ядра бібліотеки, використовувані іншими модулями;
· QtGui - компоненти графічного інтерфейсу;
· QtSql - набір класів для роботи з базами даних з використанням мови структурованих запитів SQL.
Модуль QtCore містить базову функціональність, основні класи бібліотеки, використовувані у всіх інших модулях. Модуль QtGui застосований для розробки графічного інтерфейсу користувача.
Функціональність модуля QtSql дозволила уникнути залежності від особливостей реалізації конкретного інтерфейсу доступу до бази даних. Розроблене додаток працює з базою даних SQLite, проте, все що потрібно для переходу до використання іншої бази даних - це заміна драйвера доступу до бази даних, при цьому практично ніяких змін коду не буде потрібно.
Крім того, застосування класів модуля QtSql дозволило спростити рішення деяких інших завдань.
2.5.1 Розробка графічного інтерфейсу
З метою спрощення розробки користувальницького інтерфейсу використовувалася крос-платформна середу Qt Designer, яка входить до складу дистрибутива Qt framework. Вона дозволяє розробляти графічні інтерфейси користувача за допомогою ряду інструментів. Існує панель інструментів «Панель віджетів», в якій доступні для використання елементи інтерфейсу - віджети, такі як, наприклад, «випадає список» ComboBox, «поле введення» LineEdit, «кнопка» PushButton і багато інших. Кожен ві...