Алгоритми нейрокібернетики

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Штучний інтелект з алгоритмами нейрокібернетики

Вступ

Я зайнявся розробкою програм комплексу "Штучний інтелект" тому що
ІІ (Штучний інтелект) - це одна із найбільш перспективних і швидко розвиваються галузей науки. І в результаті роботи був створений програмний комплекс, у складі якого:

Компонент нейронної мережі

Програма розпізнавання графічних образів на основі компонента НС (Нейронна мережа), здатна розпізнавати графічні файли:

Зразки розписів

Зразки іконок програм

Зразки цифр шрифту AWARD BIOS

Компонент експертної системи

Демонстраційна програма до компоненту ЕС (Експертної системи)

Детальна довідкова система

Проведено ряд експериментів з нейронної мережею, дані систематизовані.

Т.О. програмний комплекс містить можливості побудови програм на основі компонентів НС і ЕС, однак щоб не розкидатися я вважав за краще зупинитися на нейронній мережі в силу її наочності, достатньої складності і реальної можливості застосування. Я навмисно приділив так мало уваги експертним системам, на мою думку НС є набагато більш перспективним напрямом в області програмування ШІ.

Область застосування нейронних мереж

У літературі зустрічається значне число ознак, якими повинна володіти завдання, щоб застосування НС було виправдано і НС могла б її вирішити:

відсутній алгоритм або не відомі принципи вирішення завдань, але накопичено достатню кількість прикладів;

проблема характеризується великими обсягами вхідної інформації;

дані неповні або надлишкові, зашумлені, частково суперечливі.

Таким чином, НС добре підходять для розпізнавання образів і рішення задач класифікації, оптимізації і прогнозування. Нижче наведено перелік можливих промислових застосувань нейронних мереж, на базі яких або вже створені комерційні продукти, або реалізовані демонстраційні прототипи.

Банки та страхові компанії:

автоматичне зчитування чеків і фінансових документів;

перевірка достовірності підписів;

прогнозування змін економічних показників.

Адміністративне обслуговування:

автоматичне зчитування документів;

автоматичне розпізнавання штрихових кодів.

Нафтова та хімічна промисловість:

аналіз геологічної інформації;

ідентифікація несправностей обладнання;

розвідка покладів мінералів за даними аерофотозйомок;

аналіз складів домішок;

управління процесами.

Військова промисловість і аеронавтика:

обробка звукових сигналів (поділ, ідентифікація, локалізація, усунення шуму, інтерпретація);

обробка радарних сигналів (розпізнавання цілей, ідентифікація і локалізація джерел);

обробка інфрачервоних сигналів (локалізація);

автоматичне пілотування.

Промислове виробництво:

управління маніпуляторами;

управління процесами;

виявлення несправностей;

адаптивна робототехніка;

Біомедична промисловість:

аналіз рентгенограм;

виявлення відхилень в ЕКГ.

Крім того, слід додати, що в останні кілька років вся інформація про нейропрограммах зникла із засобів масової інформації - це говорить про інтереси військових у цій області і отже перспективність цих проектів.

Нейронні мережі - основні поняття та визначення

В основу штучних нейронних мереж покладено такі риси живих нейронних мереж, що дозволяють їм добре справлятися з нерегулярними завданнями:

простий обробляє елемент - нейрон;

дуже велике число нейронів бере участь в обробці інформації;

один нейрон зв'язаний з великим числом інших нейронів (глобальні зв'язку);

змінюються за вагою зв'язку між нейронами;

масована паралельність обробки інформації.

Прототипом для створення нейрона послужив біологічний нейрон головного мозку. Поведінка штучної нейронної мережі залежить як від значення вагових параметрів, так і від функції збудження нейронів. Відомі три основних види функції збудження: порогова, лінійна і сигмоїдальна.

Нейронна мережа являє собою сукупність великої кількості порівняно простих елементів - нейронів, топологія з'єднань яких залежить від типу мережі. Щоб створити нейронну мережу для вирішення якої-небудь конкретного завдання, ми повинні вибрати, яким чином слід з'єднувати нейрони один з одним, і відповідним чином підібрати значення вагових параметрів на цих зв'язках. Чи може впливати один елемент на інший, залежить від встановлених з'єднань. Вага з'єднання визначає силу впливу.

Моделі нейронних мереж

Модель Маккалоха

Нейрони мають стану 0, 1 і порогову логіку переходу зі стану в стан. Граничний вид функції не надає нейронної мережі достатню гнучкість при навчанні і налаштуванні на задану задачу.

Модель Розенблата

Розенблат ввів у модель Маккаллок і Піттса здатність зв'язків до модифікації, що зробило її навчатиметься. Ця модель була названа персептроном. Спочатку персептрон представляв собою одношарову структуру з жорсткою пороговою функцією процесорного елемента і бінарними або багатозначними входами. Також слабко формалізований метод навчання персептрона.

Модель Хопфілда

Привабливість підходу Хопфілда полягає в тому, що нейронна мережа для конкретної задачі може бути запрограмована без навчальних ітерацій. Ваги зв'язків обчислюються на підставі виду функції енергії, сконструйованої для цього завдання.

Модель мережі зі зворотним поширенням

Способом зворотного поширення (back propogation) називається спосіб навчання багатошарових НС. У таких НС зв'язку між собою мають тільки сусідні шари, при цьому кожен нейрон попереднього шару пов'язаний з усіма нейронами наступного шару (мал. на стор I). Нейрони зазвичай мають сигмоїдальних функцію збудження. Перший шар нейронів називається вхідним і містить число нейронів відповідне розпізнавати образи. Останній шар нейронів називається вихідним і містить стільки нейронів, скільки класів образів розпізнається. Між вхідним і вихідним верствами розташовується один або більше прихованих (тіньових) шарів. Визначення числа прихованих шарів і числа нейронів у кожному шарі для конкретної задачі є неформальною завданням.

Принцип навчання такий нейронної мережі базується на обчисленні відхилень значень сигналів на вихідних процесорних елементах від еталонних і зворотньому "прогоні" цих відхилень до породили їх елементів з метою корекції помилки. Ще в 1974 році
Поль Дж. Вербос винайшов значно більш ефективну процедуру для обчислення величини, званої похідної помилки за вагою, коли працював над своєю докторською дисертацією в Гарвардському університеті. Процедура, відома тепер як алгоритм зворотного поширення, стала одним з найбільш важливих інструментів у навчанні нейронних мереж. Однак до цього алгоритму властиві і недоліки, головний з яких - відсутність скільки-небудь прийнятних оцінок часу навчання. Розуміння, що мережа в кінці кінців навчиться, мало втішає, якщо на це можуть піти роки. Тим не менш, алгоритм зворотного поширення має найширше застосування. Наприклад, успіх фірми NEC в розпізнаванні букв, був досягнутий саме завдяки алгоритму зворотного поширення. Мій приклад і є мережею з зворотним розповсюдженням. Цей метод є досить складним і дуже наочним, тому я зупинюся на ньому докладніше.

Реалізація нейромережі

Моя нейромережа є програмною реалізацією, її параметри залежать від конкретної розв'язуваної задачі і можливостей комп'ютера. Для моєї демонстраційної завдання виявилося цілком достатньо двошаровою (без прихованих шарів) мережі, однак цілком припустимо ускладнювати мережу, підганяючи під поточну роботу.

Програма розпізнавання підписів.

Для своєї мережі я використовував алгоритм зворотного поширення, і докладніше розповім, як мережа навчається і розпізнає приклади, на основі демонстраційної програми розпізнавання 10 сканованих розписів.

Програма складається з двох частин:

Алгоритм підготовки цифрового образу.

Алгоритми навчання і розпізнавання цього образу.

Алгоритм підготовки цифрового образу.

На малюнку (мал. на стор II) представлена ​​матриця з розписом формату 125х85. Зразками послужили розпису деяких людей, згодом відскановані і приведені до однакового розміру. Перетворення матриці відбувається наступним чином: Припустимо у вхідному шарі нейромережі 210 нейрона. Тоді необхідно перетворити двовимірну матрицю в одновимірну з 210 елементами, яку ми будемо називати цифровим чином (Можна навпаки підігнати під приклад число нейронів - залежить від смаку і від можливостей компілятора). Я вважаю суму зафарбованих точок по стовпцях, множать на визначений коефіцієнт і записую число, що вийшло в потрібний елемент масиву, потім те ж саме проробляю з рядками, і записую в інші елементи масиву. Отримую одновимірний масив розміром +, тобто в даному випадку - 210. Програма розпізнає приклад, записаний у файл SAMPLE.BMP, який перетворюється за таким же алгоритмом. Цілком припустимо створити якийсь свій алгоритм перетворення.

Так само є демонстрація розпізнавання іконок до різних програм - нейромережа пізнає приклад і видає ім'я програми. Перетворення матриці здійснюється за таким же алгоритмом, що і для чисел, однак у вхідному шарі нейромережі використовується вже 64 нейрона (формат іконки - 32х32).

Програма розпізнавання 10 образів цифр може послужити основою програми розпізнавання текстів (щось типу FineReader).

Алгоритми навчання і розпізнавання цього образу.

Ці цифрові образи передаються компоненту який навчається на них і стає здатним класифікувати подібні образи. Навчання, згідно з алгоритмом зворотного поширення проходить наступним чином: мережа робить спробу розпізнати даний образ, але якщо вона ще не достатньо навчена, то результат не буде відповідати істинному. Програма вловлює ці невідповідності намагається виправити їх, проганяючи еталонний зразок. Коли подібні невідповідності стають нижчими якого-небудь значення можна сказати, що мережа навчилася.

Компонент нейронної мережі

Компонент нейронної мережі містить основні процедури роботи з нейронної мережею, наприклад процедура розпізнавання, навчання мережі: прямого і зворотного ходу. Всі константи відкриті для зміни, параметри підібрані для різних видів застосувань. Компонент оформлений з використанням об'єктно-орієнтованої мови програмування Object Pascal. Компонент може використовуватися для Delphi версій 2,3,4 і C + + Builder

Оригінальний текст знаходиться в каталозі COMPONEN NN nnet.pas.

Використані методи:

Навчання мережі

Вибір оптимального варіанту (розпізнавання, прогнозування)

Збереження результатів навчання

Завантаження навченої мережі

Ініціалізація випадкових значень характеристик мережі.

Властивості нейромережі

Можливість зміни числа нейронів

Можливість зміни числа прихованих шарів

Можливість збереження навченої мережі в файл

Можливість завантаження без навчання

Змінність лінійних коефіцієнтів перетворення

Довідкова система

Виконана в HTML форматі, містить опис двох видів ІВ:

Нейронна мережа

Експертна система

У розділі нейронної мережі наведено опис принципів функціонування НС, основні алгоритми реалізації, історична довідка. Дозволяє запускати демонстраційні програми. Нижче наведені основні теми довідки.

Що таке ШІ. Області застосування. Основні види, принципи

Все про експертних системах

Все про нейронних мережах

Принцип роботи нейронних мереж

Концепції експертних систем

Довідкова система оформлена інтерактивно, її можна викликати практично з будь-якої програми, отримати вичерпну відповідь на будь-яке питання.

Програма оболонка

Всі програми комплекси "Штучний інтелект" об'єднані єдиною програмою оболонкою - з під неї можна викликати всі демонстраційні програми, довідку, переглянути вихідні тексти модулів. Для цього необхідно, щоб на комп'ютері був встановлений Browser HTM файлів і Delphi бажано версії 3. Я використовую програму роботи з реєстром Windows, сканую програми, зіставлені з розширеннями HTM, PAS, DPR, тому для повної та якісної роботи необхідно, щоб на комп'ютері, в каталозі, доступному за змінної оточення PATH перебувала програма Windows - start.exe.

Програма так само використовує асинхронне відтворення звуку WAW.

Практичне застосування програмного комплексу.

Перспективи використання.

Практично, дану програму можна використовувати за призначенням - розпізнавання образів, прогнозування і т.д., але я бачу ще кілька можливостей:

Розробка комерційних продуктів на основі моїх компонентів

Вивчення властивостей нейропрограмм, проведення експериментів

Навчання основам штучного інтелекту

Крім того вже дану програму можна з успіхом використовувати в реальних умовах.

Алгоритми нейрокібернетики

Рис. 1. Модель мережі на основі зворотного поширення.

На малюнку зображена проста модель нейронної мережі. Дана мережа містить 5 нейронів у вхідному шарі і 3 у вихідному. Тобто з її допомогою можна за 5 ознакою визначити один з трьох класів.

Алгоритми нейрокібернетики

Рис. 2. Формат підпису. Масштаб 28:1.

Приклад підпису, яку розпізнає демонстраційна програма нейронної мережі. Збільшено в 28 разів. Приклад містить 10625 точок і є дуже великим. Мережа обробляє подібні приклади на межі, із шансом успішного розпізнавання 60-70%.

Алгоритми нейрокібернетики

Рис. 3. Зовнішній вигляд нейрона.

Даний нейрон містить 11 входів, тобто може бути нейроном шару, якому передував шар з 11 нейронів. Кожен з входів має свій ваговий коефіцієнт, сам нейрон має певний поріг спрацьовування, тому на вихід подається винятковий, характерний лише для даного нейрони сигнал.

Алгоритми нейрокібернетики

Рис. 4. Залежність часу навчання НС від розмірів зразка.



Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
28.6кб. | скачати


Схожі роботи:
Алгоритми Маркова
Алгоритми з многочленами
Алгоритми в програмуванні
Допоміжні алгоритми
Генетичні алгоритми
Алгоритми виділення контурів
Алгоритми і організація даних
Алгоритми навколо нас
Алгоритми та протоколи маршрутизації
© Усі права захищені
написати до нас