Використання нейроної мережі для прогнозування процесів
Штучна нейронна мережа Хопфілда Штучна нейронна мережа Хопфілда орієнтована на класифікацію К-вимірних двійкових кортежів. Вона складається з К нейроноподібних елементів, які зв’язані “кожен з кожним”, і зв’язки між елементами є симетричними – тобто вага tij зв’язку між елементами i та j дорівнює вазі tji, зв’язку між елементами j та i. Мал. 31.2. Зв’язки між нейронами мережі Хопфілда: tij = tji При обрахуванні виходу, який потім передається до усіх інших нейронів, нейрон мережі використовує порогову функцію МакКалока-Пітса з порогом 0. Якщо мережевий вхід більше порогу, або рівний йому, нейрон видає на вихід значення 1, інакше – значення 0. У довільний момент часу кожен нейрон мережі може знаходитися у одному з двох станів – 0 чи 1, або, іншими словами, нейрон може бути “збудженим” чи “не збудженим”. Початковий стан мережі задається К-вимірним двійковим кортежем, кожен біт якого визначає стан відповідного нейрона. Можна казати, що у якості входу мережа приймає К-вимірний двійковий кортеж. Кожен нейрон мережі пов’язаний з усіма іншими, тому необхідно чітко визначити послідовність подій у мережі: у який момент часу кожен нейрон обраховує свій мережевий вхід, використовуючи стани усіх інших нейронів, і вираховує свій новий стан, змінюючи тим самим значення, яке він подає на вхід усіх інших нейронів. Хопфілд постулював, що кожен нейрон перераховує власний стан випадково у часі, але із постійною середньою кількістю перераховувань за секунду. Такий спосіб функціонування можна називати несинхронізованим, або асинхронним. Хопфілд розглядав мережу такого типу як пристрій, який за відомими еталонними, або "запам'ятованими" кортежами, міг би відновлювати частково відомі, або деяким чином пошкоджені кортежі. Таку мережу можна розглядати як асоціативну пам'ять: вона асоціює невідомий їй вхід з одним із запам'ятованих кортежів, і у якості виходу видає еталонний кортеж, який у деякому розумінні найбільш відповідає вхідному. Хопфілд показав, що добитися такої поведінки можна задаючи ваги зв'язків між нейронами наступним чином: якщо, наприклад, a = ( a1 , a2 , … , ak ), b = ( b1 , b2 , … , bk ), c = ( c1 , c2 , … , ck ) - еталонні кортежі, які мережа має "запам'ятати", тоді ваги tij=tji, які пов'язують нейрони i та j, повинні дорівнювати (2*ai-1)*(2*aj-1) + (2*bi-1)*(2*bj-1) + (2*ci-1)*(2*cj-1) Якщо ваги зв'язків налаштовані таким чином, то при поданні на вхід мережі одного з еталонних кортежів - a, b чи c, - мережа "стабілізується", тобто який би з нейронів мережі не перераховував свій стан, його новий стан буде дорівнювати попередньому. Але якщо на вхід мережі надходить "невідомий" кортеж, то стани нейронів починають змінюватись. Цей процес продовжуватиметься до тих пір, поки мережа не попаде в такий стан, в якому вона стабілізується - тобто, її стан буде рівний одному з еталонних кортежів. Тоді вважається, що кортеж, який був поданий на вхід мережі, попадає у той клас, який визначається фінальним еталонним кортежем. Експериментально показано, що існують істотні обмеження на кількість кортежів, які мережа може запам'ятати. Мережа з К нейронами може знаходитись у 2^K різних станах, але на практиці запам'ятовує не більш ніж 0.15*К кортежів. До того ж бажано, щоб еталонні кортежі були не дуже схожими між собою. Наприклад [], при розпізнаванні літер необхідно розрізняти близько ста класів зображень – великі та малі літери, цифри, знаки пунктуації тощо. Отже, мережа повинна складатися не менш ніж з 700 нейронів (а бажано, набагато більше). Така мережа містить 7002 = 490000 зв’язків, її утримання потребує багато пам’яті, і стабілізація стану такої мережі може виявитися дуже довгою. На відміну від мережі із поділом на шари, навчання якої є процесом ітеративним, і не завжди збіжним, мережа Хопфілда навчається обрахуванням ваг зв’язків за відомими еталонними кортежами. Це означає, що у довільний момент часу їх можна вирахувати знову – а отже, при моделюванні роботи мережі Хопфілда взагалі нема необхідності зберігати значення зв’язків між нейронами мережі. Але час роботи програми при цьому збільшується як мінімум на порядок. Загальна схема зворотнього розповсюдження помилок В найбільш загальних рисах, загальну схема навчання зі зворотним можна описати так, як це зроблено в [Змитр]: Обрати черговий навчальний вектор і подати його на вхід мережі. Обчислити вихід мережі. Обчислити різницю між фактичним і бажаним виходами. Скоректувати вагові коефіцієнти так, щоб мінімізувати помилку. Повторювати процедуру, поки помилка не досягне прийнятної величини. Легко бачити, що описане вище дельта-правило можна розглядати як частковий випадок цієї загальної схеми. Але для методу зворотнього розповсюдження помилок у його загальному вигляді, який можна ефективно застосовувати для багатошарових нейронних мереж, необхідно окремо розглядати навчання нейронів у вихідному шарі та навчання нейронів у проміжних шарах [ ]. Використання модифікованої мережі Хопфілда при розвўязку задачі розпізнання Поглянемо на розглянуту вже нами задачу розпізнання з іншої точки зору. Розпізнавання образів, тобто читання, є для людини традиційно найбільш зручним шляхом отримання нової інформації, навчання. Це пояснюється тим, що багато років звітування на папері було єдиним шляхом представлення результатів праці, передачі отриманих знань. У світі накопичено величезну кількість друкованої інформації, і для того, щоб її обробляти, людських можливостей у багатьох випадках не вистачає. В такій постановці задача розпізнавання образів – є задачею, джерелом якої є сама людина, і з цієї точки зору її розв’язок потрібно будувати, відштовхуючись саме від моделювання сприйняття людиною навколишнього середовища. Тому становиться природнім застосування штучних нейронних мереж для вирішення цієї задачі, бо поняття штучної нейронної мережі виникло саме як модель роботи людського мозку, а задачу розпізнавання образів розглядати як класифікаційну задачу. Але перед цим введемо декілька необхідних понять та уточнень []. Зображенням, або образом, називають матрицю вигляду . Елементи матриці aij можуть відрізнятися за типом, і тому розглядають три базових множини матриць. Множина – множина усіх можливих матриць вигляду , елементи яких aij можуть приймати лише два значення: 0 або 1. Такі матриці називають двійковими, або монохромними зображеннями, і відповідно множину – множиною двійкових зображень розмірності mn. Множина – множина усіх можливих матриць вигляду , елементи яких aij можуть приймати довільні цілі значення з сегменту [0,255]. Такі матриці називають зображеннями у сірій шкалі, і інтерпретують значення елементів матриці як яскравість відповідних пікселів зображення. Множину за аналогією називають множиною зображень у сірій шкалі розмірності mn. Множина – множина усіх можливих матриць вигляду , елементи яких aij можуть приймати довільні дійсні значення з сегменту [0,1]. Такі матриці, фактично, теж можна розглядати як зображення у сірій шкалі, але між множинами і є істотна відмінність: існує скінченна кількість матриць розміром mn, елементи яких приймають цілі значення з фіксованого проміжку – отже, множина матриць є скінченою. Але зрозуміло, що множина не є скінченною - існує нескінченна кількість матриць розміром mn, елементи яких приймають дійсні значення з фіксованого проміжку. Тому множина приймає традиційну назву – множина дійсних матриць розмірності mn (памятаючи, що елементи цих матриць належать сегменту [0,1]). Подальший розгляд будемо робити для множини , а якщо це буде необхідно – зробимо уточнення для кожної з базових множин. Якщо серед усіх елементів множини матриць вибрати декілька фіксованих попарно не рівних між собою еталонних зображень {Et}tT, де Т – скінчена множина, тоді можна вважаєти що, уся множина матриць розбивається деяким чином на класи еквівалентності, і кожне з еталонних зображень є представником окремого класу образів. Іншими словами, задається представник кожного класу, а потім намагаються за ними побудувати канонічне розбиття (або відношення еквівалентності). Зрозуміло, що це можна зробити багатьма способами. Канонічне розбиття на множині матриць можна задати за допомогою канонічного відображення, тобто такого, яке за конкретною матрицею відновлює клас, до якого вона потрапляє. Наприклад, F : [/R]. Тут R – відношення еквівалентності, яке будується, [/R] – множина класів еквівалентності, на які розбито множину . Відображення F повинно бути всюди визначеним, і, зрозуміло, функціональним. Очевидно, що заданням такого відображення фактично будується відношення еквівалентності R. В задачі розпізнавання літер важливим є таке розбиття, в якому різні зображення, які з точки зору людини відповідають одній літері, потрапляли б до одного класу еквівалентності. Але зрозуміло, що будуть існувати зображення, які не відповідають жодній літері. Отже, в кожній множині матриць мають існувати такі елементи, які не повинні потрапляти до жодного з класів еквівалентності. Тому, щоб зберегти усі побудовані конструкції, до множини еталонів {Et}tT додають фіктивний еталон, який позначають Е0 – він буде представляти той клас еквівалентності, до якого попадають зображення, що не є літерами. Отже нашу задачу розпізнавання можна перетворити в таку задачу класифікації. За множиною еталонних зображень {Et}tT потрібно побудувати канонічне відображення F, яке задає розбиття усіх можливих зображень на класи еквівалентності, такі, що зображення, які з людської точки зору відповідають одній літері, потрапляли б до одного класу. Для розвязку такої задачі класифікації зручно [] застосувати модифіковану нейронну мережу Хопфілда, у якій кількість зв’язків залежить від кількості нейронів мережі не квадратично, а лінійно. Всі зображення, що можуть надходити на вхід мережі, представляються як бітові матриці розмірності m n. Для кожного класу одна з можливих 2mn матриць є еталонною, тобто являє собою зображення тієї літери, яку мережа повинна розпізнавати – це окреме зображення в подальшому називається еталоном. На відміну від мережі Хопфілда, модифікована мережа налаштовується не на декілька, а лише на один еталон. За еталоном будується нейроноподібна мережа, що містить mn нейронів, кожен з яких однозначно відповідає деякому біту вхідного зображення. Будемо позначати як Nij той нейрон, що відповідає біту зображення з координатами (i,j), i=, j=. Нейрони зв’язані між собою за наступним правилом: між нейронами Nij та Nkl є зв’язок, якщо або . Фактично це означає, що зв’язуються між собою ті нейрони, які відповідають сусіднім бітам зображення . Мал. 31. 3. Структура модифікованої мережі. Стрілками зображено вісім зв’язків центрального нейрона. На відміну від мережі Хопфілда, зв’язки тут не є симетричними – тобто, якщо між нейронами Nij та Nkl є зв’язок, то насправді це два різні зв’язки: Мал.31.4. Зв’язки модифікованої мережі: t(ij)-(kl) t(kl)-(ij) За еталонним зображенням кожний нейрон Nij “запам’ятовує” відповідний йому біт (i,j). Це запам’ятоване значення в подальшому будемо називати еталонним бітом нейрона. Як можна проінтерпретувати таке з’єднання нейронів? Нехай на вхід мережі подано деяке зображення з множини . Кожному нейрону у цьому зображення відповідає деякий біт. Якщо порівняти його з еталонним бітом цього нейрона, можливі чотири випадки: Значення еталенного біту | Значення біту зображення | Точна впевненість нейрона 0 | 0 | 1 0 | 1 | 0 1 | 0 | 0 1 | 1 | 0 Початковою впевненістю нейрона називають міру співпадання між відповідним бітом зображення та еталонним бітом нейрона. Чому саме “початкова” впевненість – тому, що це значення обраховується для кожного нейрона на початку розпізнавання, тоді, коли зображення потрапляє на вхід мережі. Можна сказати, що для двійкових зображень початкова впевненість – це просто інвертована функція додавання за модулем 2. Для зображень з множин та початкову впевненість необхідно обраховувати як відстань: Тут eij – запам’ятований еталон нейрона Nij, aij - значення відповідного пікселя зображення, поданого на вхід. Якщо eij = aij, тоді впевненість нейрона буде максимальною. Якщо різниця між eij та aij максимальна, тоді впевненість нейрона буде дорівнювати нулю. Перейдемо від окремих нейронів до мережі в цілому, і просумуємо початкову впевненість нейронів - ми отримаємо величину, яку називають початковою впевненістю мережі. Якщо розглядати зображення з множини , то початкова впевненість мережі дорівнює кількості бітів співпадання на однакових позиціях у еталонному та вхідному зображеннях. Ця величина є “двоїстою” до відстані Хемінга між зображеннями. Відстанню Хемінга між двома двійковими кортежами однакової розмірності називають кількість неспівпадаючих бітів на однакових позиціях у цих кортежах. Якщо кортежі повністю співпадають, відстань Хемінга між ними дорівнює 0, а початкова впевненість мережі – кількості бітів, або розмірності кортежу. Якщо ж у кортежах не співпадає жоден біт, тоді відстань Хемінга між ними дорівнює розмірності кортежу , а початкова впевненість мережі – нулю.Отже, коли на вхід мережі подається деяке зображення, для кожного нейрона мережі обраховується початкова впевненість, і це значення береться як початкове збудження нейрона. Далі, як і у мережі Хопфілда, вхідне зображення більше не впливає на процес розпізнавання. Зупинимося на тому, з яких міркувань встановлюються зв’язки між нейронами мережі і яку роль вони відіграють. Кожен нейрон бере до уваги не тільки власну впевненість, але і впевненість сусідніх до нього нейронів. Це дуже подібно до того, як людина сприймає зображення в цілому – якщо картинка загалом знайома, але незначна частина картинки відрізняється від запам’ятованої, людина все ж таки впізнає її. У штучній нейронній мережі це можна промоделювати таким чином: якщо впевненість нейрона є малою, але впевненість його сусідів (зв’язки встановлюються між сусідніми нейронами) достатньо велика, то нейрон “довіряє” їм і збільшує власну впевненість. І навпаки, якщо впевненість нейрона є великою, але впевненість його сусідів мала, то нейрон зменшує власну впевненість. Опишемо цей процес більш формально. Впевненість кожного нейрона обмежена як зверху, так і знизу, для зображень усіх трьох видів: для aij{0,1}, для aij[0,255], для aij[0,1]. Будемо вважати, що якщо впевненість нейрона перевищує 50% максимальної впевненості, то він збільшує впевненість сусідніх нейронів; якщо впевненість нейрона менше, ніж 50% максимальної впевненості, то він зменшує впевненість сусідів; у тому випадку, коли впевненість нейрона дорівнює 50% максимальної впевненості, він ніяк не впливає на впевненість сусідів. Перерахунок впевненості для деякого нейрону повинен відповідати наступним умовам, які випливають із побудови мережі та наведених вище правил. Якщо середня впевненість сусідніх нейронів дорівнює 50% максимальної, то нейрон не змінює власну впевненість. Якщо середня впевненість сусідів більше, ніж 50% максимальної, то нейрон збільшує власну впевненість пропорційно середній впевненості сусідів; якщо при цьому його нова впевненість перевищує максимально можливу, то вона зменшується до максимальної. Аналогічно, якщо середня впевненість сусідів менше, ніж 50% максимальної, то нейрон зменшує власну впевненість пропорційно середній впевненості сусідів; якщо при цьому його нова впевненість стає менше нуля, то вона збільшується до нуля. При цьому, коли ми підраховуємо середню впевненість сусідніх нейронів, застосовуються ваги відповідних зв’язків – тих, які йдуть від сусідніх нейронів до центрального. Фактично, це є зважена сума: , де i – вага зв’язку, який іде від i–го сусіда до центрального нейрона, pi - впевненість i–го сусіда. Ваги зв’язків можна розглядати як ступінь довіри між нейронами мережі: чим більше вага t(ij)-(kl), тим більше впевненість нейрона Nkl впливає на впевненість нейрона Nij. Робота мережі проходить аналогічно мережі Хопфілда: після подання вхідного зображення в мережу, і обрахунку початкової впевненості, нейрони починають асинхронно змінювати власну впевненість (перераховувати її за впевненостями сусідів). Якщо цей процес продовжувати досить довго, то можливі лише два випадки. Якщо мережа стабілізується, тобто настає момент, коли жоден нейрон не може змінити власну впевненість, остаточну впевненість мережі покладають рівній середній впевненості усіх нейронів мережі. Здається, що якщо кількість нейронів із малою впевненістю більше, ніж кількість нейронів з великою впевненістю, то остаточна впевненість мережі повинна прямувати до нуля – і навпаки, якщо кількість нейронів із великою впевненістю більше, ніж кількість нейронів з малою впевненістю, то остаточна впевненість мережі повинна прямувати до максимально можливої. Найчастіше так і буває, але, нажаль, можливі ситуації, коли мережа стабілізується у деякому стані, де є нейрони, впевненість яких є проміжною між нулем та максимальною впевненістю. Якщо мережа не стабілізується занадто довго, треба зупинити перерахунки, і вважати, що остаточна впевненість мережі дорівнює 50% від максимальної – це дозволяю уникнути зациклень. Коли за цим алгоритмом отримано остаточну впевненість мережі, її інтерпретують так: якщо вона більше, або дорівнює деякій пороговій впевненості (наприклад, 50% від максимальної), ми вважаємо, що мережа відповідає “так” – це зображення потрапляє до того ж самого класу, що й еталонне зображення даної мережі. Інакше мережа відповідає “ні” - це зображення з іншого класу. Налаштування зв’язків між нейронами мережі проводиться за тією ж схемою, що і для персептрона Розенблата – ітеративно, багаторазово для кожної пари навчальної вибірки. При перерахунку впевненості деякого нейрона сусідні нейрони можна розглядати як входи. Але тут вже не має “активних” чи “пасивних” входів, і ваги змінюються пропорційно до впевненості кожного входу. Якщо на вхід мережі подане зображення, яке потрапляє в той самий клас, що й еталонне зображення, а мережа відповідає “ні”, збільшують ваги, які йдуть від тих нейронів, початкова впевненість яких більше, ніж 50% максимальної. Збільшення робиться не на константу, а пропорційно до початкової впевненості нейрона, від якого йдуть ці ваги. Якщо на вхід мережі подане зображення, яке належить до іншого класу, а мережа відповідає “так”, роблять усе навпаки - зменшують ваги, що йдуть від тих нейронів, початкова впевненість яких більше, ніж 50% максимальної. Зменшення також роблять і початковій впевненості нейрона, від якого йдуть ці ваги. Що ж отримують в кінці-кінців? Для довільного зображення мережа за цим алгоритмом обраховує ступінь відповідності його еталонному зображенню, і цей процес завжди зупиняється, повертаючи правильний з точки зору “здорового глузду” результат. Отже, ми можемо за цим алгоритмом побудувати канонічне відображення F : [/R] так. Для кожного еталонного зображення з множини {Et}tT будується описана вище мережа. Проводиться навчання за існуючою навчальною вибіркою, після чого можна починати розпізнавання. При розпізнаванні деякого зображення воно подається на вхід кожної мережі окремо, і кожна мережа вирішує, чи відповідає воно еталону мережі, і якщо так, то наскільки. Якщо декілька мереж (тобто, більше за одну) вважає, що це зображення з їхнього класу, вибирають переможцем ту, остаточна впевненість якої була найбільша. Якщо і така мережа не одна, виграє та, швидкість збіжності якої була найбільшою. Якщо ж усі мережі при поданні на вхід деякого зображення відповідають “ні”, вважається, що воно потрапляє у клас, утворений за фіктивним еталоном Е0. Однак, при практичній реалізації запропонованої системи розпізнання ми повинні памятати про дві основні проблеми. По-перше, потрібно якось реалізовувати задачу виділення символьної інформації на зображенні аркуша паперу. Це означає, що на вхід системи подається не зображення окремої літери (у попередньому сенсі - з множин , чи ), а картинка, на якій друкованими або рукописними літерами “написано” декілька речень – наприклад, відскановане зображення звичайного аркушу паперу. Як результат роботи системи розпізнавання користувач бажає отримати текстовий файл, зміст якого збігався б із тим, що було написано на папері і відскановано. Без вирішення цієї проблеми розпізнавання літер перетворюється на винятково теоретичну задачу По-друге, як би добре система не розпізнавала символи у “лабораторних” умовах, при спробі її реалізації програміст стикається з цілою низкою пов’язаних між собою проблем технічного характеру. Ці проблеми поділяються на чотири основні класи, які можна охарактеризувати так: зашумленість зображення, різниця в масштабах зображень, виділення на зображенні окремих рядків та слів у рядках, виділення окремих літер у словах. Запропонований підхід до системи розпізнання літер був реалізований в роботі []. Проведені практичні експерименти засвідчили, що використання штучних нейронних мереж для розв’язування задач розпізнавання зображень хоча й має деякі недоліки, але в цілому є досить перспективним. Як було показано, на якість розпізнавання сильно впливають сторонні фактори, не пов’язані з розпізнаванням як таким – необхідність виділення символьної інформації на зображенні, уніфікації розмірів зображень літер тощо. Але навіть при цьому досягнута якість розпізнавання є цілком задовільною. Можна також запропонувати декілька напрямків розвитку цього підходу. Найважливіший з них – удосконалення моделі нейроноподібної мережі. Побудована модель є сукупністю не зв’язаних між собою штучних нейронних мереж, в той час як нейрони людського мозку об’єднані в загальну, неподільну систему – переваги такої структури безсумнівні. Беручи до уваги значний розвиток нейрокомп’ютерів та супутніх технологій за останній період, цілком імовірно, що через деякий час апарат штучних нейронних мереж отримає сильну практичну підтримку, і використання ШНМ стане набагато більш поширеним.
Рефераты по информатикеШтучна нейронна мережа Хопфілда Штучна нейронна мережа Хопфілда орієнтована на класифікацію К-вимірних двійкових кортежів. Вона складається з К
Оценок: 854 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.