Cómo desarrollar una comprensión intuitiva del aprendizaje profundo

Para comprender la intuición detrás del aprendizaje profundo, recomendaría los siguientes pasos:

  1. Comprender la intuición detrás de la propagación hacia atrás. Comprenda las matemáticas detrás de él y, básicamente, lo que significa propagar los errores para corregir los pesos capa por capa.
  2. Comprenda la intuición detrás del uso de convoluciones en CNN para darse cuenta de cómo resuelve el problema de la invariancia de traducción.
  3. Obtenga más información sobre los detalles de la agrupación máxima en CNN y comprenda por qué es necesario.
  4. Si ya sabe qué es el sobreajuste, tenga una idea de lo que significa el abandono y por qué se utiliza como un medio eficaz para regularizar la arquitectura de red de alta dimensión.
  5. Obtenga una mejor comprensión de cómo ajustar la precisión de las redes neuronales y lo que significa tener una tasa de aprendizaje muy alta / muy baja v / s diferentes medios para hacer un descenso de gradiente estocástico.

Ahora, habiendo entendido lo anterior, tome un problema de muestra como el reconocimiento facial y observe los patrones de los pesos aprendidos en diferentes capas y aprecie el aprendizaje de características jerárquicas en las CNN. Correlacione lo que ve con cada uno de los pasos anteriores que entendió y comprenda sus efectos al producir el resultado.

No tuve la intención de escribir una respuesta hasta que leí otras respuestas que eran algo inmaduras.

Para comenzar, verifique esto: https://jalammar.github.io/visua

Ahora, si realmente quieres desarrollar la comprensión intuitiva, haz esto

Mira esto, al menos los primeros videos:

Clase de redes neuronales – Université de Sherbrooke

  1. Vea lo que hace una sola neurona, no es más que un algoritmo de percepción (W’X + b)
  2. Vea por qué necesita una (qué) función de activación para la salida de una neurona
  3. Luego vea lo que puede lograr un grupo de neuronas múltiples,
  4. Entonces mira qué pasa si apilas estas capas, MLP, lo que llamamos red neuronal
  5. Ahora verifique qué es la propagación hacia atrás, para darse cuenta de que no es más que una regla de gradiente decente + cadena (sabia en capas). ¡SIMPLE!
  6. Una vez que esté por encima de las cosas, ahora se dará cuenta de que todos los demás métodos que escucha no son más que arquitectura NN modificada con el mismo algoritmo de retropropagación
  1. Autoenonder (stack o deep): NN con entrada igual que salida
  2. CNN: peso compartido (matriz de convulsión), que submuestrea (agrupando) la salida alrededor
  3. RNN: red neuronal desplegada en el tiempo
  4. Ahora vea por qué cada uno de ellos fue requerido en primer lugar, y por qué la red neuronal estándar de vainilla no funcionó para casos específicos
  5. y ver otras variaciones de estos modelos, para evitar el ajuste excesivo (eliminación de ruido, contracción, deserciones, etc.)
  • Ahora lea “teorema de aproximación universal” y comprenda por qué todavía necesita varias capas
  • A estas alturas también te darás cuenta de los problemas con la retropropagación para la red neuronal multicapa (gradiente de fuga)
  • Es aquí donde comenzará el hermoso aprendizaje profundo real, hasta ahora todo red neuronal y alguna variación alrededor.

    1. Ahora lea sobre el aprendizaje no supervisado y vea cómo reemplaza los métodos antiguos de extraer primero las características y luego supervisar la tarea de aprendizaje para cualquier dominio (numérico, imagen, texto, audio y video)
    2. Para modelos basados ​​en energía: lea sobre RBM, DBN, DBM
    3. Para modelos basados ​​en memoria: lea sobre LSTM, unidades GRU, etc.
    4. Ahora vea con el modelo simple anterior qué cosas hermosas puede lograr (aprendizaje multimodal, neuraltalk), solo para comenzar a apreciar el aprendizaje profundo para obtener más.

    En este momento, habrías desarrollado el sabor básico para el aprendizaje profundo y ahora está a tu alcance para ponerte al día tanto como puedas :). Siga algún sitio para buscar el área específica de interés que le gusta (Deep Learning)

    Aprendizaje profundo

    Saludos,

    1. Comience con lo básico, comprenda qué son las neuronas: son solo construcciones matemáticas para los objetos que reciben información y producen salida al manipular la entrada.
    2. Comprender la propagación hacia atrás. Realmente ayudaría si tiene una sólida base de la regla de la cadena del cálculo (idealmente, cálculo multivariante, pero si es minucioso en el cálculo univariado que podría funcionar). Trabaje en backprop en resumen en papel (si no está familiarizado con el cálculo multivariado), pero si conoce su regla de la cadena, obtenga concretamente las actualizaciones de gradiente en papel para una red neuronal de alimentación multicapa. También podría intentar crear un pequeño marco de software que lo haga por usted. He hecho un proyecto similar. Echa un vistazo a miniflow en mi perfil de GitHub.
    3. Una vez que tenga un backprop, entienda las CNN. Ver videos y conferencias en línea ciertamente ayuda aquí. Hay varias animaciones disponibles donde puede ver la operación de convolución asignando varias entradas a una sola salida y luego tiene ese ‘¡Ajá!’ momento en que finalmente entiendes de qué se trata.
    4. Una vez que haya terminado con eso, intente desarrollar la intuición detrás de técnicas como el abandono, la agrupación máxima y la agrupación promedio.
    5. Finalmente, puede revisar la literatura sobre arquitecturas de CNN como Inception v4, ResNet, GoogLeNet, VGGNet, Spatial Transformer Networks, etc., etc. y leer la explicación propuesta por los autores sobre cómo y por qué esas redes funcionan bien. Puede compararlos con sus observaciones independientes.

    Mucha suerte y feliz aprendizaje profundo.

    Primero, comprenda cómo funcionan las redes neuronales artificiales.

    Entender

    • las interconexiones entre las neuronas;
    • el proceso de aprendizaje y actualización de pesos entre las interconexiones; y
    • Las funciones de activación que convierten las entradas ponderadas en activaciones de salida.

    Una vez que tenga esa comprensión, tenga en cuenta que, en el nivel más fundamental, el aprendizaje profundo es “simplemente” la adición de más capas de redes neuronales. Esto significa más interconexiones, lo que significa encontrar diferentes formas de actualizar los pesos y las funciones de activación que controlan todas las activaciones de salida.

    La idea o intuición detrás del aprendizaje profundo es que, las redes están estructuradas en un formato jerárquico, donde las neuronas de nivel inferior (similar al cerebro) codifican o manejan información sensorial “simplista”: líneas / bordes, curvas, etc. La siguiente capa o jerarquía integra la información de nivel inferior en un poco más completo y objetos complejos, y esto continúa a medida que avanza más arriba en la jerarquía, en la medida en que tiene capas que codifican o procesan información sobre objetos altamente complejos / completos: esferas, cubos, tazas, perros, gatos, etc.

    Supongo que es como escribir un libro, comenzando por letras, palabras, oraciones, párrafos, etc.

    Abstracción = Complejidad, Complejidad = Abstracción (en la mayoría de los casos de todos modos).

    More Interesting

    ¿Cómo se puede conectar una bomba a la CPU de una computadora y / o computadora portátil?

    ¿Cuál es una buena introducción a las bases de datos?

    ¿Hay una plataforma para registrarse para obtener información sobre el aprendizaje automático, conferencias, talleres, trabajos y otras actividades?

    ¿Cómo debo elegir una pista de informática?

    ¿Qué cosas críticas hace un sistema operativo para volverse 'autosuficiente' durante el arranque desde un disco duro?

    ¿Cuánto afecta, si es que lo hace, la calidad del archivo fuente a la salida de un códec, suponiendo que el primero sea mayor?

    Cómo arreglar una computadora que sigue fallando

    ¿Qué debe hacer un CSE / IT más reciente para obtener su primer trabajo en un campo de TI?

    ¿Se está utilizando Quora para entrenar inteligencia artificial para pasar la prueba de Turing?

    ¿Qué quiere decir Donald Knuth cuando dice "obtienes más prestigio haciendo buena ciencia que haciendo ciencia popular"?

    ¿Cuáles son algunos problemas computacionales que son 'inherentemente secuenciales' y que no pueden acelerarse significativamente usando paralelismo?

    ¿Tiene sentido combinar NoSQL y SQL? ¿Por qué?

    ¿El aprendizaje por refuerzo se usa popularmente en la optimización de ejecución comercial?

    ¿Cuál es la optimización de Knuth en la programación dinámica?

    ¿Cuál es la magia detrás de los microchips? ¿Cómo pueden los impulsos eléctricos simples hacer tantas cosas? ¿Cuáles son los fundamentos detrás de esto?