November 20, 2018

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

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

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

— Алгоритм для классификации кожных новообразований нашёл чёткий фактор "злокачественности" — медицинскую линейку на фото (т.е. классифицировал фото не по параметру "здоровая/нездоровая кожа", а по "есть линейка/нет линейки");

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

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

По ссылке — обновляемый список из десятков подобных случаев. Рекомендую всем, кто интересуется темой ML.