En este artículo, aprenderá
-Cuál es la esencia del aprendizaje profundo -Para qué son las
funciones de activación
-Qué es FCNN
-Qué tareas puede resolver FCNN -Cuáles
son las desventajas de FCNN y cómo lidiar con ellas
Pequeña introducción
Este es el comienzo de una serie de artículos sobre qué tareas hay en DL, redes, arquitecturas, principios de trabajo, cómo se resuelven determinadas tareas y por qué una es mejor que la otra.
¿Qué habilidades preliminares se necesitan para comprender todo? Es difícil de decir, pero si sabes cómo buscar en Google o hacer preguntas correctamente, estoy seguro de que mi serie de artículos te ayudará a entender mucho.
¿Qué sentido tiene el aprendizaje profundo?
La conclusión es construir algún algoritmo que tome X como entrada y prediga Y.Si escribimos el algoritmo de Euclid para encontrar GCD, entonces simplemente escribimos ciclos, condiciones, asignaciones y eso es todo: sabemos cómo construir dicho algoritmo. ¿Y cómo construir un algoritmo que tome una imagen como entrada y diga un perro o un gato? ¿O nada en absoluto? Y el algoritmo, a cuya entrada enviamos el texto y queremos saber, ¿de qué género es? Es muy fácil escribir ciclos y condiciones con bolígrafos: aquí las redes neuronales, el aprendizaje profundo y todas estas palabras de moda vienen al rescate.
Más formalmente y un poco sobre las funciones de activación.
Hablando formalmente, queremos construir una función a partir de una función a partir de una función ... a partir del parámetro de entrada X y los pesos de nuestra red W, lo que nos daría algún resultado. Es importante señalar aquí que no podemos simplemente tomar muchas funciones lineales, ya que superposición de funciones lineales - función lineal. Entonces, cualquier red profunda es análoga a una red con dos capas (entrada y salida). ¿Por qué necesitamos la no linealidad? Nuestros parámetros, que queremos aprender a predecir, pueden depender de forma no lineal de los datos de entrada. La no linealidad se logra mediante el uso de diferentes funciones de activación en cada capa.
Redes neuronales totalmente conectadas (FCNN)
Solo una red neuronal completamente conectada. Se parece a esto:
la conclusión es que cada neurona de una capa está conectada a cada neurona de la siguiente y la anterior (si corresponde).
La primera capa es la entrada. Por ejemplo, si queremos alimentar una imagen de 256x256x3 a la entrada de dicha red, entonces necesitamos exactamente 256x256x3 neuronas en la capa de entrada (cada neurona recibirá 1 componente (R, G o B) de un píxel). Si queremos mostrar la altura de una persona, su peso y 23 características más, necesitamos 25 neuronas en la capa de entrada. El número de neuronas en la salida es el número de características que queremos predecir. Puede ser 1 característica o todas las 100. En el caso general, por la capa de salida de la red, es casi seguro que se pueda decir qué problema resuelve.
Cada conexión entre neuronas es un peso que es entrenado por el algoritmo de retropropagación, sobre el que escribí aquí .
¿Qué tareas puede resolver FCNN?
-Problema de regresión . Por ejemplo, predecir el valor de una tienda en función de algunos criterios de entrada como país, ciudad, calle, tráfico, etc.
-Problema de clasificación . Por ejemplo, el clásico es la clasificación MNIST.
-No me comprometeré a comentar sobre la tarea de segmentación y detección de objetos usando FCNN. Quizás alguien compartirá en los comentarios :)
Desventajas de FCNN
- Las neuronas de una capa no tienen información "común" (todos los pesos de la red son únicos).
- Una gran cantidad de parámetros entrenados (pesos), si queremos entrenar la red en fotografías.
¿Qué hacer con estas desventajas? Redes neuronales convolucionales (CNN) está bien. Este será mi próximo artículo.
Conclusión
No veo mucho sentido en detenerme en redes neuronales completamente conectadas durante mucho tiempo. Si alguien está interesado en la implementación misma de tales redes, aquí puede ver y leer sobre mi implementación.