Давайте подумаем о следующих ситуациях:
- Вы учите робота играть в пинг-понг
- Вы учите программу для вычисления квадратного корня
- Вы учите математику ребенку в школе
Эти ситуации (то есть контролируемое обучение) и многие другие имеют одну (среди прочих) общую черту: учащийся получает вознаграждение в зависимости от его успеваемости.
У меня вопрос, как должна выглядеть функция вознаграждения? Есть ли «лучший» ответ, или это зависит от ситуации? Если это зависит от ситуации, как определить, какую функцию вознаграждения выбрать?
Например, возьмите следующие три функции вознаграждения:
- Функция
A
говорит:- ниже определенного уровня, плохие или худшие одинаковы: вы ничего не получите
- есть четкая разница между почти хорошим и идеальным
- Функция
B
говорит:- вы получаете вознаграждение, линейно пропорциональное вашей производительности
- Функция
C
говорит:- если у вас плохая работа, все в порядке, вы сделали все возможное: вы все еще получаете вознаграждение
- нет большой разницы между идеальным и почти хорошим
Интуитивно, я думаю, что A
это сделало бы робота очень сфокусированным и выучило бы точный паттерн, но стало бы глупым, когда C
имело дело с подобными паттернами, и сделало бы его более гибким для изменения за счет потери совершенства.
Можно также подумать о более сложных функциях, просто чтобы показать, но мало:
Итак, как узнать, какую функцию выбрать? Является ли это известно , какое поведение будет выходить из (по крайней мере) основные A
, B
и C
функций?
Дополнительный вопрос: будет ли это принципиально отличаться для роботов и детей?
A
, что робот мог стать чрезвычайно хорошим в точной задаче, но ужасным в задачах, которые похожи, но немного отличаются. Это только мое предположение, хотя.
X
дал мне лучший результат», даже если бы он не был совершенно правильным, дал бы хорошее правило.