Почему объединенная нейронная сеть AlphaGo Zero более эффективна, чем две отдельные нейронные сети?

10

AlphaGo Zero содержит несколько улучшений по сравнению с предшественниками. Архитектурные детали Alpha Go Zero можно увидеть в этом шпаргалке .

Одним из таких улучшений является использование одной нейронной сети, которая одновременно рассчитывает вероятности перемещения и значение состояния, тогда как в более старых версиях использовались две отдельные нейронные сети. Было показано, что объединенная нейронная сеть более эффективна согласно статье:

Он использует одну нейронную сеть, а не две. Более ранние версии AlphaGo использовали «стратегическую сеть», чтобы выбрать следующий ход, и «ценностную сеть», чтобы предсказать победителя игры с каждой позиции. Они объединены в AlphaGo Zero, что позволяет обучать и оценивать его более эффективно.

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

Может ли этот метод - объединение различных задач в одну нейронную сеть для повышения эффективности - быть применен к другим нейронным сетям в целом, или для этого требуются определенные условия для работы?

Дементо
источник

Ответы:

6

Почему это слияние оказалось полезным?

Если вы рассматриваете общую сеть Value / Policy как состоящую из общего компонента (Остаточные сетевые уровни) с компонентом Value и Policy сверху, а не с разделением интересов, это имеет больше смысла.

Основная предпосылка заключается в том, что совместно используемая часть сети (ResNet) обеспечивает обобщение входных данных высокого уровня (игровых состояний, ведущих к ходу), которое является хорошим входным представлением как для мелких сетей Value, так и для сетей Policy.

В этом случае мы можем значительно уменьшить вычислительную нагрузку, обучив одну общую сеть ResNet и используя ее для двух гораздо более простых сетей, чем для подготовки двух сетей ResNet для значения и политики. В их случае совместное обучение также улучшает регуляризацию и, таким образом, создает более надежное общее представление.

В частности, бумага Alpha Go Zero от Silver et al. , Овладение Игры Go без человеческого знания , утверждает , что:

Объединение политики и стоимости в единую сеть несколько снизило точность предсказания хода, но уменьшило ошибку стоимости и повысило производительность игры в AlphaGo примерно на 600 Эло. Отчасти это связано с улучшенной вычислительной эффективностью, но, что более важно, двойная цель упорядочивает сеть до общего представления, которое поддерживает множественные варианты использования.

Может ли этот метод применяться в целом или только в особых случаях?

Как и общие компоненты в библиотеках программного обеспечения, это имеет смысл, только когда проблемы, которые вы пытаетесь решить, выигрывают от общего представления.

Вы можете использовать его, если вы тренируете классификаторы для подобных задач или тренируете новое задание с небольшим объемом данных, когда у вас уже есть классификатор, обученный по большому, похожему набору данных.

За пределами Go он часто используется для распознавания изображений. Глубокие предварительно обученные сети, такие как сети с соревнований ImageNet ILSVRC , обычно используются в качестве отправной точки. Это классификаторы, которые прошли обучение (в течение нескольких недель!) На более чем миллионе изображений.

Затем, скажем, вы хотите создать сеть, которая распознает ваш любимый бренд велосипедов, вы начинаете с общего конвейера распознавания изображений, обученного в ImageNet, отбираете последние слои, которые выполняют фактическую классификацию («это бордер-колли»), и добавляете маленький новый классификатор, чтобы выбрать только те велосипеды, которые вам нужны.

Поскольку предварительно обученный классификатор уже предоставляет высокоуровневые концепции изображений, которые являются хорошими строительными блоками для распознавания изображений (он классифицирует 200 категорий), это экономит вам много времени и делает очень надежный классификатор.

Конечно, есть много случаев, когда проблемы не имеют полезных общих представлений и, следовательно, не получают выгоды от объединенной сети. Тем не менее, это полезный инструмент в правильных ситуациях.

Посмотрите раздел « Трансферное обучение» или « Многозадачное обучение», чтобы узнать больше об этом.

mjul
источник
Если кто-то хочет использовать принципы разработки программного обеспечения для анализа архитектуры этой нейронной сети, я бы также отметил, что сеть остаточных блоков, на которой основаны ценности и политики, соблюдает принцип DRY. Благодаря тому, что один и тот же компонент (сеть остаточных блоков) выполняет предварительную обработку данных перед передачей этих данных другим компонентам в конвейере (заголовки значения и политики), они гарантируют, что каждый из них будет обрабатывать одно и то же представление исходного ввода. Дублирование этой обработки с двумя отдельными сетями почти гарантирует расхождение во времени.
садакацу