Comments 13
Такое впечатление, что из текста пропущен существенный кусок объяснения.
Вот мы постулируем, что модели — это алгоритмы. Дальше описывается способ сравнить модели и выяснить, какая лучше. И всё, пошёл блок вопросов-ответов.
Откуда берутся новые модели? На каком языке они записываются?
Полез в код на гитхабе — там какой-то интерпретатор виртуальной машины и функции-генераторы. Вот этого в статье не хватает: какие базовые операции выбраны для машины, как происходит генерация новой модели.
Вот мы постулируем, что модели — это алгоритмы. Дальше описывается способ сравнить модели и выяснить, какая лучше. И всё, пошёл блок вопросов-ответов.
Откуда берутся новые модели? На каком языке они записываются?
Полез в код на гитхабе — там какой-то интерпретатор виртуальной машины и функции-генераторы. Вот этого в статье не хватает: какие базовые операции выбраны для машины, как происходит генерация новой модели.
+2
Спасибо за конструктив. И правда, надо дописать.
Новые модели получаются путём выбора из пространства алгоритмов. В идеально-математизированном варианте мы перебираем все алгоритмы (их бесконечно много) и каждому проставляем свою вероятность быть «той самоё истинной моделью» и работаем со всей композицией сразу.
На практике нужна какая-нибудь эвристика, которая позволит перебрать конечное множество алгоритмов, и среди них найти субоптимальные. Тут никаких абсолютных правил нет — каждый извращается как умеет, и эвристика применима лишь локально. Примеры эвристик: перебор алгоритмов, начиная с самого короткого. Или генерация рандомных алгоритмов и применение к них генетического алгоритма (отбор наилучших, удаление наихудших, смешивание наилучших в надежде получить что-то ещё лучше). То есть мы не всегда можем найти более точную модель, но если мы её каким-то образом получили, то всегда можем проверить, что она более точная.
Второй критерий — язык задаёт априорные вероятности. Язык — это то, что определяет, что есть просто, а что есть сложно. В идеале язык должен быть таким, чтобы он мог описывать наблюдаемые явления лаконично и точно. Если мы подбираем функцию y=e^x, то в идеале язык должен содержать экспоненту в качестве элементарной операции. То есть можно конструировать язык, зная особенности задачи, либо найти какой-то способ сделать автоматическую систему, которая создаст язык (набор базовых операций), максимально пригодный для описания некоей предметной области. А можно сделать язык как попало — в этом случае AIXI потребует кучу данных для обучения, а потом массовым перебором сам найдёт и оптимальный язык, и лаконичную модель, и всё это выразит через тот язык, что мы задали от балды.
Откуда берутся новые модели?
Новые модели получаются путём выбора из пространства алгоритмов. В идеально-математизированном варианте мы перебираем все алгоритмы (их бесконечно много) и каждому проставляем свою вероятность быть «той самоё истинной моделью» и работаем со всей композицией сразу.
На практике нужна какая-нибудь эвристика, которая позволит перебрать конечное множество алгоритмов, и среди них найти субоптимальные. Тут никаких абсолютных правил нет — каждый извращается как умеет, и эвристика применима лишь локально. Примеры эвристик: перебор алгоритмов, начиная с самого короткого. Или генерация рандомных алгоритмов и применение к них генетического алгоритма (отбор наилучших, удаление наихудших, смешивание наилучших в надежде получить что-то ещё лучше). То есть мы не всегда можем найти более точную модель, но если мы её каким-то образом получили, то всегда можем проверить, что она более точная.
На каком языке они записываются?— на любом Тьюринг-полном языке. Он выбора языка зависят доступные нам способы поиска — например, если мы запишем модель на каком-нибудь языке, где каждая элементарная операция кодируется одним символом и не имеет явных аргументов, но сможем применять генетический алгоритм для поиска модели. Если же мы сумеем записать модель в терминах чего-то вроде нейросети — некоего дифференцируемого компьютера — то можно будет проводить поиск градиентным спуском. Это один критерий выбора языка — удобство направленного перебора пространства алгоритмов.
Второй критерий — язык задаёт априорные вероятности. Язык — это то, что определяет, что есть просто, а что есть сложно. В идеале язык должен быть таким, чтобы он мог описывать наблюдаемые явления лаконично и точно. Если мы подбираем функцию y=e^x, то в идеале язык должен содержать экспоненту в качестве элементарной операции. То есть можно конструировать язык, зная особенности задачи, либо найти какой-то способ сделать автоматическую систему, которая создаст язык (набор базовых операций), максимально пригодный для описания некоей предметной области. А можно сделать язык как попало — в этом случае AIXI потребует кучу данных для обучения, а потом массовым перебором сам найдёт и оптимальный язык, и лаконичную модель, и всё это выразит через тот язык, что мы задали от балды.
+1
Так себе идейка для ИИ. Тут отсутствует рефлексия, то есть возможность учиться учиться.
Поначалу допустимо, что программы синтезтезируются рандомом или генетическим алгоритмом, но агент должен замечать, какие комбинации быстро приводят к результату и дальше синтезировать программы с учётом этих знаний, без перебора и без запуска программ для проверки их эффективности.
Ведь когда мы пишем код, мы не пытаемся запустить его после написания каждой новой строчки. Мы целенаправленно знаем, как его писать и куда двигаться, и только иногда запускаем его мысленно или на реальной машине, чтобы проверить какие-то гипотезы.
Поначалу допустимо, что программы синтезтезируются рандомом или генетическим алгоритмом, но агент должен замечать, какие комбинации быстро приводят к результату и дальше синтезировать программы с учётом этих знаний, без перебора и без запуска программ для проверки их эффективности.
Ведь когда мы пишем код, мы не пытаемся запустить его после написания каждой новой строчки. Мы целенаправленно знаем, как его писать и куда двигаться, и только иногда запускаем его мысленно или на реальной машине, чтобы проверить какие-то гипотезы.
+2
Да, то, что я описал, плохо сочетается с концепцией seed ai (ну и это не конкретный проект ИИ, иначе я б уже закодил сам). На самом деле, я такую цель и не ставил — я явно оставил место под «некую эвристику для перебора». В случае seed ai эта эвристика должна быть чем-то, что можно переписать по ходу дела.
Впрочем, кое-что у меня всё же есть. Если мы перебираем строки кода от коротких к длинным, либо эволюционно, то можно запоминать те подстроки, которые чаще обычного оказывались в хороших моделях. Складывать эти подстроки в отдельную библиотеку. И тогда при каждом новом запуске этот ML будет чуть лучше решать задачи, если они похожи на прошлые. В репозитории эта функциональность реализована, хотя и не задокументирована как следует. И да, этот подход работает, хотя и не даёт каких-то серьёзных прорывов.
Впрочем, кое-что у меня всё же есть. Если мы перебираем строки кода от коротких к длинным, либо эволюционно, то можно запоминать те подстроки, которые чаще обычного оказывались в хороших моделях. Складывать эти подстроки в отдельную библиотеку. И тогда при каждом новом запуске этот ML будет чуть лучше решать задачи, если они похожи на прошлые. В репозитории эта функциональность реализована, хотя и не задокументирована как следует. И да, этот подход работает, хотя и не даёт каких-то серьёзных прорывов.
+1
Пиво, арбуз, листья крапивы собранные плачущими девственницами в полнолуние второй луны, машинное масло, 2 круто сваренных яйца, крылья златовласки, корень мандрагоры, фунт гвоздей, 2 капли ацетона для запаха. Перемешать и настаивать неделю. Отжать руками. Полученная жидкость и будет живой водой. См. на гитхабе.
Если такое, что в статье, в голове у существенной части Data Scientist-ов, то я их уже боюсь.
Если такое, что в статье, в голове у существенной части Data Scientist-ов, то я их уже боюсь.
0
Видимо, у нас очень разный бэкграунд, что мы не договорились. Большинство знакомых мне DS не задумываются о целостных теориях познания, или по крайней мере не говорят.
0
Знания теории чисел никак не поможет вам в умении программировать на Java. Любая теория познания будет населена тоннами недоказуемых утверждений и никак не поможет разобраться в существующем интеллекте человеческого типа (AGI).
0
Модель, которую я описал, не наилучшая возможная, а наилучшая из известных мне. Уже существующие системы reinforcement learning неплохо ложатся как её упрощения. Системы one-shot learning хорошо выражаются через концепцию подбора оптимального языка описания. Машинное обучение в целом хорошо ложится как частный случай описанной модели.
Кроме того, эта модель позволяет увидеть, какими способами точно нельзя сделать AGI — например, если использовать неполные по Тьюрингу языки описания моделей.
Насчёт кучи необоснованных утверждений — они на практике проверяются. Берём другую теорию познания/модель ИИ. Запускаем. Если стало лучше — оставляем ту концепцию, которая лучше. В любом случае, все другие «теории познания», что я видел, выглядят намного хуже или в плане обоснованности, или в плане полноты покрытия, или в плане реализуемости.
В любом случае то, что я описал, я не планирую использовать как непосредственно модель ИИ. Скорее, как некий эталон — например, если взять Model Based Reinforcement Learning и сравнить с AIXI, можно легко найти ситуации, где Model Based будет плохо справляться, независимо от вычислительных мощностей. Это как с циклом Карно в термодинамике — в реальные машины его не вставить, но можно понять, где эти реальные машины неоптимальны и, может быть, что-то улучшить. И человека тоже можно сравнивать с этим эталоном и находить слабые места — например, человек обычно не может держать в голове сразу пару десятков гипотез одного и того же явления, и действовать с учётом их всех.
Кроме того, эта модель позволяет увидеть, какими способами точно нельзя сделать AGI — например, если использовать неполные по Тьюрингу языки описания моделей.
Насчёт кучи необоснованных утверждений — они на практике проверяются. Берём другую теорию познания/модель ИИ. Запускаем. Если стало лучше — оставляем ту концепцию, которая лучше. В любом случае, все другие «теории познания», что я видел, выглядят намного хуже или в плане обоснованности, или в плане полноты покрытия, или в плане реализуемости.
В любом случае то, что я описал, я не планирую использовать как непосредственно модель ИИ. Скорее, как некий эталон — например, если взять Model Based Reinforcement Learning и сравнить с AIXI, можно легко найти ситуации, где Model Based будет плохо справляться, независимо от вычислительных мощностей. Это как с циклом Карно в термодинамике — в реальные машины его не вставить, но можно понять, где эти реальные машины неоптимальны и, может быть, что-то улучшить. И человека тоже можно сравнивать с этим эталоном и находить слабые места — например, человек обычно не может держать в голове сразу пару десятков гипотез одного и того же явления, и действовать с учётом их всех.
0
У датасайентиста в голове примерно следующее: искусственный интеллект решающий алгоритм — это алгоритм оптимизации аппроксимационной функции на обучающих примерах.
Конечно, в определении не звучит ничего такого из эмпириокритицизма, бихевиоризма, идеализма, материализма… И вообще философ скажет, что тут какое-то пространное объяснение, при этом какое-то слишком элементарное. Но это именно определение всего разнообразия алгоритмов машинного обучения и анализа данных. И истинные датасайентисты знают это определение.)
Самое важное из этого следует, что любое умное решение ИИ — это сплав некоторой аппроксимационной функции и обучающих данных, а оптимизация этой функции — есть познание. Если функция подобрана удачно и критерий оптимизации работает хорошо, то значит алгоритм обучается, иначе нет. Там еще про переобучение (overfitting) и обобщающую способность (generalization) тема, про которые философы не в курсе в принципе, так как абсолютно некомпетентны в данной области.
Конечно, в определении не звучит ничего такого из эмпириокритицизма, бихевиоризма, идеализма, материализма… И вообще философ скажет, что тут какое-то пространное объяснение, при этом какое-то слишком элементарное. Но это именно определение всего разнообразия алгоритмов машинного обучения и анализа данных. И истинные датасайентисты знают это определение.)
Самое важное из этого следует, что любое умное решение ИИ — это сплав некоторой аппроксимационной функции и обучающих данных, а оптимизация этой функции — есть познание. Если функция подобрана удачно и критерий оптимизации работает хорошо, то значит алгоритм обучается, иначе нет. Там еще про переобучение (overfitting) и обобщающую способность (generalization) тема, про которые философы не в курсе в принципе, так как абсолютно некомпетентны в данной области.
0
Я общался со сторонниками разных философий и мне видится, что «то, что в голове у датасайнтиста», отвечает на многие их вопросы — намного конкретнее и обоснованнее. Либо отметает вопросы как бессмысленные — тоже обоснованно.
Ну например, есть куча споров между идеалистами и материалистами на тему того, «является ли разум онтологически базовой сущностью». Подход датасайнтиста говорит: да это неважно, главное loss, а вообще ответ на этот вопрос зависит от вашего датасета.
Или «существует ли мир вне нас, и если нет, то что мы познаём», вопрос солипсизма. Независимо от ответа, мы можем работать с этим, возможно, воображаемым миром и достигать в нём конкретных целей.
Собственно, основной посыл именно такой: у нас есть штука для ответа на ваши вопросы. Не на все, но на многие, и это обоснованные ответы.
Я в целом с вами согласен — по части ML добавляю лишь, что обычно модель делает прогноз в виде точечной оценки, а во многих случаях нужно что-то другое, что выводится из распределения вероятностей. Это вроде как не мейнстримная идея для датасайнтиста.
Потом, если речь идёт об ИИ в смысле машины достижения целей в реальном мире, то нужно ещё упомянуть, что нужна какая-то стратегия принятия решений. Мало знать о том, как мир устроен, надо уметь делать профит. И в таких условиях оказывается, что есть ещё дополнительные требования к моделям ML.
И вот это всё, что применимо к ИИ/ML, оно в значительной мере применимо и к человеку — очень многие когнитивные искажения хорошо выражаются именно в терминах отклонения от алгоритма AIXI. Условно, если мы в какой-то ситуации знаем, как повёл бы себя AIXI, а человек поступает иначе — сильный повод задуматься, а не глупость ли делаем (или повод для критики AIXI как концепции)
Ну например, есть куча споров между идеалистами и материалистами на тему того, «является ли разум онтологически базовой сущностью». Подход датасайнтиста говорит: да это неважно, главное loss, а вообще ответ на этот вопрос зависит от вашего датасета.
Или «существует ли мир вне нас, и если нет, то что мы познаём», вопрос солипсизма. Независимо от ответа, мы можем работать с этим, возможно, воображаемым миром и достигать в нём конкретных целей.
Собственно, основной посыл именно такой: у нас есть штука для ответа на ваши вопросы. Не на все, но на многие, и это обоснованные ответы.
Я в целом с вами согласен — по части ML добавляю лишь, что обычно модель делает прогноз в виде точечной оценки, а во многих случаях нужно что-то другое, что выводится из распределения вероятностей. Это вроде как не мейнстримная идея для датасайнтиста.
Потом, если речь идёт об ИИ в смысле машины достижения целей в реальном мире, то нужно ещё упомянуть, что нужна какая-то стратегия принятия решений. Мало знать о том, как мир устроен, надо уметь делать профит. И в таких условиях оказывается, что есть ещё дополнительные требования к моделям ML.
И вот это всё, что применимо к ИИ/ML, оно в значительной мере применимо и к человеку — очень многие когнитивные искажения хорошо выражаются именно в терминах отклонения от алгоритма AIXI. Условно, если мы в какой-то ситуации знаем, как повёл бы себя AIXI, а человек поступает иначе — сильный повод задуматься, а не глупость ли делаем (или повод для критики AIXI как концепции)
0
Человек не силен интеллектом, это надо признать и понимать. Вот пока не преподадут в универе основы МО, никакого профита не получается. Оценки возможностей человеческого мозга основаны на собирательном образе человека, в качестве такого человека выступают Архимед, Галилей, Бруно, Гаусс, Эйнштейн одновременно, а это так себе идея… Ибо такого человека не существует. Познание через образование (с учителем) работает, а без него — пиши пропало.
0
Я согласен, те достижения интеллекта, что мы видим — это достижения целой цивилизации. То есть когда человек осваивает что-то новое, он частично сам выводит закономерности, частично усваивает найденные другими людьми. Если этот процесс «размотать» до первоисточников, то будет понятно что, условно, первого «интеллектуального агента» никто не учил, он сам, методом проб и ошибок. И всё наше знание строится именно на опыте — пусть и не на личном, а на опыте целой цивилизации.
Кроме того, когда человека учит другой человек, информация воспринимается через стандартные сенсоры, то есть в каком-то смысле обучение с учителем для человека тоже будет обучением на личном опыте (на личном опыте общения с учителем). Я понимаю, что человек как-то по-особенному обрабатывает информацию, пришедшую через общение. Но я пока не знаю, как описать единой схемой тот факт, что люди могут и учиться на опыте, и воспринимать по описанию чужой опыт почти как свой собственный, и воспринимать чужие описания опыта как ложные, и воспринимать вообще довольно оторванные от опыта концепции. Пока что лучшая идея, что я видел — «не знать», что существует общение, и изобрести его по ходу дела с нуля
Кроме того, когда человека учит другой человек, информация воспринимается через стандартные сенсоры, то есть в каком-то смысле обучение с учителем для человека тоже будет обучением на личном опыте (на личном опыте общения с учителем). Я понимаю, что человек как-то по-особенному обрабатывает информацию, пришедшую через общение. Но я пока не знаю, как описать единой схемой тот факт, что люди могут и учиться на опыте, и воспринимать по описанию чужой опыт почти как свой собственный, и воспринимать чужие описания опыта как ложные, и воспринимать вообще довольно оторванные от опыта концепции. Пока что лучшая идея, что я видел — «не знать», что существует общение, и изобрести его по ходу дела с нуля
+1
(del)
0
Sign up to leave a comment.
Теория познания, основанная на поведенческих моделях