Емоції в нейромережах

Балуючись з нейронними мережами та алгоритмами самонавчання для них, зіткнувся з думкою, що алгоритм навчання з учителем цілком міг би бути віднесений до категорії самонавчання, якби вчителі замінили «емоційними» нейронами. Такі нейрони, по суті, є просто датчиками «добре/погано», а при з'єднанні зі звичайними нейронами створюють певні зв'язки, що гасять або збуджують залежно від типу датчика. Це виключно поверхневий опис принципу, який не розвивався в нейронауці з двох простих причин.

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

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

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

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

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

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

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

Мережевий пристрій

Основні властивості моделі нейронів, які я використовую.

  • Видача результату нейроном затримується на один такт роботи мережі. Основна перевага - це можливість з'єднувати нейрони взагалі як завгодно, тому що це не приносить помилок в логіку мережі, спочатку обчислюються всі значення всіх нейронів, а потім оновлюються їх виходи.
  • Я використовую тільки два значення на виході нейронів «0» і «1».
  • Вихід нейрона може утворити «негативний» і «позитивний» синапс, так само цей синапс може змінювати свій стан з «позитивного» на «негативний» і навпаки.
  • Функція активації обчислюється як різниця активних позитивних і негативних входів. Якщо різниця позитивна, результат «1», якщо ні, то «0».
  • Сінапс прагне стати «позитивним» якщо результат функції активації дорівнює «1», і «негативним» тільки якщо зараз результат «0», а попередній результат був «1».
  • Нейрони обмежені зоною встановлення зв'язків, так що починає грати роль топологія мережі.

Нейрони в моїй мережі діляться на кілька типів

  • Датчики. Звичайні датчики представлені в мережі тільки виходами.
  • Ефектори. Моторні нейрони, виходи керують м'язами, а в мережі представлені тільки входами.
  • Емоційні датчики. Також що і звичайні датчики, але встановлюють незмінювані зв'язки, тільки позитивного або негативного характеру залежно від типу датчика і не можуть змінити стан цих зв'язків.
  • Звичайні. Я описував їх у першій моїй статті. У завданні думати не треба, вона вирішується на рівні як би «умовних рефлексів», тому тут я їх не використовую.

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

Ріс 1. Топологія ділянки нейромережі відповідає за повороти

Колами позначені зони відповідальності нейронів. Таку ж топологію має і частина нейромережі відповідає за переміщення до мети. Обидві частини мережі не з'єднані.

Висновки

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

Ріс 2. Шлях амеби.

Вона розгортається і повзе до мети.

Рис 3. Скріншот.

А так це виглядає з відключеним трасуванням.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND