Una imagen está compuesta de muchos píxeles. Para la computadora, toda una imagen es una matriz gigante de números: para una imagen en blanco y negro de 256 × 256, la computadora vería una matriz binaria de tamaño 256 x 256 para representar cada píxel como blanco o negro. Para imágenes con color, se pueden representar con valores RGB. El valor RGB puede considerarse como una tupla (R, G, B), donde cada valor está entre [0,255]. Ahora, para una imagen de 256 × 256 colores, tendríamos una matriz de 256x256x3; puede pensar en cada elemento de la matriz como “3 capas de profundidad” para los valores de RBG.
Entonces, esencialmente tenemos una matriz de números. Ahora, esta matriz se puede aplanar en una sola matriz unidimensional. En un sentido típico de aprendizaje automático, esta matriz 1-D ahora representará las “características” de nuestra entrada, y también proporcionará su etiqueta para entrenar nuestra red (para clasificar dígitos MNIST, por ejemplo, proporcionaríamos un vector donde el i-ésimo el valor es 1 si y solo si corresponde a la etiqueta del dígito).
En las redes neuronales convolucionales, podemos hacer algunas cosas interesantes antes de estos pasos de red neuronal y de aplanamiento, por lo general, realizamos pasos de convolución y agrupación máxima en serie. Las convoluciones y la agrupación máxima se pueden expresar fácilmente matemáticamente ya que estamos representando nuestra imagen como una matriz: una convolución simplemente ejecuta una matriz (más pequeña) de números (¡estos números también se aprenden!) Sobre nuestra matriz de imagen más grande, tomando un elemento: sabia multiplicación Una agrupación máxima reduce el tamaño de nuestra matriz al asignar nuestra matriz más grande a una más pequeña basada en el valor más grande en regiones pequeñas. Estas explicaciones son bastante simplificadas, pero deberían darle una buena idea de cómo se manejan las imágenes en el aprendizaje automático / aprendizaje profundo.
- ¿Cuál es un buen consejo para una implementación eficiente de un algoritmo de aprendizaje automático en C / C ++?
- ¿Qué área de IA y aprendizaje profundo es útil para vehículos autónomos?
- ¿Podemos lograr mejor que una disminución sub-lineal en el error al aumentar el número de muestras en regresión lineal?
- ¿Por qué los CNN se usan más para tareas de visión por computadora que otras tareas?
- ¿Tiene sentido usar la selección de características antes de Random Forest?