- Особливості процесу навчання мережі Хопфілда [ правити | правити код ]
- Робота мережі в режимі фільтрації (відновлення пошкоджених образів) [ правити | правити код ]
- Синхронний режим роботи мережі [ правити | правити код ]
- Асинхронний режим роботи мережі [ правити | правити код ]
- Приклад відновлення пошкодженого зображення [ правити | правити код ]
- Рішення завдання про комівояжера [ правити | правити код ]
open wikipedia design.
Нейронна мережа Хопфілда ( англ. Hopfield network) - полносвязная нейронна мережа із симетричною матрицею зв'язків. В процесі роботи динаміка таких мереж сходиться (конвергує) до одного з положень рівноваги. Ці положення рівноваги визначаються заздалегідь в процесі навчання, вони є локальними мінімумами функціоналу, званого енергією мережі (в найпростішому випадку - локальними мінімумами негативно певної квадратичної форми на n-вимірному кубі). Така мережа може бути використана як автоасоціативна пам'ять , Як фільтр, а також для вирішення деяких завдань оптимізації . На відміну від багатьох нейронних мереж, що працюють до отримання відповіді через певну кількість тактів, мережі Хопфілда працюють до досягнення рівноваги, коли наступний стан мережі в точності дорівнює попередньому: початковий стан є вхідним чином, а при рівновазі отримують вихідний образ [1] .
Її варіацією є Нейронна мережа Хеммінга .
Нейронна мережа Хопфілда влаштована так, що її відгук на успішної реєстрації m {\ displaystyle m} еталонних «образів» складають самі ці образи, а якщо образ трохи спотворити і подати на вхід, він буде відновлений і в вигляді відгуку буде отримано оригінальний образ. Таким чином, мережа Хопфілда здійснює корекцію помилок і перешкод.
Мережа Хопфілда одношарова і складається з N {\ displaystyle N} штучних нейронів . Кожен нейрон системи може приймати на вході і на виході одне з двох станів (що аналогічно виходу нейрона з пороговою функцією активації):
y i = {1, - 1 {\ displaystyle y_ {i} = \ left \ {{\ begin {matrix} 1, \\ - 1 \ end {matrix}} \ right.}
Через їх біполярної природи нейронні мережі Хопфілда іноді називають спинами .
Кожен нейрон пов'язаний з усіма іншими нейронами. Взаємодія нейронів мережі описується виразом:
E = 1 2 Σ i, j = 1 N wijxixj {\ displaystyle E = {\ frac {1} {2}} \ sum _ {i, j = 1} ^ {N} w_ {ij} x_ {i} x_ {j}}
де w i j {\ displaystyle w_ {ij}} - елемент матриці взаємодій W {\ displaystyle W}
, Яка складається з вагових коефіцієнтів зв'язків між нейронами. В процесі навчання формується вихідна матриця W {\ displaystyle W}
, Яка запам'ятовує m {\ displaystyle m}
еталонних «образів» - N -мірних бінарних векторів: S m = (sm 1, sm 2,..., sm N) {\ displaystyle S_ {m} = (s_ {m1}, s_ {m2}, ... , s_ {mN})}
, Ці образи під час експлуатації мережі будуть висловлювати відгук системи на вхідні сигнали, або інакше - остаточні значення виходів y i {\ displaystyle y_ {i}}
після серії ітерацій.
У мережі Хопфілда матриця зв'язків є симетричною (w i j = w j i {\ displaystyle w_ {ij} = w_ {ji}} ), А діагональні елементи матриці покладаються рівними нулю (w i i = 0 {\ displaystyle w_ {ii} = 0}
), Що виключає ефект впливу нейрона на самого себе і є необхідним для мережі Хопфілда, але не достатньою умовою стійкості в процесі роботи мережі. Достатнім є асинхронний режим роботи мережі. Подібні властивості визначають тісний зв'язок з реальними фізичними речовинами, званими спінові стеклами .
Матриця взаємодій зберігається на самих нейронах у вигляді терезів при зв'язках нейронів з іншими нейронами.
Так наприклад, якщо вхідний сигнал визначається 10 параметрами, то нейронна мережа Хопфілда формується з одного рівня з 10 нейронами. Кожен нейрон зв'язується з усіма іншими 9-ю нейронами, таким чином в мережі утворюється 90 (10 x 9) зв'язків. Для кожної зв'язку визначається ваговий коефіцієнт w i j {\ displaystyle w_ {ij}} . Всі ваги зв'язків і утворюють матрицю взаємодій, яка заповнюється в процесі навчання.
Навчання мережі полягає в тому, що знаходяться ваги матриці взаємодій так, щоб запам'ятати m {\ displaystyle m} векторів (еталонних образів, що становлять "пам'ять" системи).
Обчислення коефіцієнтів засноване на наступному правилі: для всіх запам'ятали образів X i {\ displaystyle X_ {i}} матриця зв'язку повинна задовольняти рівнянню
X i = W X i {\ displaystyle X_ {i} = WX_ {i}}
оскільки саме за цієї умови стану мережі X i {\ displaystyle X_ {i}} будуть стійкі - потрапивши в такий стан, мережа в ньому і залишиться.
Запам'ятовуються вектори повинні мати бінарний вигляд. Розрахунок вагових коефіцієнтів проводиться за такою формулою:
wij = 1 N Σ d = 1 .. m X id X jd {\ displaystyle w_ {ij} = {\ frac {1} {N}} \ sum _ {d = 1..m} X_ {id} X_ { jd}}
де N {\ displaystyle N} - розмірність векторів, m {\ displaystyle m}
- число запам'ятовуються вихідних векторів, d {\ displaystyle d}
- номер вихідного вектора, X i j {\ displaystyle X_ {ij}}
- i-я компонента запам'ятовується вихідного j-го вектора.
Цей вислів може стати більш ясним, якщо зауважити, що вагова матриця W {\ displaystyle W} може бути знайдена обчисленням зовнішнього твори кожного матеріалу, що запам'ятовується вектора з самим собою і підсумовуванням матриць, отриманих таким чином. Це може бути записано у вигляді
W = 1 N Σ i X i X i T {\ displaystyle W = {\ frac {1} {N}} \ sum _ {i} X_ {i} X_ {i} ^ {T}}
де X i {\ displaystyle X_ {i}} - i-й запам'ятовується вектор-стовпець.
Розрахунок цих вагових коефіцієнтів і називається навчанням мережі, яке проводиться тільки за одну епоху.
Особливості процесу навчання мережі Хопфілда [ правити | правити код ]
Алгоритм навчання мережі Хопфілда істотно відрізняється від таких класичних алгоритмів навчання перцептронів , як метод корекції помилки або метод зворотного поширення помилки . Відмінність полягає в тому, що замість послідовного наближення до потрібного стану з обчисленням помилок, все коефіцієнти матриці розраховуються за однією формулою, за один цикл, після чого мережа відразу готова до роботи.
Деякі автори відносять мережу Хопфілда до навчання без учителя . Але це невірно, тому що навчання без вчителя передбачає відсутність інформації про те, до яких класів потрібно відносити стимули. Для мережі Хопфілда без цієї інформації не можна налаштувати вагові коефіцієнти, тому тут можна говорити лише про те, що таку мережу можна віднести до класу оптимізують мереж (фільтрів). Відмінною особливістю фільтрів є те, що матриця вагових коефіцієнтів налаштовується детермінованим алгоритмом раз і назавжди, і потім вагові коефіцієнти більше не змінюються. Це може бути зручно для фізичного втілення такого пристрою, так як на схемотехническом рівні реалізувати пристрій зі змінними ваговими коефіцієнтами на порядок складніше. Прикладом фільтра без зворотних зв'язків може служити алгоритм CC4 (Cornel classification), автором якого є S.Kak.
У мережі Хопфілда є зворотні зв'язки і тому потрібно вирішувати проблему стійкості. Ваги між нейронами в мережі Хопфілда можуть розглядатися у вигляді матриці взаємодій W {\ displaystyle W} . В роботі Cohen, Grossberg [2] показано, що мережа із зворотними зв'язками є стійкою, якщо її матриця симетрична і має нулі на головній діагоналі. Є багато стійких систем іншого типу, наприклад, все мережі прямого поширення, а також сучасні рекурентні мережі Джордана і Елмана, для яких не обов'язково виконувати умову на симетрію. Але це відбувається внаслідок того, що на зворотні зв'язки накладені інші обмеження. У разі мережі Хопфілда умова симетричності є необхідним, але не достатньою, в тому сенсі, що на досягнення стійкого стану впливає ще й режим роботи мережі. Нижче буде показано, що тільки асинхронний режим роботи мережі гарантує досягнення стійкого стану мережі, в синхронному випадку можливо нескінченне перемикання між двома різними станами (така ситуація називається динамічним аттрактором , В той час як стійкий стан прийнято називати статичним аттрактором).
Як тільки ваги задані, навчена мережа стає здатною "розпізнавати" вхідні сигнали - тобто, визначати, до якого з запам'ятали зразків вони відносяться.
Вхідний вектор проходить кілька ітерацій до досягнення збіжності (конвергенції). При цьому повинні розпізнаватися частково спотворені або неповні зразки. На вхід мережі спочатку надають значення вихідного вектора (тому позначення на схемі мережі вхідних синапсів в явному вигляді носить чисто умовний характер). Потім мережа послідовно змінює свої статки згідно з формулою:
X i + 1 = F (W X i) {\ displaystyle X_ {i + 1} = F (WX_ {i})}
де F {\ displaystyle F} - активаційна функція, X i {\ displaystyle X_ {i}}
і X i + 1 {\ displaystyle X_ {i + 1}}
- поточний і наступний стану мережі, до тих пір, поки стану X i {\ displaystyle X_ {i}}
і X i + 1 {\ displaystyle X_ {i + 1}}
не співпадуть (або, в разі синхронного режиму роботи, не співпадуть стану X i - 1 {\ displaystyle X_ {i-1}}
з X i + 1 {\ displaystyle X_ {i + 1}}
і одночасно X i - 2 {\ displaystyle X_ {i-2}}
з X i {\ displaystyle X_ {i}}
). Саме цей процес називається конвергенцією мережі. Отримане стійкий стан X i {\ displaystyle X_ {i}}
(Статичний аттрактор), або, можливо, в синхронному випадку пара {X i, X i + 1 {\ displaystyle X_ {i}, X_ {i + 1}}
} (Динамічний аттрактор), є відповіддю мережі на даний вхідний образ.
На виході мережі може виходити також інверсний вектор (в якому значення -1 і 1 в запам'ятали зразках перевернуті). У разі, якщо система не знайшла рішення, на виході системи можуть виходити також тривіальні вектора, що складаються тільки з 1 або тільки з -1.
Робота мережі в режимі фільтрації (відновлення пошкоджених образів) [ правити | правити код ]
Так як мережі з зворотними зв'язками мають шляхи, що передають сигнали від виходів до входів, то відгук таких мереж є динамічним, тобто після додатки нового входу обчислюється вихід і, передаючись по мережі зворотного зв'язку, модифікує вхід. Потім вихід повторно обчислюється, і процес повторюється знову і знову. Для стійкої мережі послідовні ітерації приводять до все менших змін виходу, поки врешті-решт вихід не стає постійним. Для деяких мереж процес ніколи не закінчується, такі мережі називають нестійкими. Проблема стійкості буде розглянута в наступному розділі, а тут ми розглянемо основний цикл роботи мережі.
Як тільки ваги задані, мережа може бути використана для отримання запомненного вихідного вектора з даного вхідного вектора, який може бути частково неправильним або неповним. Для цього виходів мережі спочатку надають значення цього початкового вектора. Потім мережа послідовно змінює свої статки згідно з формулою:
X (t + 1) = F (W X (t)) {\ displaystyle X (t + 1) = F (WX (t))}
де F - активаційна функція, X (t) {\ displaystyle X (t)} і X (t + 1) {\ displaystyle X (t + 1)}
- поточний і наступний стану мережі, до тих пір, поки стану X (t) {\ displaystyle X (t)}
і X (t + 1) {\ displaystyle X (t + 1)}
не співпадуть (або, в разі синхронного режиму роботи, не співпадуть стану X (t - 1) {\ displaystyle X (t-1)}
з X (t + 1) {\ displaystyle X (t + 1)}
і одночасно X (t - 2) {\ displaystyle X (t-2)}
з X (t) {\ displaystyle X (t)}
). Саме цей процес називається конвергенцією мережі.
Це ж можна описати так званим локальним полем a i {\ displaystyle a_ {i}} чинним на нейрон x i {\ displaystyle x_ {i}}
з боку всіх інших нейронів мережі: ai (t) = Σ j = 1, j ≠ i N wjixj (t - 1) {\ displaystyle a_ {i} (t) = \ sum _ {j = 1, j \ neq \ ; i} ^ {N} w_ {ji} x_ {j} (t-1)}
.
Після розрахунку локального поля нейрона a i (t) {\ displaystyle a_ {i} (t)} це значення використовується для розрахунку значення виходу через функцію активації, яка в даному випадку є порогової (з нульовим порогом). Відповідно, значення виходу нейрона и в поточний момент часу x i (t) {\ displaystyle x_ {i} (t)}
розраховується за формулою:
xi (t) = sign (Σ j = 1, j ≠ i N wjixj (t - 1)) {\ displaystyle x_ {i} (t) = sign \ left (\ sum _ {j = 1, j \ neq \ ; i} ^ {N} w_ {ji} x_ {j} (t-1) \ right)} ,
де w i j {\ displaystyle w_ {ij}} - ваговий коефіцієнт між нейронами i і j, x j (t - 1) {\ displaystyle x_ {j} (t-1)}
- значення виходів нейрона j в попередній момент часу.
Під час роботи мережі Хопфілда ознакою знаходження рішення є момент, коли досягається аттрактор, статичний (коли на кожному наступному кроці повторюється стійкий стан X (t) {\ displaystyle X (t)} ) Або, можливо, динамічний (коли до нескінченності чергуються два різних стану {X (t), X (t + 1) {\ displaystyle X (t), X (t + 1)}
}). Це кінцевий стан мережі і є її реакцією на даний образ.
Нормальним відповіддю є таке стійке стан, яке збігається з одним з запам'ятали при навчанні векторів. Але при деяких умовах (зокрема, при занадто великій кількості запам'ятали образів) результатом роботи може стати так званий помилковий аттрактор ( «химера»), що складається з декількох частин різних запам'ятали образів. У синхронному режимі мережу може до того ж прийти до динамічного аттрактору. Обидві ці ситуації в загальному випадку є небажаними, оскільки не відповідають жодному запам'ятовуваному вектору - а відповідно, не визначають клас, до якого мережа віднесла вхідний образ.
Для мережі Хопфілда можуть існувати дві модифікації, що відрізняються за часом передачі сигналу : Асинхронний і синхронний режими. Практично використовується тільки асинхронний режим.
Синхронний режим роботи мережі [ правити | правити код ]
Якщо робота мережі моделюється на одному процесорі, то при синхронному режимі послідовно проглядаються нейрони, однак їх стану в пам'яті незалежно від і не змінюються до тих пір, поки не будуть пройдені всі нейрони мережі. Коли все нейрони переглянуті, їх стану одночасно (тобто синхронно, звідси і назва) змінюються на нові. Таким чином, досягається моделювання паралельної роботи послідовним алгоритмом.
При реально паралельному моделюванні, цей режим фактично означає, що час передачі τ i j {\ displaystyle \ tau _ {ij}} для кожного зв'язку між елементами u i {\ displaystyle u_ {i}}
і u j {\ displaystyle u_ {j}}
однаково для кожного зв'язку, що призводить до паралельної роботи всіх зв'язків, вони одночасно змінюють свої статки, грунтуючись тільки на попередньому моменті часу. Наявність таких синхронних тактів, які можна легко виділити і призводить до розуміння синхронного режиму. При синхронному режимі можливо (хоча і далеко не завжди спостерігається) нескінченне чергування двох станів з різною енергією - так званий динамічний атрактор. Тому синхронний режим практично для мережі Хопфілда не використовується, і розглядається лише як основа для розуміння більш складного асинхронного режиму.
Асинхронний режим роботи мережі [ правити | правити код ]
Якщо моделювати роботу мережі як послідовний алгоритм, то в асинхронному режимі роботи стану нейронів в наступний момент часу змінюються послідовно: обчислюється локальне поле для першого нейрона в момент t {\ displaystyle t} , Визначається його реакція, і нейрон встановлюється в новий стан (яке відповідає його виходу в момент t + 1 {\ displaystyle t + 1}
), Потім обчислюється локальне поле для другого нейрона з урахуванням нового стану першого, змінюється стан другого нейрона, і так далі - стан кожного наступного нейрона обчислюється з урахуванням всіх змін станів розглянутих раніше нейронів.
По суті при послідовній реалізації мережі Хопфілда явно не видно, в чому полягає асинхронність, але це видно, якщо мережа Хопфілда реалізувати з паралельними обчисленнями. В цьому випадку асинхронний режим мережі Хопфілда спрощений, і носить приватний випадок в порівнянні із загальним видом асинхронних мереж, де час передачі τ i j {\ displaystyle \ tau _ {ij}} для кожного зв'язку між елементами u i {\ displaystyle u_ {i}}
і u j {\ displaystyle u_ {j}}
своє, але постійне. Щоб розглянути роботу мережі при паралельній реалізації, необхідно ввести поняття такту - як мінімальний час, за який відбувається передача сигналу по зв'язку, тобто при τ i j = 1 {\ displaystyle \ tau _ {ij} = 1}
. Тоді за проміжок часу між t {\ displaystyle t}
і t + 1 {\ displaystyle t + 1}
відбувається певна кількість тактів N. І саме в межах часу з N тактів відбувається асинхронний протікання сигналів і виконання розрахунків. Тобто, наприклад, коли потрібно розрахувати стан нейрона № 3, необхідно розрахувати стан нейрона № 1 і стан нейрона № 2 і помножити це на відповідні ваги w 13 {\ displaystyle w_ {13}}
і w 23 {\ displaystyle w_ {23}}
. Але, як виявляється, щоб розрахувати стан нейрона № 2, потрібно знати оновлене стан нейрона № 1 і старе стан нейрона № 3, помножити їх на ваги w 12 {\ displaystyle w_ {12}}
і w 32 {\ displaystyle w_ {32}}
. Зрозуміло, що фізично неможливо розрахувати стан нейрона № 1 і стан нейрона № 2 за один і той же час, так як стан нейрона № 2 залежить від стану нейрона № 1. Тому зв'язок між нейроном № 1 і нейроном № 3 має час передачі τ ij = 2 {\ displaystyle \ tau _ {ij} = 2}
, І досягає нейрона № 3 за два такту. Іменна таке різний час передачі τ i j {\ displaystyle \ tau _ {ij}}
і дозволяє говорити про мережі Хопфілда як про мережу з асинхронним режимом.
В асинхронному режимі неможливий динамічний аттрактор: незалежно від кількості запам'ятали образів і початкового стану мережу неодмінно прийде до стійкого стану (статичному аттрактору).
Приклад відновлення пошкодженого зображення [ правити | правити код ]
Якщо під час навчання сформувати матрицю вагових коефіцієнтів (міжнейронних зв'язків) на підставі еталонних бінарних векторів, то нейронна мережа в процесі роботи під дією описаних вище полів буде міняти стану нейронів до тих пір, поки не перейде до одного з стійких станів.
Нехай є нейронна мережа розмірністю N = 100 {\ displaystyle N = 100} , В матрицю зв'язків записаний набір чорно-білих картинок (-1 - чорний колір, +1 - білий), серед яких є зображення собачки (рисунок праворуч). Якщо встановити початковий стан мережі близьким до цього вектору (рисунок ліворуч, спотворений образ), то в ході динаміки нейронна мережа відновить вихідне зображення (еталон). У цьому сенсі можна говорити про те, що мережа Хопфілда вирішує завдання розпізнавання образів (Хоча, строго кажучи, отримане еталонне зображення ще потрібно перетворити в номер класу, що в деяких випадках може бути досить обчислювально ємною завданням).
Принципова різніця между двома режимами роботи мережі Полягає в тому, что в асинхронному випадки мережа обов'язково прийде до одного стійкого стану. При синхронному ж можливі ситуації з нескінченним циклічним переходом між двома різними станами.
Визначити, стійко чи ні стан нейрона, можна на підставі так званої штучної енергії нейрона в даному полі E i = - sihi {\ displaystyle E_ {i} = - s_ {i} h_ {i}} . Якщо знак виходу (+1 або -1) нейрона збігається з напрямком локального поля (E i <0 {\ displaystyle E_ {i} <0}
), То його положення енергетично стійко і в наступний момент часу стан нейрона залишається незмінним. В іншому випадку (E i> 0 {\ displaystyle E_ {i}> 0}
) Положення нейрона хитке і він змінює свій знак, переходячи в стан si (t + 1) = - si (t) {\ displaystyle s_ {i} (t + 1) = - s_ {i} (t)}
з енергією E i (t + 1) <E i (t) {\ displaystyle E_ {i} (t + 1) <E_ {i} (t)}
.
Стійкість при асинхронному способі досягається тому, що виконується умова на загальну енергію мережі E (t + 1) ≤ E (t) {\ displaystyle E (t + 1) \ leq E (t)} . У синхронному випадку умова дещо змінюється, а саме: E (t + 1) ≤ E (t - 1) {\ displaystyle E (t + 1) \ leq E (t-1)}
. У ситуації, коли відбуваються нескінченні циклічні переходи, енергія двох різних станів відповідно дорівнює E (t) {\ displaystyle E (t)}
і E (t + 1) {\ displaystyle E (t + 1)}
. При цьому стану t + 1 {\ displaystyle t + 1}
і t - 1 {\ displaystyle t-1}
, А також t {\ displaystyle t}
і t + 2 {\ displaystyle t + 2}
- збігаються. Якщо утворюється такий стан, то його називається динамічним аттрактором. Якщо ж збігаються стану t {\ displaystyle t}
і t + 1 {\ displaystyle t + 1}
, Аттрактор називають статичним. У більшості випадків динамічні атрактори є небажаними, оскільки не відповідають якому-небудь певному відповіді мережі.
Мережа зі зворотним зв'язком формує асоціативну пам'ять . Мережа Хопфілда можна віднести до автоасоціативною пам'яті, тобто такою, що може завершити або виправити образ, але не може асоціювати отриманий образ з іншим чином. Щоб організувати стійку автоасоціативна пам'ять за допомогою мережі із зворотними зв'язками, ваги потрібно вибирати так, щоб утворювати енергетичні мінімуми в потрібних вершинах одиничного гиперкуба .
Обробка візуальних образів (фільтрація і асоціативна пам'ять) - не єдина область застосування моделі Хопфілда. Динамічна процедура, описана вище, на кожному кроці знижує значення енергії нейронної мережі. Це дозволяє вирішувати комбінаторні задачі оптимізації , Якщо вони можуть бути сформульовані як задачі мінімізації енергії. Класичною проблемою такого типу є задача комівояжера .
Рішення завдання про комівояжера [ правити | правити код ]
( завдання комівояжера за допомогою нейронної мережі Хопфілда вирішити не можна) Мережа Хопфілда може використовуватися для вирішення завдання комівояжера (потрібно обійти всі n міст і повернутися в початковий так, щоб довжина пройденого маршруту була мінімальною). Для цього можна накласти, наприклад, такі вимоги на мережу:
- Мережа повинна складатися з N = n × n {\ displaystyle N = n \ times n}
нейронів, які ми будемо розглядати як квадрат з n {\ displaystyle n}
рядків і n {\ displaystyle n}
стовпців.
- Відповідь мережі повинен містити тільки один активний нейрон в кожному рядку і кожному стовпці.
- Активний нейрон в першому стовпці задає перше місто маршруту, у другому стовпці - друге місто маршруту, і так далі.
Виявляється, що для вирішення цього завдання досить наступних простих міркувань:
Всім цим умовам задовольняє наступна формула обчислення ваги між нейроном, відповідним місту x {\ displaystyle x} на позиції в маршруті i {\ displaystyle i}
, І нейроном, відповідним місту y {\ displaystyle y}
на позиції j {\ displaystyle j}
:
W xi, yj = - A δ xy (1 - δ ij) - B δ ij (1 - δ xy) - C d (x, y) (δ i, j + 1 + δ i, j - 1) + D {\ displaystyle W_ {xi, yj} = - A \ delta _ {xy} (1 \ delta _ {ij}) - B \ delta _ {ij} (1 \ delta _ {xy}) - Cd (x , y) (\ delta _ {i, j + 1} + \ delta _ {i, j-1}) + D}
де A, B, C, D - деякі константи, d (x, y) {\ displaystyle d (x, y)} - відстань між містами x {\ displaystyle x}
і y {\ displaystyle y}
, Δ xy {\ displaystyle \ delta _ {xy}}
- символ Кронекера , Що приймає значення 1, якщо x = y і значення 0 в іншому випадку. Як легко бачити, перший член дорівнює - A {\ displaystyle -A}
для всіх зв'язків в тому ж рядку (x = y {\ displaystyle x = y}
), Крім зв'язку нейрона з самим собою (при i = j {\ displaystyle i = j}
). Другий член дорівнює - B {\ displaystyle -B}
для всіх зв'язків в тому ж стовпці (i = j {\ displaystyle i = j}
), Крім зв'язку з самим собою (x = y {\ displaystyle x = y}
). Третій член пропорційний відстані між містами x {\ displaystyle x}
і y {\ displaystyle y}
, Якщо ці міста сусідні в маршруті (i = j - 1 {\ displaystyle i = j-1}
або i = j + 1 {\ displaystyle i = j + 1}
).
Якщо таку мережу привести в випадкове початковий стан, то можна очікувати, що результуючі стабільний стан дасть нам субоптимальний шлях, довжина якого не надто перевершує оптимальну (сам шлях може значно відрізнятися від оптимального). Відповідно, для практичного застосування мережу слід запустити кілька разів, і вибрати найкращий шлях.
Рішення даного завдання цікаво не стільки своєю якістю (існують алгоритми, вирішальні її ефективніше [3] ), Скільки самим підходом до завдань оптимізації: якщо можливо перевести умови деякої задачі в параметри зв'язків між нейронами, то вона може бути відносно непогано вирішена мережею без будь-якого додаткового аналізу.
На жаль, у нейронної мережі Хопфілда є ряд недоліків.
1. Відносно невеликий обсяг пам'яті, величину якого можна оцінити виразом:
M ≈ N 2 ln N {\ displaystyle M \ approx \; {\ frac {N} {2 \ ln N}}}
Спроба запису більшого числа образів призводить до того, що нейронна мережа перестає їх розпізнавати.
2. Досягнення стійкого стану не гарантує правильну відповідь мережі. Це відбувається через те, що мережа може зійтися до так званим помилковим аттракторам, іноді званим «химерами» (як правило, химери склеєні з фрагментів різних образів).
- ↑ Мережа Хопфілда. Приклад на YouTube
- ↑ Cohen MA, Grossberg SG 1983. Absolute stability of global pattern formation and parallel memory storage by compatitive neural networks. IEEE Transactions on Systems, Man and Cybernetics 13: 815-26.
- ↑ Lau, KM, Chan, SM, Xu, L. Comparison of the Hopfield scheme to the hybrid of Lagrange and transformation approaches for solving the travelling salesman problem. Proceedings of Intelligence in Neural and Biological Systems, 1995.
- JJ Hopfield, «Neural networks and physical systems with emergent collective computational abilities », Proceedings of National Academy of Sciences, vol. 79 no. 8 pp. 2554-2558, April 1982. PNAS Reprint (Abstract) PNAS Reprint (PDF)
- McEliece RJ, Posner EC, Rodemich ER, Venkatesh SS, The capacity of the Hopfield associative memory , IEEE Transactions on Information Theory, Volume 33, Issue 4 (July 1987), 461-482.
- BVKryzhanovsky, LBLitinskii, ALMikaelian. «Vector-neuron models of associative memory», Proc. of Int. Joint Conference on Neural Networks IJCNN-04, Budapest-2004, pp. 909-1004.
- BVKryzhanovsky, BMMagomedov, ALMikaelian. «A Domain model of neural network», Doklady Mathematics vol.71, pp. 310-314 (2005).