Андрей Плахов
Похоже, нам все-таки когда-нибудь придется этим заняться.
Итак, я объявляю сбор "задачек ". Задачка - это тестовое задание для ИИ (например, лабиринт, набор тестов на распознавание и т.п), не слишком большое и с четким способом проверить, справился с ним "ИИ ", или нет. Очень приветствуется, если этот четкий способ выражен в виде тестового модуля (желательно на С/С++/C#/VB.Net или в виде dll) Пока никаких ограничений (вроде того, какие данные ИИ получает на вход, есть в системе "время ", обучающая выборка, тестовая выборка, или нет и т.п.) не оговаривается.
Если мы эту базу не сможем собрать, то что мы здесь делаем? А пока ее у нас нет, ИМХО, нас это сильно тормозит.
Если кто-то возражает - пишите :)
supremum
К концу следующей недели оформлю 2 - 3(пока) теста на распознавание.
Вообще надо принять стандарт входных -выходных данных. Для задачи распознавания, это наборы(обучающий и тестовый) числовых векторов одинаковой размерности с указанием номера класса образа(нумеруются по порядку от 0). Формат текстовой ANSI, разделитель дробной части чисел точка, пребелов и непечатных символов нет: размерность_вектора_изображения,количест во_векторов_обучающей_выборки, количество_векторов_тестовой_выборки,
количество_классов,
//обучающий набор
<число1,число2,... >номер_класса,
...
//тестовый набор
<число1,число2,... >номер_класса,
...
Для задач типа "виртуальный мир " (например, лабиринт) необходим единый интерфейс получения описания получаемых "животным " числовых сигналов и возможных простейших действий. Вот только для создания формального языка описания ограничений на одновременность и последовательность действий вряд ли у кого найдется время и желание. Ну тогда хотя бы более-менее формальное описание на русском языке. Возможно должна быть отдельная dll проверяющая допустимость поведения "животного ". Сильно заботится об поощрении нетривиального поведения не стоит (берем количеством задач).
Для других задач не знаю. Может кто другой что предложит.
pokos
Насчёт виртуального мира предлагаю простой подход. Мир нужно сделать слоистым, каждый отдельный слой для каждого органа чувств существа (или воздействий). Таким образом мир можно легко менять, программа, не использующая некоторые из слоёв, будет работать быстрее.
Навороченные задачи давать сразу бестолку, по себе знаю, - не поймёшь, есть положительный эффект или он будет где-то за горами, а может, вообще не будет. Но обязательно должно быть преимущество для особей с интеллектуальным поведение, иначе смысла нет.
Я тут уже реализую кое-какие мыслишки по этому поводу, предлагаю обсудить.
Про тесты на распознавание. Слишком абстрактное это дело, а главное, у системы заведомо отбирается право воздействовать на входные данные. Считаю, что построить таким образом интеллектуальную систему вообще невозможно.
supremum
"Насчёт виртуального мира предлагаю простой подход. Мир нужно сделать слоистым, каждый отдельный слой для каждого органа чувств существа (или воздействий). "
Полностью согласен.
"Но обязательно должно быть преимущество для особей с интеллектуальным поведение, иначе смысла нет. "
А вот тут не согласен. Найти оптимальное поведение, пусть даже примитивное, в РАЗЛИЧНЫХ мирах(у нас множество тестов) при отсутствии априорных знаний о этих мирах может только ИИ. Найти поведение трудно, хотя использовать его может быть легко. Вы же не скажите, что раз формула m*c^2=E проста, то и вывести ее было легко.
"Про тесты на распознавание. Слишком абстрактное это дело "
А что не абстрактное?
", а главное, у системы заведомо отбирается право воздействовать на входные данные. Считаю, что построить таким образом интеллектуальную систему вообще невозможно. "
Со всем согласен. Но ведь я не свожу все к этим тестам. Ставка делается не на одной универсальной задаче, а на множестве простых, но взаимо дополняющих друг друга задачах. Умение распознавать необходимое свойство ИИ, хотя и недостаточное.
Комбинатор
На мой взгляд, наиболее общий формат описания взаимодействия И с внешним миром (не важно, виртуальным, или реальным) можно представить следующим образом.
"История жизни " существа описывается в виде последовательности дискретных "кадров ".
Струкура описания конкретного кадра:
1. Тип кадра (входящая инфо (рецепторы) или исходящая инфо (аффекторы)).
2. Системное время создания кадра.
3. Количество независимых информационных каналов.
4. Тип инф. канала (скажем, для входящих - зрение, слух, осязание, боль, чувство голода и т.д. Для исходящих - номер мыщцы (двигателя))
5. Размерность канала (для зрения, с учётом возможной координаты во времени - от 2 до 4, для слуха - 1 или 2 и т.д.).
6. Число отсчётов для каждой координаты.
7. Значения сигнала для каждого отсчёта.
supremum
По моему слишком сложно. Почему не сделать так:
1) Время дискретно.
2) Существу доступен набор сенсорных каналов и набор каналов управления. Канал характеризуется типом(управление(только запись), наблюдение(только чтение)), уникальным номером, конечным множеством возможных значений и текущим значением.
Существо самостоятельно выбирает какие каналы ему использовать.
3)Часть каналов наблюдения помечаются как целевые. Тоесть существо в процессе своей жизнедеятельности должно пытаться увеличить их значение.
4)Каждый дискретный момент времени существо может считать текущие значения каналов наблюдения и установить значения каналов управления.
Больше никакой начальной информации о мире у существа быть не должно.
Организация памяти, распознавание, выработка решений и т. д. сугубо личное дело существа.
Успешность функционирования существа оценивается как сумма всех значений всех целевых каналов за все время жизни существа(времени тестирования).
ДС
Не знаю на сколько это пригодится, но в свое время одна израильская фирма проводила конкурс на наиболее общий алгоритм самообучения. Условия здесь. Там есть и всякие задачки.
Юра
пусть есть у нас функция y=f(x)
она неизвестна
известны ее значения в 3-х точках
известно что в 4-той точке она может принимать только 2 значения
(т.е. принимать она может только одно, но на это одно есть 2 варианта)
нужно определить вероятности
- прохождение ее через первое место
- ее прохождения через второе место
извините что коряво выражаюсь, что-то язык заплетается
надеюсь, что вы поняли что я хотел сказать, вот