Redes neuronales
Redes neuronales
Una capa
son las entradas son las salidas son losSe calcula
Y luego
es la llamada
Denotamos
Red de neuronas
Se pueden hacer redes
de varias capas:
la salida de una
es la entrada de la otra.
Si tenemos muchos pares de entradas y sus respectivas salidas
Buscar los mejores pesos
entrenar la red
Hay muchas generalizaciones de esta idea: redes profundas (muchas capas), redes convolucionales, …
¿Cómo de potente es esto? Vídeo de Google DeepMind
Evaluación de la red: forward-propagation
Al algoritmo para, dados los pesos y la entrada calcular la salida se lo llama forward propagation.
Entrenamiento de redes
Se separan los datos en un conjunto de entrenamiento y conjunto de pruebas
Para ajustar la red tenemos que elegir una función de pérdida
A partir de ella elegimos una función de coste, que tenga en cuenta todos las pérdidas. Por ejemplo el error cuadrático medio
Así:
- Se elige
minimizando el coste sobre el conjunto de entrenamiento - Se comprueba que es “bueno” en general el coste con este
sobre el conjunto de prueba (que debe ser distinto al de entrenamiento)
Hay múltiples opciones para la elección de función de coste y hacer la optimización eficientemente es gran parte de la dificultad.
Optimización en el entrenamiento
Para optimizar se utilizan múltiples procedimientos.
El ejemplo más sencillo es el descenso por gradiente
Para calcular
Un ejemplo detallado en Julia
Flux.jl
Flux es una de las mejores librerías de ML en Julia.