Почему это слияние оказалось полезным?
Если вы рассматриваете общую сеть Value / Policy как состоящую из общего компонента (Остаточные сетевые уровни) с компонентом Value и Policy сверху, а не с разделением интересов, это имеет больше смысла.
Основная предпосылка заключается в том, что совместно используемая часть сети (ResNet) обеспечивает обобщение входных данных высокого уровня (игровых состояний, ведущих к ходу), которое является хорошим входным представлением как для мелких сетей Value, так и для сетей Policy.
В этом случае мы можем значительно уменьшить вычислительную нагрузку, обучив одну общую сеть ResNet и используя ее для двух гораздо более простых сетей, чем для подготовки двух сетей ResNet для значения и политики. В их случае совместное обучение также улучшает регуляризацию и, таким образом, создает более надежное общее представление.
В частности, бумага Alpha Go Zero от Silver et al. , Овладение Игры Go без человеческого знания , утверждает , что:
Объединение политики и стоимости в единую сеть несколько снизило точность предсказания хода, но уменьшило ошибку стоимости и повысило производительность игры в AlphaGo примерно на 600 Эло. Отчасти это связано с улучшенной вычислительной эффективностью, но, что более важно, двойная цель упорядочивает сеть до общего представления, которое поддерживает множественные варианты использования.
Может ли этот метод применяться в целом или только в особых случаях?
Как и общие компоненты в библиотеках программного обеспечения, это имеет смысл, только когда проблемы, которые вы пытаетесь решить, выигрывают от общего представления.
Вы можете использовать его, если вы тренируете классификаторы для подобных задач или тренируете новое задание с небольшим объемом данных, когда у вас уже есть классификатор, обученный по большому, похожему набору данных.
За пределами Go он часто используется для распознавания изображений. Глубокие предварительно обученные сети, такие как сети с соревнований ImageNet ILSVRC , обычно используются в качестве отправной точки. Это классификаторы, которые прошли обучение (в течение нескольких недель!) На более чем миллионе изображений.
Затем, скажем, вы хотите создать сеть, которая распознает ваш любимый бренд велосипедов, вы начинаете с общего конвейера распознавания изображений, обученного в ImageNet, отбираете последние слои, которые выполняют фактическую классификацию («это бордер-колли»), и добавляете маленький новый классификатор, чтобы выбрать только те велосипеды, которые вам нужны.
Поскольку предварительно обученный классификатор уже предоставляет высокоуровневые концепции изображений, которые являются хорошими строительными блоками для распознавания изображений (он классифицирует 200 категорий), это экономит вам много времени и делает очень надежный классификатор.
Конечно, есть много случаев, когда проблемы не имеют полезных общих представлений и, следовательно, не получают выгоды от объединенной сети. Тем не менее, это полезный инструмент в правильных ситуациях.
Посмотрите раздел « Трансферное обучение» или « Многозадачное обучение», чтобы узнать больше об этом.