Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Штучні нейронні мережі

Штучні нейронні мережі




Дата конвертації25.03.2017
Розмір83.3 Kb.

Штучні нейронні мережі


Біологічні нейронні мережі створені у тривимірному просторі з різних типів нейронів, що з’єднані між собою нескінченною кількістю зв’язків. Різноманітні групування нейронів в мозку забезпечує обробку інформації динамічним, інтерактивним та самоорганізуючим шляхом. Звісно, що для штучних аналогів мозку не можливо відтворити таку різноманітність, через фізичні обмеження.

Архітектура з'єднань штучних нейронів


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

Штучна нейронна мережа (ШНМ, англ. artificial neural network, ANN, рос. искусственная нейронная сеть, ИНС) - це математична модель, а також її програмна та апаратна реалізація, побудовані за принципом функціювання біологічних нейронних мереж - мереж нервових клітин живого організму.

Трив́имірний о́пис об'є́кта (англ. 3D) - представлення об'єкта в трьох просторових вимірах. Як правило, ці виміри представлені в вигляді координат X, Y, та Z. Можливо мати дані з ідентичними координатами x та y при відмінній координаті Z.

Обробка інформації́ - вся сукупність операцій (збирання, введення, записування, перетворення, зчитування, зберігання, знищення, реєстрація), що здійснюються за допомогою технічних і програмних засобів, включаючи обмін по каналах передачі даних [6.

В процесі функціонування мережі відбувається перетворення вхідного вектора сигналів у вихідний.

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

Комуніка́ція (від лат. communicatio - єдність, передача, з'єднання, повідомлення, пов'язаного з дієсловом лат. communico - роблю спільним, повідомляю, з'єдную, похідним від лат. communis - спільний) - це процес обміну інформацією (фактами, ідеями, поглядами, емоціями тощо) між двома або більше особами, спілкування за допомогою вербальних і невербальних засобів із метою передавання та одержання інформації.

При описі нейромереж використовують кілька усталених термінів, які в різних джерелах можуть мати різне трактування, зокрема:


  • Структура нейромережі - спосіб зв'язків нейронів у нейромережі;

  • Архітектура нейромережі - структура нейромережі та типи нейронів;

  • Парадигма нейромережі - спосіб навчання та використання; іноді вміщує і поняття архітектури.

На основі однієї архітектури можуть бути реалізовані різні парадигми нейромережі і навпаки.

Серед відомих архітектурних рішень виділяють групу слабозв'язаних нейронних мереж, у випадку, коли кожний нейрон мережі зв'язаний лише із сусідніми. Якщо входи кожного нейрона зв'язані з виходами усіх решта нейронів, тоді мова йде про повнозв'язані нейромережі.









Рис. 1. Слабозв'язані нейромережі

Рис. 2. Повнозв'язана мережа

Зрозуміло, що такий поділ носить дещо теоретичний характер. Аналізуючи найбільш відомі на даний час розробки нейромереж, слід зазначити, що самим поширеним варіантом архітектури є багатошарові мережі. Нейрони в даному випадку об'єднуються у з'єднані між собою прошарки з єдиним вхідним вектором сигналів.

Зовнішній вхідний вектор подається на вхідний прошарок нейронної мережі (рецептори). Виходами нейронної мережі є вихідні сигнали останнього прошарку (ефектори). Окрім вхідного та вихідного прошарків, нейромережа має один або декілька прихованих прошарків нейронів, які не мають контактів із зовнішнім середовищем.



Рис. 3. Багатошаровий тип з'єднання нейронів

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

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

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

Рис. 4. Мережа з прямими і бічними зв’язками



Рис. 5. Мережа зі зворотнім зв'язком

При зворотному зв'язку, вихід нейронів прошарку скеровується до нейронів попереднього прошарку (рис. 5).

Шлях, яким нейрони з'єднуються між собою має значний вплив на роботу мережі. Більшість програмних моделей дозволяють користувачу додавати, вилучати та керувати з'єднаннями як завгодно. Корегуючи параметри, зв'язки можна робити як збуджуючими так і гальмуючими.

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


  • Мережі прямого поширення (з односкерованими послідовними зв'язками).

    Практика (грец. πράξις «діяльність») - доцільна і цілеспрямована діяльність, яку суб'єкт здійснює для досягнення певної мети. Практика має суспільно-історичний характер і залежить від рівня розвитку суспільства, його структури.



  • Мережі зворотного поширення (з рекурентними зворотними зв'язками).

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



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

Нейронні мережі прямого поширення

Рекурентні нейронні мережі

Перцептрони
Мережа Back Propagation
Мережа зустрічного поширення
Карта Кохонена

Мережа Хопфілда
Мережа адаптивної резонансної теорії
Двоскерована асоціативна пам'ять

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

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


Навчання нейронних мереж


Після визначення архітектури нейронної мережі її потрібно «навчити», тобто підібрати такі значення її ваг, щоб вона працювала належним чином. Ненавчена нейронна мережа подібна до дитини - її можна навчити чому завгодно.

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

Дитина запам'ятовує приклад разом з вірною відповіддю, тобто в її пам'яті відбуваються деякі зміни в потрібному напрямку. Процес пред'явлення букв повторюється знову і знову доти, коли всі літери будуть твердо запам'ятали. Такий процес називають "навчання з учителем".

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

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

Процес навчання здійснюється на навчальній вибірці (множині). Навчальна вибірка містить набір даних про предметну область (об’єкт, явище, процес), що поділяється на вхідні значення і відповідні їм вихідні значення набору даних.

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

Наприклад, після пред'явлення зображення літери "А" на вхід нейронної мережі, вона видає деяку відповідь, не обов'язково вірну.

В навчальній множині присутня вірна (бажана) відповідь, і сенсом навчання є те, щоб на виході нейронної мережі з міткою "А" рівень сигналу був максимальний. В ході навчання нейронна мережа знаходить певні залежності вихідних полів від вхідних.

Зазвичай, в якості бажаного виходу в задачі класифікації беруть набір (1, 0, 0, ...

Класифіка́ція (фр. , англ. classification походить від лат. classis - клас і facio - роблю) - система розподілення об'єктів (процесів, явищ) за класами (групами тощо) відповідно до визначених ознак. Інколи вживають термін категоризація у значенні «розподілення об'єктів на категорії».

), де 1 стоїть на виході з міткою "А", а 0 - на всіх інших виходах. Обчислюючи різницю між бажаною і реальною відповідями мережі, утворюється функція похибки. Функція похибки - це цільова функція, дозволяє оцінити якість роботи нейронної мережі і потребує мінімізації в процесі керованого навчання нейронної мережі.

Цільова функція - функція, що зв'язує мету (змінну, що оптимізується) з керованими змінними в задачі оптимізації.

Алгоритмом навчання є набір формул, який дозволяє за функцією похибки обчислити необхідні поправки для вагових коефіцієнтів зв’язків нейронної мережі.

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

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

Які вхідні поля (ознаки) необхідно використовувати? Спочатку вибір здійснюється евристичний, далі кількість входів може бути змінено. Складність може викликати питання про кількість прикладів в наборі даних.

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

Кількість необхідних прикладів залежить від складності розв'язуваної задачі. При збільшенні кількості ознак кількість прикладів зростає нелінійно, ця проблема носить назву "прокляття розмірності". За недостатньої кількості даних рекомендується використовувати лінійну модель.

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

Від якості навчання нейронної мережі залежить її здатність вирішувати поставлені перед нею завдання.

Перенавчання нейронної мережі


При навчанні нейронних мереж часто виникає проблема перенавчання (overfitting). Перенавчання, або надмірно близька підгонка - зайва точна відповідність нейронної мережі до конкретного набору навчальних прикладів, при якому мережу втрачає здатність до узагальнення.

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

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

Один з варіантів боротьби з перенавчанням мережі - поділ навчальної вибірки на дві множини (навчальну і тестову).

На навчальній множині відбувається навчання нейронної мережі. На тестовій множині здійснюється перевірка побудованої моделі. Ці множини не повинні перетинатися.

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

Розбиття множини - це подання її у вигляді об'єднання довільної кількості непорожніх підмножин, які попарно не перетинаються.

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


Застосування нейронної мережі


Після того, як нейронна мережа навчена, її можна застосовувати для вирішення корисних задач.



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

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



  • Архітектура зєднань штучних нейронів
  • Навчання нейронних мереж
  • Перенавчання нейронної мережі
  • Застосування нейронної мережі