Supongamos que x es la entrada, W es la matriz de peso yf es la función de activación (yf ‘es su derivada).
La regla de actualización SGD convencional sería (no seré riguroso en las operaciones de matriz o notación, suponiendo que comprenda SGD básico):
gradW = f ‘(Wx) * x * error // error = target_output – actual_output
deltaW = tasa_aprendizaje * gradW
W (t + 1) = W (t) + deltaW
Supongo que lo entiendes hasta aquí. Ahora, para Adadelta:
gradW = f ‘(Wx) * x * error
msGradW = rho * msGradW + (1-rho) * gradW² // ms significa “cuadrado medio”
learning_rate = sqrt (msDeltaW + epsilon) / sqrt (msGradW + epsilon) // epsilon es una pequeña constante como 1e-6
deltaW = tasa_aprendizaje * gradW
msDeltaW = rho * msDeltaW + (1-rho) * deltaW²
W (t + 1) = W (t) + deltaW
En resumen: la diferencia es que ahora mantiene un promedio continuo del cuadrado de gradientes y deltas. Su tasa de aprendizaje se obtiene como la relación entre la raíz cuadrada de ambas cantidades más una pequeña constante.
- ¿Los ingenieros de aprendizaje automático en Google tienden a publicar artículos?
- Cómo saber qué algoritmo usar y cuándo
- ¿Cuáles son los algoritmos de aprendizaje de refuerzo más eficientes en datos / muestras?
- Cómo implementar la detección y clasificación de frutas de manzana usando MATLAB en una aplicación antroidea
- AI aprende de los datos del pasado para predecir, entonces, ¿debería haber preocupaciones en torno al pensamiento grupal? ¿La creatividad tendrá éxito en un mundo más autónomo?