Как меняются bias и variance при использовании dropout в нейронных сетях?

«Как меняются bias и variance при использовании dropout в нейронных сетях?» — вопрос из категории Нейронные сети и Deep Learning, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Dropout — метод регуляризации, который случайным образом "отключает" (обнуляет выход) часть нейронов во время обучения.

Влияние на bias и variance:

  1. Variance (разброс) уменьшается. Dropout предотвращает коадаптацию нейронов, заставляя каждый нейрон учиться полезным признакам независимо от других. Это делает модель более устойчивой к шуму в данных и снижает переобучение (overfitting).
  2. Bias (смещение) может незначительно увеличиться. Поскольку часть сети "выключается", её предсказательная способность на обучающей выборке временно снижается. Это может привести к небольшому недообучению (underfitting), если параметр dropout установлен слишком высоким.

Практическое использование (на примере TensorFlow/Keras):

import tensorflow as tf
from tensorflow.keras import layers, models

model = models.Sequential([
    layers.Dense(128, activation='relu', input_shape=(input_dim,)),
    layers.Dropout(0.3),  # Отключает 30% нейронов
    layers.Dense(64, activation='relu'),
    layers.Dropout(0.3),
    layers.Dense(10, activation='softmax')
])

Ключевой момент: Во время инференса (предсказания) dropout не применяется, а веса масштабируются на коэффициент (1 - dropout_rate) (в современных фреймворках это делается автоматически). Оптимальное значение dropout_rate обычно находится в диапазоне 0.2–0.5 и подбирается валидацией.