Может показаться, что предложенная мною задача имеет супервысокую сложность. Если взять 100 изображений, то в критерии соответствия по методу наименьших квадратов будет 100 миллионов слагаемых.
Но, скорее всего, это довольно заурядная задача. В качестве критерия можно взять:
L(f)=(sum(t in 1..T, sum(i in 1..n, sum(j in 1..n, (M[t](x,y)-f(t,x,y))^2)))+0.0001)*exp(SizeOf(f))
(t-номер изображения, T – их количество; изображение имеет размер n на n; M[t] – матрица t-го изображения; f – подбираемая функция от t, x, y; SizeOf(f) – длина формулы f). Для завершения постановки задачи нужно еще суть задать схему конструирования формулы f (по Бэкусу-Науэру). Я уже подчеркивал, что непонимание возникает из-за того, что искомым объектом является ФУНКЦИЯ, а не переменные или параметры.
Поэтому для этой задачи есть формальная постановка задачи – это минимизация L на множестве функций f. Как видно из формулы, критерий стремится минимизировать невязку между исходными изображениями и значениями функции f(t,x,y), при этом минимизируется длина формулы f. Критерий L суть описывает компромисс между точностью «описания» изображений и длиной формулы. Длина формулы не только позволяет компактно описать изображения с некоторой точностью. Еще более важная роль – это достоверность. Количество возможных формул экспоненциально растет с увеличением допустимой длины формулы. Поэтому, с точки зрения теории вероятностей, при прочих равных условиях, наиболее достоверна наиболее короткая формула. Достоверность экспоненциально падает при линейном увеличении длины формулы. Поэтому описанный выше критерий экспоненциально растет в зависимости от длины формулы.
Если вернуться к исходным вопросам обсуждения, то я утверждаю следующее. Если пользователь не может задать цель, то он не сможет получить то, что он хочет. Т.е. для вашей системы при текущем состоянии дел, пользователь может задать среду, указать «целевой показатель» и ... заняться медитацией. Ведь он не может повлиять ни на «ресурсоемкость» агента, ни на достоверность выдаваемых им результатов. Да, можно наблюдать за тем, как агент приспосабливается к внешней среде. И что?
Я не буду здесь описывать схемы, в которых, например, решение головоломок помогает играть в шахматы. Возьмем опять ту же задачу с изображениями. Для обучения сформируем изображения меньшего размера. Если исходное изображение 1024x1024, то сформируем из них изображения 512x512, 256x256, ..., 4x4, 2x2, 1x1. Меньшее изображение получается из большего путем усреднения яркости 4-х соседних пикселей. Суть обучения заключается в том, что перебираемые формулы f «обкатываются» сначала на изображениях меньшего размера для оценки их эффективности, а только потом на изображениях большего размера в порядке не увеличения эффективности. Еще одним способом ускорения обучения может быть количество рассматриваемых одновременно изображений: 100, 50, ..., 6, 3, 1. Дерево поиска, таким образом, формируется правилами конструирования формулы f, правилами подбора констант, размерами изображений и количеством рассматриваемых одновременно изображений. Какую из текущих вершин следует обрабатывать, зависит от критерия L(f) на изображениях меньшего размера и их меньшего количества, а также от ресурсоемкости вычисления функции (если функция не содержит рекурсий, то ее ресурсоемкость может быть автоматически оценена). Эта оценка позволяет рационально вести поиск и продвигать исследование менее ресурсоемких формул и откладывать, по возможности, тяжелые (например, трудоемкости O(n^4)). Суть такова – «обучение» происходит на задачах меньшего размера, а затем этот результат переносится на более громоздкие задачи и т.д. «Фантастическая» по сложности задачи становится вполне решаемой. По крайней мере, мне сейчас так кажется. Как на самом деле – скоро узнаем :-)
Как обстоит дело с возможностью подобного обучения в вашей системе?
Надо обучать на простейших фигурах. И даже не на фигурах, а на простейших функциях, начиная с однородной освещенности, затем линейной градиентной заливки в разных направлениях, затем более сложных и т.д. Добиваясь чтобы агент выдавал праметры исходной функции. Потом надо накладывать шумы и т.д. Но с шумом нужно быть осторожным, так как возможны двоякие трактования изображения.
|
|
В этой схеме обучения меня смущает одно обстоятельство. У меня складывается такое впечатления, что на самом деле обучается не агент, а Вы сами. После этого Вы подбираете ему такие данные, чтобы сформировавшиеся у вас знание были «записаны» в автомат.