Sobes.tech
Middle — Senior

¿Qué problemas surgen al inicializar los pesos con ceros? ¿Qué métodos de inicialización (Xavier, He) abordan estos problemas?

sobes.tech AI

Respuesta de la IA

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

Методы инициализации, такие как Xavier (Glorot) и He, решают эту проблему, задавая веса случайными значениями с определённым распределением и масштабом, зависящим от числа входов и выходов нейрона. Это помогает сохранить дисперсию сигналов и градиентов на каждом слое, предотвращая затухание или взрыв градиентов.

  • Инициализация Xavier подходит для активаций tanh и sigmoid. Весы выбираются из распределения с дисперсией, обратной сумме входящих и исходящих связей.

  • Инициализация He оптимизирована для ReLU-активаций, где веса масштабируются с учётом только входящих связей, что помогает лучше сохранять градиенты.

Пример инициализации весов в PyTorch с He:

import torch
import torch.nn as nn

layer = nn.Linear(in_features=256, out_features=128)
nn.init.kaiming_normal_(layer.weight, nonlinearity='relu')