В останні роки значно зріс інтерес до застосування нейронних мереж у таких областях, як техніка, фізика, медицина й ін. Це пов'язано з тим, що метод нейромережевого моделювання дозволяє вирішувати ряд задач у тих областях, де лінійні моделі не можуть бути використані в силу ряду об'єктивних причин. Особливо це стосується даних медичних досліджень. Як відомо, організм людини представляє нелінійну систему і вирішення таких задач як класифікація, прогнозування станів, а також вибір оптимального методу лікування і профілактики захворювань неможливі із застосуванням лінійних математичних методів. Нейронні мережі здатні приймати рішення, ґрунтуючись на прихованих закономірностях, що виявляються ними, у багатомірних даних. Відмінна властивість нейромереж полягає в тому, що вони не програмуються і не використовують ніяких правил для постановки діагнозу, а навчаються робити це на прикладах. У медицині знаходить застосування й інша особливість нейромереж - їхня здатність передбачати тимчасові послідовності. До теперішнього часу розроблений ряд нейромережевих систем фільтрації електрокардіограм, що дозволяють зменшувати нелінійний і нестаціонарний шум значно краще, ніж методи, що використовувалися раніше.
Незважаючи на значні успіхи в застосуванні нейронних мереж у медицині є і ряд проблем з їх упровадженням. Це пов'язано в першу чергу з відсутністю у лікарів інформації про можливості нейронних мереж для вирішення медичних задач, а також доступних практичних посібників з їхнього застосування.
Інтелектуальні системи на основі штучних нейронних мереж дозволяють з успіхом вирішувати проблеми розпізнавання образів, виконання прогнозів, оптимізації, асоціативної пам'яті і керування. Традиційні підходи до рішення цих проблем не завжди надають необхідної гнучкість і багато застосувань виграють від використання нейромереж.
Штучні нейромережі є електронними моделями нейронної структури мозку, який, головним чином, навчається з досвіду. Природній аналог доводить, що множина проблем, які поки що непідвладні розв'язуванню наявними комп'ютерами, можуть бути ефективно вирішені блоками нейромереж.
Тривалий період еволюції додав мозку людини багато якостей, що відсутні в сучасних комп'ютерах з архітектурою фон Неймана. До них відносяться:
- розподілене представлення інформації і паралельні обчислення;
- здатність до навчання й узагальнення;
- адаптивність;
- толерантність до помилок
- низьке енергоспоживання.
Прилади, побудовані на принципах біологічних нейронів, мають перелічені характеристики, що можна вважати суттєвим здобутком у індустрії обробки даних.
Досягнення в галузі нейрофізіології надають початкове розуміння механізму природного мислення, де збереження інформації відбувається у вигляді образів, деякі з яких є складними. Процес зберігання інформації як образів, використання образів і вирішення поставленої проблеми визначають нову галузь в обробці даних, яка, не використовуючи традиційного програмування, забезпечує створення паралельних мереж та їх навчання. В лексиконі розробників та користувачів нейромереж присутні слова, дуже відмінні від традиційної обробки даних, зокрема, "вести себе", "реагувати", "самоорганізовувати", "навчати", "узагальнювати" та "забувати".
Розпізнавання образів у програмі емуляції нейронної мережі “NUMBERS”
Поставимо перед собою задачу навчити нейронну мережу розпізнавати зображення цифр. Нехай у нас є матриця 5х7 кліток. Зафарбовуючи відповідні клітини можна сформувати зображення деяких найпростіших об'єктів рис.8.7. Для реалізації цієї задачі була створена 4-х шарова нейронна мережа, топологія якої зображена на рис.8.8 (35 вхідних і 10 вихідних елементів).
Рис. 0.7 Матриця для розпізнання цифр. Рис. 0.8 Топологія мережі.
Для вивчення роботи нейронної мережі необхідно «запустити» програму numbers.exe, у якій реалізована емуляція такої нейронної мережі. Інтерфейс програми приведений на рисунку 9.
Для рішення поставленої задачі необхідно виконати наступні дії:
- у правому вікні програми вибрати цифру, що буде розпізнаватися (необхідно, щоб прапорець «Включить предсказание» був знятий);
- у лівому вікні використовуючи маніпулятор «миша», натискаючи при русі ліву клавішу необхідно намалювати цифру, що розпізнається.
Після введення цифри і натискання кнопки «Записать», у нижньому вікні програми з'явиться оцифрована інформація, що подається на вхід і вихід мережі для її навчання.
Надалі необхідно повторити дії декілька раз, тобто намалювати цифру в 2-3 варіантах для поліпшення якості розпізнавання. Наступний етап включає навчання мережі на заданій множині. Для цього включається кнопка «Научить сеть».
Рис. 0.9. Інтерфейс програми “Numbers“.
Після навчання програма виводить інформацію про помилку навчання. Якщо після припинення процесу навчання помилка залишається значної (0,2 і більш), мережа навчається заново. Після навчання мережі вона готова до розпізнавання образів, при цьому повинний бути включений прапорець «Включить предсказание». Зображуючи цифри в лівому вікні програми (при цьому в правому вікні виводиться пророкування) необхідно домогтися не менш як 90% правильного розпізнавання образів, що вводяться (цифр). Після того, як навчання мережі завершене можна перевірити якість її роботи на окремій тестовій множині.
Розглянемо методику класифікації даних на прикладі аналізу “Ірисів Фішера”.
Є дані вимірів для 150 екземплярів ірисів, у рівних частинах (по 50 штук), які належать до трьох видів (iris setosa, iris versicolor, iris virginica). Для кожного екземпляра іриса відомі 4 величини: довжина чашолистка (Sepal Length), ширина чашолистка (Sepal Width), довжина пелюстка (Petal Length), ширина пелюстка (Petal Width). Вхідний файл складається з 150 рядків (по 50 для кожного сорту). П'ята змінна – цільова, позначає клас (вид) і для різних видів приймає наступні значення: 1 – setosa, 2 – versicolor, 3 – virginica. Такий спосіб кодування пов'язаний із припущенням Фішера, що versicolor – це гібрид setosa і virginica (дані знаходяться у файлі IrisTrain.dbf, IrisTest.dbf).
Для проведення класифікації отриманих даних необхідно вирішити наступні задачі:
Побудувати нейронну мережу типу «багатошаровий персептрон», що включає в себе 1 схований шар, навчити її на навчальній множині прикладів, перевірити правильність пророкування на цій множині, перевірити правильність пророкування на тестовій множині прикладів, порівняти результати прогнозування на цих множинах. Зробити висновок.
Побудувати нейронну мережу типу «багатошаровий персептрон», що включає в себе 2 схованих шари, навчити її на навчальній множині прикладів, перевірити правильність пророкування на цій множині, перевірити правильність пророкування на тестовій множині прикладів, порівняти результати прогнозування на цих множинах. Зробити висновок.
Порівняти результати пророкувань нейромережевих моделей що включають 1 і 2 схованих шари. Зробити висновок.
Використовуючи аналіз значимості вхідних сигналів мережі, визначити значення показників значимості. На основі цього аналізу виділити найбільш значимі ознаки. Побудувати нейронну мережу типу «багатошаровий персептрон» на основі тільки цих найбільш значимих ознак, що включає в себе 2 схованих шари, навчити її на навчальній множині прикладів, перевірити правильність пророкування на цій множині, перевірити правильність пророкування на тестовій множині прикладів, порівняти результати прогнозування нейромережевих моделей, отриманих у пунктах 1, 2 і 4. Зробити висновки.
Для побудови і подальшого аналізу отримані дані випадковим образом розбиваються на дві множини:
- навчальна – множина на який провадиться побудова моделі і оцінка долі правильно класифікованих прикладів (дані знаходяться у файлі «IrisTrain.dbf» і включають 85 випадків);
- тестова – множина на який провадиться тільки тестування моделі і дається оцінка її якості на основі нових прикладів (дані знаходяться у файлі «IrisTest.dbf» і включають 85 випадків).
Алгоритм проведення досліджень включає наступні етапи:
Завантажити програму NeuroPro 0.25
Створити новий нейропроект. Для цього необхідно натиснути кнопку в меню «Створити». Після створення нейропроекта в нього можна вставляти нейронные мережі.
Підключити файл даних із навчальними прикладами до нейропроекту. Для цього необхідно натиснути кнопку «Открыть файл данных» у вікні нейропроекта і вибрати ім'я необхідного файлу даних (у даному випадку «IrisTrain.dbf»).
Для побудови нейромережвої моделі, що включає в себе 1 схований шар натиснути кнопку «Нова мережа» і вибрати поля SLength, SWidth, PLength, Petal Width у якості вхідних змінних нейромережвої моделі, а поле Flower – як вхідну змінну (рис.8.10). Далі вибрати «Число слоев нейронов» рівне 1 і деяке число нейронів у схованому шарі (як це показано на малюнку). По закінченні натиснути кнопку «Создать».
Рис. 0.10. Вікна створення нейронної мережі
Для навчання отриманої моделі вибрати пункт «Нейросеть/Обучение».
Переглянути результат навчання – пункт «Нейросеть/Тестирование» на навчальній множині даних, записати значення долі правильно і неправильно класифікованих випадків.
Для оцінки якості прогнозування отриманої моделі завантажити тестову множину даних (для цього необхідно натиснути кнопку «Відкрити файл даних» у вікні нейропроекта і вибрати ім'я необхідного файлу даних – «IrisTest.dbf»), а потім переглянути результат тестування – пункт «Нейросеть/Тестирование» на тестовій множині даних, записати значення долі правильно і неправильно класифікованих випадків.
Порівняти результати пророкування цієї нейромережвої моделі на навчальному і тестовому множинах. Зробити висновок.
Для побудови, навчання і тестування нейронної мережі типу «багатошаровий персептрон», що включає в себе 2 схованих шари виконати пункти 3 – 8 (при побудові моделі, у пункті 4 вибрати «Число шарів нейронів» рівне 2).
Порівняти результати прогнозування нейромережвої моделі, що включає 1 і 2 схованих шари між собою на навчальному і тестовому множинах. Зробити висновок.
Для спрощення нейронної мережі відібрати найбільш значимі вхідні змінні, для чого необхідно підключити файл даних із навчальними прикладами до нейропроекту (див. пункт 3) і вибрати пункт «Нейросеть/начимость» вхідних сигналів мережі.
Вибрати найбільш значимі змінні за результатами визначення значимості і побудувати нейронну мережу типу «багатошаровий персептрон», що включає в себе 2 схованих шари, використовуючи в якості вхідних змінних тільки найбільш значимі. Для побудови, навчання і тестування нейронної мережі типу «багатошаровий персептрон», що включає в себе 2 схованих шари виконати пункти 3 – 8.
Порівняти результати прогнозування нейромережвої моделі, що включає 1 і 2 схованих шари, побудованої на усіх вхідних змінних із результатами прогнозування по найбільш значимим змінним. Зробити висновок.
Питання для самостійної роботи
Дайте визначення основним поняттям теорії нейронних мереж: нейрон, нейронна мережа.
Дайте визначення поняттю: функція активація нейрона.
Дайте визначення поняттю: нейронна мережа прямого поширення.
Дайте характеристику моделі багатошаровий персептрон.
Дайте характеристику узагальнено-регресійної нейронної мережі.
Дайте характеристику ймовірносної нейронної мережі.
Дайте характеристику нейронної мережі Кохонена.
Перелічіть основні етапи побудови моделей нейронних мереж.
Зобразіть архітектуру нейронної мережі в задачі про «іриси Фішера».
Дайте визначення поняттю: навчання нейронної мережі з «учителем» і «без учителя».
Дайте визначення поняттю: перенавчання нейронної мережі.
Дайте визначення поняттям: множинний коефіцієнт кореляції моделі, частка нез’ясованої дисперсії.
Як перевіряється адекватність нейромережвої моделі поставленій задачі при рішенні задач класифікації, задач регресії?
Перелічіть моделі, що можуть бути побудовані за допомогою нейронних мереж.
Приведіть приклади практичного використання нейромережевих моделей.
Рекомендована література
1. www.emsl.pnl.gov:2080/docs/cie/neural/projects/medicine.html Neural Network Projects in Medicine
2. www.dsclab/ece.ntua.gr/~kblekas/medical2.html Artificial Neural Networks in Medicine
3. www.dse.doc.ic.ac.uk/~nd/.../journal/vol2/ds12/article1.html Neural Networks in Medicine