Кінець першої частини. Де ми so far?
13 статей позаду і ось кінець першої частини блогу про штучний інтелект. Час оглянутися назад і переосмислити все що було написано.
Почали з самих основ, що взагалі таке інтелект. Багато хто має розмите уявлення і при згадці про штучний інтелект уявляє термінатора. Зараз у світі намагаються назвати алгоритми машинного навчання(machine learning) та прикладну статистику(data science) штучним інтелектом, але й це неправильно. Інтелект це здатність досягати цілі в різних середовищах. Існуючі алгоритми ж обмежені вузькими напрямками, розпізнавання зображень, рекомендації, переклад тексту, гра в шахи… Просто ускладнювати моделі, брати потужніші комп’ютери чи впихувати більше даних недостатньо. Має бути зміна підходу, потрібно більше використати принципи як працює мозок людини. Саме тому значна частина блогу присвячена біологічним нейронним мережам.
Далі була мотиваційна стаття, чому нам дуже і дуже потрібен ШІ, і чим швидше, тим краще:) Звісно велику роль грає цікавість, як відтворити щось, що в нас в головах, зрозуміти як працює людина. Але основна мета, що він буде значно ефективніше виконувати глобальні задачі. Ті задачі, які важливі для всього людства і нам дуже важко вирішити самим. Це в першу чергу збереження та розвиток всього живого. Проблема клімату, колонізація космосу, реалізація потенціалу кожної людини (освіта, медицина…). Ну і звісно технології типу автопілоту чи роботів, що звільнять людину від рутинної роботи. І найважливіше — розкриття головної таємниці всіх часів: “що таке свідомість?”. Чи вийде колись звільнитися від біологічної оболонки і стати дійсно вільними? Мати можливість втілюватися в будь-яке тіло? Відчувати цей світ у всіх його проявах, а не бути обмеженими зором, слухом, нюхом… Чи буде колись океан свідомості, як писали фантасти? Де ми всі, і мільярди нових штучних створінь, будемо напряму з’єднані розумом.
Всі ці ідеї цікаві, але потрібно закатати рукава і працювати, щоб їх втілити. Тому в наступній статті показані різні напрямки в яких люди досліджують штучний інтелект. Ця область дуже міждисциплінарна, тут є і математики, і програмісти, і біологи, і філософи, і психологи… Кому ж не цікаво як працює мозок? :) І все це зображено на карті штучного інтелекту, те, як я це уявляю. Але карта — це не територія, вона може сильно відрізнятися. Задача кожної людини зробити так, щоб її карта все точніше відображала територію, тобто об’єктивну реальність, те, що є насправді. Звідси і назва блогу — “територія штучного інтелекту”.
Перша частини блогу побудована знизу-вверх (bottom-up), тобто з найпростіших концепцій збирається щось цілісне, типу як діти збирають конструктор. Основна концепція це нейрон, клітина нервової системи. Тому п’ята стаття про його суть. Коротко — нейрон вчиться визначати, які інші нейрони активні і коли. На правильні комбінації він активується і передає електричний імпульс далі по своєму відростку-аксону. Це, по суті, простий прояв інтеграції та обробки інформації. Але коли таких нейронів мільйони-мільярди відбувається магія. Всі разом вони керують нашим, дуже високотехнологічним тілом. І при цьому зберігають купу спогадів, вміють в математику і бачать майбутнє.
Біологічний нейрон дуже складний, але щоб хоч трішки його зрозуміти, можна спростити. Тому далі розглянули цікаву задачку, де нейрон представили просто у вигляді функції порогового суматора. Ця модель рахує скільки на вхід прийшло сигналів і якщо більше певного значення — нейрон активується. В такого штучного нейрон, як і в справжнього, є зв’язки, або інакше — параметри функції. Якщо перебирати всі можливі стани зв’язків, то отримаємо експресивність нейрона, тобто всі можливі способи як він активується. В результаті виходить гарна картинка матриці експресивності, яку я, до речі, закинув на вікімедіа для участі в конкурсі фотографій.
Тепер вже можна з одного нейрона будувати щось складніше. Але перед цим, треба зрозуміти загальні принципи кодування інформації. Вони викладені в 7ій статті. В нашому мозку інформація вся з’єднана, наступна думка випливає з попередньої, пам’ять асоціативна. При цьому інформація записана розподілено, кожний спогад кодують одразу багато нейронів, сотні-тисячі. Це дає стійкість від шуму та сп’яніння:), хоч нейрони і не завжди надійні, але разом вони справляються. Також, треба розуміти — різна інформація має різну структуру. Це дуже важливо: зображення, тести, звуки відрізняються. Скрізь різні ієрархічні та причинно-наслідкові зв’язки. Завдяки нейропластичності (і не без допомоги еволюції), нейрони здатні натягувати на себе цю структуру. І так різні області мозку спеціалізуються під різний тип інформації. Ще раз нагадаю, інформація в нас в голові вся зв’язана. Це дуже сильно відрізняється від того як записані дані в комп’ютері, все в окремих комірках пам’яті.
В наступній статті показано, що більшість принципів з попередньої, якраз можуть реалізувати нейронні мережі (хто б сумнівався:)). В них можна записати основі відношення в інформації: one to many, many to one, one to one, many to many… Це основа всієї нашої асоціативної пам’яті та моделі середовища. Вони включать причинно-наслідкові зв’язки, що власне і роблять передбачення майбутнього. Ці відношення, можна реалізувати на основі бінарних векторів, які математично описують стан нейронної мережі. І тут цікавий факт, ці бінарні вектори записують відношення найкраще тоді, коли ці вектори розріджені, тобто мало одиниць і багато нулів. А це так само як в мозку! В областях, де зберігається пам’ять, нейрони активують розріджено, в кожний момент всього кілька відсотків від всіх. Один з найкращих прикладів, коли бачиш, що є математичний фундаментальний результат, який еволюція знайшла і реалізувала в нейронних мережах.
Ці бінарні розріджені вектори класні, але як їх отримати з сенсорних даних? Для цього далі була задачка. Розглядався дуже простий спосіб, коли вхідний вектор множиться на випадкові ваги(зв’язків) і якщо сума більша певного порогу, то нейрон активується. Ця стаття більш математична, з графіками, але тільки так можна повністю зрозуміти суть. Цей простий спосіб кодування має суттєву перевагу: два подібні вхідні вектори кодуються в дві схожі нейронні активації. Так, навчена одна асоціація притягує до себе всі подібні.
Через цю перевагу, цей спосіб використовується в простих тваринах, зокрема в мухи, про що була 10-та стаття. 100 млн нейронів в кількох кубічних міліметрах мозку мухи роблять складніші обчислення, ніж найбільш сучасні роботи. Багато чого ми вже розуміємо, зокрема як муха розрізняє запахи. Спершу відфільтровує шум, далі інформацію стискає і перекодовує у великий розріджений вектор(як в попередній статті). А такий вектор вже можна легко асоціювати з іншими даними, спогадами, моторикою… Ця послідовність: “фільтрація, стиснення, перекодування” зустрічається в багатьох тваринах. І навіть в нас, ми так само робимо з запахами, зором, звуками… Схоже це щось універсальне.
Далі була стаття, про суть інформації. Вона найбільше відрізняється від всіх інших. Побудована навколо історії з прибульцями, які передають інформацію і треба зрозуміти скільки ж вони її передають. Тут розказується, що таке ентропія, взаємна інформація та як це пов’язано з мозком. Це дуже фундаментальні і важливі речі. Я думаю в майбутньому, коли вже буде побудована теорія штучного інтелекту, її лекції починатимуться саме з теорії інформації.
І дві заключні статті. Про те, скільки передається інформації в нейронних мереж (через них і була написана попередня). Перший випадок про перекодування інформації, як у мухи. Найбільше передається, якщо взяти більше нейронів приймачів, ніж передавачів. Якраз так муха і робить. У випадку зі стисненням, інформація може трохи втрачатися. Але не біда, нейронна пластичність робить так, щоб все важливе залишалося.
Цікавий випадок моделі асоціації. Дуже схоже як вибудовані наші спогади і наші думки. Тут пам’ять насичується, після певної межі, нова інформація записується дуже погано. Цікаво, що в таких моделях імітують сон, коли лишні зв’язки видаляються, і пам’ять при цьому стає кращою. Хороший приклад, коли модель показує схоже як в людей.
Після перших трьох, була класифікація — найбільш поширений випадок взагалі в області штучного інтелекту. Це й розпізнавання зображень, спаму в емейлі, рекомендації реклами, постів, відео, товарів … Розглядається простий приклад, де нейронна мережа має видавати “так” або “ні” (бінарна класифікація). І було дуже багато малюнків, бо такі речі краще зрозуміти, коли можна уявити.В класифікації інформація передається тільки про ті класи, на які мережа навчається. А все інше забуває. Якщо треба додати класи (наприклад, щоб розпізнавали не тільки котів на зображеннях, а й собак), то треба мережу перенавчати. В людини не так, ми знаємо, що ось є якась чотиринога вухата тварина і гавкає. І коли нам кажуть, що це собака, ми просто асоціативно зв’язуємо і не перенавчаємося.
В людей більше схоже як в наступному випадку — кластеризації. Тут дані розбиваються на кластери, які можуть бути зв’язані між собою ієрархічно (тварини-вухаті-бігають). Кожний кластер на різних рівнях ієрархії — це окрема популяція активних нейронів, які роблять асоціації з іншими кластерами. Активність нейронів між різними рівнями керує увага. Це мабуть найбільш недооцінена річ в штучних нейронних мережах. В нас це по суті механізм, що керує потоком інформації. Щоб краще щось обробити чи запам’ятати, ми фокусуємося (потік спрямовується на деталі). Найбільше увага проявляється в тому як ми дивимося: постійно скануємо предмети і записуємо підсвідомо, де що знаходиться і як, що з чим пов’язано.
І останній, найбільш важливий випадок — середовище. Без нього зрозуміти мозок дуже важко. А побудувати штучний інтелект не можливо. Бо нагадую визначення, інтелект — це здатність досягати цілі в різних середовищах. Середовище — це те, звідки береться інформація, це те, що організовує всю нервову систему. Нейрони навчаються чи не з єдиною метою — робити передбачення як середовище зміниться, само по собі, або через наші рухи. Саме так вибудовуються плани в уяві, саме так ми можемо розв’язувати складні задачі. Саме так ми створюємо причинно-наслідкову модель середовища — роблячи правильні передбачення.
В основі цієї моделі лежать прості нейрони, розріджені вектори, асоціації, стиснення, класифікація і все що писав до того. Це будівельні блоки, з яких будується копія світу в нас в голові. Звісно, не всі ще блоки зрозумілі, ще багато задач і таємниць. Але в першій частині блогу я спробував зачепити верхівку, зробити коротку вилазку в глиб території штучного інтелекту. Рухався я знизу-вверх (bottom-up), з простих концепцій до все складніших, з базових будівельних блоків до надбудов.
В другій частині блогу будемо рухатися навпаки, зверху вниз (top-down). Одразу розглянемо кінцеву мету, що ми хочемо, як має виглядати штучний інтелект. І від цього будемо спускатися вниз, стараючись зрозуміти, як ж зробити розумні машини.
Це 14-та стаття в блозі “Територія штучного інтелекту”.
Слідкуйте за наступними на:
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