Pull to refresh

Comments 73

>>> Есть какие-то проблемы с actor-critic — по крайней мере в моей реализации. Потому что ситуация, когда у нас есть отличная (с 5% погрешностью) модель мира, отличная модель наград и при этом не выстраивается стратегия — такая ситуация выглядит очень неправильной.

Чисто на вскидку, я бы связал это с горизонтом планирования — интервалом в котором ты строишь какую-либо стратегию. Если тебе в рожу летит фаербол, ты с хорошей точностью предскажешь последствия, но в стратегию тупо не успеешь… ;) Нужно иметь более длинные цепочки что бы была возможность их изменить. Т.е. предсказания, заканчивающиеся фаерболом в рожу, должны начинаться с образа того, кто этот фаербол кастует. А по описанию мне показалось, что горизонт предсказания коротковат… НО это не точно.
В actor-critic потенциально бесконечный горизонт — зависит от того, сколько раз мы посчитаем q-функцию n-ого порядка, зафитим нейронку и посчитаем q-функцию n+1-ого порядка. Если мы делаем по одному такому расчёту в каждом эпизоде, а эпизодов у нас 500, то это 500 тактов планирования. В идеале. На практике меньше, так как у нас не сразу обучается модель state->reward. Но даже 50 тактов вперёд хватило бы. Другое дело, что у нас там ML over ML вместо надёжного, отлаженного supervised learning с понятным таргетом, и это может как-то влиять

Удивительно, что это проделал один человек, а не целая команда.
Можно узнать сколько по времени заняло всё описанное в часах от задумки до выводов? Поскольку изучаю сам, хочется понимать к чему стремиться, за какое время умелым людям удается проводить такие эксперименты в плане подумать - закодить - получить данные - переделать код и т.д. Ведь куча работы проделано! Я бы такое года 2 делал...

Спасибо за высокую оценку)
Я почти год делал. Плюс нанял яндекс толоку размечать датасет.
Один типичный эксперимент (от готового кода до выводов) — это 12-24 часа, длинные эксперименты — это до 50 часов. Обучение кодировщиков — это порядка недели поначалу и 2-3 дня когда разобрался, что к чему.

Если у вас как начинающего специалиста есть какие-то умные идеи по экспериментам, можем обсудить — у меня по ходу исследования регулярно возникало ощущение, что как-то я узко мыслю.
— Эти люди всегда найдут правильное решение.
— Да, но, после того, как перепробуют все неправильные...
По моему убеждению в настоящий момент времени ни у одного человека, ни у одной организации, ни у групп организаций нет ни сил ни ресурсов чтобы методом проб-ошибок-фантазий-гениальностей-озарений достичь существенных результатов в области построения эффективных систем автоматической работы со знаниями. Такое построение невероятно сложно и строится на множестве концепций которые даже в голове современных строителей не умещаются. Например принципы: автонормализации поступающих сигналов в нейрон или принцип приоритетного суммирования и конкуренции сигналов или вообще обратного действия через синапс и двустронних связей между слоями, если слои вообще есть. Именно поэтому в нормально работающем мозге никогда не бывает сигнальных штормов, как бы он не был настроен.
Поэтому мне видится, что современные попытки построения таких систем можно разделить на 2 категории:
1) попытки где пытаются в той или иной степени понять уже имеющиеся техники работы со знаниями и сигналами выработанные эволюцией за сотни миллионов лет и мириады попыток (мириады прожитых жизней всех живых существ и достигнутых ими результатов) и применить понятое в своей работе;
2) тупиковые фантазии.
Хорошо бы не ошибиться с выбором. Особенно в самом начале работ. Забавно, что все сообщения о каких-то достижениях относятся к работам, в которых уже имеющиеся результаты, которые достигла природа, обычно не изучают.
Значительная часть машинного обучения не имеет внятного биологического аналога, либо строилась явно не отталкиваясь от этого аналога. Бустинг, LSTM, трансформер — это всё оттуда. И такая тупая вещь, как бустинг деревьев, уже достаточно тривиально достигает сверхчеловеческих результатов в своей области применения.
Значительная часть теории автоматического управления построена без опоры на то, как управление реализовано конкретно у человека. Теория устойчивости, уравнение Беллмана, теорема о замене аналоговых элементов на дискретные — всё туда. И эта теория достаточно практична, чтобы запускать космические корабли на дальние расстояния и точно.
Поэтому мне видится, что все попытки сделать универсальную систему управления можно разделить на 2 категории:
1) Попытка скопировать у природы птиц с подвижным крылом, работающей системой размножения и кучей других сложностей.
2) Делать самолёт, не пытаясь копировать птицу.

Но может, вы и правы, кто знает. Лишь практика нас рассудит. Хотя наверняка если кто-то сделает ИИ без копирования человека, вы скажете, что это не настоящий интеллект, так как не обладает каким-то из свойств человека.
уже достаточно тривиально достигает сверхчеловеческих результатов в своей области применения

Ну калькулятор вот тоже достигает сверхчеловеческих результатов в своей области применения.


Делать самолёт, не пытаясь копировать птицу.

На птицу действуют те же законы аэродинамики, что и на самолет. Изучив законы аэродинамики, можно применить их более эффективно, чем это происходит у птиц, но сначала их надо изучить.

Ну калькулятор вот тоже достигает сверхчеловеческих результатов в своей области применения.
— да, именно поэтому для управления ракетами используют именно его, а не человеческий мозг, по крайней мере в низкоуровневых решениях.
На птицу действуют те же законы аэродинамики, что и на самолет. Изучив законы аэродинамики, можно применить их более эффективно, чем это происходит у птиц, но сначала их надо изучить.
— самолёты полетели не тогда, когда птиц хорошо изучили, а когда построили аэротрубу. Да, птиц тоже изучали, и какие-то решения действительно скопировали. Но во-первых, не всё подряд, во-вторых, аэроминамику изучали в основном не на птицах, а на чём-то, что не будет сопротивляться.

Если что, рыб тоже не копировали целиком, чтобы строить корабли — разве что очень ограниченно копировали отдельные решения, когда возникала соответствующая задача.

Сейчас ближайший аналог законов аэродинамики — это законы рациональности. В основном байесова теория вероятности, регрессионный анализ и теория принятия решений. У нас есть, на чём их изучать, помимо людей, хотя и применительно к людям иногда изучают.

Я имел в виду, что возможности калькулятора довольно далеки от того, что можно назвать интеллектом, несмотря на сверхчеловеческие результаты.


самолёты полетели не тогда, когда птиц хорошо изучили, а когда построили аэротрубу

Самолет в аэротрубе это модель парящей птицы. То есть люди заметили, что птицы парят в воздухе не двигая крыльями, изучили этот аспект, и оказалось, что его можно применить и для взлета, добавив двигатель.


Отличие тут в том, что движение птиц наблюдать проще, чем движение информации в нейронах. Здесь мало сущностей, взаимодействие которых нужно анализировать, и все их можно выделить при наблюдении. Если бы могли наблюдать сигналы каждого нейрона, то уже давно выделили бы нужные законы обработки информации, и дальше уже было бы аналогично птицам и самолетам.


Также можно отметить, что на самолет в аэротрубе действует заведомо такой же воздух с такими же законами, как и на птицу, а с нейросетями мы пытаемся придумать какой-то другой воздух со своими законами, который в некоторых законах иногда получается похож на обычный.

Я имел в виду, что возможности калькулятора довольно далеки от того, что можно назвать интеллектом, несмотря на сверхчеловеческие результаты.
— разработчики reinforcement learning пытаются воспроизвести одно вполне конкретное свойство нервной системы — свойство достигать поставленных целей. Уже сейчас без машинного обучения, на одних только «калькуляторах» есть программы прокладки пути и автоматы стыковки для космических аппаратов. Это сделано почти без машинного обучения. В RL задача отличается тем, что среда неизвестна — а так это всё тот же яндекс-навигатор, или что-то идейно очень похожее. А ещё мы можем эмулировать среду с помощью машинного обучения — тоже достаточно хорошо. Получается, что смежные задачи решены, теоретическая база есть. У нас есть два основных куска того, что можно было бы назвать интеллектом — это построение карты и поиск пути. Только эти куски пока не стыкуются.

Потом, касательно аэродинамики и птиц. Люди и правда смотрели за птицами и пытались как-то понять, как они летают. А ещё люди смотрели на других людей и создавали разные модели того, как другие люди действуют. В результате в какой-то момент возникла концепция рационального агента из экономики — это такой идеальный максимизатор функции полезности. Потом оказалось, что люди довольно далеки от рациональных агентов, но так же оказалось, что в продакшне нужен не человек, а как раз рациональный агент. А дальше шло параллельное изучение людей и рациональности — например, оказалось, что оптимальный способ изменения вероятностей моделей — это байесовская статистика, а человек по умолчанию использует другие эвристики, и у него из-за этого регулярно проблемы.
То есть тот путь, что я использую — это моделирование рационального агента, а не человека, а концепция рационального агента появилась (когда-то давно) из наблюдений за человеком. И нейросети не моделируют мозг уже довольно давно — они делают аппроксимацию функций, что нужно в контексте рационального агента, но не настолько очевидно необходимо в контексте человека.

Обычно, когда открывается что-то новое о мозге человека, то с точки зрения разработки ИИ это очередной интересный хак, эвристика, которая в каких-то случаях заставляет делать глупости, но чаще помогает. Это полезная информация, но это не что-то, что обязательно надо копировать.

Тот «воздух», в котором «летают» люди и ИИ — это не нейроны (в описанном подходе), а оптимальное управление. Подход с моделированием от нейронов может сработать, но есть основания полагать, что таким образом мы смоделируем очень много лишнего.
параллельное изучение людей и рациональности — например, оказалось, что оптимальный способ изменения вероятностей моделей — это байесовская статистика

Рациональность относится к принятию решений, а для этого уже нужен результат работы интеллекта. Принятие решений это тоже интеллект, но это просто следствие того, что выход первичной обработки используется как вход для дальнейшей обработки. Без интеллекта вы не получите из входной информации
данные, необходимые для принятия решения, разве что подготовите их другим интеллектом


Тот «воздух», в котором «летают» люди и ИИ — это не нейроны (в описанном подходе), а оптимальное управление.

В моей аналогии "законы действия воздуха на тело" это фактические законы действия нейронов на входящие сигналы. Действие реального воздуха на самолет в аэротрубе мы наблюдать можем, а действие всех задействованых нейронов на сигнал нет. Наблюдение одного или десятка нейронов не дает полной картины.


Мы пытаемся придумать законы этого взаимодействия, но не факт, что они логически будут соответствовать реальным законам, и поэтому оптимум в этих законах может быть далек от реального оптимума, который дает естественному интеллекту его возможности.
Что в общем-то и наблюдается, у вас получилось какое-то поведение, но не совсем то что нужно, хотя правила игр просты, и критерий рациональности просто сформулировать.

Рациональность относится к принятию решений, а для этого уже нужен результат работы интеллекта. Принятие решений это тоже интеллект, но это просто следствие того, что выход первичной обработки используется как вход для дальнейшей обработки. Без интеллекта вы не получите из входной информации
данные, необходимые для принятия решения, разве что подготовите их другим интеллектом
— у RL входные данные — это данные с датчиков плюс либо сигнал подкрепления, либо описание цели. На выходе действия. Вот это целиком и будет рациональный агент — в случае, если обучится, конечно. Да, теория принятия решений и байесовская статистика в чистом виде не заточены работать с raw data. Они требуют наличия предобработанных данных или гипотез, сгенерированных вручную. Либо они будут работать ужасно затратно по ресурсам — как AIXI.
Но это не значит, что такую систему сделать нельзя — весь RL именно о создании рациональных агентов в условиях, когда на входе лишь данные с сенсоров и какая-то формулировка цели.

В моей аналогии «законы действия воздуха на тело» это фактические законы действия нейронов на входящие сигналы. Действие реального воздуха на самолет в аэротрубе мы наблюдать можем, а действие всех задействованых нейронов на сигнал нет. Наблюдение одного или десятка нейронов не дает полной картины.
— я понимаю, вы описываете подход «снизу вверх». Давайте имитировать нейроны по одному, и если мы всё сделали правильно, то получится работающий мозг. Либо давайте мы изучим, как мозг делает какую-либо умственную работу и перенесём это в ИИ. Да, это тоже подход, но он видится мне более долгим и сложным, чем обкатка большого числа моделей на различных стендах.

Мы пытаемся придумать законы этого взаимодействия, но не факт, что они логически будут соответствовать реальным законам, и поэтому оптимум в этих законах может быть далек от реального оптимума, который дает естественному интеллекту его возможности.
— в данном подходе нет попытки сделать что-то, что логически соответствует реальному мозгу и его законам. Есть попытка имитировать поведение рационального агента. Человек прошёл бы эти игры лучше — это означает, то он лучше имитирует рационального агента. Это не значит, что надо имитировать человека, имитирующего рационального агента. Хотя это один из вариантов.

Вот у меня до этого была статья о том, как в других условиях и другими способами имитировать рационального агента:
habr.com/ru/post/323424
Там я использовал алгоритм статической оптимизации (комбинацию эволюции и градиентного спуска) для подбора стратегии, и конкретно там результат был лучше.

Вообще, есть какие-то аргументы за то, что надо именно эмулировать закономерности, происходящие в голове у человека, если мы хотим не совсем человеческого поведения, а поведения, которое человек всего лишь способен эмулировать ограниченное время? И с учётом того, что человека мы изучать продолжаем, но с ним нельзя быстро ставить кучу экспериментов, а с условной нейросетью можно.
Вот это целиком и будет рациональный агент

Да, получится калькулятор, заточенный на достижение конкретно этой цели на аналогичных входных данных.


Вообще, есть какие-то аргументы за то

Так я же и написал — чтобы получить именно то поведение, которое нам нужно. Чтобы что-то изучить и улучшить, нужен рабочий прототип, который работает так как нужно и на параметры которого мы можем влиять. Самолет в аэротрубе это как раз такой прототип. С интеллектом искусственный прототип мы построить не можем, а на параметры естественного не можем влиять в нужном объеме.
То есть пример с самолетом наоборот подтверждает необходимость сначала сделать "как есть". "Как есть" заключается не в махании крыльями, а во влиянии воздуха.


если мы хотим не совсем человеческого поведения, а поведения, которое человек всего лишь способен эмулировать ограниченное время?

Так сначала надо удостовериться, что способ, которым мы это делаем, логически эквивалентен тому, что делает естественный интеллект. Иначе это будет попытка получить полет птицы бросанием камня. Ну а что, летит же чуть-чуть. В пределе можно получить спутник, но не полет по воздуху.

Чтобы что-то изучить и улучшить, нужен рабочий прототип, который работает так как нужно и на параметры которого мы можем влиять. Самолет в аэротрубе это как раз такой прототип.
— у нас есть работающие прототипы отдельных подсистем — это обычный machine learning и навигаторы. Плюс есть эволюционные алгоритмы для поиска стратегий. Плюс есть reinforcement learning, которые ограниченно работают — обычно у них проблема в sample-inefficiency, а не в низкой эффективности уже обученной системы. Плюс у нас есть теоретическое понимание, что возможно большее, потому что существуют люди, и они вроде как справляются лучше. Плюс мы все эти теории вроде теории принятия решений и байесианства обкатали на модельных задачах — очень плотно обкатали. То есть у нас есть, что засовывать в аэротрубу. На многих задачах сравнивали эффективность и с человеком — где-то машина точнее, где-то хуже.

Насчёт узкой специализации RL и систем, обученных эволюционными алгоритмами. Я бы не сказал, что они прямо чётко под одну задачу заточены. Можно их обучить, например, под 2 задачи или под 5 — я проводил такие эксперименты. Чем больше задач, тем результат, конечно, хуже. Потом, был эксперимент, где человек обучал систему RL на многих задачах сразу, и в результате получилась нейросеть, которая ведёт себя как RL. То есть мы закончили фитить все нейросети, мы выпускаем одну, управляющую нейронку в новое окружение, и она ведёт себя как мини-RL.

Ну и мы знаем довольно точно, что базовые принципы RL — это не совсем те, на которых работают люди. Местами похоже, но скорее выглядит так, будто и люди, и RL — это ощутимо разные «копии» с одного «оригинала». И у них разные проблемы — например, большинство известных мне когнитивных искажений хорошо описываются как отклонение от «идеального» AIXI в сторону костылей, порождённых эволюцией. (про AIXI статья, если нужно habr.com/ru/post/562560 )

В любом случае, по вашему направлению есть какие-нибудь практические результаты, хотя бы в виде прототипов? Какие-нибудь теории, как получить что-то похожее на рационального агента, но не сводящегося к AIXI или существующим RL?
И есть ли основания считать, что мы на выходе получим какую-то целостную конструкцию, а не кучу костылей, которые вместе удерживает лишь «магия» эволюции?
То есть у нас есть, что засовывать в аэротрубу.

Вы не поняли этот пример. Все нейросети, которые мы "засовываем в аэротрубу", придуманы нами, и мы не знаем, насколько они соответствуют реальному интеллекту. А воздух для самолета в аэротрубе заведомо соответствует реальному воздуху, в котором летают птицы. Изучение нейросетей ничего не даст для понимания работы интеллекта, в крайнем случае мы сможем сказать "ну это работает точно не так, как у людей", или случайно наткнуться на нужный вариант перебором.


В любом случае, по вашему направлению есть какие-нибудь практические результаты, хотя бы в виде прототипов?

Нет конечно, иначе бы давно на всех углах трубили про сильный ИИ.


Какие-нибудь теории, как получить что-то похожее на рационального агента

Не очень понятно, зачем нам теории получения специализированного калькулятора, подразумевающие максимизацию целевой функции. Нужна универсальность, а не специализированность.
У меня вот есть теория, что такое интеллект. По ней определение интеллекта не требует активных действий агента.


И есть ли основания считать, что мы на выходе получим какую-то целостную конструкцию, а не кучу костылей

Конечно. Мы же создаем не теорию для получения кучи костылей, а теорию для получения возможностей человека. Ту, которой не хватает для превращения нейросетей в сильный ИИ.


AIXI

AIXI это какая-то теоретическая теория, которая подразумевает полный перебор для нормальной работы. В Вики так и написано "AIXI is incomputable". А если делать аппроксимацию без полного перебора, которая выбирает варианты, то она подразумевает интеллектуальную функцию выбора.


Из Вики "The AIXI agent is associated with a stochastic policy pi, which is the function it uses to choose actions at every time step". Вот эта stochastic policy и есть интеллект. Также там используется понятие "reward", его расчет это тоже интеллект, он подразумевает построение модели окружающей среды из информации с датчиков. То есть для обоих этих понятий уже требуется интеллект. Фактически, AIXI означает "пусть у нас есть агент с правильным интеллектом, тогда если ему дать достаточно времени подумать, то он будет действовать оптимально". Ну да, только это ничего не говорит о том, как сделать этот интеллект.

Все нейросети, которые мы "засовываем в аэротрубу", придуманы нами, и мы не знаем, насколько они соответствуют реальному интеллекту.

Мы не пытаемся делать, чтобы они соответствовали человеку, мы пытаемся сделать, чтобы они соответствовали задаче - универсальной оптимизации. У меня проверка - это не про человека, а про про способность достигать широкого спекта целей.

Не очень понятно, зачем нам теории получения специализированного калькулятора, подразумевающие максимизацию целевой функции. Нужна универсальность, а не специализированность.

То, что я описываю - не специализированный калькулятор, а универсальный. Прокладчик маршрутов, достигатель целей. Любых, которые можно сформулировать. В реальном мире, а не на моделях. RL - это именно универсальный ИИ - не в смысле абсолютно универсальный, а в смысле "если вы ему дадите задачу, он её скорее осилит, чем нет".

Конечно. Мы же создаем не теорию для получения кучи костылей, а теорию для получения возможностей человека. Ту, которой не хватает для превращения нейросетей в сильный ИИ.

Мне человек видится кучей костылей. Эволюция только так и работает. Если почитать про когнитивные искажения, сами увидите - там эвристика на эвристике... Чуть-чуть выйди за зону определения и всё начинает глючить, и это очень непросто отловить.

А если делать аппроксимацию без полного перебора, которая выбирает варианты, то она подразумевает интеллектуальную функцию выбора.

Какие-то эвристики конечно нужны. Но это совершенно не тот уровень эвристик, что нужен, чтобы создать интеллект вроде человеческого. Эволюция, градиентный спуск и прочие механики довольно просты, а создают сложные конструкции. Ну и вообще, AIXI - это модельная концепция для доказательства теорем об RL, а не сам RL. Сами RL гораздо более эвристичны.

"пусть у нас есть агент с правильным интеллектом, тогда если ему дать достаточно времени подумать, то он будет действовать оптимально"

если дать достаточно времени подумать, то даже простой довольно вариант реалистичного AIXI будет выигрывать. Да даже эволюция и перебор стратегий будет выигрывать.

Мне человек видится кучей костылей.

Правильный перевод с одного языка на другой это куча костылей?
А отслеживание прочитанного текста и изложение своими словами?


Я говорю про те задачи, которые еще не решаются нейросетями, и про теорию для них.


То, что я описываю — не специализированный калькулятор, а универсальный. Прокладчик маршрутов, достигатель целей. Любых, которые можно сформулировать.

Вот я как раз про это и говорю. Вы сначала задаете цель, потом делаете много попыток обучения, потом ее достигаете. У вас получается обученная нейросеть, которая достигает только эту цель и больше никакую, для другой цели надо обучать заново. Формулируя цель, вы задаете специализацию. Механизм обучения может и универсальный, а результат специализированный.

Правильный перевод с одного языка на другой это куча костылей?
А отслеживание прочитанного текста и изложение своими словами?

Я говорю про те задачи, которые еще не решаются нейросетями, и про теорию для них.

я смотрю на все задачи в сумме. У меня нет теории, исходя из которой можно было бы создать оптимальный перевод или увидеть неоптимальности в существующем переводе. Да и вообще, я не уверен, что можно точно сформулировать перевод как задачу оптимизации с каким-то конкретным loss, не зависящим от людей.

В то же время у человека есть куча эвристик - например, широко известная эвристика доступности. Кажется (не лично вам, а опрос был), что убийства происходят чаще самоубийств, но достаточно посмотреть на данные - и окажется, что расклад другой. Но об убийствах вспомнить проще. Или люди сильнее боятся авиакатастроф, чем автомобильных аварий.
И если человек узнает, что у него есть такая вот эвристика, это не значит, что потом, всякий раз, когда она срабатывает, у него всплывает окно "внимание, используем устаревшую эвристику, результаты ненадёжны". Нет, эвристика работает так, будто бы и нет инфы о том, что она устарела.

Или страх высоты, когда мы идём по прозрачному мосту. Не у всех, у некоторых. Оптимальный рациональный агент не боялся бы такого - он бы боялся бургера, потому что он приближает к инфаркту.

Если почитать о когнитивных искажениях и о том, почему они существуют, как эволюция их породила, то человек начинает выглядеть именно как куча эвристик, наклееных друг на друга, и в некоторых условиях реализующих что-то наподобие оптимального поведения. Но без какого-либо математически правильного рационального ядра в основе всей конструкции.

Потом, в мире существуют, например, психотерапевты, и существуют люди, которым нужны их услуги. "Чистому коду" не понадобились бы услуги психотерапевта, у него бы не было такого, что он забаговал, видит это, понимает, что надо изменить, и не может.

И крайне маловероятно, что люди, состояние из таких склееных эвристик, оптимально переводят или пересказывают тексты. Лучше существующих ботов - согласен, но оптимально - вряд ли.

Но конкретно в этих задачах loss сильно завязан на людей - нельзя точно узнать, понятен ли текст, если не спросить фидбэк. Так что возможно, задачи на взаимодействие с людьми ИИ (как его я описываю) будет решать систематически хуже, чем другие люди, так как у него не было сотен тысяч лет сбора датасета и обучения.

Вот я как раз про это и говорю. Вы сначала задаете цель, потом делаете много попыток обучения, потом ее достигаете. У вас получается обученная нейросеть, которая достигает только эту цель и больше никакую, для другой цели надо обучать заново.

Это применимо к model-free reinforcement learning. Которые предсказывают сигнал награды в случае действий таких-то. Есть ещё model-based и всякие вариации на тему, вроде того же дримера. Они не такие - они выучивают модель мира, а затем достигают сформулированной цели. Как яндекс-навигатор: карта одна, а целей сколько угодно.

Разумеется, если model-free систему перенести в совсем другое окружение, ей придётся переучивать модель мира - но для человека ситуация не лучше.

Вы говорили, у вас есть своя концепция интеллекта. Определение, как вы говорите, но по факту же наверняка целая концепция, и это не рациональный агент. Расскажете?

Опечатка.
"Разумеется, если model-based систему перенести в совсем другое окружение, ей придётся переучивать модель мира - но для человека ситуация не лучше. "

Да и вообще, я не уверен, что можно точно сформулировать перевод как задачу оптимизации с каким-то конкретным loss, не зависящим от людей.

Из этого следует, что рациональных агентов, которых вы описываете, нельзя обучить правильному переводу. А значит они работают не так, как человек. У нас есть факт, что статистически значимое количество людей может оценить перевод как правильный, и факт, что мы пока не можем обучить этому нейросети. Значит есть какое-то качественное различие.
Оно же проявляется и в том, что человеку нужно значительно меньше данных, чтобы выучить язык. Достаточно 2-3 года звуковой информации, в виде текста это не так много по сравнению с тем, на каких датасетах обучают лучшие нейросети.


Лучше существующих ботов — согласен, но оптимально — вряд ли.

Так я и говорил про лучше, а не про оптимально. Причем лучше именно по критерию осмысленности. Боты часто выдают бессмысленный текст, думаю надо отличать это от осмысленного, но неправильного перевода.


В то же время у человека есть куча эвристик

Причем здесь эвристики, ну есть и есть, я говорю не про когнитивные искажения, а про выполнение задач. У разных переводчиков могут быть разные когнитивные искажения, при этом среднестатистический текст они переведут среднестатистически одинаково. Когнитивные искажения не помогают им переводить текст.


Вы говорили, у вас есть своя концепция интеллекта. Расскажете?

У меня есть тут статья на эту тему. Определение звучит так:
Интеллект — это способность информационной системы строить модель окружающей среды на основе входящей информации.

Из этого следует, что рациональных агентов, которых вы описываете, нельзя обучить правильному переводу. А значит они работают не так, как человек. У нас есть факт, что статистически значимое количество людей может оценить перевод как правильный, и факт, что мы пока не можем обучить этому нейросети.

не совсем. Пока у нас нет статистически значимого числа людей, готовых оценивать переводы, задача не до конца определена, и у нас нет оснований считать, что один перевод лучше другого. А если они у нас есть эти оценщики, то нет каких-то принципиальных причин, почему задачу перевода нельзя решить через РА. Скажем так, если РА не может решить корректно поставленную задачу, а что-то другое может, имея те же данные - значит, у нас не РА.

Значит есть какое-то качественное различие.Оно же проявляется и в том, что человеку нужно значительно меньше данных, чтобы выучить язык.

Это качественное различие заключается в том, что люди как вид существуют ~6 млн лет, и всё это время они "собирали датасет", а ещё их предки собирали датасет миллионами лет. Эволюция обучает неэффективно, но при таком огромном числе данных она вполне могла вбить в гены и примерное описание мира, в котором мы живём, и какие-то механики для связи, которые для нас выглядят как способность обучиться языку за минимальное время. Пчёл вот никто языку не учит, система связи у них задана исключительно генетически. Это один конец спектра. Другой конец - система ML, у которой нет никаких предвзятостей, и которая готова учить что угодно, хоть язык - лишь бы данных хватило. А человек где-то между ними. Вообще, в статье я даже рассказал, как с этим бороться - надо делать предобученный энкодер. Но это общая идея - такого датасета, как у эволюции, у нас не будет, значит, придётся выкручиваться как-то иначе. А может, эту задачу нельзя решить просто - и РА придётся очень много взаимодействовать с людьми, чтобы обучиться языку.

В общем, люди изучают не любой язык за 2-3 года, а очень узкое подмножество языков - человеческие языки (а не, например, язык связи Пионера-11 с Землёй или язык пчёл). Границы этого подмножества заданы генетически, тем самым датасетом в миллионы лет. То есть мозг ищет не во всём множестве закономерностей, а в относительно небольшом.

Причем здесь эвристики, ну есть и есть, я говорю не про когнитивные искажения, а про выполнение задач. У разных переводчиков могут быть разные когнитивные искажения, при этом среднестатистический текст они переведут среднестатистически одинаково. Когнитивные искажения не помогают им переводить текст.

Моё исходное утверждение было такое: у человека (видимо) нет целостного рационального ядра, но точно есть куча эвристик, каждая из которых имеет свои баги. Куча сервисов, каждый делает что-то своё, некоторые давно устарели, а чего-то централизованного нет.

Вы поставили, как я понял, под сомнение этот тезис. И привели частную задачу, которую человек решает лучше, чем ИИ. Я привёл куда в пример механики мышления, которые являются эвристиками, и которые нельзя просто так взять и проапдейтить. Чего не хватает, чтобы признать, что перед нами куча модулей, слепленных эволюцией в относительно рабочую конструкцию? Мне привести в пример конкретные задачи, где человек фейлит, и с этим ничего нельзя сделать, а машина справляется?

По-моему, слабость RL систем - это намного более сильный аргумент, что у нас что-то не так с подходом к ИИ, чем неспособность машин делать перевод.

Или вы имеете в виду, что если мы будем хорошо изучать людей, то нам не нужен будет огромный языковой датасет, мы просто сможем скопировать те ограничения на язык, что есть в человеческом мозгу, и реализовать быстрый перевод?

Это качественное различие заключается в том, что люди как вид существуют ~6 млн лет, и всё это время они "собирали датасет", а ещё их предки собирали датасет миллионами лет.

Та информация, которая используется при изучении языка, миллионы лет не собиралась. Откуда у эволюции концепт Золушки и феи, да еще на всех языках, которые появились в течение последних 300 лет.
И дети-магули сами по себе языком не овладевают, а после взросления их, говорят, вообще сложно научить.


В общем, люди изучают не любой язык за 2-3 года, а очень узкое подмножество языков — человеческие языки

Они изучают тот язык, которому их учат. Будете учить языку пчел, научатся языку пчел. Язык жестов например по своему принципу не так уж от этого отличается.


Границы этого подмножества [языков] заданы генетически, тем самым датасетом в миллионы лет.

Невозможно задать генетически за миллионы лет границы языка, который появился 100-200 лет назад.


Я привёл в пример механики мышления, которые являются эвристиками

Вы привели то, что мешает человеку выполнять задачи, а я говорю о том, что помогает. Есть задача перевода, и человек с ней справляется. И справляется лучше машины, хотя по вашим словам должно быть наоборот, раз машина конитивным искажениям не подвержена. Значит дело не в когнитивных искажениях.


Мне привести в пример конкретные задачи, где человек фейлит, и с этим ничего нельзя сделать, а машина справляется?

Зачем? Это не отменит того факта, что с переводом и со многими другими задачами человек справляется лучше машины.
В тех задачах, где человек фейлит, мы знаем, почему так получается и как улучшить результат. В тех, где машина фейлит, не знаем.


Или вы имеете в виду, что если мы будем хорошо изучать людей, то нам не нужен будет огромный языковой датасет, мы просто сможем скопировать те ограничения на язык, что есть в человеческом мозгу, и реализовать быстрый перевод?

Откуда в человеческом мозгу ограничения на современный русский язык?
Ребенок рождается в любой стране и учит использующийся в ней язык за 2-3 года. У него не может быть датасета, связанного с конкретными словами этого языка. Не может быть заданных эволюцией понятий типа "автомобиль", "смартфон", все они изучаются посредством наблюдений. Причем даже зрительная информация для изучения речи не требуется.
Какие характеристики автомобиля и смартфона могут быть заданы в генах и помочь усвоить эти понятия при обучении? Только то, что это физические объекты с формой, ну и звуки могут издавать.


Я имею в виду, что мы можем изучить принципы, по которым обучается естественный интеллект, и которые дают ему его возможности. Я считаю, что нужные принципы еще не найдены.

Вы привели то, что мешает человеку выполнять задачи, а я говорю о том, что помогает.

я привёл примеры механик, из которых сделано мышление. Это не что-то, что приходит извне и мешает - это у нас детали такого качества. Эти детали одновременно помогают в одних задачах и мешают в других.

Та информация, которая используется при изучении языка, миллионы лет не собиралась. Откуда у эволюции концепт Золушки и феи, да еще на всех языках, которые появились в течение последних 300 лет.

давайте попробуем с другой стороны. В языке есть закономерности. Закономерности, например, какие предложения правильные, какие нет, как тексты соотносятся с реальностью и так далее. Эти закономерности ребёнок выучивает за 2-3 года. Далее, вопрос: а может ли эти закономерности выучить непредвзятая система поиска закономерностей, имея столько же данных? Мы берём не какую-то ущербную систему, которая данные теряет, а такую, которая близка к оптимальности. Например, такой системой является feed forward нейросеть - она довольно универсальна и непредвзята - не имеет каких-то конкретных сильных сторон, её эффективность равномерно размазана по очень широкому спектру возможных закономерностей. Всё как в no free lunch theorem.

Если мы так зададим вопрос, ответ будет "нет". Нейросеть не выучит язык за такое количество данных. И бустинг деревьев не выучит. Они не заточены работать с последовательностями.

Хорошо, возьмём самое универсальное, что у нас есть для последовательностей. LSTM, GRU, трансформер. Они научатся отличать правильные тексты от неправильных, если имеют тот же датасет, что и человек?

А здесь два варианта:

1) Да, научатся. Это значит, что у человека нет какой-то особо специализированной системы в мозгу для изучения языка - любая предсказательная система сойдёт.

2) Нет, не научатся. Закономерности есть, данным соответствуют, но нейросеть найдёт другие, неправильные закономерности, которые тоже соответствуют данным. Это значит, что у человека в мозгу есть что-то, заточенное именно под восприятие языка, то есть есть какие-то генетические ограничения того, каким может быть язык, и именно благодаря этим ограничениям его можно выучить быстро.

Ну, есть ещё 3-й вариант - что нейросеть обучится до плохого loss и застрянет... Но это будет означать, что мы её недообучили - нейросеть почти всегда можно переобучить и получить околонулевой loss.

Есть подход к машинному (и не только обучению). Любая необученная система ML - это множество гипотез, у каждой какая-то своя априорная вероятность. А потом мы обучаем модель - и у нас остаётся одна конкретная гипотеза. Если мы всем гипотезам проставляем равные априорные вероятности, то выходит универсальная и неспециализированная система, которая может всё, но требует много данных. Если ставим каким-то гипотезам нулевую априорную вероятность - у нас выходит неуниверсальный ML - например, линейная регрессия. Если же мы разным гипотезам присваиваем разную априорную вероятность, получается система, которая хорошо, с малого числа статистики улавливает некоторые гипотезы. А все остальные гипотезы требуют избыточно большого числа данных, иначе мы будем ошибаться и промахиваться мимо них. Например, если мы вводим регуляризация в нейросети, мы заставляем её быть предвзятой в пользу тех гипотез, где веса сети поменьше.

У нас как бы есть фиксированная "площадь под графиком", и мы её можем поделить между разными гипотезами. В результате можно получить или "равномерный график" - одинаковую околонулевую эффективность на всех задачах. Или "график с выраженными пиками" - то есть наша информационная система будет хорошо различать какие-то из гипотез в узком подмножестве, но на все остальные закономерности потребует очень много данных.

Так вот, есть куча фактов, указывающая на то, что у человека в мозгу универсальная, но очень предвзятая обучающаяся система. Предвзятая в пользу тех закономерностей, которые реально существуют и реально важны. Выглядит это так: есть ряд закономерностей, которые человек распознаёт лучше, чем нейросеть. И есть все остальные, где нейросеть лучше (ну или не нейросеть, а бустинг).

Вы задумывались когда-нибудь, почему человек может научиться распознавать букву, увидев её 1-2 раза, а обычная нейросеть так не может даже близко? Что это за магия, и почему она так лихо забивает на все закономерности работы с информацией? Моё (ну, не лично моё) объяснение в том, что у взрослого человека выстроена предвзятость в отношении символов: он легко различает закономерности, связанные с формой букв. При этом он не заметит кучу других закономерностей - например, что эта необычная буква всегда необычным образом смазана, или на одной странице с ней всегда есть некий дефект бумаги.

Язык - одна из тех закономерностей, где у человека есть предвзятость. Насколько я понял, вы с этим не согласны? И по-вашему язык - такая же закономерность, как и все остальные?

Тогда что это означает? Что если дать непредвзятой нейросети тот же датасет, что и ребёнку (то есть 100% сигналов со всех нервов), дать ещё датасеты от 2-3 детей на случай, если наши нейросети неоптимальны по данным - то он осилит язык на уровне ребёнка? Или это означает, что нейросети неоптимальны по данным по сравнению с людьми - у них другая "площадь под графиком", и сумма априорных вероятностей больше 100%?

Эти детали одновременно помогают в одних задачах и мешают в других.

Я про это и говорил. То, что вы привели, в изучении речи или переводе текста не помогает. И вообще нельзя выделить каких-то когнитивных искажений, которые бы помогали переводу текста. Перевод текста это именно обработка информации.


я привёл примеры механик, из которых сделано мышление. это у нас детали такого качества

Вы утверждаете, что кроме таких деталей ничего нет, и только они дают результат, а я говорю, что есть, и они лишь вносят какие-то отклонения в результат.


Например, такой системой является feed forward нейросеть — она довольно универсальна и непредвзята
Они не заточены работать с последовательностями.

Ну так если она не может выполнить такую задачу, значит она не универсальна.


А здесь два варианта:
Нет, не научатся. Закономерности есть, данным соответствуют, но нейросеть найдёт другие, неправильные закономерности, которые тоже соответствуют данным. Это значит, что у человека в мозгу есть что-то, заточенное именно под восприятие языка

Нет, есть еще третий вариант. Это значит, что у них нет тех алгоритмов обработки информации, которые есть у человека. Они не заточены именно под восприятие языка, а просто работают по-другому, что позволяет извлекать закономерности более эффективно.


А потом мы обучаем модель — и у нас остаётся одна конкретная гипотеза. Если мы всем гипотезам проставляем равные априорные вероятности, то выходит универсальная и неспециализированная система, которая может всё, но требует много данных.

Какая же она универсальная, если требует много данных, да еще и заранее известные гипотезы? Для случая, когда данных мало, или гипотезы заранее неизвестны, она не подходит.


У родившегося ребенка нет никаких гипотез, какой язык его окружает, он изучает тот, который есть.


Предвзятая в пользу тех закономерностей, которые реально существуют и реально важны.

Вы ушли от ответа на вопрос, который я в предыдущем комментарии задал несколько раз. Какие конкретно врожденные предвзятые закономерности, которых нет у нейросети, позволяют человеку выучить произвольный язык с любыми современными понятиями?


Вы задумывались когда-нибудь, почему человек может научиться распознавать букву, увидев её 1-2 раза, а обычная нейросеть так не может даже близко?

Я не только задумывался, я об этом говорю во всем этом обсуждении. У человека есть алгоритмы обработки информации, которые делают это более эффективно, чем те, которые используются в нейросетях. Они не специализированы, а наоборот универсальны. Это может быть буква, звук, предмет, паттерн во времени. Распознавание с 1-2 раз проявляется не только для букв.


Что это за магия, и почему она так лихо забивает на все закономерности работы с информацией?

Почему вы решили, что здесь есть нарушение закономерностей работы с информацией? Данные на жесткий диск вообще с одной попытки записываются и потом долго хранятся.


например, что эта необычная буква всегда необычным образом смазана, или на одной странице с ней всегда есть некий дефект бумаги.

Ну так может быть потому что это само по себе менее заметно? Меньше объем зрительной информации, которая передает эту закономерность, или амплитуда сигнала. Контрастность темной буквы на светлом фоне больше, чем не очень светлой маленькой точки на светлом фоне в одном и том же углу листа, нейроны для букв дают более частые импульсы, поэтому и внимание сначала обращается на те области.


Как видите, можно найти объяснение, не связанное с формой букв.


Насколько я понял, вы с этим не согласны? И по-вашему язык — такая же закономерность, как и все остальные?

Да.


то есть 100% сигналов со всех нервов
дать ещё датасеты от 2-3 детей

Но дети не учатся на датасетах от еще 2-3 детей, они учатся только на своем.
Для изучения речи не нужно 100% сигналов со всех нервов. Люди, слепые от рождения, тоже овладевают речью, значит зрительная информация для этого не нужна. А сущности типа Золушки или дракона вообще в реальности не существуют, потрогать их нельзя, поэтому и тактильная информация для большинства понятий не нужна.


3 года непрерывного аудио за исключением 8 часов сна занимают 100Мб/ч * 16ч * 365 * 3 = 1.7Тб, а в виде слов 1Гб или 100млн слов (посчитал по субтитрам к фильму, 60Кб и 6000 слов на 1 час). Это оценка для наиболее информативного канала, остальные будут меньше. В словах считать не совсем корректно, так как есть другие звуки (интонации, шумы, мелодии), но их можно считать отдельными каналами. То есть десяток каналов уже распознанных данных это 10Гб.


Или это означает, что нейросети неоптимальны по данным по сравнению с людьми

Нейросети неоптимальны по алгоритмам по сравнению с людьми.
Поэтому современные нейросети на том же датасете не осилят язык на уровне ребёнка. Так же как не осилят программы типа sum(data) или rand(data), это просто не те алгоритмы, которые нужны.

Ну так если она не может выполнить такую задачу, значит она не универсальна.

как вообще устроен любой ML? У него предзадано некоторое пространство гипотез, и он выбирает обычно какую-то одну гипотезу, которая лучше всего соответствует данным. Пространство гипотез - это обычно или пространство всех функций (в математическом смысле), или пространство всех алгоритмов. Или урезанное пространство функций, либо алгоритмов. Именно эта урезанность и определяет, универсальный у нас ML или нет.

Например, бустинг деревьев может, при наличии данных, имитировать любую функцию с любой точностью. И нейросеть (2+ слоя и достаточно много нейронов) тоже может, есть теорема на эту тему. А вот линейная регрессия не может: сколько данных ей ни дай и в каком режиме не обучай, она никогда не подберёт функцию y=x^2 с нулевой ошибкой.

Универсальность ML-алгоритма проверяется именно таким тестом.

Человек работает приблизительно в алгоритмически полном пространстве, то есть множество гипотез, которые он может вообразить, примерно совпадает с множеством всех машин Тьюринга. Примерно - потому что вы не сможете эмулировать в голове сложный алгоритм, памяти не хватит. Есть ли у нас ML, которые работают в этом же пространстве? Да, из практически применимого есть трансформер, который тоже близок в алгоритмической полноте. Есть ещё непрактичный NTM, который гарантированно полон по Тьюрингу, то есть гарантированно нет гипотезы, которую мог бы вообразить человек, но не смог бы NTM.

Какая же она универсальная, если требует много данных, да еще и заранее известные гипотезы? Для случая, когда данных мало, или гипотезы заранее неизвестны, она не подходит.

Насчёт гипотез я понятно сказал? Нет никаких заранее известных гипотез, есть пространство поиска - либо все функции, либо все машины Тьюринга (=все закономерности, которые можно сформулировать).

Насчёт большого числа данных. Я в своё время проводил эксперимент. Мне нужно было подобрать функцию, и я искал для этого ML. Функция была монотонная и крайне шумная, а ещё у меня было мало данных. Итак, сколько данных надо было, чтобы её подобрать и не переобучиться?

Для нейросети - ~500 точек, для бустинга ~100, для нейросети - 4. Всё, 4 точки, и функция задана с достаточно хорошей точностью. Как вы считаете, откуда такая радикальная разница? По-моему, если не понять этот момент, просто нет смысла обсуждать то, что люди могут изучить язык за 2-3 года, а ML - нет.

Моё объяснение такое: универсальные модели ML - бустинг и нейросеть - ищут в большом пространстве гипотез. А линейная модель - в маленьком. Поэтому линейная модель, конечно же, найдёт быстрее. Или не найдёт, если это невозможно. И все случаи, когда некоторая модель учится аномально быстро, означают, что она ищет в малом пространстве гипотез, то есть она не универсальна. Либо, как вариант, модель всё же универсальна, но за пределами своей сильной зоны она учится ещё хуже (по данным), чем обычная нейросеть.

Я не только задумывался, я об этом говорю во всем этом обсуждении. У человека есть алгоритмы обработки информации, которые делают это более эффективно, чем те, которые используются в нейросетях. Они не специализированы, а наоборот универсальны. Это может быть буква, звук, предмет, паттерн во времени. Распознавание с 1-2 раз проявляется не только для букв.

вы можете описать, как устроены алгоритмы, которые могут обучаться чему угодно с 1-2 предъявлений? Безотносительно человека. У меня есть описание, я его в основном привёл. Весь one-shot learning построен вокруг этой идеи (искусственное смещение априорных вероятностей гипотез), то есть это не какая-то маргинальная теория.

Нет, есть еще третий вариант. Это значит, что у них нет тех алгоритмов обработки информации, которые есть у человека. Они не заточены именно под восприятие языка, а просто работают по-другому, что позволяет извлекать закономерности более эффективно.

в той концепции, что я описываю, такой вариант либо невозможен, либо будет частным случаем других вариантов. Всё, что у нас есть - это множество гипотез. Ещё может быть важен способ перебора гипотез - но только если он слишком плохой. Сейчас языковые модели ищут в почти что алгоритмически полном пространстве. А люди, видимо, нет: есть какие-то инварианты, которые резко сокращают пространство поиска.

У родившегося ребенка нет никаких гипотез, какой язык его окружает, он изучает тот, который есть.

как я уже писал выше, гипотезы есть в неявном виде - это всё пространство языков, которые он теоретически мог бы выучить.

Вы ушли от ответа на вопрос, который я в предыдущем комментарии задал несколько раз. Какие конкретно врожденные предвзятые закономерности, которых нет у нейросети, позволяют человеку выучить произвольный язык с любыми современными понятиями?

у меня нет конкретного ответа, я об этом сужу по косвенным признакам: это было бы эффективно с точки зрения эволюции, человек в эволюционно-значимых областях редко обычно предвзят, ну и датасет у GPT-3 намного больше, чем у типичного ребёнка.

Могу привести примеры предвзятостей, которые у человека есть и мне известны (и не связаны с языком). При распознавании причинно-следственных связей люди более вероятно посчитают два события связанными, если они происходили близко по времени. При распознавании картинок и видео у нас есть концепция объекта - некого множества точек близкого цвета и близко расположенных, не меняющегося во времени резко.

Почему вы решили, что здесь есть нарушение закономерностей работы с информацией? Данные на жесткий диск вообще с одной попытки записываются и потом долго хранятся.

вы вообще пробовали закодить распознавание символов? Вы понимаете, что если человеку предъявить два незнакомых символа, и спросить, являются ли они одним и тем же символом, то это будет в общем случае нерешаемая задача? Ту же букву альфа можно написать с ощутимо разными пропорциями, в каком-то случае она будет похожа на русскую "а", а в каком-то на двойку. Буква "альфа" может выглядеть множеством разных способов, двойка может выглядеть множеством способов, буква "а" тоже. Провести границы между этими тремя множествами, имея всего два экземпляра на три множества - это задача с большой долей неопределённости. А множеств не три: мы сравниваем обнаруженный символ со всеми другими символами, в том числе теми, которых никогда не видели.

Когда данные записываются на жёсткий диск, никакого подобно поиска границ множеств не происходит.

Но дети не учатся на датасетах от еще 2-3 детей, они учатся только на своем.

это было на случай, если вы считаете, будто бы человеческий мозг и правда лучше работает с данными, чем нейросеть - не в нескольких областях специализации, а в сумме. Если бы было так, то увеличение числа данных уравняло бы их. Если не уравнивает - значит, проблема не sample-efficiency вообще, а в разных пространствах поиска.

А сущности типа Золушки или дракона вообще в реальности не существуют, потрогать их нельзя, поэтому и тактильная информация для большинства понятий не нужна.

неизвестно, насколько эта информация нужна. Она может быть нужна по каким-то консвенным причинам. В любом случае, у штук вроде GPT-3 есть очевидная проблема: для них язык - это что-то, что предсказывается. А для людей язык - это инструмент решения задач в большом мире, где есть далеко не только язык. Поэтому GPT-3 может говорить довольно бессмысленные вещи, которые человек вряд ли сказал бы. Поэтому я сказал про весь сенсорный опыт.

Человек работает приблизительно в алгоритмически полном пространстве, то есть множество гипотез, которые он может вообразить

Когда человек видит в первый раз кошку, он не воображает никакую кошку. Он видит неизвестное ему ранее животное. Он извлекает отличительные характеристики кошки из входной информации, а не подтверждает входной информацией гипотезы о том, какие характеристики он может наблюдать.


И все случаи, когда некоторая модель учится аномально быстро, означают, что она ищет в малом пространстве гипотез. Либо, как вариант, модель всё же универсальна, но за пределами своей сильной зоны она учится ещё хуже, чем обычная нейросеть.

И по каким причинам вы не рассматриваете вариант, что некоторая модель учится аномально быстро потому что у нее лучше способность к извлечению закономерностей? Из вашего объяснения это не понятно.


Вы говорите "для нейросети — ~500 точек, для бустинга ~100", и при этом "бустинг деревьев может имитировать любую функцию с любой точностью". Значит бустинг учится быстрее нейросети в том же большом пространстве и с теми же данными? Почему вы думаете, что нельзя еще быстрее?


Вы можете описать, как устроены алгоритмы, которые могут обучаться чему угодно с 1-2 предъявлений?

Если бы кто-то знал как это описать, сильный ИИ давно бы уже изобрели.


Ну я вот вам привел пример сохранения данных на жесткий диск, он с одного предъявления происходит. Скажете, это слишком тривиальный случай обучения, когда входные данные равны выходным?) Ну тогда сумма элементов массива. Этот алгоритм производит вычисления над входными данными и всегда получает одинаковый достоверный результат, который можно сразу сохранить. Вот и в распознавании информации может быть такой алгоритм.


то есть это не какая-то маргинальная теория

Это не значит, что это единственно возможная теория.


Всё, что у нас есть — это множество гипотез. Сейчас языковые модели ищут в почти что алгоритмически полном пространстве.

Ну так если "ищут", значит есть не только гипотезы, но и алгоритм поиска. Вот я и говорю, что у человека он лучше.


А люди, видимо, нет: есть какие-то инварианты, которые резко сокращают пространство поиска.

Либо люди извлекают их из входной информации.


гипотезы есть в неявном виде — это всё пространство языков, которые он теоретически мог бы выучить

Если они не заданы заранее, тогда эти возможности определяются архитектурой взаимосвязей нейронов, характером их взаимодействия. В математическом виде это область возможных значений функции, описывающей взаимодействия, которая определяется ее алгортимом. О чем я и говорю. Даже если надо просто сузить пространство поиска, мы все равно не знаем, как это сделать в нейросетях. Но мне кажется, все равно дело не в этом.


Давайте оценим это пространство. Слова обычно состоят из слогов, в которых есть согласная и гласная, их набор схож во всех языках. Возьмем в среднем 10 гласных и 20 согласных. Из опыта мы знаем, что человек может выучить любое слово, состоящее из слогов такой структуры.


Вариантов "согласная+гласная" 200 штук. В одном слове в среднем от 1 до 6 слогов. 6 слогов дают 200^6 = 64000000000000 возможных вариантов звучания слова. Довольно большое пространство, вам не кажется?) А для предложений оно еще больше.


Вы понимаете, что если человеку предъявить два незнакомых символа, и спросить, являются ли они одним и тем же символом, то это будет в общем случае нерешаемая задача? Ту же букву альфа можно написать с ощутимо разными пропорциями, в каком-то случае она будет похожа на русскую "а", а в каком-то на двойку.

Ага, только если вы скажете "это одна и та же буква", он запомнит это сразу.
У нас не было задачи сравнить 2 незнакомых символа, по условиям примера человек заведомо знает, что изучает одну букву, и мы говорили о том, со скольки попыток он ее запомнит.
И если он запомнит одно написание, а вы потом покажете другое, он скажет "ну вроде эта буква похожа на букву альфа, которую ты раньше 2 раза показывал".


Провести границы между этими тремя множествами, имея всего два экземпляра на три множества — это задача с большой долей неопределённости.

Говоря этими терминами, нам не надо проводить границы между этими множествами, нам надо запомнить характеристики одного экземпляра множества, а уже потом мы будем сравнивать, насколько следующая буква отличается от этой. А может и не будем, а человек будет просто пытаться ее нарисовать. Как думаете, похоже нарисует?)


Если бы было так, то увеличение числа данных уравняло бы их. Если не уравнивает — значит, проблема не sample-efficiency вообще

Мне этот вывод не кажется логичным. Если у нас "функция обучения" это sum(data), то сколько данные не увеличивай, она все равно не будет настолько же sample-efficient.


Она может быть нужна по каким-то косвенным причинам.
А для людей язык — это инструмент решения задач в большом мире, где есть далеко не только язык

Ну так я же ее посчитал. Тактильная для некоторого процента данных, запахи, и несколько каналов звуковых. Задачи, которые надо решать, в них и описаны. Будет около 10 размеченных каналов. Как думаете, GPT-3 научится на 10 Гб данных говорить осмысленные вещи? Я думаю, нет.

Когда человек видит в первый раз кошку, он не воображает никакую кошку. Он видит неизвестное ему ранее животное. Он извлекает отличительные характеристики кошки из входной информации, а не подтверждает входной информацией гипотезы о том, какие характеристики он может наблюдать.

это никак не противоречит тому, что я написал. Данная задача не сведена к задаче поиска закономерности, поэтому тут напрямую не получится сказать что-то конкретное про гипотезы. Могу лишь сказать, что гипотезы обычно отсеиваются неявно, их не проверяют все подряд, если у нас не AIXI. Если посмотреть на ridge регрессию, например, там берутся некие значения коэффициентов и оцениваются. Некие - не значит все возможные. Тем не менее, ridge регрессия выбирает из всех возможных гипотез, большинство из них она отбрасывает без проверки.

И по каким причинам вы не рассматриваете вариант, что некоторая модель учится аномально быстро потому что у нее лучше способность к извлечению закономерностей? Из вашего объяснения это не понятно.

Вы говорите "для нейросети — ~500 точек, для бустинга ~100", и при этом "бустинг деревьев может имитировать любую функцию с любой точностью". Значит бустинг учится быстрее нейросети в том же большом пространстве и с теми же данными? Почему вы думаете, что нельзя еще быстрее?

я допускаю такой вариант. Но полагаю, максимальный sample-efficiency можно увеличить ну в 10 раз, ну в 50, если очень повезёт. У нас есть теоретически оптимальный универсальный предсказатель - AIXI (ну, его практичные реализации), и я не видел, чтобы он выдавал эффективность по данным радикально лучше, чем бустинг. Кроме того, полагаю маловероятной такую ситуацию, чтобы у нас под носом всё это время было много способов "задаром" повысить sample-efficiency на пару порядков, а мы об этом не знали. Если вам интересно, могу дать свой AIXI и научить пользоваться - если вдруг откроете, что есть способ получить sample-efficiency в 10 раз больше, чем у нейронки, на всё множестве задач, это будет что-то крышесносное, это будет сильным поводом искать ML, не сводящися к привычной нейронке.

Ну я вот вам привел пример сохранения данных на жесткий диск, он с одного предъявления происходит. Скажете, это слишком тривиальный случай обучения, когда входные данные равны выходным?) Ну тогда сумма элементов массива. Этот алгоритм производит вычисления над входными данными и всегда получает одинаковый достоверный результат, который можно сразу сохранить. Вот и в распознавании информации может быть такой алгоритм.

а в чём состоит обучение? Обучение - это всегда поиск некоторой закономерности среди множества других. Это множество задаётся каким-то образом - например, множество всех линейных функций или всех алгоритмов. Я в этих случаях не вижу пространства поиска.

Ну так если "ищут", значит есть не только гипотезы, но и алгоритм поиска. Вот я и говорю, что у человека он лучше.

алгоритм поиска важен только в том смысле, что он позволяет быстрее или медленнее найти закономерность с наилучшим loss. Для AIXI-подобных систем, например, вообще нет хорошего алгоритма поиска, поэтому на сложных задачах они сходятся к явно неоптимальным закономерностям, либо требуют много времени на решение. Для нейросетей такой алгоритм есть. Больше того, есть достаточно хорошие эвристики, которые позволяют сказать, что нейросеть уже обучилась максимально хорошо, и больше в этом пространстве поиска искать нечего. Поэтому если нейросеть - это что-то типа GPT-3, которая обучена на куче GPU компанией Open AI, то я бы поставил на то, что они нашли "глобальный оптимум", или что-то очень близкое к нему, и никакой обучающий алгоритм не сделает лучше.

Если они не заданы заранее, тогда эти возможности определяются архитектурой взаимосвязей нейронов, характером их взаимодействия. В математическом виде это область возможных значений функции, описывающей взаимодействия, которая определяется ее алгортимом. О чем я и говорю. Даже если надо просто сузить пространство поиска, мы все равно не знаем, как это сделать в нейросетях. Но мне кажется, все равно дело не в этом.

в нейросетях (а так же в бустингах, knn, AIXI и других системах ML) есть способ деформировать пространство поиска, сделав так, чтобы одни закономерности занимали в нём больше места, а другие меньше. То есть создать предвзятость. Я в статье вкратце это описал... Один из стандартных способов - это автоэнкодер. Таким образом мы могли бы обучить автоэнкодер на множестве текстов из множества языков, а потом учить нейросеть (или что у нас там) не на сырых данных, а на данных с выхода энкодера (1-й половины автоэнкодера). И тогда мы бы учили язык радикально быстрее. То есть, условно, 10 ТБ на создание автоэнкодера и 10 ГБ на обучение конкретному языку. Я утверждаю (не 100%, но довольно вероятно), что энкодер заложен генетически - по аналогии с энкодером для видео, который у нас заложен и по аналогии с энкодерами для языка у тех биологических видов, у которых язык фиксированный.

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

И да, утянуть этот энкодер у человека было бы здорово - даже если основа ML у нас не очень хороша, энкодеры у нас классные.

Давайте оценим это пространство. Слова обычно состоят из слогов, в которых есть согласная и гласная, их набор схож во всех языках. Возьмем в среднем 10 гласных и 20 согласных. Из опыта мы знаем, что человек может выучить любое слово, состоящее из слогов такой структуры.

Вариантов "согласная+гласная" 200 штук. В одном слове в среднем от 1 до 6 слогов. 6 слогов дают 200^6 = 64000000000000 возможных вариантов звучания слова. Довольно большое пространство, вам не кажется?)

я здесь не вижу именно задачи поиска. Если что, поиск закономерности обычно происходит в бесконечном пространстве, так что большие цифры не пугают. Но бесконечное множество алгоритмов и бесконечное множество линейных функций - это разные бесконечности.

Задача поиска выглядела бы так: давайте найдём закономерность, какое слово будет следовать после любого другого слова. У нас 50к слов и, допустим, 1 миллион примеров статистики, то есть явно мало, чтобы посчитать вероятности соседства каждого слова с каждым. Поэтому придётся искать какую-то другую закономерность.

Предлагаю пока обсудить эти моменты)

а в чём состоит обучение? Обучение — это всегда поиск некоторой закономерности среди множества других.

Да вообще-то нет. Когда человек учит стихотворение, он не ищет неизвестную закономерность, он запоминает известную.


я бы поставил на то, что они нашли "глобальный оптимум", или что-то очень близкое к нему, и никакой обучающий алгоритм не сделает лучше

Но мы же заведомо знаем, что можно лучше.


Таким образом мы могли бы обучить автоэнкодер на множестве текстов из множества языков

Ну вот опять) Человек не учится на множестве текстов из множества языков, и уж тем более слова языков не могут быть заданы в генах. Максимум что тут можно придумать, это врожденная способность воспринимать гласные и согласные, раз они похожи в разных языках. Но они и так для нейросети задаются UTF-кодами.


Я утверждаю, что энкодер заложен генетически

Но при этом у вас нет предположений, какие данные, помогающие выучить любой язык, он может содержать. Таких данных и нет, потому что языки разные. То, что у них общего, относится не к языкам, а просто к звукам.


Всё, что можно, выделили люди, занимающиеся UTF. То есть, загружая в нейросеть любой текст, мы уже будем пользоваться результатами этого энкодера, если они есть.


я здесь не вижу именно задачи поиска.

Так может ее и нет? Нам говорят сочетание звуков, которое мы никогда не слышали, оно входит в множество сочетаний, которые мы теоретически можем выучить. Что тут искать?


Задача поиска выглядела бы так: давайте найдём закономерность, какое слово будет следовать после любого другого слова.

Зачем нам такая задача? У нас задача выучить язык, мы еще никакие слова не знаем. Вот говорят нам отдельные слова "мама" и "папа" в произвольных комбинациях, больше пока ничего не говорят, или мы не понимаем.


У нас 50к слов и, допустим, 1 миллион примеров статистики

Это противоречит утверждениям "Нет никаких заранее известных гипотез" и "гипотезы есть в неявном виде — это всё пространство языков, которые он теоретически мог бы выучить".

Да вообще-то нет. Когда человек учит стихотворение, он не ищет неизвестную закономерность, он запоминает известную.

это вообще довольно странная задача, как по мне. Есть очевидный способ справляться с ней хорошо - просто записать стихотворение на диск. ИИ бы так и делал, если ему часто надо было бы что-то запоминать, и разработчик это предусмотрел. Но у человека память так устроена, что крайне простое с точки зрения информации действие сжирает какое-то совершенно неразумное количество усилий. Так что я бы не изучал обучение чему-либо на таких примерах.

Но мы же заведомо знаем, что можно лучше.

Это никак не противоречит тому, что я сказал. Глобальный оптимум для конкретной архитектуры, конкретного датасета и конкретного loss.

Ну вот опять) Человек не учится на множестве текстов из множества языков, и уж тем более слова языков не могут быть заданы в генах. Максимум что тут можно придумать, это врожденная способность воспринимать гласные и согласные, раз они похожи в разных языках

у человека гарантированно есть такой энкодер для видео. Но для языков точно нет.

Но при этом у вас нет предположений, какие данные, помогающие выучить любой язык, он может содержать. Таких данных и нет, потому что языки разные. То, что у них общего, относится не к языкам, а просто к звукам.

всё-таки можно сделать кое-какие предположения. У людей есть энкодер для эмоций. Разные слова произносят с разным эмоциональным настроем, особенно детям. Это позволяет как минимум провести кластеризацию. Потом, можно посмотреть, что есть общего в большинстве языков. Это не очень хорошее исследование, потому что мы будем работать не со всем множеством языков, а с языками, которые были достаточно успешны, чтобы выжить.
1) Обычно люди говорят на выдохе, а не на вдохе, и для звуков используют рот, а не другие части тела, которыми тоже можно издавать звуки, например, не топают и не хлопают.

2) Обычно в языке есть интонация. Она информативна и довольно легко распознаётся.

3) Обычно в человеческом языке есть слова. И предложения. И отдельные звуки. Для языка вообще это необязательные свойства.

4) Полагаю, обычно в языках есть существительные и глаголы.

5) Обычно отдельные звуки языка довольно легко распознаются людьми как отдельные звуки, обычно люди не путают два звука, разных по смыслу. Ошибки, конечно, бывают, но на слух сравнить два звука на совпадение проще, чем по осцилограмме.

6) Язык часто дополняется жестами. По крайней мере на этапе обучения.

Зачем нам такая задача? У нас задача выучить язык, мы еще никакие слова не знаем. Вот говорят нам отдельные слова "мама" и "папа" в произвольных комбинациях, больше пока ничего не говорят, или мы не понимаем.

нужна строгая постановка задачи. В такой формулировке, как вы привели, непонятно, что считать успехом. Потом, если мы обсуждаем именно распознавание закономерностей, а не оптимальное поведение (а язык, возможно, корректнее рассматривать именно во втором смысле), то надо чётко оговорить, где X, где Y, какой loss.

Если мы не сводим задачу к какой-то из стандартных задач ML, то теряем единый язык для обсуждения. Наверное, можно обсуждать изучение человеческого языка не в терминах ML, но это придётся с нуля всю теорию создавать, чтобы всё было чётко, однозначно и формализованно. Все бенчмарки теряем - то есть вы можете придумать объяснение, как что-либо устроено в мозгу, но закодить и сравнить его с уже существующим ML не можете. А бенчмарки - это единственный объективный показатель, что мы движемся в верном направлении.

Это противоречит утверждениям "Нет никаких заранее известных гипотез" и "гипотезы есть в неявном виде — это всё пространство языков, которые он теоретически мог бы выучить".

нет, не противоречит. Слова не являются гипотезами. Гипотезой является порождающий алгоритм. То, что по прошлым словам предсказывает следующие, и при этом соответствует датасету. Например, матрица условных вероятностей. Или некое правило, которое группирует слова и строит такую матрицу для сгруппированных слов. Или несколько таких правил и несколько таких матриц.

Так что я бы не изучал обучение чему-либо на таких примерах.

В чем вы видите отличие от каких-то других примеров?


Это никак не противоречит тому, что я сказал. Глобальный оптимум для конкретной архитектуры, конкретного датасета и конкретного loss.

Тогда это не противоречит и тому, что я сказал. Нужно найти конкретную архитектуру, которую мы не знаем, тогда обучающий алгоритм сделает лучше. Собственно, я считаю архитектуру взаимодействия информационных элементов частью алгоритма.


и для звуков используют рот, а не другие части тела, которыми тоже можно издавать звуки, например, не топают и не хлопают.
Язык часто дополняется жестами. По крайней мере на этапе обучения.

Как мы установили, для обучения речи зрительная информация не нужна, поэтому неважно, как именно издаются звуки, и наличие жестов.


Обычно люди говорят на выдохе, а не на вдохе
Обычно в языке есть интонация.

В книгах или в языке жестов этого нет, но люди эти языки тоже изучают. Значит для способности изучения языка это не требуется.


Полагаю, обычно в языках есть существительные и глаголы.

Если мы впервые слышим слово "абырвалг", мы не можем знать, существительное это или глагол. А еще в одних языках есть артикли, а в других нет. То есть или в генах заданы все части речи, или есть механизм их выделения при обучении. Тогда он может и все выделять.


Опять же, попытки обучить нейросети с подобной разметкой слов тоже были, но почему-то это не дало нужного результата.


нужна строгая постановка задачи
Потом, если мы обсуждаем именно распознавание закономерностей

Человеку никто не дает строгую постановку задачи.
Мы обсуждаем возможность изучения осмысленной и связной речи.


В такой формулировке, как вы привели, непонятно, что считать успехом.

Правильно. Поэтому я и говорю, что целевая функция тут ни при чем. Есть относительно универсальный механизм выделения закономерностей, может быть не совсем любых, но по крайней мере заранее неизвестных ни в каком виде.


Слова не являются гипотезами. Гипотезой является порождающий алгоритм. То, что по прошлым словам предсказывает следующие, и при этом соответствует датасету.

Но у людей нет заранее заданного датасета слов. Зачем эту задачу рассматривать, она не имеет ничего общего с обучением речи.
Сказали новое слово, датасет расширился, показали новую букву, датасет расширился. Мы говорим про механизм его расширения, а не про механизм анализа того что есть.
А пространство теоретически возможных порождающих алгоритмов "предыдущий-следующий" стремится к бесконечности, пример с количеством слогов в слове как раз об этом.

В чем вы видите отличие от каких-то других примеров?

Есть стандартная постановка задачи supervised learning: есть конкретные X и Y, мы ищем функцию перехода от одного к другому. Когда человек учит стихотворение, я не вижу конкретного датасета. Да, можно сказать, что мы изучает функцию, которая по каждой строке стихотворения предсказывает следующую, но кажется, это глупость. Задача - воспроизвести текст точно, а не подобрать зависимость.

Тогда это не противоречит и тому, что я сказал. Нужно найти конкретную архитектуру, которую мы не знаем, тогда обучающий алгоритм сделает лучше. Собственно, я считаю архитектуру взаимодействия информационных элементов частью алгоритма.

я это говорил к тому, что если мы говорим о уже обученных ИНС, то неважно, какой был алгоритм поиска. Он достаточно хорош, чтобы искать глобальный оптимум, в пространстве нейросетей данной архитектуры. Алгоритм поиска гораздо важнее, если он плох - тогда он приходит в локальные оптимумы, и этот факт можно считать одной из предвзятостей алгоритма.

В книгах или в языке жестов этого нет, но люди эти языки тоже изучают. Значит для способности изучения языка это не требуется.

я говорил о типичных языках. Наверняка можно найти язык, где один-два пункта не выполнялось бы - по теории о предвзятости его было бы несколько труднее учить, но в принципе возможно. Проблема началась бы, если бы язык во всём сразу отличался от типичного языка. Или не началась бы - в таком случае язык всего лишь одна из закономерностей.

Если мы впервые слышим слово "абырвалг", мы не можем знать, существительное это или глагол. А еще в одних языках есть артикли, а в других нет. То есть или в генах заданы все части речи, или есть механизм их выделения при обучении. Тогда он может и все выделять.

значит, мы можем справляться с небольшими отклонениями от шаблона. А существительные и глаголы, скорее всего, есть на уровне мышления. Существительные - так уж точно, при применении зрения мы точно применяем объекты.

Опять же, попытки обучить нейросети с подобной разметкой слов тоже были, но почему-то это не дало нужного результата.

Ну логично. Я что, сказал, что вот он энкодер, все 10 МБ в шести тезисах? Нет. Я привёл примеры того, что встречается относительно часто и могло бы быть частью энкодера.

Человеку никто не дает строгую постановку задачи.Мы обсуждаем возможность изучения осмысленной и связной речи.

Значит, человека некорректно рассматривать в терминах оптимизатора чего-либо понятного нам. Да, эволюция была, это был оптимизационный процесс, но именно речь в целом не оптимизирует что-либо. В частных случаях оптимизирует, в общем - у нас нет какого-то известного loss. Поэтому все попытки обучить ИИ языку - это придумывание такого loss искусственно. Разумеется, ИИ не будет говорить как человек - он иначе обучен. Его не оптимизировали выживать и размножаться в условиях племени, его оптимизировали иначе. Я бы вообще при разработке ИИ не заморачивался насчёт речи - у нас нет конкретного loss, значит, нет задачи. Да, энкодер от GPT-3 приделать надо, потому что речь имеет смысл в задаче RL, хотя и не такой смысл, как в задаче выживания/размножения в племени.

Есть относительно универсальный механизм выделения закономерностей, может быть не совсем любых, но по крайней мере заранее неизвестных ни в каком виде.

а что вы в такой ситуации подразумеваете под выделением закономерностей? Что на входе системы, что на выходе?

Не, я понимаю, что человек вроде бы делает что-то похожее на то, что мы делаем внутри ML, и что хорошо известно. Но в то же время не очень понятно, как этот поиск закономерностей формализовать хотя бы до постановки задачи.

Есть стандартная постановка задачи supervised learning
Когда человек учит стихотворение, я не вижу конкретного датасета.

Вот и я о том же, обучение есть, а датасета нет. Может быть подход с обучением через датасеты неправильный? Мы не говорим про supervised learning, мы говорим про человека и как в ИИ достичь таких же способностей к обучению.


То есть я спрашивал, чем обучение человека стихотворению менее подходящий пример обучения, чем обучение человека чему-то другому, а не почему оно неподходящий пример для supervised learning. Я и так знаю, что это не supervised learning)


если мы говорим о уже обученных ИНС, то неважно, какой был алгоритм поиска. Он достаточно хорош, чтобы искать глобальный оптимум, в пространстве нейросетей данной архитектуры

Вы сказали "и никакой обучающий алгоритм не сделает лучше", но архитектура это часть обучающего алгоритма. Механизм обучения включает в себя то, как расположены информационные элементы и как они взаимодействуют в процессе обучения. Неподходящая архитектура может ограничивать пространство поиска и исключать те варианты, которые нужны.
Вообще, не вижу причин рассматривать готовую нейросеть отдельно от механизма обучения. Люди обучаются постоянно, корректируя навыки на основе входящей информации.


Значит, человека некорректно рассматривать в терминах оптимизатора чего-либо понятного нам.
Разумеется, ИИ не будет говорить как человек — он иначе обучен.

Ну так я об этом и говорю. То, как человек обучается новому, это не оптимизация достижения целевой функции, а какой-то другой алгоритм обработки информации. Чтобы сделать сильный ИИ, надо его найти.


а что вы в такой ситуации подразумеваете под выделением закономерностей? Что на входе системы, что на выходе?

Корреляция данных в разных наблюдениях. На входе несколько изображений, на выходе инвариантные характеристики неизвестной буквы.

Вот и я о том же, обучение есть, а датасета нет. Может быть подход с обучением через датасеты неправильный? Мы не говорим про supervised learning, мы говорим про человека и как в ИИ достичь таких же способностей к обучению.

подход supervised learning не очень хорошо моделирует человека, а иногда откровенно плохо. Плюс некоторое важное поведение человека (например, речь) непонятно, как смоделировать даже через RL, потому что RL будет хотеть не того, чего хочет человек, а значит, и общаться будет как-то иначе.

Вы сказали "и никакой обучающий алгоритм не сделает лучше", но архитектура это часть обучающего алгоритма. Механизм обучения включает в себя то, как расположены информационные элементы и как они взаимодействуют в процессе обучения. Неподходящая архитектура может ограничивать пространство поиска и исключать те варианты, которые нужны. Вообще, не вижу причин рассматривать готовую нейросеть отдельно от механизма обучения. Люди обучаются постоянно, корректируя навыки на основе входящей информации.

Я вижу смысл разделения. Это как... Различать законы Ньютона и самого Ньютона. Если бы Ньютон написал свои законы после того, как увидел их во сне или получил их бросанием кубика - они бы не стали он этого менее верными. Их верность определяется не через процесс вывода, а через опытную проверку. Нейросеть - это "законы Ньютона", а обучающий алгоритм - это "Ньютон".

Для RL это скорее неприменимо, для человека тоже. И если алгоритм поиска не даёт глобального оптимума, то он тоже может быть важен. В общем, алгоритм поиска я бы назвал отдельной задачей, она тоже важна, но не всегда алгоритм поиска встроен в модель. И я их в своих работах максимально разграничиваю, потому что у меня есть нормальная теория supervised learning и есть навык делать сверхчеловечески точные supervised learning (в значительной части случаев). А современный практический RL выглядит для меня как-то хлипко и недостаточно строго.

Неподходящая архитектура может ограничивать пространство поиска и исключать те варианты, которые нужны.

Да, согласен

Ну так я об этом и говорю. То, как человек обучается новому, это не оптимизация достижения целевой функции, а какой-то другой алгоритм обработки информации. Чтобы сделать сильный ИИ, надо его найти.

Вот я не уверен, что его надо найти. Можно найти - это одно из решений. Но... Я вообще смотрю на ваше определение интеллекта (в статье) и не вижу там ни слова про оптимальное управление и про достижение целей. В той концепции интеллекта, что использую я (интеллект - машина результатов: в него заряжаешь желаемый результат - он его воплощает в жизнь), нет явной необходимости системно копировать человека. В общем, у нас разные определения, различия могут быть связаны с этим. С другой стороны, в вашем определении я не вижу ничего такого, чего не было бы у меня - машина результатов подразумевает наличие модели мира и умение её доучивать.

Да, полезно знать, как интеллект реализован у человека. Но по-моему, не необходимо.

Какие я вижу хорошие аргументы с вашей стороны.

1) Человек может говорить. А ИИ - нет, и через supervised learning не сможет, а через RL это потребует какой-то безумной кучи данных. На это мой ответ такой: видимо, придётся внедрять какой-то энкодер для речи и обучать его через RL. Этого не хватит, чтобы ИИ говорил, как человек, но должно хватить, чтобы он в принципе мог научиться языку за разумное время, по крайней мере для решения своих задач. Но я понимаю, что это не очень хороший ответ.

2) Человек может быстро обучаться, а ИИ нет. Я полагаю, почти всё быстрое обучение человека объяснимо его предвзятостями, и хорошего энкодера будет достаточно. Если окажется, что и этого мало, то я бы попробовал поставить AIXI после энкодера. В любом случае, я уже сейчас упёрся в задачу, где мне не хватает sample-efficiency - это задача понять в Pong, что победил/проиграл. Взрослый человек сообразил бы это быстро. В общем, утверждение, что человек радикально эффективнее, чем нейросеть (и чем AIXI), и это не сводится к предвзятостям - спорно, но для меня это вопрос практический, так что возможно, скоро я передумаю. В любом случае - а как бы выглядел ML, которая лучше нейросети по sample-efficiency и не хуже по точности, универсальности и скорости обучения? Я бы на это взглянул.

3) Концепция RL небиологична и не про человека. Тут я полностью согласен, и всё, что мы не сможем строго определить, эта концепция не сможет решить. Если мы не можем описать речь в терминах оптимизации, значит, RL не осилит такую речь.

Корреляция данных в разных наблюдениях. На входе несколько изображений, на выходе инвариантные характеристики неизвестной буквы.

Ну допустим, рассмотрим случай с буквами. На входе несколько изображений буквы... И всё? Или какая-то ещё информация? Например, что это одна и та же буква.

Потом, инвариантной характеристикой будет, например, то, что буква написана на бумаге. Или что свет падает слева. Если на входе только изображения этой буквы, то инвариантом будет сам факт наличия изображения. Я просто называю типичные решения, к которым пришёл бы типичный ML при такой постановке задачи, и которые формально являются верными ответами.

Похоже, нужна более серьёзная формализация.

Нейросеть — это "законы Ньютона", а обучающий алгоритм — это "Ньютон".

Независимо от правильности аналогии, у человека такого разделения нет, входящая информация всегда проходит через механизм обучения.


Я вообще смотрю на ваше определение интеллекта и не вижу там ни слова про оптимальное управление и про достижение целей.

Так я же и написал, по этой теории определение интеллекта не требует активных действий агента. Вполне можно представить созерцающий интеллект, который всё понимает, но ничего не делает.


интеллект — машина результатов: в него заряжаешь желаемый результат — он его воплощает в жизнь

Это не соответствует определению интеллекта, которое используют люди. Вы придумали какой-то другой процесс, и почему-то называете его интеллектом.


2 обезьяны хотят достать с дерева банан. Одна полезла на дерево, вторая взяла палку и сбила банан. Результат достигнут в обоих случаях, но второй мы считаем более интеллектуальным способом.


И всё? Или какая-то ещё информация? Например, что это одна и та же буква.

В общем случае всё. Хотя, когда мы рассматриваем одну конкретную букву, мы подразумеваем, что в процессе рассмотрения она одна и та же.


Я просто называю типичные решения, к которым пришёл бы типичный ML

Верно, а человек к ним не приходит, значит он умеет как-то выделять более важные особенности входной информации, на которые надо обратить внимание. И это появляется в процессе обучения, а не является заданным в генах, хотя бы потому что бумага в массовом использовании появилась лишь несколько поколений назад.

2 обезьяны хотят достать с дерева банан. Одна полезла на дерево, вторая взяла палку и сбила банан. Результат достигнут в обоих случаях, но второй мы считаем более интеллектуальным способом.

не, важен результат, всё остальное от лукавого. Простые решения тоже хороши, если они эффективны. Если я сделаю ИИ, и он простым-примитивным способом будет мне создавать золото на столе, я не назову это неителлектуальным, потому что главное - результат.

Это не соответствует определению интеллекта, которое используют люди. Вы придумали какой-то другой процесс, и почему-то называете его интеллектом.

вот человек обосновывает, почему "разумность=способность достигать целей" https://intelligenceexplosion.com/ru/2011/playing-taboo-with-intelligence/

Впрочем, не это главное. Я не пытаюсь сделать интеллект ни в каком смысле, кроме как в смысле "машины результатов". Это не потому, что я убеждён, что моё определение правильное, а потому, что "машина результатов" имеет вполне определённую ценность - она, неожиданно, достигает результатов, которых человек не может или не хочет. А ценность "искусственного человека" для меня чисто исследовательская.

Я не настаиваю на своём определении интеллекта - можно его называть не интеллектом, а рациональным агентом или RL. Но постановка задачи у меня именно такая.

Верно, а человек к ним не приходит, значит он умеет как-то выделять более важные особенности входной информации, на которые надо обратить внимание. И это появляется в процессе обучения, а не является заданным в генах, хотя бы потому что бумага в массовом использовании появилась лишь несколько поколений назад.

Да, именно поэтому я и сказал, что вы недостаточно формализовали задачу. Потому что если действовать по вашей формализации, получится обычный ML со всеми его проблемами.

Если я сделаю ИИ, и он простым-примитивным способом будет мне создавать золото на столе, я не назову это неителлектуальным

Так я и не про эту ситуацию говорю, я говорю про ситуацию когда 2 экземпляра ИИ придумали 2 разных способа создавать золото на столе. По одному способу нельзя пранализировать, к чему люди применяют слово "интеллект".


Для оценки интеллектуальности мы сравниваем не результат, а способ решения. Поэтому я считаю, что ориентируясь на результат нельзя изобрести сильный ИИ.


"машина результатов" имеет вполне определённую ценность — она, неожиданно, достигает результатов, которых человек не может

Зато не достигает результатов, которые человек может. Вы же сами сказали, что результата "владеет речью" она достичь не может. Или там "умеет играть в пинг-понг".


Целью изобретения ИИ является возможность выполнения им задач, которые умеет выполнять человек, а не просто каких-то. Вы же зачем-то пытались его научить играть в человеческую игру, хотя ценности результата тут нет. Вот я и начал этот разговор с целью обсудить, почему не получается и как можно этого достичь.


Потому что если действовать по вашей формализации, получится обычный ML со всеми его проблемами.

У нас уже есть практические подтверждения того, что это утверждение неверное. При изучении незнакомой буквы человек действует по моей формализации, имеет ту же информацию, что и ML, но таких проблем не возникает. Можно сказать, что человеку помогает предыдущий опыт, но в том и вопрос, как сделать так, чтобы ML извлекал такую же информацию из предыдущего опыта.

Вы же сами сказали, что результата "владеет речью" она достичь не может.

я сказал, что она не может достичь некорректной задачи "владеть речью", так как в ней отсутствует loss. А достичь корректной задачи - построить, например, космический корабль, находясь в человеческом обществе, где нужна речь - он может. В теории, по крайней мере. Он может сделать то, у чего есть конкретный проверяемый результат. Если задачу речи свести к конкретному loss, то и её осилит - хотя, наверное, и за большее время, чем человек. потому что энкодер у человека передрать вряд ли выйдет.

Или там "умеет играть в пинг-понг".

это как раз значит, что есть какие-то проблемы, их надо решать. В пинг-понг он должен уметь играть, это корректная задача с конкретными проверяемыми результатами.

Для оценки интеллектуальности мы сравниваем не результат, а способ решения. Поэтому я считаю, что ориентируясь на результат нельзя изобрести сильный ИИ.

это вопрос постановки задачи. Если два ИИ достигли одинаковой цели с одинаковыми затратами, я посчитаю, что не могу их отранжировать, и дам другие задачи, посложнее. Если посмотреть, как вообще развивается ML, это довольно обычный подход

Целью изобретения ИИ является возможность выполнения им задач, которые умеет выполнять человек, а не просто каких-то. Вы же зачем-то пытались его научить играть в человеческую игру, хотя ценности результата тут нет.

я ставлю целью выполнение задач, которые человек не умеет выполнять. Которые требуют слишком длинных планов, слишком точных моделей и слишком больших данных. В общем, у обычного ML есть преимущества по сревнению с человеком - я пытался и пытаюсь перенести эти преимущества на решение динамических задач.

Я его учил играть в человеческую игру, потому что во-первых, это стандартный бенчмарк для RL, во-вторых, игры в какой-то мере имитируют реальный мир. То, что выигрывает в игры с сырых пискелей, с большей вероятностью научится "выигрывать в реальности", чем старые символьные ИИ.

У нас уже есть практические подтверждения того, что это утверждение неверное. При изучении незнакомой буквы человек действует по моей формализации, имеет ту же информацию, что и ML, но таких проблем не возникает.

если у вас есть правильная формализация, значит, будет тяжело найти какой-нибудь вырожденный случай - что-то, что удовлетворяет формализации, но не устраивает заказчика. Если эти вырожденные случаи находятся настолько просто, быстро и массово - значит, с формализацией что-то не так. Это стандартная проверка: если я попрошу X у злого джинна - что он мне даст такого, чтобы сделать мне похуже? Если у "злого джинна" много вариантов, эти варианты достаточно очевидны или общеизвестны - значит, формализация недостаточно хороша.

В конце концов, эта формализация никак не упоминает наличия прошлой памяти и то, каким образом память относится к данной задаче.

Ну и вы не можете точно знать, по какой формализации действует человек. Вот здесь статья о том, какова дистанция между тем, как мы формулируем свои мысли и хорошими формализациями
https://intelligenceexplosion.com/ru/2012/value-is-complex-and-fragile/

это стандартный бенчмарк для RL
То, что выигрывает в игры с сырых пискелей, с большей вероятностью научится "выигрывать в реальности"

А зачем вам надо, чтобы он мог выигрывать в реальности? Почему его выбрали стандартным бенчмарком, а не какую-то другую задачу, которую человек решать не умеет? Потому что мы хотим научить ИИ решать задачи, которые умеет решать человек.


Ну и вы не можете точно знать, по какой формализации действует человек.

Вы сказали "вы недостаточно формализовали задачу", поэтому я думал, вы говорите про формализацию задачи "обучение незнакомой букве", которая дается человеком. Если вы подразумеваете внутренние алгоритмы взаимодействия нейронов (включая предыдущий опыт), которые мы не знаем, то я как раз и говорю о том, что их надо найти. Первые 3 года опыта человека мы вполне можем записать в электронном виде, это весь предыдущий опыт, который нужен для обучения речи. Обучение незнакомой букве не слишком отличается от обучения незнакомому слову.

А зачем вам надо, чтобы он мог выигрывать в реальности? Почему его выбрали стандартным бенчмарком, а не какую-то другую задачу, которую человек решать не умеет? Потому что мы хотим научить ИИ решать задачи, которые умеет решать человек.

Тут решаемость задачи - вопрос количественный. Насколько хорошо человек решает эту задачу. Если смотреть с этой точки зрения, то все или почти все бенчмарки RL допускают сверхчеловеческий результат. Я с трудом себе могу представить задачу, которая была бы вообще нерешаема человеком, одновременно с этим решаема ML и имела какое-то отношение к достижению целей в знакомой нам реальности.

Наверное, правильнее будет сказать так. Мы стараемся с помощью RL решить задачи, которые человек умеет решать, потому что мы хотим, чтобы RL работал примерно в тех же условиях (тот же 3-мерный мир, не микромир, не далёкий космос), что и мы. И хотим, чтобы он лучше нас решил те задачи, которые мы решать в принципе умеем.

Если вы подразумеваете внутренние алгоритмы взаимодействия нейронов (включая предыдущий опыт), которые мы не знаем, то я как раз и говорю о том, что их надо найти.

я имею в виду, что у нас есть блэкбокс - человеческий разум. Допустим, мы не можем влезть внутрь и посмотреть - любое исследование у нас будет исключительно поведенческим. И вот мы говорим: человек выучил букву. Что это значит с точки зрения поведения? Как бы мы узнали, что некоторая автоматическая система выучила букву в том же смысле, что и человек, если эта система может быть абсолютно не похожа на человека во всём, что не связано с выучиванием букв?

Мне приходит в голову либо запоминание кадра с буквой, либо сохранение эмбеддинга буквы - такого, который в среднем раньше позволял решать задачу мультиклассовой классификации. Да, чтобы система работала, надо вначале изучить концепцию букв - сделать некий энкодер, который превращает буквы в эмбеддинги, по которым легко проводить классификацию в смысле supervised learning. Возможно, надо сохранить больше одного эмбеддинга на букву - чтобы описать, что именно является инвариантом. Возможно, задача формализуется как мультиклассовая классификация - в смысле у нас появилась новая буква, новый класс, и теперь надо уметь отличить её будущие другие начертания от всех других известных букв.

Но это моя формализация, я просто пример привожу, как можно описать работу блэкбокса

Я считаю, что нужные принципы еще не найдены.
Не будте так уверены. Принципы более мение понятны. Но необходимо все это эффективно и правильно соединить вместе. Это титаническая и затратная работа.
Базовые принципы описывает нейрофизиология высшей нервной деятельности. По уровням от синапса-нейрона, ансамбля, слоя до функциональных частей мозга и их роли в мышлении (у кого оно есть) и функционировании мозга для целей организма.
Следующая часть принципов в самом общем виде это создание на базовых принципах машины способной самостоятельно обучиться в человеческой среде базовым ключевым навыкам человеческой культуры, можно сказать это период достраивания и воспитания. Можно начать с примитивных организмов и постепенно перейти к человеку.
А далее обучение получившейся машины конкретным знаниям по стандартным методикам. Это период становления.
Принципы более мение понятны. Но необходимо все это эффективно и правильно соединить вместе.

Правильное соединение это тоже алгоритм, который надо найти.

Исследуя простейшую нервную червя систему с 402 нейронами уже можно сделать некоторые правильные выводы о том, как правильно соединять блоки. Исследуя чуть более сложную нервную систему ланцетника (уже с выделенным мозгом) можно сделать совсем правильные выводы о том, как правильно соединять блоки.
И да, термин алгоритм врядли можно удачно тут применить из-за сильной параллельности множества разных процессов и работы всего этого хозяйства в реальном масштабе времени.
Метафора алгоритма хороша и понятна, когда все происходит в один поток, по шагам (когда в процессе самого шага все стоит и ничего не происходит) и нет стека вызовов в 100 вызовов.

Но есть и третий вариант - Как улучшить птицу так что бы она лишилась тех самых артефактов эволюции. Типа киборгизация.

Я вам другой пример предложу - живая клетка как элемент больших систем. Получили ли мы что то техническое подобное по свойствам , что не потребовало изучить законы клеточной биологии????

А странность мозга в том, что, эволюция почему то создала его катастрофически сложной петлевой структурой для решения вобщем-то обычных комбинаторных и графических задач с неполными данными.

Не исключено, что ИИ никак, кроме как копированием мозга, не получить. Просто мне пока кажется, что аргументы слабоваты.

Кроме того, на самом деле разработчики ИИ обычно решают какую-то прикладную задачу, не "создать мозг, как у человека", а, например, "создать машину изобретений". А кучу других человеческих "фичей", вроде склонности прокрастинировать или способности сказать "нет", разработчики ИИ (некоторые) вовсе не хотят.

Киборгизация - это масштабная тема, в которой надо понимать границы. В каком-то смысле любой пользователь ИТ - киборг с экзокортексом... В любом случае, я разрабатываю RL не так, чтобы это был полностью автономный агент, а чтобы это был управляемый, хотя бы потенциально, инструмент. То есть в каком-то смысле это та самая киборгизация

эволюция почему то создала его катастрофически сложной петлевой структурой для решения вобщем-то обычных комбинаторных и графических задач с неполными данными

ну мы вроде бы не пытаемся запихнуть ИИ в одну нейросеть. Там везде много не-нейронного обвеса - что в RL, что в GPT-3. Поэтому неизвестно, нужна ли эта сложная петлевая структура, или мы уже успешно вынесли этот сложный функционал в классические алгоритмы

Интересно что если смотреть за соревнованием нейронок в биоэволюции то доминируют те которые демонстрируют "способность сказать НЕТ" /условный пример конечно, но смысл понятен- отвлечение характеристик сигналов от носителей и т.п./. И что бы это было возможно, требуется гиперсистема интегрирующая комбинацию многослойных SOM и RL. Но вот те петли что образует эта интеграция и ставят в тупик нейронауки

Но в вашем случае работа хорошая.

Интересно что если смотреть за соревнованием нейронок в биоэволюции то доминируют те которые демонстрируют "способность сказать НЕТ"

вы имеете в виду, что в тестах люди превосходят машинное обучение? На самом деле, это не так. Люди справляются лучше ML в чётко определённых случаях: либо закономерность похожа на что-то, что уже было в опыте, либо закономерность похожа на что-то, что было важно для выживания обезьян. И важно, чтобы не было бигдаты, потому что её наличие компенсирует это различие. Если есть более-менее большой датасет и задача сильно абстрактная (не похожа на убегание от тигров, борьбу за место в стае и добычу бананов), то ML практически гарантированно работает лучше. Например, имея один и тот же датасет в 10к экземпляров, ML точнее определит мошеннические транзакции, чем человек. Ну или какой-нибудь прогноз температуры или влажности на завтра - можете обучить нейронку, а потом попробовать лично попредсказывать, по той же информации, что доступна нейронке. Скорее всего, у нейронки (или у бустинга деревеьев, или у авторегрессии) loss окажется лучше
Причём это свойство не неожиданно, оно логично вытекает из no free lunch theorem.

И что бы это было возможно, требуется гиперсистема интегрирующая комбинацию многослойных SOM и RL

да, я в согласен. Собственно, гугл ровно так и сделал - у него SOM строится под каждую задачу своя, а у меня используется единая. Но видимо, то ли SOM какая-то плохая выходит, то ли используется как-то неправильно. В игре pong 120 тысяч кадров на обучение до уровня "не рандом" - это явный перебор. Почему-то человек сразу выделяет эти 2 движущиеся ракетки и мячик. А системы, которая решала бы такую же задачу для любых похожих случаев, и выдавала данные в виде, удобном на машинного обучения - такой системы нет

вы имеете в виду, что в тестах люди превосходят машинное обучение? Нет я про эволюцию видов и семейств в них. Например в вид Homo

SOM Гугла выстроена от выделения первичных признаков до формы объекта за один цикл? Типа так

Гугловый Dreamer работает в других абстракциях. Я затрудняюсь сказать, насколько это соотносится с картинками.

Гугл сделал так: он картинку с экрана сжимает в некий вектор (размера 30 элементов), по которому можно потом машинлёрнингом получить исходную картинку плюс сигнал награды. Причём там ещё хитрая регуляризация накладывается - компоненты вектора должны быть максимально близки к статистической независимости, то есть каждый компонент должен отвечать за какой-то отдельный, независимый признак картинки.

То есть по идее, для задачи Pong в векторе должны быть координаты ракеток, координаты и скорость мячика, может, ещё что-то. Но это по идее - вовсе не факт, что автоэнкодер выделит именно такие признаки.

Преобразование картинка->вектор происходит без циклов, в один проход свёрточной нейросетью.

Вообще, нет никаких гарантий, что автоэнкодер выделит именно предметы, и именно нужные. В статье я привёл примеры, какие штуки обычно выделяет автоэнкодер - например, он хорошо различает небо и землю, хорошо замечает крупные и контрастные объекты, хорошо описывает крупные тени и пятна освещённости. Всякие GUI отлично воспроизводит. Это обычный, непредвзятый автоэнкодер, который не пытается на выходе получить ещё и сигнал подкрепления. Может, если бы у нас был огромный датасет, размеченный подкреплениями, то автоэнкодер стал бы выделять объекты именно в том смысле, в котором их выделяем мы - по принципу полезности. Вот эту контрастную тень на стене мы проигнорируем, а вот ту дверь выделим и запомним, потому что двери связаны с подкреплениями, а тени - нет.

Нет я про эволюцию видов и семейств в них. Например в вид Homo

эволюция преследовала не те "цели", что у разработчиков ИИ, отсюда автоматом вытекают некоторые различия

а почему вы взяли именно автоэнкодер а не тот же SOM или аналог с алгоритмом BMU ??

Автоэнкодер понятно, как применить, это широко распространённая практика для one-shot learning.

Можете описать, как вы вообще себе представляете в этой задаче применение буквального SOM? Что у него должно быть на входе, что на выходе, на чём обучать

через автоэнкодер вы по сути проводите прореживание пиксельной структуры / кадровой последовательности/?? для SOM вы подаете тот же вектор что и для аэ. но за счет уплотнения расстояния между нейронами , получаете более устойчивый и дифференцированный эмбединг для предсказания ?? если вторым /3 и т.д./ слоем грида искать победитель из прогноза может это будет работать???

через автоэнкодер вы по сути проводите прореживание пиксельной структуры / кадровой последовательности/??

не совсем прореживание. Выделение значимых черт. Значимых для задачи предсказания того, что у автоэнкодера на выходе. Например, если на картинке есть небо, и в датасете на половине картинок есть небо, но автоэнкодер сжимает это множество пикселей в, допустим, 1 признак: высота горизонта (можно добавить ещё цвет неба - 2-3 признака, наклон горизонта - 1 признак). Это пример, на самом деле неизвестно, как именно он сжимает картинки - известно лишь, что потом их можно "разархивировать" обратно с потерей качества.

для SOM вы подаете тот же вектор что и для аэ. но за счет уплотнения расстояния между нейронами , получаете более устойчивый и дифференцированный эмбединг для предсказания

я не очень много работал с SOM, могу чего-то не понимать. Насколько я понимаю, SOM - это инструмент кластеризации. То есть у нас есть датасет - 5000 картинок, например. Мы делаем запрос к SOM: разбей датасет на 5 кластеров и запомни правило разбиения. И он разобьёт. И у нас с этого момента на выходе RL будет не картинка и не вектор, а число типа int от 1 до 5. То есть в SOM приходит картинка/эмбеддинг, а выходит номер кластера, и на этом всё.
Я делал нечто подобное, только во-первых, на входе у меня был эмбеддинг (вектор с автоэнкодера, а не картинка), во-вторых, кластеризацию я проводил другими способами. Это не сработало, хорошая стратегия не собралась. Я полагаю, дело в том, что алгоритмы кластеризации разбивают как-то не так, не по тем признакам. Алгоритм кластеризации не знает, за что дают награду, он не учитывает награды при кластеризации. Вот если бы он в один кластер помещал ситуации в хорошей наградой, а в другие с плохой - то это было бы перспективно. И ещё надо было бы так разбивать, чтобы если я нахожусь в кластере 1 и делаю действие 1, то можно было достаточно точно предсказать, в каком кластере я окажусь дальше. Обычно при кластеризации получается так: у всех кластеров средняя награда примерно одинаковая, а совершая какое-либо действие, мы равновероятно переходим в любой кластер. В общем, кластеризацию "втупую" не сделать, там надо какой-то хитрый алгоритм использовать, который будет учитывать полезность разбивки для задач RL. У автоэнкодера та же проблема, но так как эмбеддинг - это не одно интовое число, а вектор флоатов, то проблема не настолько острая, плюс автоэнкодер можно учить так, чтобы по эмбеддингу хотя бы награда предсказывалась.

Простой пример того, как разные варианты сжатия влияют на качество прогноза. Перед нами коридор, а в его конце сидит снайпер. Или не сидит. Это очень важная информация, от неё зависит стратегия. Но снайпер занимает на экране кусочек 5 на 6 пикселей. Как его увидеть?
Если учиться с сырых пискелей, то через миллионы кадров нейросеть поймёт, что вон то пятнышко как-то коррелирует с вероятностью погибнуть.

Если учить простой автоэнкодер, то он не заметит снайпера. Но все эмбеддинги будут чуть-чуть разные и может, RL заметит, что вот та мелкая флуктуация в эмбеддинге связана с тем, что нас постоянно убивают.

Если учить простую кластеризацию (пусть и реализованную через SOM) - он просто удалит инфу про снайпера, без шансов, её не восстановишь потом.

Если учить какую-то хитрую кластеризацию, то она выделит ситуацию "впереди снайпер" в отдельный кластер, и всё хорошо обучится. Только как это сделать?

Если учить хитрый автоэнкодер, у которого на выходе не просто картинка, а ещё будущее или сигнал награды, то такой автоэнкодер, обученный на миллионах кадров, будет видеть снайпера, как и нейросеть, обученная с сырых пикселей

думаю с энкодером все проще- алгоритм ищет статистическую связь с между образцами по типу факторного анализа, вырождая до самых устойчивых весовых коэффициентов. Для SOM ядром является поиск минимального расстояния входного вектора и нейрона победителя из грида + пересчет веса победителя и нейронов в его окрестности. таким образом образуется диффузный рецептор /типа ядра свертки/ думаю что структура вектора на входе или в слоях и выделит нужный вам кластер Например кластер экстраполяции пикселей или экстраполяции пикселей объекта и реакции на него

думаю с энкодером все проще- алгоритм ищет статистическую связь с между образцами по типу факторного анализа, вырождая до самых устойчивых коэффициентов.

да, это близко в тому, что делает автоэнкодер

думаю что структура вектора на входе или в слоях и выделит нужный вам кластер

то есть на выходе всё-таки вектор, а не кластер? А на входе что - картинка? Эмбеддинг? Я не придираюсь, я почти не работал именно с этой технологией, каких-то деталей не понимаю.

Я не очень понимаю, почему мы думаем, что разбиение будет правильным, а не каким попало. То есть что разбиение будет хоть как-то связано с действиями и наградами, которые нигде не фигурируют в построении этой карты. Та самая проблема снайпера - почему мы думаем, что система его отыщет, и насколько это будет эффективно.

Могу скинуть датасет) Кадры, действия, награды. Чтобы вы могли картой Кохонена получить такой вектор, по которому и следующий вектор хорошо угадывается, и награда.

Извини, я сам интересовался про SOM что бы разобраться , но до уровня твоего проекта еще не дорос.

Ок, спасибо. В любом случае, запомню про карту Кохонена. Вроде вот здесь описывают теорию интеллекта (кусочка интеллекта) на базе карт Кохонена...
https://habr.com/ru/post/562908/
Но у меня это пока не складывается в стройную картинку

Люди справляются лучше ML в чётко определённых случаях: либо закономерность похожа на что-то, что уже было в опыте, либо закономерность похожа на что-то, что было важно для выживания обезьян.

Да, игра в pong на черно-белом экране компьютера была очень важна для выживания обезьян)

Это работа со зрением. Конечно, важна. Вы попробуйте взять любой показатель на бирже и попрогнозировать его по 10 другим показателям. Вручную и нейросетью. Потом посмотрите на mse - всё сразу станет понятно. Или температуру в Каире, или популяцию пум, или число продаж в Бургер Кинге в следующий час. Это так кажется, что люди предсказывают лучше - пока не измеришь mse на хотя бы тысяче точек.

"Закономерность была важна для выживания обезьян" и "способность была важна для выживания обезьян" это разные вещи. Те закономерности, которые есть в этой игре, изучаются человеком исключительно по опыту. Зрение есть и у компьютера, надо просто камеру подключить, вопрос в алгоритмах обработки этой информации.


Вы попробуйте взять любой показатель на бирже и попрогнозировать его по 10 другим показателям. Или температуру в Каире.

В задаче изобретения сильного ИИ нет цели предсказывать температуру в Каире, есть цель научить его выполнять задачи, которые делает человек. Неважно, в чем он лучше, если в том, что нужно, он хуже.

По-моему, вы смешиваете задачи reinforcement learning и supervised learning. Это разные задачи. Те лучше-хуже, что я говорил - они касаются supervised learning, то есть это задачи на угадывание закономерности. Pong состоит из закономерностей, которые очень похожи на те, которые обезьянам надо было различать для выживания. Непохожие закономерности выглядят как прогноз погоды или квантмех какой-нибудь.

В задаче изобретения сильного ИИ нет цели предсказывать температуру в Каире, есть цель научить его выполнять задачи, которые делает человек.

Без проблем) Если вы сможете сделать хоть немного универсальный ИИ без опоры на supervised learning и всю его математику - ну прекрасно, значит, вы таки правы. Хотя есть способ сделать без ML - это перебор стратегий. Но там мы упрёмся в примерно ту же математику, только в ещё худшем виде.

Pong состоит из закономерностей, которые очень похожи на те, которые обезьянам надо было различать для выживания.

Это например какие?


Если вы сможете сделать хоть немного универсальный ИИ без опоры на supervised learning и всю его математику

Я не говорил, что надо делать ИИ без SL и его математики, я имел в виду, что одного SL недостаточно. Хотя бы потому что SL уже есть, а ИИ еще нет.

Я согласен, что SL мало. Но существующие RL вполне соответствуют моему пониманию почти-универсального ИИ. И они недостаточно хороши.

Но SL - это то, в чём машины точно превосходят людей, в значительной части случаев. Поэтому кажется разумным отталкиваться от SL. Меня, если что, устроит, если ИИ будет плохо говорить, но в остальном будет достигать целей лучше человека.

Это например какие?

1) Картинки. Под них пришлось создавать особую архитектуру сети - свёрточную. А человеку она дана с рождения. Это уже очень сильная предвзятость.

2) Дискретные стабильные объекты, в малом количестве. Всё как в простой задаче на доставание банана: никакого динамического хаоса, никаких тысяч разрозненных частиц.

3) Основные взаимодействия происходят при контакте - всё как в саванне, а не в космосе, например.

4) Частицы плавно движутся, а не меняют свои координаты каким-то другим способом.

Наверняка есть что-то ещё, что я не могу сформулировать.

Для контраста, как бы выглядела игра, созданная не для потомков обезьян? Это был бы, например, тот же pong, только все пиксели были бы случайно перемешаны, а некоторые инвертированы. Никаких объектов, в общем - просто шум. Задача точно решаемая, RL их решает.

Так вот, если задача не выглядит как полная бессмыслица и белый шум, если закономерность видна сразу - скорее всего, у вас или с рождения заложены какие-то подобные закономерности, или вы их научились распознавать в течение жизни, раньше.

Картинки
Ну вообще-то мы и говорим про алгоритм обработки картинок. Как человек обрабатывает картинки, это и есть основной вопрос. Это не закономерность, а цель.

Дискретные стабильные объекты, в малом количестве. Всё как в простой задаче на доставание банана
Вот фотография банана на дереве.


На ней можно выделить сотни окружающих объектов, как и на любой другой фотографии природы. Как раз 3 объекта на однотонном фоне это очень редкая в природе ситуация.

Основные взаимодействия происходят при контакте — всё как в саванне, а не в космосе, например.
Звуки в саванне тоже есть, взаимодействие звуками происходит не при контакте. И при чем тут космос, ни обезьяны, ни нейросети не знакомы со взаимодействиями в космосе, у них на входе одна и та же информация.

Частицы плавно движутся, а не меняют свои координаты каким-то другим способом.
Ну так для нейросети они тоже плавно движутся.

Всё что вы перечислили, это не закономерности, полезные для обезьян, а просто свойства окружающего мира. Именно в том и цель, чтобы ИИ научился их выделять, так же как человек.

Для контраста, как бы выглядела игра, созданная не для потомков обезьян?
Зачем нам игра, созданная не для потомков обезьян? У нас цель сделать ИИ с возможностями человека. Если для этого надо дать ему какие-то врожденные способности, значит надо разобраться, какие это способности.

у вас или с рождения заложены какие-то подобные закономерности, или вы их научились распознавать в течение жизни, раньше.
Я же говорю, есть еще третий вариант, который вы почему-то игнорируете — есть более эффективный алгоритм выделения закономерностей.

Всё что вы перечислили, это не закономерности, полезные для обезьян, а просто свойства окружающего мира. Именно в том и цель, чтобы ИИ научился их выделять, так же как человек.

это свойства того мира, в котором жили обезьяны, и которые надо было выделять. Наш мир довольно большой, и в нём есть много мест, где человек бы предсказывал не лучше, чем ML - если его не подготовить как-то специально. Например, в нашем мире есть взаимодействие тел на орбите и есть микромир - и того, и другого достаточно, чтобы сломать человеческую интуициию и поставить его вровень с ML.

Связка бананов - это всё ещё малочисленные дискретные объекты. Это не вероятностные поля, как в квантмехе, это не орбитальная механика, это не разгадывание шифров. Распознавание бананов и распознавание ракеток в Pong - это очень похожие задачи, если сравнивать их с вообще любой произвольной задачей.

Зачем нам игра, созданная не для потомков обезьян?

чтобы показать, что способности человека заточены под конкретные условия. А если выйти за эти условия, то всё, магия кончилась, человек становится просто ещё одним ML, без решительного перевеса над другими.

Если для этого надо дать ему какие-то врожденные способности, значит надо разобраться, какие это способности.

пока что для меня выглядит, что это какое-то особое когнитивное смещение, чтобы работать именно в этом мире. Я отталкиваюсь от SL, потому что там есть хорошая теоретическая база. И от RL - тоже хорошо проработан. Есть действия человека, необъяснимые с точки зрения SL и RL - я их не рассматриваю, пока не будет аргументов за то, что они полезны именно для RL. Так было с эвристикой любопытства - вроде бы просто ещё одна мотивация, а оказывается, может дать более эффективную разведку.

Может быть, моё представление в терминах когнитивных смещений и поиска в пространстве моделей - может, оно неудачное. Но я не видел ничего лучше.

Я же говорю, есть еще третий вариант, который вы почему-то игнорируете — есть более эффективный алгоритм выделения закономерностей.

Ну... Есть теория) Про когнитивные смещения и поиск в пространстве моделей. И тут вы говорите: может быть, она не совсем верна, и есть какие-то механизмы обучения, которые ей явно противоречат. Есть аргументы, что дело действительно обстоит так? Аргументы на уровне "вот механизм, вот его исходный код, он не ложится в эту теорию, но работает как SL". Я знаю, что в пример можно было бы привести людей, но у них неизвестен исходный код. Потом, можно было бы привести бустинги и сети - но здесь можно сказать, что это разные механизмы с разными предвзятостями. И только поэтому бустинги работают лучше - у нас датасеты такие.

В общем, третий вариант (что есть алгоритм, который не просто лучше, а суммарно на всех закономерностях лучше) выглядит для меня очень гипотетическим, почти на уровне того, что человек использует сверхтьюринговские вычисления.

и есть какие-то механизмы обучения, которые ей явно противоречат. Есть аргументы, что дело действительно обстоит так? Аргументы на уровне "вот механизм, вот его исходный код, он не ложится в эту теорию, но работает как SL".

Не противоречат, а дополняют.
Он работает не как SL, а лучше.
Собственно, человек и есть такой аргумент. Все предрасположенные закономерности, которые могут быть в игре pong, это самые общие абстракции. Ну задайте их в нейросети вручную — концепция №1 это плавное движение, концепция №2 взаимодействие при контакте, ограничьте число одновременно распознаваемых объектов до минимума, и т.д. Будет у нее врожденное понятие этих концепций. Только в pong она все равно не научится играть.

Человек - не аргумент, потому что вы не знаете, как именно он устроен. Нет хорошей модели. Если бы у вас был именно программный код, это был бы аргумент.

Ну задайте их в нейросети вручную — концепция №1 это плавное движение, концепция №2 взаимодействие при контакте, ограничьте число одновременно распознаваемых объектов до минимума, и т.д. Будет у нее врожденное понятие этих концепций.

Я так и сделаю, как доберусь до компа. В таком описании я не очень понимаю, как это сделать, но я проведу эксперимент: ракетки буду распознавать каким-нибудь рукописным алгоритмом, мячик тоже. Всего от 4 (если не учитывать скорости) до 8 (если учитывать) чисел. Теоретически, должно заработать. Если нет, то и правда одного только когнитивного смещения недостаточно.

Итак, я провёл эксперимент.

Во-первых, сделал рукописный энкодер (3 сверточных фильтра и вручную заданные зоны поиска), который из картинки с экрана вычленяет координаты двух ракеток и мячика. Энкодер получился неидеальный: например, если на экране нет мячика, то его координаты рассчитываются некорректно. Кроме того мячик отрисовывается то двумя пикселями, то четыремя. Возможно, были ещё какие-либо источники погрешности.

Во-вторых, попытался подобрать алгоритм Pong по наблюдениям. Понять, какие кнопки влияют на положение ракетки, как именно влияют, по какой формуле ограничивается скорость ракетки, как затухает её скорость. Точно-идеально подобрать весь алгоритм не удалось, лишь приблизительно. То есть я вручную сделал матмодель Pong, в которой были свободные коэффициенты, и попытался подобрать эти коэффициенты оптимизатором. Каждый раз искал формулы для одной-двух переменных, чтобы формулы в целом были проще и не было комбинаторного взрыва. Почему у меня не получилось точно подобрать формулу? Может быть, я упустил какие-то варианты, как могла быть устроена игра. Может, дело в погрешности энкодера. Может, игра хранит координаты с высокой точностью, а отрисовывает с низкой, и этого хватает для большой погрешности.

В-третьих, я попытался выучить правила игры нейросетью. Довольно легко получить у нейросети низкую погрешность (почти идеальное угадывание), но сложно защититься от переобучения. Тем не менее, я подобрал архитектуру сети и настройки регуляризации, при которых переобучения практически нет. При таких настройках можно получить прогноз на 20 кадров вперёд одним батчом и получить среднюю ошибку прогноза позиции, равную 9 пикселям. Это намного точнее и быстрее, чем попытки подобрать формулу вручную.

В-четвёртых, я попытался сделать прогноз через AIXI. Получилось сильное переобучение - в принципе логично, так как я не мог задействовать много данных, система медлительная. Может, можно было бы и лучше, но я не стал пробовать.

В-пятых, я взял наилучшую из моделей и зарядил её в дример. Она не обучилась за разумное время. Почему так? Может быть много разных причин, пока не готов сказать.

Когда я делал рукописный энкодер, я задавал когнитивное смещение. Когда я подбирал архитектуру нейросети, тоже задавал тем самым смещение, хотя и очень неявно - всё же неизвестно заранее, как замена функции активации с relu на selu или замена регуляризации с 0.0001 на 0.003 повлияет на то, какие функции подберутся с бОльшей вероятностью. Когда задал, что сеть будет GRU, а не прямого распространения, я более явно задал смещение - указал, что есть ось времени.

Когда я обучал нейросети, они требовали довольно много данных. Не настоящую бигдату, но ~6000 сэмплов. Если бы было больше данных, можно было бы более вольно обращаться с переобучением. Когда я использовал тюнинг рукописной функции и AIXI, то использовал 100-300 сэмплов для обучения. На большее не хватало производительности. И… Раз уж мне не удалось сделать вменяемый прогноз, зная координаты, то я совершенно не убеждён, что человек может решить эту задачу с нужной точностью. С такой, как хотя бы у нейросети. Тем более, я уже не в первый раз вижу такую ситуацию - ML предсказывает очевидно не очень, но дай задачу человеку - он даже такой результат не выдаст.

В любом случае, я готов прислать исходные данные и скрипт для нарезки батчей - мало ли, может, я чего-то не учёл.


В общем, пока что лучшая модель, что есть - это GRU сеть, у неё из "встроенных абстракций" только ось времени, ну и она довольно прожорлива по данным. Остальные модели со встроенными абстракциями оказались слишком неуниверсальными, и для них не было быстрого алгоритма обучения. Ну и стандартно: если вы думаете, что нейронка работает плохо, вы просто не пробовали предсказывать те же цифры вручную. И если есть алгоритмы обучения ощутимо лучше дримера - ну, было бы круто, но пока они, похоже, неизвестны

Большинство крупных положительных наград — это ситуации, когда один монстр убивал другого, иногда ещё и вне поля зрения RL-агента.

А почему не использовать в наградах только убийства монстра агентом?

Можно... Но я хотел сделать систему, которая достигает результата любыми путями. Хотел поощрить изобретательность

Спасибо, очень интересная статья. Видно, насколько сложное это обучение с подкреплением. Концептуально казалось бы всё понятно — вот окружение, вот действия, вот награда. Но дьявол, как водится, в деталях.

Вот да, дьявол в деталях. Оказывается, мы можем легко оптимизировать неизвестные функции с сотнями тысячами параметров, но найти оптимальный план действий для динамического мира - это очень нетривиальная задача, хотя казалось бы, теория рефлексов есть, о мозге знаем прилично...

Sign up to leave a comment.

Articles