En el contexto de las redes neuronales, ¿cuál es la diferencia entre la tasa de aprendizaje y el peso de la caries?
Respuestas
¿Demasiados anuncios?La tasa de aprendizaje es un parámetro que determina la cantidad de una actualización de paso influye en el valor actual de los pesos. Mientras que el peso de la caries es un término adicional en el peso de la regla de actualización que hace que el peso de manera exponencial caer a cero, si no hay otra actualización programada.
Así que vamos a decir que tenemos un costo o la función de error $E(\mathbf{w})$ que queremos minimizar. Gradiente de la pendiente nos dice a modificar los pesos $\mathbf{w}$ en la dirección de más brusco descenso en $E$: \begin{equation} w_i \leftarrow w_i-\eta\frac{\partial E}{\partial w_i}, \end{equation} donde $\eta$ es la tasa de aprendizaje, y si es grande tendrá una consecuencia gran modificación de los pesos $w_i$ (en general no debe ser demasiado grande, de lo contrario se le pasa el mínimo local en su función de coste).
A fin de limitar el número de parámetros libres del modelo así como para evitar la sobre-ajuste, es posible regularizar la función de costo. Una manera fácil de hacerlo es mediante la introducción de un cero significa que antes de Gauss sobre el peso, que es equivalente a la evolución de la función de costo a $\widetilde{E}(\mathbf{w})=E(\mathbf{w})+\frac{\lambda}{2}\mathbf{w}^2$. En la práctica, esto penaliza a los grandes pesos y eficaz de los límites de la libertad en su modelo. El parámetro de regularización $\lambda$ determina la forma en que el comercio fuera de la original costo $E$ con los grandes pesos de la penalización.
La aplicación de gradiente de la pendiente a esta nueva función de costo se obtiene: \begin{equation} w_i \leftarrow w_i-\eta\frac{\partial E}{\partial w_i}-\eta\lambda w_i. \end{equation} El nuevo plazo $-\eta\lambda w_i$ procedentes de la regularización de las causas de que el peso de la caries en proporción a su tamaño.
En adición a @mrig la respuesta (+1), para la aplicación práctica de las redes neuronales es mejor utilizar una más avanzado algoritmo de optimización, tales como el de Levenberg-Marquardt (de tamaño pequeño-mediano de redes) o escala de gradiente conjugado descenso (mediano-grande (redes), ya que estos serán mucho más rápido, y no es necesario establecer la tasa de aprendizaje (ambos algoritmos esencialmente adaptar el ritmo de aprendizaje utilizando la curvatura así como de gradiente). Cualquier decente de la red neuronal paquete o biblioteca tendrá las implementaciones de uno de estos métodos, cualquier paquete que no es probablemente obsoleto. Yo uso el NETLAB biblioteca de MATLAB, que es una gran pieza de equipo.