Штучні нейронні мережі - студопедія

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

Як ми дізналися в розділі 2, штучні нейронні мережі складені з безлічі окремих процесорів, які ми називаємо блоками обробки даних (або, скорочено, просто блоками), так само, як сформовані нейронні мережі в живих біологічних системах. Біологічний нейрон - це одна клітина з щупальцями для введення інформації, званими дендритами, і щупальцями для виведення інформації - аксонами (рис. 10.13). Сигнали, які передаються через аксони клітини, вказують, знаходиться вона в загальмованому або збудженому стані. Цей стан визначається комбінацією сигналів, отриманих дендритами клітини. Дендрити приймають сигнали від аксонів інших клітин через невеликі проміжки, звані синапсами. Дослідження показують, що провідність синапсів управляється їх хімічним складом. Тобто чи надасть певний вхідний сигнал затормаживающий або збудливий ефект на нейрон, визначається хімічним складом синапсу. Тому вважається, що біологічна нейронна мережа навчається, налаштовуючи ці хімічні сполуки між нейронами.

Штучні нейронні мережі - студопедія

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

Штучні нейронні мережі - студопедія

малюнку виходи трьох блоків обробки даних (позначені t>. v2 і р3) є входами іншого блоку. Входи в четвертий блок пов'язані зі значеннями, званими вагами (так. W2 і да3). Блок, який одержує інформацію, примножує кожне з значень входу на пов'язаний з ним вага і потім складає результати множення для отримання ефективного входу (v ^ wt + v2w2 + v3w3). Якщо отримана сума перевищує порогове значення обробного модуля, він видає значення 1, в іншому випадку на вихід подається значення 0.

Модулі обробки даних (див. Рис. 10.14) будемо позначати прямокутниками. На вході блоку розмістимо невеликі прямокутники для позначення входів, в кожному з яких запишемо вага, пов'язаний з цим входом. В середині великого прямокутника запишемо порогове значення для цього модуля. Так, модуль обробки даних (рис. 10.15) має три входи і граничне значення, рівне 1,5. Першого входу призначений вага -2, другого - вага 3, а третій - вага, що дорівнює -1. Таким чином, якщо модуль отримує входи, рівні 1, 1 і 0, ефективний вхід буде дорівнює:


і на вихід буде поданий 0. Однак якщо модуль отримає 0, 1 і 1, ефективний вихід буде дорівнює:

що перевищує порогове значення. Виходом буде одиниця.

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

Розглянемо приклад. Проста мережа, представлена ​​на рис. 10.1, а, запрограмована видавати 1, якщо значення двох її входів розрізняються, і 0 в іншому випадку (логічна операція XOR). Якщо ж ми змінимо ваги, як на рис. 10.16, б, то отримаємо мережу, яка видає 1, якщо значення обох входів рівні 1, і 0 - в іншому випадку (логічна операція AND).

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

Штучні нейронні мережі - студопедія

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

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

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

Штучні нейронні мережі - студопедія

Штучні нейронні мережі - студопедія

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

Для кожного модуля обробки даних на першому рівні також встановлено граничне значення 0,5. Для кожного з входів вага заданий рівним 1, крім входу, пов'язаного з центральним пикселом області 3x3 цього модуля, для якого вага дорівнює 2. Таким чином, кожен з цих модулів може видати одиницю, тільки якщо отримає одиницю від датчика, пов'язаного з пикселом в центрі області 3x3.

Тепер, якщо буква С розташована в поле зору (рис. 10.20), все обробні модулі першого рівня видадуть значення 0. Це відбувається тому, що в областях 3x3 всіх блоків, центральний піксель яких закритий буквою, є принаймні ще два інших пікселя, також закритих буквою, і сигнали, отримані від їх датчиків, зменшують значення сигналу центрального пікселя. Отже, якщо в поле зору знаходиться буква С, всі входи обробного блоку другого рівня рівні 0, і вихід всієї мережі також дорівнює нулю.

Штучні нейронні мережі - студопедія

Розглянемо ситуацію з буквою Т в поле зору. Уявімо собі область 3x3, центр якої - квадрат, закритий нижнійчастини ніжки літери Т (рис. 10.21). Обробляє блок, пов'язаний з цим квадратом, отримає ефективний вхід, рівний 1 (2 від центрального пікселя і 1 від інших пікселів, закритих ніжкою). Це перевищує порогове значення блоку, тому він відправить одиницю

Штучні нейронні мережі - студопедія

блоку вищого рівня. Таким чином, блок вищого рівня також видасть значення 1.

Отже, ми отримали штучну нейронну мережу, яка вміє розрізняти букви З і Т незалежно від їх орієнтації в поле зору. Якщо в поле знаходиться буква С, мережа видає значення 0; для букви Т мережу видає одиницю.

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

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

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

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

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

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

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

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

Штучні нейронні мережі - студопедія

Розглянемо штучну нейронну мережу, показану на рис. 10.22. Кожне коло на малюнку позначає блок обробки даних, порогове значення для якого записано всередині кола. Лінії між колами представляють зв'язку між відповідними блоками. Все зв'язку двонаправлені, тобто лінія, що з'єднує два блоки, вказує, що вихід кожного з цих блоків є входом для іншого. Отже, вихід центрального блоку приєднаний до входів всіх блоків по периметру, а вихід кожного блоку периметра є входом центрального блоку. Два з'єднаних блоку призначають однакові ваги входів один від одного. Цей загальна вага записується поряд з з'єднує їх лінією. Так, блок у верхній частині діаграми призначає вага 1 входу, отриманого від центрального блоку, і вага 1 входів від його сусідів по периметру. Анатогічно, центральний блок призначає вага 1 всіма значеннями, які отримує від блоків по периметру.

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

Розглянемо послідовність подій, які відбудуться, якщо ми встановимо таку конфігурацію мережі, коли тільки два крайніх правих блоку загальмовані, а решта порушено (рис. 10.23, а). Крайні зліва блоки отримають ефективні входи, рівні 1, тому залишаться порушеними. Їхні сусіди по периметру отримають нульові ефективні входи і перейдуть в загальмований стан. Ефективний вхід для центрального блоку буде дорівнює 4, тому він також перейде в загальмований стан. Отже, конфігурація всієї мережі зміниться на конфігурацію (рис. 10.23, б), де тільки два лівих крайніх блоку порушені. Так як центральний блок тепер загальмований, збуджений стан лівих крайніх блоків викличе повторне порушення верхнього і нижнього блоків. У той же час центральний блок залишиться загальмованим, так як ефективний вхід для нього дорівнює 2. Мережа перейде в стан, показане на рис. 10.23, в, з якого перейде в стан, представлене на рис. 10.23, м (Ви можете переконатися, що миготливий ефект також виникне, якщо встановити мережу в такий стан, коли порушені тільки чотири верхніх блоку. Верхній блок залишиться в збудженому стані, тоді як його сусіди по периметру і центральний блок переходитимуть із збудженого стану в загальмований і назад.)

Штучні нейронні мережі - студопедія

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

Схожі статті