Voy a mantener la respuesta lo más simple posible, no entraré en los detalles matemáticos sangrientos. Así que aquí va.
Red neuronal: un algoritmo inspirado en las neuronas de nuestro cerebro. Considérelo como una función matemática f (x). Le das una entrada x y te da una salida y. Tan sencillo como eso. Ahora las redes neuronales se utilizan para un propósito especial y, por ejemplo, para el aprendizaje supervisado. Las redes neuronales se pueden entrenar para aprender y esa es su USP. Se puede entrenar para clasificar algo tan simple como imágenes de perros y gatos o se pueden escalar para identificar cientos de clases como autobús, tren, bicicleta, etc.
Ahora, cómo aprende con el tiempo es a través del algoritmo de propagación inversa. Las redes neuronales tienen algo llamado pesos y capas ocultas. Sus características de entrada se alimentan directamente en estas capas y se propagan, es decir, se multiplican con los pesos contenidos en las capas ocultas y finalmente obtiene una salida. Ahora, el resultado que obtiene después de la primera iteración tendrá una diferencia significativa con respecto a sus objetivos, que se calcula a través de una función llamada función de pérdida. Una función de pérdida no es más que una función que le da una medida de cuán lejos está su salida del objetivo. Ahora, en función de la pérdida, modificamos los pesos de las capas para que en la próxima iteración la salida se acerque a los objetivos y la pérdida disminuya. Por lo tanto, el método con el que ajustamos los pesos ( restamos de los pesos un pequeño valor llamado gradiente que calculamos diferenciando la entrada de pérdida de wrt ) en muchas iteraciones para que la pérdida baje es lo que colectivamente se llama propagación inversa.
- ¿Se puede usar Haskell en un proyecto serio de IA?
- ¿Qué tan bien funciona el sistema ai-one?
- ¿Una combinación humano-computadora supera a una computadora en ajedrez?
- Brevemente, ¿en qué proyecto de IA estás trabajando ahora?
- ¿Qué sigue para Alexa / Echo de Amazon?
Ahora llegando a CNN, es muy similar a su red neuronal artificial. La diferencia radica en la arquitectura. En la red neuronal ordinaria tenemos capas y pesos ocultos, mientras que en CNN tenemos filtros que colectivamente forman sus capas de convolución. Un filtro es como una matriz de pesos. Cada filtro comparte un conjunto de pesos, que involucra la imagen de entrada. Ahora, la convolución no es más que aplicar un producto de puntos entre los filtros y la imagen de entrada y luego tomar una suma. De esta manera, después de una serie de convoluciones, dependiendo de cuántas capas conv tiene en su red, llegamos a una salida. Nuevamente, se calcula la pérdida y dependiendo de la pérdida, aplicamos la propagación inversa para reajustar los pesos de los filtros. Así, esencialmente, con el tiempo, su CNN aprenderá a clasificar sus imágenes de entrada. La ventaja de CNN sobre ANN es que CNN comparte los mismos pesos entre su filtro, por lo tanto, hay menos cálculos en comparación con ANN y, por lo tanto, podemos permitirnos aumentar el número de capas conv que no habrían sido posibles en caso de ANN debido a Grandes cálculos involucrados. Las CNN se utilizan ampliamente y han dado resultados de última generación en la clasificación de imágenes.
Si desea obtener más información sobre NNs, CNNs, back-prop, le sugiero que eche un vistazo a las conferencias CSE 231n Stanford sobre aprendizaje profundo y también los videos de conferencias de aprendizaje automático extremadamente populares de Andrew Ng. Le dará una comprensión sólida del tema.