Я не знаю, як вона точно називається. Феноменологія, емпіріо-критицизм, махізм - ось близькі течії. Ближче буде раціональність по Юдковському. Формалізація цієї теорії називається AIXI.
Ідейно схоже на науковий метод, але трошки ширше. Придумав не я, лише трохи систематизую і проходжуся за відомими мені запереченнями.
Певною мірою даний підхід альтернативний філософським течіям матеріалізму та ідеалізму, а крім того, він лежить в основі однієї з теорій ШІ.
Трохи бекграунду
Я займаюся системами навчання з підкріпленням - тобто системами управління, яким ми ставимо деяку мету, і які, не знаючи, як працює світ, цієї мети досягають. Відповідно, виникає питання: а як повинна бути влаштована система пізнання, щоб вона працювала в таких умовах? А як має бути влаштоване знання у людини, щоб вона могла вивчати світ і досягати цілей? Я читав статті з раціонального мислення, але вони виглядають недостатньо суворими і точними. Читав про науковий метод, читав його критику. Працюю в data science і тому чув речей на кшталт «» машинне навчання добре працює, якщо ти добре знаєш предметну область «», що дуже розумно, але абсолютно не пояснює, звідки люди дізнаються предметну область, при нульових знаннях на старті. Читав статті людей, які пропонували свій метод пізнання, званий діалектикою і протиставляє себе блекбокс-аналізу. Читав ідеалістів, які вважають, що розум і матерія принципово несводимі один до одного. І тому хочу описати цілісну теорію знання - настільки конкретно, щоб її можна було звести до програмного коду.
Отже, як вона влаштована і працює.
Емпіризм
Ми пізнаємо світ через якісь "сенсори" ". Тобто якусь інформацію ми оголошуємо «» наглядом «», логіки в ньому не шукаємо, обґрунтувань не вимагаємо - ставимося так, як ніби нам цей масив даних сформував якийсь датчик. Якщо датчик збоїть - значить, інформація буде спотворена, зашумлена, зміщена. Ми все одно її вважаємо своїм сенсорним входом. «» Датчик збоїть «» - це вже можливий висновок, а ми поки ніяких висновків не робимо.
Далі, ми про деякі твердження говоримо «» вони відносяться до реальності «» - у разі, якщо з цього твердження можна вивести якісь прогнози. Нехай навіть прогнози ймовірнісні - це неважливо. Якщо висловлювання хоч якось змінює наші очікування з приводу того, що ми побачимо на сенсорах - воно стосується реальності. Якщо ж ні - значить, висловлювання не про реальність. У сумнівних випадках має сенс уточнювати, що мав на увазі автор теорії, в термінах прогнозу досвіду. Наприклад, твердження «» я поклав яблуко в холодильник «» відноситься до реальності в тому сенсі, що я очікую або побачити завтра це яблуко в холодильнику, або побачити його сліди, якщо хтось його забрав. Може, реально я і не клав яблуко, і я його не знайду. Все одно, це твердження про наш світ, просто воно хибне.
А яке твердження не стосується реальності? Наприклад, теорема Піфагора. Якщо ми згадаємо визначення точок і прямих, то виявиться, що це абстракції. Тобто в реальному світі немає ніяких точок і прямих, це вигадка математиків. Але якщо зіставити вигаданим точкам і прямим реальні об'єкти, і знаходитися просторі, досить близькому до Євклідового, то висновки теореми Піфагора будуть застосовані до спостережуваних об'єктів.
Ймовірності
Ймовірність ми інтерпретуємо в контексті теорії прийняття рішень, тобто висловлювання P (A) = 1/3 - значить, що якщо ми будемо ставити на подібні події (тобто будь-які з P = 1/3) гроші з коефіцієнтом 2/3 до 1/3, то в середньому вийдемо в нуль, якщо 3/4 до 1/4, то будемо вигравати, а 1/2 до 1/2 - то програвати.
Це називається "суб'єктивна інтерпретація теорії ймовірностей" ", тобто, умовно, це не монетка має властивість падати орлом з імовірністю 1/2. Це ми погано вміє передбачати падаючі монетки. А ось робот з високочастотною камерою і знанням фізики ще в повітрі зміг би сказати, випаде орел чи решка.
Порівняння гіпотез
Ми називаємо твердження, що відносяться до реальності, гіпотезами або моделями. Іноді - теоріями, якщо це модель, у якої дуже велика ймовірність. Хороша модель - це така, яка добре вгадує майбутні спостереження, і це головний критерій. Всі інші критерії важливі лише в тій мірі, в якій дозволяють оцінити головний без прямого експерименту.
«» Добре вгадувати «» - значить, призначати високу ймовірність тим результатам, які фактично відбудуться. Якщо перша модель присвоїла вищі, ніж друга, результати того, що потім фактично сталося - значить, перша модель краще.
Як заздалегідь дізнатися, що одна модель краща за іншу? Подивитися, яка модель краще пророкує. Це робиться так: розраховуємо ймовірності декількох конкуруючих моделей за формулою Байєса. У кожної моделі є апріорна ймовірність P (A), є передбачена ймовірність події P (B'A), є фактична ймовірність події (якщо вона відбулася, то P (B) = 1), ми виводимо P (A'B). Після такої обробки одного факту ми замінюємо P (A) на P (A'B).
Ймовірність однієї моделі не має великого сенсу - моделі завжди треба порівнювати один з одним. Їх P (A) на кожному кроці (або в кінці розрахунку) треба нормувати, тобто зробити так, щоб P (A) всіх досліджуваних моделей в сумі давали 1.
Апріорні ймовірності
Звідки брати апріорні ймовірності, тобто стартові P (A)? У нас повинен бути якийсь спосіб виміряти складність моделі і далі діяти за принципом «» чим більше деталей, тим нижче шанси, що ми їх всі відгадали правильно «». Тоді P (A) = (0.5) ^ складність. Наприклад, складністю можна назвати кількість конкретних правил у моделі або довжину опису в бітах. Якщо моделі занадто різнорідні, можна задати їм однакові апріорні ймовірності - але цей підхід схильний до помилок, і стійкий лише якщо є багато свідчень, і вони досить сильні (або ну дуже багато слабких). Сильні свідчення - це у яких P (B'A) сильно відрізняється від 0.5.
При такому підході є проблема: можна зробити різні базові набори правил. В одному наборі є операція зведення в ступінь, а в іншому - ні. Тоді правило "y = 2 ^ x" "буде в першому випадку дуже простим, у другому досить складним і тому малоймовірним.
Ідеальний спосіб вибрати апріорні ймовірності - це перебрати різні способи вимірювання складності, і вибрати той, результати якого найкраще співвідносяться з ідеєю «» проставити рівні апріорні ймовірності, а потім скоригувати апріорні ймовірності величезним числом спостережень «». Тобто наше завдання - підібрати такі приори, щоб за мінімальну кількість фактів виявлятися сильно впевненими саме в тій теорії, в якій ми в іншому випадку теж виявилися б сильно впевнені, просто за набагато більшу кількість спостережень.
Створення моделей (upd)
Нові моделі виходять шляхом вибору з простору алгоритмів. В ідеалі ми перебираємо всі алгоритми (їх нескінченно багато) і кожному проставляємо свою ймовірність бути «тією самою справжньою моделлю» і працюємо з усією композицією відразу. На практиці потрібна якась евристика, яка дозволить перебрати кінцеве безліч алгоритмів, і серед них знайти досить хороші. Тут ніяких абсолютних правил немає - кожен перекручується як вміє, і евристика застосовна лише обмежено. Приклади евристик: перебір алгоритмів, починаючи з найкоротшого. Або генерація рандомних алгоритмів і застосування до них генетичного алгоритму (відбір найкращих, видалення найгірших, змішування найкращих в надії отримати щось ще краще, елемент випадковості у вигляді мутацій). Тобто ми не завжди можемо знайти більш точну модель, але якщо ми її якимось чином отримали, то завжди можемо перевірити, чи правда вона більш точна.
Алгоритми не існують самі по собі - їх треба записувати мовами програмування. Відповідно, потрібно вибрати мову. Є два основних критерії пошуку.
По-перше, важливо, щоб на даній мові було зручно шукати оптимальний алгоритм. Наприклад, якщо ми візьмемо мову на кшталт C++, то ми не зможемо безпосередньо схрещувати або мутувати дві програми - якщо ми змішаємо їхні коди, то вийде щось, що навіть не скомпілюється. А є мова Brainfuck - код на ній виглядає якось так: "" 2517214 "", причому "" 2 "", "5" "", "7" "- це окремі дії, тобто будь-який рядок з цифр від 1 до 8 є працездатним Brainfuck кодом. Для еволюційного пошуку BF зручніше, ніж C++. Якщо ми зможемо створити мову програмування, яка була б цілком диференційованою, як нейромережа, і при цьому Тьюрінг-повною, ми могли б шукати найбільш точні моделі через градієнтний спуск.
По-друге, різні мови задають різні апріорні ймовірності моделей. Наприклад, якщо в мові експонента винесена в базові функції, але вона буде здаватися чимось простим і ймовірним. А якщо ні, то доведеться її підбирати як-небудь, наприклад, нескінченним поруч, і в результаті всі моделі з експонентою будуть сильно заштрафовані. Тобто в ідеалі потрібно підібрати мову, яка б могла лаконічно і точно описати предметну область, і при цьому була б Тьюрінг-повною (тобто бути такою, щоб через неї можна було висловити будь-яку іншу мову). Для більшості завдань, для яких ми застосовуємо комп'ютери, найкраще підходять мови високого рівня - в них є спеціальні функції для найбільш поширених операцій. Тому з точки зору апріорних ймовірностей найкраще використовувати мову високого рівня.
У будь-якому випадку, як би ми не поставили мову, якщо у системи AIXI буде достатньо часу і спостережень, то вона знайде таку модель, яка буде включати в себе якусь оптимальну мову під завдання і лаконічну модель, записану цією мовою. Системи deep learning діють аналогічно: виділення ознак першими шарами нейромережі - це якраз створення чогось на зразок мови, яка лаконічно описує предметну область.
Ну і основний метод тестування цієї моделі і суміжних: запрограмувати і запустити на вирішення тестових завдань. Якщо модель не можна запрограмувати, то потрібно закодити хоча б малий її шматочок.
Тут наведено програмний код моделі і приклад її застосування - на жаль, це не строго теоретичний AIXI, а його адаптація до реальності, щоб він працював швидше і точніше. Обрана мова на зразок Brainfuck, але число операцій більше, і для прискорення пошуку використані евристики еволюції, бустингу (створюємо кілька моделей, кожна наступна виправляє помилки попередньої) і пост-обробки (вихідні дані подаються на вхід якійсь звичайній системі машинного навчання, на зразок лінійної регресії).
Поширені контраргументи і питання
* Цей метод поверхневий, він не дає глибини. Він не розкриває глибинні закономірності.
- Вважаю, якщо метод «» розкриває глибинні закономірності «», то він відразу помилковий, оскільки претендує на неможливе. Проста перевірка. У нас є чорна скринька. Припустимо, це програма. Все, що ми можемо з нею зробити - це подати на вхід одне число і отримати у відповідь інше. Це вся доступна інформація.
Ми бачимо закономірність: коли ми подаємо X, на виході виходить Y = 2X. У всіх наших тестах. Чи означає це, що всередині програми так і написано, return 2X? Нічого подібного. Там може бути return X + X, return 3X-X, return 2X + 1-1 і купа інших варіантів.
Поки метод, "що розкриває глибинні закономірності" "не навчиться відрізняти програму з X + X від програми з 3X-X і всіх інших варіантів, він не" "розкриває глибинні закономірності" ".
* Він дозволяє побачити лише прості/лінійні/не-динамічні закономірності
- Модель - це завжди якийсь алгоритм, тобто штука, що приймає на вхід одну послідовність і видає іншу. Будь-яку закономірність, яку ми можемо записати, можна записати у вигляді алгоритму (в іншому випадку поняття алгоритму не повне, і туди треба записати ще й таку закономірність, яка "неалгоритмічна" "). GPT-3 - нейромережа, що пророкує кінець тексту на початку - побудована саме як поведінкова модель, а вже передбачення тексту точно не може бути чимось простим/лінійним/не-динамічним
* Підхід не дозволяє побачити причинно-наслідкові зв'язки
- Цей підхід дійсно не включає причинність як базовий елемент. Тим не менш, підхід відповідає на питання "" що буде, якщо я натисну кнопку А "", "що буде, якщо я натисну кнопку Б" ". Це цілком тягне на емпіричне визначення причинності.
* Даний підхід до пізнання - не єдиний можливий, є інші.
- Я стверджую, що вони або не краще, або гірше описаного. У будь-якому випадку, можна провести прямий експеримент: два гравці формалізують свої підходи до рівня програмного коду, а потім запускають їх на купі «» чорних скриньок «». Потім дивимося, який підхід краще пророкує поведінку чорної скриньки, або краще вгадує їх програмний код, або краще ними маніпулює. Два основні тестові майданчики - це kag^ і openAI Gym, але можна придумати ще щось своє.
* Цей підхід до пізнання не дає 100% гарантій чогось.
- Так, саме так, і я не бачив підходу, який давав би, і при цьому не був ще більш косячим.
* Цей підхід не придатний для вивчення людей, бо їх не можна вивчати тільки за поведінкою.
- Цей підхід розглядає промову людей як різновид поведінки. Ми "" додумуємо "", що думають і відчувають інші люди, але це лише "прихована змінна" ", корисна для передбачення, але неперевірена. А ще у людей є апріорна інформація про влаштування мізків інших людей - не в сенсі «» що впала з неба «», а в сенсі «» вколочена в мізки еволюцією, яка розмножувала лише найбільш соціально пристосованих «».
* Як цей підхід стосується етики?
- Паралельно. Поведінкові моделі - це щось типу карти реальності. А етика - це «» куди ми хочемо їхати «». Так що це різні речі.
* Ти не можеш все перевіряти сам, тобі доведеться спиратися на слова інших людей.
- Я можу до цього ставитися як до сенсорних даних. Ну є у мене термодатчик, я знаю, що іноді він досить точний, але іноді, за якихось умов барахліт, а іноді показує зовсім не температуру, а щось інше. Так і зі словами людей.
* Люди так не мислять.
- Щоб знати, як мислять люди, треба побудувати модель мислення, запустити її і порівняти результати. Рефлексія не дуже надійна. Це з одного боку. З іншого - описаний метод затратний, там що реальні живі істоти та ШІ будуть використовувати якісь спрощення, на шкоду якості. Реальні машини не містять в собі цикл Карно, і не тому, що він чимось поганий.
* Як ви вирішуєте проблему індукції?
- Застосовуємо абдукцію. Не виводимо з приватного загальне, а з купи «» приватних «» робимо модель для прогнозу іншої купи «» приватних «». Потім перевіряємо точність моделі.
* Чи не стане користувач цієї моделі соліпсистом?
- Взагалі, підхід неявно включає в себе пізнаючого суб'єкта і навколишню реальність. Це не відповідає шаблону соліпсизму. Але деякі проблеми соліпсизму можливі - наприклад, такий підхід дасть абсолютно безглузду відповідь на питання «» що я буду бачити, якщо я помру «». Але може, проблема не у відповіді, а в питанні
* Такий підхід не дає повноти - він придатний для вивчення лише вузької області.
- Такий підхід, будучи запрограмований, автоматом дає нам «» теорію всього «» - з повним покриттям, але дуже великою похибкою. А потім дозволяє її уточнювати. Поясню. Припустимо, ми зробили робота, у нього всі датчики - це одна відеокамера. І всі актуатори - це одна рука. Всі питання про майбутнє, які може поставити робот, виглядають так: що я побачу через свою відеокамеру, якщо до цього я бачив те-то, і рукою рухав так-то. Це питання - цілком коректне питання для машинного навчання, чим довше буде жити робот, тим точніше він буде в своїх прогнозах. Тобто моделлю світу буде нейромережа, яка навчена на минулому досвіді, і вона при будь-яких ввідних буде видавати якісь плюс-мінус осмислені картинки майбутнього.
* але наука так не працює! У нас немає теорії Всього, це емпіричний факт.
- Ага = (У нас до кожної наукової теорії навздогін йде не дуже формалізована теорія щодо її інтерпретації. Є механіка Ньютона? Відмінно, а тепер давайте опишемо, що таке "маса" "в термінах того, які предмети треба взяти в руки, на які ваги покласти, і що робити, якщо терезів поруч немає. І виявиться, що поняття «» маси «» у квантмеху та астрофізиці інструментально різняться. Немає у нас єдиного набору інструментів, який би і для мікроміру добре працював, і для астрономічних величин. Доводиться ці концепції зістиковувати в уяві вченого. Я не вважаю, що проблема саме в масі. Я вважаю, що проблема в тому, що ми не можемо просто провести купу вимірювань, загнати дані в нейромережу і на виході отримати Теорію Всього - тому що ми не можемо провести купу вимірювань одним і тим же обладнанням, тобто у нас немає єдиного масиву сенсорів
* Дуже прагматичний підхід. Орієнтований на експлуатацію світу, а не вивчення.
- У цьому підході пізнання приблизно дорівнює експеримент приблизно дорівнює експлуатація. Я не бачу сенсу в інших критеріях істинності, крім як «» це корисна модель, щоб досягати мети «» і «» це точна модель, щоб робити прогнози «».
* Цей підхід не працює для гуманітарних наук.
- Ну, по-перше, це привід запитати, чи правда вони науки. По-друге, деякі гуманітарні науки реально щось пророкують. Наприклад, є теорія праймінгу в психології. Якщо на товарі буде написано «» не менше 10 в одні руки «», у людини буде схильність купити саме 10 одиниць товару. Теорія трохи ширша, але зосередимося на одній конкретній закономірності. Вона перевіряється експериментально? Так, можна поділити магазини на дві групи, і в одній з них робити відповідну вивіску про 10 одиниць, а в іншій - ні.
* Цей підхід не працює для історичних наук
- Минулого в якомусь сенсі не існує. Воно є лише у вигляді слідів. Ми додумуємо минуле. Іноді історичні теорії можна перевірити, наприклад, деякі теорії передбачають, що в якомусь місці вдасться знайти стародавнє місто. Якщо ми вагаємося між кількома історичними теоріями, то гіпотетично можуть бути факти, які схилять нас до якоїсь з них.
* Основне питання філософії?
- Якщо його звести в питанні «» що я побачу в разі такого-то «», то на нього буде конкретна відповідь (або конкретне «» не знаю «»), інакше виглядає як щось, що не має відношення до реальності. Якщо звести його до питання "Чи думають люди мозком" "і далі до питання" "якщо пошкодити мозок, то чи збережуться спостережувані ознаки мислення, тобто поведінка" ", то відповідь теж очевидна, і його дає чиста емпірика
* Чи є яскравий приклад того, як ця теорія знання корисна?
- Все машинне навчання на ній працює. Так, у машинному навчанні рідко застосовується концепція складності моделі, і не відбувається перебору у всій безлічі алгоритмів. Тому теорія AIXI дещо ширша, ніж практично застосовний машинлёрнінг. Крім того, існують різні інтерпретації квантмеху. Одні й ті самі формули, але різні інтерпретації. Так от, велика група вчених взагалі відмовляються від інтерпретації (кажуть «» заткнись і вважай «»), тобто діють в дусі описаної поведінкової теорії пізнання.
* Як «поведінкова» теорія стосується логічних категорій?
- На вході і виході моделі ми використовуємо або сирі дані (циферки з датчиків), або дані, категоризовані якоюсь іншою системою. Всередині моделі може бути що завгодно. Зазвичай там математика, але може бути будь-яка інша система виведення, якщо така знайдеться. Нейромережі цілком здатні створювати свої «» категорії «» з елементарних блоків, так що це цілком посильне завдання
* Це теорія не будує "об'єктивну" "модель світу. У ній завжди є точка зору.
- Так. Якщо пощастить, дані будуть зібрані з багатьох «» точок зору «», і теорія буде застосовна незалежно від того, звідки ми дивимося на світ. Але моделі світу взагалі без «» точки зору «» у нас немає. Втім, у практичній діяльності завжди є конкретні дійові особи та вигодонабувачі, тож не бачу проблеми.
* У чому відмінність від наукового методу та наукової практики?
- Наука прагне створити єдину непротиворечивую картину світу. Тобто в наукових журналах не публікують статті виду «» ось ці ліки лікують від хвороби, з імовірністю 80%, а з імовірністю 20% - ні. Через півроку і десять мегабаксів ми оновимо цифри «». P-value гірше, ніж 0.05 в науці більша рідкість.
Крім того, наука орієнтується в основному на експеримент. А "поведінковий аналіз" "більше спирається на спостереження. Не тому, що вони кращі, а тому, що вони дешевші і доступніші. Якщо є можливість, краще ставити експерименти.
Менше уваги до пояснення, більше до прогнозу. Неважливо, що людина не зрозуміла теорію - головне, вона може вести по ній розрахунки. З'явиться інтерпретованість? Добре, але це не головне.
У наук є конкретний предмет пізнання, а у «» поведінкового аналізу «» предмет - це все, що приходить через сенсори, тобто «» поведінковий аналіз «» завжди намагається будувати «» Теорію Всього «».
Інтерпретація теорії ймовірності - суб'єктивна (монетка впаде орлом до ймовірністю 50% - це факт не про монетку, а про моє незнання), а в «» справжній «» науці - зазвичай частотна.
При достатньому часі і статистиці даний метод приблизно зводиться до науки в сучасному розумінні.
* Ваш метод буржуазний/ліберальний/ідеалістичний/матеріалістичний/ще якийсь.
- Цей метод не відноситься безпосередньо до суспільства. Він може працювати і в колективі, і в однієї людини, і в нелюдського ШІ. Даному методу неважливо, які способи узагальнення використовувати - добре б мати велику "бібліотеку" "абстракцій, але при потребі можна все розробити з нуля.
* Ваш метод догматичний, ви вузько дивитеся, ви не бачите того-то і того-то.
- Можливо, те, чого ми не бачимо - не більше, ніж чийсь глюк. Якщо ми не бачимо якусь реально важливу штуку, то буде якась група завдань, де наш метод працює систематично погано, а якийсь інший - добре. Для користувачів даного методу це виглядатиме так: частина людей використовує стратегію, яка незрозуміло постійно призводить їх до успіху. На цьому весь догматизм скінчиться і почнуться спроби скопіювати вдалу стратегію
* Цей підхід передбачає, що все можна оцифрувати і виміряти, а це не так.
- Оцифровка - досить штучна операція. Наприклад, мені потрібно зробити систему, яка пророкує, чи буде у людини боліти яка-небудь частина тіла. Нам потрібно оцифрувати біль. Найпростіший спосіб - якщо є біль, то записуємо 1, інакше 0. Спосіб складніший - якщо є якісь градації сильніші/слабші, то можна привласнити їм числа. 0 - немає болю, 1 - трохи болить, 2 - середньо болить, 3 - сильно, 4 - жах-кошмар. Оцифровка - це наш спосіб розкласти подібні спостереження по купках, не більше того.
* Ваш підхід не враховує, що ми можемо зламати код чорної скриньки або запитати про неї розробника.
- При зломі ми все одно буде використовувати якісь засоби впливу і засоби спостереження. Їх ми і назвемо сенсорами і актуаторами. При спілкуванні з розробником ми все одно використовуємо якийсь канал зв'язку - він і буде нашим сенсорним входом. Тобто якщо ми зробимо щось із перерахованого вище, то ми змінимо межі чорної скриньки: тепер туди входить і наш засіб злому, і передбачуваний розробник.
* Ваш підхід заснований на аксіомах, точно так само, як підхід такий-то. Ви просто вірите в якісь інші штуки.
- Вищеописаний підхід спирається на апріорні ймовірності, а не аксіоми. Різниця в тому, що апріорні ймовірності - це первинні допущення, і по ходу роботи вони точно зміняться. Ми використовуємо матапарат, а значить, і аксіоми теорії ймовірностей, щоб вимірювати точність. Це не означає, що ми перебуваємо у владі вихідних припущень - це означає, що ми використовуємо мову матстата, щоб висловлювати свої думки. Його можна використовувати для опису практично будь-якого правила, за яким оцінюється якість моделі.
