Скільки інформації передається в нейронних мережах. Ч.2
В попередній частині розглянули передачу інформації в добре вивчених та поширених випадках: при перекодуванні, стисненні, асоціюванні та класифікації інформації. В цій частині розберемо менш вивчені, але значно цікавіші випадки. Ще мало ясно як їх реалізовувати в алгоритмах, але інтуїтивно вони дуже важливі і напряму пов’язані з роботою нашого мозку.
Випадок 5. Кластеризація
Кластеризація подібна до класифікації, потрібно вхідні дані розбити на області.
В класифікації “вчитель” визначає як дані розбиваються. Тут же вчителя немає і потрібно розбивати відповідно до властивостей самих даних. Треба зрозуміти, що ж таке є спільне в даних, щоб помістити їх в один кластер.
Це одне з найважливіших питань навчання без учителя: як визначити чи дві точки х1 та х2 попадуть в один кластер?
Є десятки різних алгоритмів кластеризації, де кожен по своєму відповідає на це питання. Найвідоміший з них — k-means, каже, що дві точки в одному кластері, якщо вони ближчі до центру цього кластеру, ніж до будь-якого іншого (як на мал. вище).
Це трохи схоже як в людей. Дивлячись на сотні машин, ми не запам’ятовуємо кожну окрему, а робимо прототип, абстракцію, що об’єднує ці зображення, ми шукаємо центр кластера. Так ми узагальнюємо. Так ми думаємо, використовуємо прототипи(категорії). Це допомагає передавати і записувати інформацію в дуже спрощеному та економному вигляді. Мабуть, саме тому людям важко малювати, бо малюють не те, що насправді бачать, а спрощену версію, свої прототипи.
Якщо всього є k кластерів (звідси k-means), то далі передається log2(k) біт інформації. Але проблема з алгоритмом k-means, що не знаєш скільки кластерів взяти.
Є інший алгоритм — ієрархічної кластеризації. Для нього не треба вручну задавати кількість кластерів і це більше схоже як в нас в голові. Він розбиває дані на класи, а в середині цих класів знаходить ще класи а там в середині ще, і виходить ієрархія. Ось гарне зображення (джерело):
Ми робимо так само. Тварина -> кіт -> чорний кіт -> чорний, пухнастий кіт -> чорний, пухнастий, нахабний кіт. Суттєва особливість — одна точка може належати одразу до багатьох кластерів, на різних рівнях ієрархії. Кожний рівень має свій прототип, і саме він з’єднується асоціативно з іншими концепціями. Це набагато спрощує задачу. Замість того, щоб асоціювати 100 різних котів з мишею, робимо лише одну асоціацію: прототип кота — прототип миші. Але, якщо треба зв’язати конкретного кота з конкретною мишею, то можна по ієрархії спуститися вниз.
В цьому випадку, чим більше уточнюємо, тим більше передаємо інформації. Мозок організований так, що старається економити свої ресурси. Тому інформації передається в вищі центри рівно стільки скільки треба для вирішення задач. Тобто, якщо байдуже, що за кіт, то деталі не передаються, кіт та й кіт.
Але як, з “сирих” даних(наприклад, пікселів в зображеннях) робити таку ієрархію ще відкрите питання.
Випадок 6. Увага
Це дуже велика тема в нейронауці. Дуже важлива для розуміння роботи мозку. Але майже не піднімається в штучних нейронних мережах. По суті, увага це механізм, що керує потоком інформації. Як і коли активуються нейронні мережі. Різні прототипи на різніх рівнях ієрархії перебираються саме увагою, допоки не знайдеться щось підходяще.
Увага керує скільки інформації попадає в мозок з сенсорів. У всіх попередніх випадках припускалося, що є вхідні дані Х, які мають передатися чи зберегтися в нейронній мережі. Будувалася якась функція f() і ми нею крутили чи для збереження інформації, чи стиснення, чи класифікації… Завжди, чим вища розмірність даних N, тим більше інформації і важче з нею працювати. Але природа придумала дуже класний спосіб. Замість того, щоб обробляти все за раз, легше розбити вектор розмірності N на менші шматочки (x1, x2, x3,x3…) і обробити все послідовно (в у1, у2, у3…). Тут вже додається пам’ять, бо потрібно зберігати проміжні результати. А також вводиться система координат, в якій зберігаються різні шматки даних. Що це значить?
Візьмемо зір. Ми постійно скануємо зображення очима. Роздивляємося деталі, де що з чим пов’язано. Ось корпус машини, ось нижче, зліва і справа колеса, посередині фари… Складні об’єкти ми розбиваємо на простіші. І так їх записуємо в голові: як набір просторово зв’язаних рис. Окрім самої риси(форма, колір…) записується її положення в двох системах координат. Перша — відносно свого тіла (egocentric). Друга — відносно інших рис(allocentric), “колесо знаходить нижче кузова”. Перша, важлива для поведінки, як дотягнутися до об’єкту. Друга, важлива для розпізнавання, об’єкт визначається саме просторовими співвідношеннями.
Увага робить процес сприйняття послідовним. Це допомагає більше зберегти інформації в пам’яті. Це допомагає зв’язати окремі деталі з іншими деталями. В стандартних рішеннях задач класифікації чи кластеризації всього цього немає. Класичні штучні нейронні мережі просто працюють як функції, ще переводять дані з одного простору в інший.
Випадок 7. Середовище
Останній випадок найбільш загальний, найбільш важливий. Поміщаємо нейронну мережу в тіло, а тіло в середовище. Так само, отримуються дані (Х), але тепер додається здатність рухатися, надсилати команди (М).
Тепер дані не незалежні, як було у всіх попередніх випадках. Тепер дані залежать від наших рухів. Ми порухали очима, дані на сітківці змінилася зовсім не випадково. При цьому десь глибоко в голові здається, що все стоїть на місці. Нейронна мережа вчиться звязувати рухи з сенсорами.
Діти, коли ще зовсім малі хаотично рухаються. Так вони зв’язують моторні команди зі сенсорними відчуттями в м’язах і тілі. Так вивчаються причинно-наслідкові зв’язки. І відбувається “втілення” свідомості, коли знаєш, що це моє, і “я” цим керую. Так само і з зором. Роздивившись певну річ, ми вже не отримуємо нової інформації, хоч і кожного разу на сітківці нове зображення. Сидячи у власній кімнаті, невже ми завжди все скануємо і стараємося розпізнати? Хіба що перший раз. Далі ми знаємо де що лежить і як воно виглядає. І коли дивимося на щось ми вже знаємо, що побачимо. В нас вже є очікування. Це називається perception as inference (сприйняття як прорахунок).
Мозок максимально старається увібрати в себе інформацію (в розумних межах:). Так, щоб точно робити передбачення про середовище. Це основа успішної поведінки. В нейронауці є навіть припущення, що весь мозок, разом зі складним сприйняттям та пам’яттю, підлаштований саме для моторики. Не для того, щоб бачити світ у неперевершених барвах і градаціях відчуттів. А для того, щоб рухати тілом. Моторика і сенсорика нероздільні (називається action perception loop). І щоб зрозуміти мозок, потрібно розглядати все разом.
Моторні команди запускаються розріджено-розподіленою активністю нейронних мереж. І ми б хотіли зв’язати цю активність з сенсорами (M -> X), щоб робити передбачення. Але ми не можемо робити це напряму, бо активація M зразу рухає м’язами. Хотілося б знати, що буде на сенсорах (Х) після руху (M), але не рухаючи м’язами! Простіше, хочеться лише уявити наслідок. Для цього є надбудова над моторикою, нейронна мережа, яка зберігає та запускає команди. Окрема нейронна активація може зберігати цілу послідовність дій (m1, m2, m3…), те що ми називаємо плани. Її зв’язок з моторикою керується перемикачем(іншою нейронною мережею), який пропускає команду чи блокує її. Мережа, що зберігає команди також з’єднується з сенсорною інформацією, з високорівневими прототипами, як говорили в кластеризації. І поки перемикач виключений, можна уявляти. Перебираємо команди і дивимося, що ж буде з прототипами. При цьому увага керує, щоб прототипи не бралися з сенсорних органів (щоб те, що ми бачимо зараз, не впливало на те, що побачимо в майбутньому, “bottom-up vs top-down”).
Але що це за перемикач? Що треба, щоб він увімкнувся? Коли “Я” скаже:“давай, рухай!”? Тут найскладніше, глибоко особисте — цінності. Вони керують, які задачі ми вибираємо. Визначають, який результат ми хочемо отримати. По суті це також нейронна мережа, яка зв’язує прототипи та внутрішні сигнали від організму, як задоволення. Коли ми перебираємо планами, вискакують якісь прототипи, які по навчених зв’язках активують нейронні мережі “цінностей”, а ці вже спускають курок моторики. Скрізь все зв’язано.
Звісно це все дуже в спрощеному вигляді. Але кожен дослідник ШІ має мати хоча б таке уявлення. Щоб не зависнути на вузьких задачах класифікації, як розпізнавання котів на зображеннях, а бачити загальну картину.
За 70 років дослідники ще не змогли зібрати робочу модель, щоб включала всі ці основні блоки і нормально працювала. І тому розбили одну велику складну задачу на вузькі. Так виникли цілі області: класифікація, кластеризація, навчання з підкріпленням… Але їх всіх важко пов’язати між собою, і існуючі спроби когнітивних моделей працюють на костилях. Чи вдасться колись знайти єдиний розв’язок, використовуючи лише нейронні мережі як в мозку? Чи вдастся не просто шукати інженерні рішення архітектур та моделей нейронних мереж, а знайти абстрактні принципи, фундаментальні закони обробки інформації?
Ця стаття завершує основний матеріал першої частини блогу. В наступній підсумуємо, що взнали за всі попередні статті, і накидаємо план, про що ж буде друга, завершальна частина блогу.
Це 13-та стаття в блозі “Територія штучного інтелекту”.
Підписуйтеся на сторінки:
fb.com/ai.territory/
t.me/aiterritory
Читайте інші:
1.Територія штучного інтелекту. Про себе, про блог, як створити ШІ в Україні
2.Що таке інтелект?
3.Навіщо насправді потрібен штучний інтелект
4.Карта штучного інтелекту (2020)
5.Нейрон. Основні принципи роботи
6.Як порахувати експресивність нейрона| задача_ші #01
7.Принципи кодування інформації. Частина 1. Комп’ютер vs мозок
8.Принципи кодування інформації. Частина 2. SDR
9.Простий спосіб закодувати щось в нейронну мережу| задача_ші #02
10.Як сенсори формують нейронний код
11.Що таке і в чому суть інформації?
12.Скільки інформації передається в нейронних мережах. Ч.1
13.Скільки інформації передається в нейронних мережах. Ч.2
14.Кінець першої частини. Де ми so far?