AGI.place

Форум создателей искусственных интеллектов


Логин (email) 
Пароль 
Настройки

Скачать
Назад
1
2
Решатель ARC-задач Франсуа Шолле
Аватар
create
Решатель ARC-задач Франсуа Шолле
20:20 23.10.2022 №5992
mserg:
загляну через месяц
Egg:
приду через месяц
Благодарю за посильное участие. Если захотите - возвращайтесь раньше. Буду ждать. Не уверен, правда, что через месяц будет куда возвращаться... Имею в виду данный мир, который благодаря некоторым естественным интеллектам планомерно скатывается в пропасть. А мы, тем временем, продолжим неспешно и без истерик колупать скалу AGI.
0 | 0
Аватар
create
Решатель ARC-задач Франсуа Шолле
06:08 24.10.2022 09:03 24.10.2022 №5993
Это генератор операторов. Ограничение здесь очень важно, поскольку позволит работать с широкими смыслами в ограниченном вычислительном объеме. Т.е. рождённый оператор не должен превышать объем оперативной памяти. Сложные операции состоят из более простых. Например возведение в степень состоит и n числа более простого умножения, а то в свою очередь из n сложений, которое можно выразить как n-е колличество +1. Интерпритировать и выявить операцию лежащую в изменении БД можно разложив её на составляющие, более простые но известные(?) операции, такие как перемещение. Наш мир слишком прост и креатива в операционном пространстве не должно быть много. Стрелочная нотация Кнута - оператор работающий с неисчислимыми данными, но он был создан как инструмент для решения проблемы продиктованной БД и сработал, хотя по сути это +1 где n вынесено в переменную, где n этой переменной также вынесено и.т.д. Т.е. такой генератор должен быть алгоритмичен, логичен и прост. Насчёт иерархии можно вспомнить пример с моими жуками на арифметической плоскости, но сейчас я думаю что такой иерархической структурой будет каждая последующая n в переменной по отношению к более простому оператору.
Цитата:
Вопрос не по теме и вскользь: акцептор результата является производной работы оператора или наоборот, оператор рождается из настоящего и желаемого будущего?
P.s. Ну и не помешало бы трансформировать данные, типа как здесь. Заставить их тоже работать. Чтобы при взаимодействии двух картинок образовалась третья, на которой изменения проресуются. И именно этими уплотнениями на градиенте и была занята оперативная память. Впрочем иерархия может и сгодится, для поэтапной трамбовки - упрощение широкого смысла до простой операции.
0 | 0
Аватар
create
Решатель ARC-задач Франсуа Шолле
21:30 24.10.2022 №5996
mserg:
20% - это лучшее решение на Kaggle
Это хорошая иллюстрация того, что в данном случае конкуренция, как метод поиска решения, оказался негодным. Было бы интересно, если бы все конкурирующие за денежный приз команды потом скооперировались в один рой и устроили мозговой штурм, смогли бы они сообща построить лучший решатель, чем 20%? Вопрос, конечно, риторический, но не бесполезный. Продолжу соображения. 1. Центральное место в данной задачке занимает, конечно, генерация (создание, синтез) решающих правил. В моей интерпретации это равносильно установлению причинно-следственных отношений (ПСО). Для установления ПСО необходимо, чтобы между первой и второй картинкой что-то поменялось, а что-то осталось неизменным. Если в картинке поменяется все, то ПСО найти вряд ли удастся. Таким образом, первое, что необходимо сделать - это найти и проиндексировать всё то, что между первой и второй картинкой осталось неизменным. Как только мы (AGI) это сделает, он получит опорные места, относительно которых можно устанавливать (искать, создавать, перебирать, конструировать) ПСО для изменений. Т.е. изменения можно фиксировать только относительно чего-то неизменного. 2. Итоговая картинка во всех задачах представляет собой поле из чёрных клеток. Но решатель, как я уже сказал выше, не просто "рисует решение", он исправляет неправильную картинку. С этой точки зрения, итоговой картинкой может быть любая, в том числе и заполненная хаотичными цветами. Отсюда приходит ясное понимание того, что норма должна быть установлена (а значит и проверена) для каждой клетки поля. Будь-то фон, или (как нам кажется) содержательная часть картинки. В каждой картинке все клетки содержательные. Когда мы глядим на небо, мы можем не замечать, что в норме оно голубое. Но стоит ему стать жёлтым, как мы тут же отфиксируем аномалию. Это значит, что валидация цвета неба (фона) происходит у нас даже тогда, когда мы этого сознательно не замечаем. 3. Для меня очевидно, что некоторые задачи решаются итерационно. Т.е. если решающее правило будет достаточно простым, то его нужно будет применить несколько раз. Грубо говоря, AGI смотрит на тестовую картинку и на итоговую, видит отклонение от нормы, исправляет, потом опять смотрит, опять исправляет и так до тех пор, пока итоговая картинка, с точки зрения AGI, не станет совершенной, без изъянов. В этом смысле, не нужно мыслить так, что AGI должен за один ход, за один присест, сразу выдать готовую картинку целиком, это ошибочный путь ибо человек так не делает.
0 | 0
write
Решатель ARC-задач Франсуа Шолле
00:00 15.11.2022 №6011
Постановка данной задачи несколько непривычна – возможно это и является причиной, по которой некоторые примеры кажутся неоднозначными. Обычно же как: есть набор данных, по нему учимся. Потом берем тестовые данные – и на них проверяем. На Kaggle не раз отмечалось, что сами тестовые данные, даже без ответов, - это будущее. Статистика данных будущего позволяет улучшать результат. Они боролись с этим по-разному. Одни в тестовые данные вводили «мусорные данные», которые неотличимы от настоящих, и пользователи не могли пользоваться статистикой будущего. Другой способ – это Code Competition – здесь пользователь представляет код, который вроде как может выполняться на данных, не показывая их пользователю. Это я к чему. В данной задаче все нет так. Тестовые картинки без ответов – это тоже часть данных. Их не просто можно, а нужно использовать для обучения. Часто исходные картинки описываются одной общей «формулой». Поэтому если вдруг «формула» из исходных обучающих картинок не подходит к исходной тестовой картинке – значит формула неправильная. Учет этого нюанса снимает проблему неоднозначности в большей части примеров.
0 | 0
write
Решатель ARC-задач Франсуа Шолле
00:15 15.11.2022 00:39 15.11.2022 №6012
На счет решающих правил, базирующихся на различиях в картинках… В картинках может поменяться всё. Например, нижняя картинка может представлять собой прямоугольник высотой 1 и шириной с количеством 5-ок в исходной картинке. По-моему, был еще пример, где исходная картинка одинаковая для всех – пустая 5 на 5. А результирующие картинки такие: пустой квадрат 1 на 1 для первой пары, 2 на 2 для второй пары, 3 на 3 для третьей, и так далее. Видел несколько фракталов. Есть повороты изображений. Если взятие по модулю 2 двух половин изображений. В общем, французы - это еще те затейники. Есть примеры с прокладыванием трассы. Есть тетрис! Хе… Пример, который меня добил - это пересечение двух линий, одна из которых была "сверху" и видна полностью, и вторая "снизу", которая частично перекрывалась сверху. Поэтому, работа с разницей, - это, хотя и рабочий, далеко не единственный инструмент. Работа с разницей, в простом случае, может производиться прямо на уровне изображений. Чаще требуется построение «структуры» изображений – выделение фона, выделение объектов, описание их характеристик. Потом, действительно, можно постепенно выравнивая структуры и записывая математические преобразования, получить общую формулу отображения.
0 | 0
write
Решатель ARC-задач Франсуа Шолле
00:38 15.11.2022 00:42 15.11.2022 №6013
На счет совместной работы над задачей, и могли ли на Kaggle получить хороших результат. Формально, может быть да, но фактически, видимо, нет. Из того что я видел, они пытались получить множество алгоритмов, покрывающих решение какого-то количества задач. Приз, по-моему, обещали, если результат будет хотя бы 20%. Видимо это и есть порог «фактического нуля» для данной задачи. В результате нулевой порог был превышен на величину статистической погрешности. Работа над проблемой у меня начиналась с составления Excel-таблички, в которую я вписывал, какие «решающие правила» применялись для решения каждой из задач. Было множество заходов – всегда запутывался. Может у Вас получится :-) Подход я изменил – решил вручную почти все задачи с записью их в виде Python скриптов. Общие функции были вынесены в «tparser.py». Чего только там нет… Описания изображений, структур, их создание, изменение, удаление, перемещение… выделение фона, объектов (вложенных в том числе), поиск сеток, текстур … решение задач локального поиска … Теперь есть почти полный перечень, как Вы их называете, решающих правил. Точнее, есть правила преобразований. Но нет правил их применения. Классическое продолжение темы – это создание эвристик, чтобы был не «поиск формул в ширину», а более экономный алгоритм.
0 | 0
Аватар
create
Решатель ARC-задач Франсуа Шолле
11:14 15.11.2022 №6014
mserg:
Тестовые картинки без ответов – это тоже часть данных.
Да, это важное уточнение. Получается что при "взгляде" на тестовую картинку у испытуемого должна пройти валидация знаний (правил, норм), сформированных на обучающих парах. Должно возникнуть понимание, а может ли тестовая картинка быть именно такой, а нормальная ли она, годная ли? Например, закрашенные клетки в обучающих парах всегда находились на второй линии, а в тестовой картинке на третьей. Ага, значит знания сразу должны быть скорректированы и испытуемый должен сразу выкинуть ту часть правил (если она была), которая гласила, что клетки непременно должны находиться только на второй линии.
mserg:
Есть повороты изображений. Если взятие по модулю 2 двух половин изображений. В общем, французы - это еще те затейники.
Мне кажется, что эта задача в том виде, в котором она представлена, не имеет удовлетворительного решения. Что я имею в виду. Я показывал некоторые задачки 15-летнему подростку, она их решила. Но если мы возьмём 3-х летнего ребёнка (у кого есть возможность, проведите, пожалуйста, такой эксперимент), то я уверен, многие задачки окажутся неподъёмными. А теперь возьмите новорождённого младенца - результат будет нулевой. Именно в таком положении новорождённого младенца выступает здесь испытуемый AGI. Он в принципе не знает ни про повороты, ни про модули, ни про количества, ни про тетрис, ни про перекрытие объектов, поэтому сформулировать короткое простое правило ему будет не под силу, он упрётся в комбинаторную стену.
mserg:
выделение фона, выделение объектов
Фон - это тоже объект. Про объекты хочу сказать отдельно, это крайне важно. 10 цветов и квадраты - это своего рода элементарные неделимые квалиа для данного мира. Для создания простых правил необходимо совмещать эти квалиа (комбинаторное множество элементов) в более крупные объекты. Но как это сделать? Ведь мы понимаем, что объективно никаких "объектов" в самих задачах нет, их невозможно продетектировать каким-то простым универсальным методом. Объекты возникают в уме испытуемого именно и только как способ простого компактного описания этих задач и правил. Так же как человек не запоминает свой жизненный опыт в виде состояний отдельных своих рецепторов, AGI должен оперировать объектами, а не отдельными клетками и цветами. Фактически, объект - это такое место в памяти субъекта, куда складируется всё то, что касается данного созданного объекта. Если такое описание оказывается компактным и пригодным для решения, то такой "объект" приживается. Получается, что объект появляется как сущность мышления не потому что он "объективно существует во внешнем мире", а потому что так оказывается проще формулировать и запоминать свой субъективный жизненный опыт. Отсюда возникает предположение, что объекты могут создаваться только как пары - предполагаемый объект + предполагаемые правила, которые его касаются. Если такая пара оказывается рабочей, то тогда жизненный опыт запоминается именно в таком формате. Что меня беспокоит, что для формирования таких вот объектов, мне кажется, обучающей выборки в пару картинок для некоторых задач недостаточно. AGI нужно сначала поиграть в "детском" игрушечном мире квадратиков, в котором проявятся все существенные свойства этого мира, которые AGI сможет синтезировать в качестве своих субъективных объектов, а уж потом выпускать его во "взрослый" мир квадратиков, в котором он сможет понимать ситуации в терминологии этих объектов.
mserg:
я вписывал, какие «решающие правила» применялись для решения каждой из задач
Да, я тоже так делаю. Привлекательность данных простых задачек в том, что обучаясь решать их сам, я одновременно могу наблюдать за процессом своего обучения и обучаться тому, как именно я обучаюсь, чтобы потом перенести этот механизм в машину.
0 | 0
write
Решатель ARC-задач Франсуа Шолле
23:32 15.11.2022 №6016
В скрипте tparser.py есть и базовый объект (TObject), и наследуемые графические примитивы, и изображения (как объекты). И есть несколько функций (начинаются с "split") для разбиения изображения на объекты. Фон - это объект-прямоугольник самого нижнего уровня, который может быть одноцветным или текстурой. В некоторых задачах такового объекта нет - значит и нет фона (например, в задаче поворота). Есть операции над объектами: создание, удаление, замещение другим объектом, перемещение, масштабирование и т.п. При парсинге изображения создается иерархия - каждый узел имеет дочерние включаемые insides объекты, и соответственно есть parent. Для получения результирующего пиксельного изображения есть функция draw. В общем, выделение объектов есть. Как уже говорилось, выявлены практически все функции, которые используются для преобразования изображений. Так что нерешаемых задач должно быть не так много. При решении задачи может потребоваться рассматривать несколько вариантов разбиения (или не использование его совсем). Любая характеристика объекта может использоваться для создания результирующего изображения. Например: высота, ширина, цвет/отсортированная гистограмма, положение по x и по y. Могут использоваться выражения/функции от характеристик: (высота=широта?), площадь=высота*широта, количество точек не фонового значения, наиболее частый цвет (после фона), срез (для изображений), количество дочерних объектов и т.п. Поэтому жесткой связи между манипуляциями и правилами и применения вроде как нет.
0 | 0
Аватар
create
Решатель ARC-задач Франсуа Шолле
00:21 16.11.2022 №6018
mserg:
Есть операции над объектами: создание, удаление, замещение другим объектом, перемещение, масштабирование и т.п.
Это хорошо, что они у Вас есть. У Вас богатый жизненный опыт. Но вопрос ведь в том, как они должны возникнуть на "ровном месте" в уме AGI, как объекты. Кроме того, обращает на себя внимание, что некоторые задачи имеют множественное решение, например, задача из первого сообщения (6150a2bd.json) может быть решена как поворотом, так и двумя отражениями - одно по-вертикали и одно по-горизонтали. Оба решения правильные. Может быть есть ещё. Это значит, что представление об операциях (как объектах) должно возникнуть и быть в уме AGI до того как он встречается с задачей. Чтобы этот инструментарий мог быть им задействован для понимания (описания) задачной ситуации в терминах данных объектов. Поэтому я склоняюсь к тому, что сначала надо дать AGI просто "бесцельно" поиграться в некотором искусственном игрушечном "детском" мире-Шолле, чтобы он поднабрался объектов-понятий, чтоб у него возникли вот эти все создания/повороты/удаления, а уж потом допускать его собственно до задач.
0 | 0
write
Решатель ARC-задач Франсуа Шолле
10:28 17.11.2022 №6019
Один из способов задания "функционального пространства" - это так называемая сигнатура. Сигнатура определяет множество закорючек, из которых может быть создана функция. Допуская определенную вольность речи, можно сказать, что в библиотеке tparser.py находится эта сигнатура - из этих "закорючек" и небольшого количества конструкций Python были созданы решения (функции отображения изображений) manual.py. Хотелось бы, для универсальности, чтобы решение проблемы было бы без использования tparser.py. Однако, как мне представляется, это сделать слишком сложно за один заход. Если сравнить сложности самих функций решения задачи из manual.py и код из tparser.py, то становится ясно, что второе намного сложнее. Тем не менее, после создания эффективного решателя для большей части задач с использованием tparser.py, можно tparser.py постепенно подчищать и разрешать использовать универсальные конструкции Python. Тут скорее вопрос способа декомпозиции большой проблемы на проблемы меньшей сложности, нежели вопрос "методологии".
0 | 0
Аватар
create
Решатель ARC-задач Франсуа Шолле
11:02 17.11.2022 11:15 17.11.2022 №6020
mserg:
Тут скорее вопрос способа декомпозиции большой проблемы на проблемы меньшей сложности, нежели вопрос "методологии".
Увидите сами, что - нет. Что мышление - это не брут форс, а вещь ровно противоположная ему... Управление сложностью как раз и есть вопрос методологии, а не математики... )) Решать интеллектуальные задачи в ML-стиле: "чё тут думать, трясти надо..." не получится... ))) Но вы, персонально, можете попробовать еще раз... Теперь с помощью сигнатуры... 😃😃
0 | 0
write
Решатель ARC-задач Франсуа Шолле
14:51 20.11.2022 №6028
Продолжим. Итак, есть «набор», из которого можно создавать функции отображения матриц. Однако длина этих функций слишком велика, чтобы можно было бы их подобрать. Эта проблема решается с помощью использования алгоритмов, которые должны за «полиномиальное число шагов» «экспоненциально снизить количество вариантов» при поиске функции. В этом, в сущности, и заключается «информационный» критерий поиска. Вместо «количества информации», для упрощения, будем пользоваться оценкой количества информации (ниже – просто количество информации). Положим, что тип терма функции занимает 8 бит, число – 8 бит, пиксель матрицы изображения – 4 бита, пиксель бинарной матрицы – 1 бит. «Пошаговое» построение отображение функции должно помочь преодолеть комбинаторный барьер. Рассмотрим задачу, в которой в исходной матрице подсчитывается количество 5-ок, и результатом является пустой прямоугольник высотой 1 и шириной в количество 5-ок. Для определенности положим, что количество 5-к в матрицах имеет 5, 10, 4, 7, 8 (8 относится к тестовой паре). Количество информации, которое потребуется для записи первого результирующего изображения состоит из координаты x – 16 бит, y – 16 бит, ширины и высоты – по 16 бит, пиксели матрицы 5*5*4. Итого 164 бита. Второе результирующее изображение 464 бита, третье – 260, четвертое – 128. Суммарно 1016 бита. Т.к. для тестовой пары результирующее значение неизвестно, что для подсчета количества информации потребуется рассмотреть все возможные размеры матриц. Использование «tparser.py» приводит к получению прямоугольников для результирующих матриц. Обозначим прямоугольник через rect; (x,y),(w,h) – положение и размер прямоугольника; c – цвет. Описания прямоугольников будут такими: rect(x=0,y=0,w=5,h=1,c=0), rect(x=0,y=0,w=10,h=1,c=0), rect(x=0,y=0,w=4,h=1,c=0), rect(x=0,y=0,w=7,h=1,c=0) Сравнение и обобщение структур приводит к функции с одним аргументом: f(wi) = rect(x=0,y=0,w=wi,h=1,c=0) Новое описание результирующих изображений будет f(5), f(10), f(4), f(7). Для тестовой пары функция описания будут f(?). Астрономическое количество результирующих матриц свелось к 30 вариантам (допустимы матрицы размером от 1 до 30, насколько я помню). Количество информации для записи функции состоит из количества информации определения функции f и из количества информации параметров. Определение записи самой функции – 16*2 бита, структура rect – 16 бит, координаты и размеры 16*4, цвет 8+4. Итого, определение функции – 124 бит. Плюс 16*4 – значения параметров, функция описания результирующих (обучающих) матриц сжалось с 1016 бит до 188 бит. Задача подбора матрицы свелась к задаче подбора одного параметра. Полученная функция, однако, не может быть решением задачи, т.к. аргумент для тестовой пары остается неизвестным. Простейшие параметры исходного изображения – высота и ширина не подходят. Параметры, получаемые за «1 шаг» из «tparser.py» дадут следующие параметры: комбинации мат. операций над высотой и шириной, минимальный цвет, максимальный цвет, цвет фона (если он есть), максимально частый цвет за исключением фона, гистограмма. Сопоставление с результирующими изображениями приведет к обнаружению, что шестой элемент гистограммы (т.е. с цветом 5), подходит для описания функции. Итого, результирующая функция res(no, im) = f(hist(im)[5]), где f(wi) = rect(x=0,y=0,w=wi,h=1,c=0) Параметр функции f hist(im)[5] также состоит из 16*4 бит (в ней неявно присутствует функция индекса элемента). Т.е. результирующая функция содержит 188 бит. Если продолжить поиск, то все функции с большим количеством информации должны отсекаться. Если обнаружится функция с меньшим количеством информации – то она заменит текущую (рекорд). --- Строго говоря, использование пошагового построения функции на основе информационного критерия, не является просто последовательностью. Дерево «перебора функции» все равно неявно присутствует, только поиск ведется более направлено и используемые при поиске структуры – не только древовидные.
0 | 0
1
2
Скачать
Назад

Главная Участники Жалобы  Поиск Исходный код О форуме