Blog
Entrevista de 24 preguntas y respuestas sobre Deep Learning para Entrevistas
- Publicado por: Rafael Fernandez
- Categoría: Blog Deep Learning
Es importante que, cuando acudimos a una entrevista de trabajo de Deep Learning, nos preparemos lo mejor posible para lograr alcanzar el éxito. Por ello, a continuación hemos dejado una selección de preguntas y respuestas frecuentes en una entrevista de Deep Learning. Comprende desde conceptos básicos hasta preguntas más avanzadas. Si eres novato o principiante, de todas formas te van a servir de mucho.
Es una parte del machine learning que está centrado en el uso de redes neuronales artificiales profundas, las cuales están inspiradas libremente por el cerebro. El Deep Learning se aplica en una gran gama de campos como: el procesamiento del lenguaje natural, reconocimiento del habla, y la visión por ordenador.
Las redes profundas son capaces de crear representaciones más hondas, en cada una de las capas, de esta manera la red conoce una nueva representación y más abstracta de la entrada.
La función de costo, es la de darnos a entender corno se ha desempeñando la red neural. El objetivo es conseguir parámetros que disminuyan la función de coste. Un ejemplo de una función de costo, es considerar la función de error promedio al cuadrado:
La media de las diferencias cuadradas en una predicción Y^ y el valor deseado Y es lo que se quiere disminuir.
Es un algoritmo iterativo de optimización que se usa en el machine learning para conocer los valores de parámetros que bajan la función de coste. En cada iteración, se calcula el gradiente de función de coste con respecto a los parámetros y se actualiza los parámetros de la función a través de.
Θ - es el parámetro vector, α - tasa de aprendizaje, J(Θ) - es una función de coste
La retropropagación (backpropagation) es un algoritmo de entrenamiento usado en redes neuronales de varias capas. El cual cambia la información de error desde el fin de la red a los pesos (weights) dentro de la red, lo cual va a permitir un cálculo eficiente del gradiente. Este algoritmo se puede dividirse en pasos:
- Reenviar la propagación de datos de formación por medio de la red con la finalidad de producir resultados.
- Usar el valor objetivo y el de salida para hacer el cálculo de la derivada de error con relación a las activaciones de salida.
- Backpropagate para el cálculo de la derivada del error en relación a las activaciones de salida en la capa anterior y pasar a todas las capas que están ocultas.
- Utilizar los derivados que se calcularon anteriormente para salida y las capas ocultas para calcular la derivada de error con relación a ponderaciones.
- Actualización de los pesos.
El simulador de red neuronal le llevará paso a paso por medio de la retropropagación.
Descenso estocástico (Stochastic Gradient Descent): usa un ejemplo de entrenamiento para hacer el cálculo de gradiente y así actualizar parámetros.
Descenso de gradiente de lote (Batch Gradient Descent): calcula los degradados del conjunto de datos y hace la actualización sólo de una actualización en cada iteración.
Descenso en mini-batch (Mini-batch Gradient Descent): es una variación del descenso de gradiente estocástico, ya que, en el lugar de entrenamiento único, se usa un mini-batch de muestras. Este es un algoritmo de optimización muy popular.
- En cuanto a computación es muy eficiente, en comparación con el descenso por gradiente estocástico.
- Mejora la generalización a través de la búsqueda de planos mínimos.
- Mejora la convergencia, a través del uso de mini-batches cercanos al gradiente de todo el conjunto de entrenamiento, que puede colaborar a evitar los mínimos locales.
La multiplicación de matrices por elementos se hace a través de dos matrices con las mismas dimensiones y origina otra matriz con elementos producto de los elementos de la matriz a y b.
Ejemplo de tomar el producto de dos matrices, A (2×3) y B (3×2).
La matriz producto es definida solamente cuando el número de columnas en A sea igual al número de filas en B.
La transposición de una matriz es la formación de una nueva matriz que va a estar formada por el intercambio de filas y columnas.
La codificación en caliente es utilizada para codificar características categóricas. Como por ejemplo la del color. Por ejemplo, supongamos que tenemos una característica llamada color, que puede tomar valores como: rojo, azul, verde.
La normalización de datos es un paso importante de pre-procesamiento, que se usa para reescalar (rescale) valores para que encajen en un rango específico y así asegurar mejor convergencia mientras dure la retropropagación. Es decir, se resta la media de cada punto de datos y se divide por su desviación estándar.
La inicialización puede llevar a una convergencia más rápida y un mejor error general. Los bias en general se pueden inicializar a cero. La regla general para ajuste de los pesos es estar cerca de cero pero sin ser muy pequeño.
Porque el resultado de poner a cero los pesos en la red, es que las neuronas en cada capa producen la misma salida y gradientes durante la retropropagación.
El fin de la función de activación es no introducir la linealidad en la red neuronal para poder aprender una función más complicada.
Sigmoideo (sigmoid): es una función conocida también como logística, es usada para la clasificación binaria, su derivado se puede calcular de manera fácil y es continúa. Esta función 'aplasta' los números reales para que oscilen entre [0,1]. Por ejemplo:
Softmax: es la generalización de la función sigmoide, si queremos manejar muchas clases. Los valores de salida están en el rango (0, 1) y suman hasta 1,0, por lo que se puede interpreta como probabilidades de que la entrada pertenezca a la de una, de un conjunto de clases de salida.
Unidades lineales rectificadas - ReLU: Las salidas ReLU dan 0 si la entrada es menor o igual a 0 y salida raw, porque de lo contrario, se puede pensar que ellas son interruptores. De 'inspiración biológica' dejan entrenar redes más profundas a través de la retropropagación. No sufre el problema del gradiente de fuga, que lo hace muy rápido. Se ha utilizado en redes convolucionales de manera más efectiva que la función logística ampliamente utilizada.
Los hiperparámetros se establecen antes de la fase de entrenamiento, todo lo contrario de los parámetros del modelo.
Tasa de aprendizaje (learning rate): sirve para determinar la rapidez con la cual se quieren actualizar los pesos, mientras dure la optimización. Es considerado el hiperparámetro más importante.
Número de épocas (number of epochs): Es definido como el paso atrás y delante de los datos de entrenamiento.
Tamaño de lote (batch size): los ejemplos de entrenamiento y sus números en un pase adelante/atrás.
Es la capacidad de acercarse a cualquier función que sea dada, mayor capacidad del modelo es mayor cantidad de información que se puede guardar en la red.
Las redes neuronales convolucionales, conocidas como CNN, son redes neuronales que usa la convolución por lo menos en una de sus capas. La capa convolucional consiste en varios núcleos o filtros.
El autocodificador es una red neural artificial la cual es capaz de aprender la representación de un conjunto de datos o codificación, sin necesidad de supervisión. El autoencoder tiene dos partes, el encoder y decoder.
Es el abandono de una técnica de regularización para disminuir el sobreajuste en redes neuronales.
La función de coste cruzada es usada para clasificar. Es una opción natural por si se encuentra una no-linealidad sigmoide o softmax en capa de salida.
La a - representa la salida de la red neuronal, y valor objetivo 'n' es el número total de ejemplos de entrenamiento.
La red Feedforward da oportunidad que las señales se desplacen en un solo sentido, de entrada a salida. La red neuronal recurrente es una red especial que tiene conexiones recurrentes. El RNN puede describirse usando fórmula recurrente:
El estado St en el tiempo 't' es una función del estado anterior St-1 y la entrada Xt en el paso de tiempo (step). La red neuronal recurrente mantiene un estado interno St, utilizando su propia salida como parte de la entrada para el siguiente paso de tiempo (step). Este vector de estado resume la historia de la secuencia que ha visto hasta ahora.
Las redes neuronales recurrentes: son Turing y completas, llegan a simular programas arbitrarios y la red de alimentación, calcula una entrada o salida de tamaño fijo, el RNN maneja datos secuenciales de longitud arbitraria.
- Deep Learning casi siempre requiere de cantidades grandes de datos de capacitación.
- Las redes neurales profundas muy fáciles de engañar.
- Los éxitos de este aprendizaje son empíricos, los algoritmos de este aprendizaje han sido cuestionados y tildados como cajas negras o que no pueden ser interpretadas.
- Este aprendizaje todavía no ha sido integrado de manera factible, con el conocimiento previo (prior knowledge).