Cortesía: Kailash Ahirwar (Cofundador y CTO, Mate Labs )
Comprender qué es la inteligencia artificial y aprender cómo el aprendizaje automático y el aprendizaje profundo la potencian son experiencias abrumadoras. Somos un grupo de ingenieros autodidactas que hemos pasado por esa experiencia y estamos compartiendo nuestra comprensión ( a través de blogs ) de ella y lo que nos ha ayudado en el camino, de forma simplificada, para que cualquiera que sea nuevo en este campo pueda fácilmente empezar a dar sentido a los tecnicismos de esta tecnología.
Además, durante esta misión nuestra, hemos creado una plataforma para que cualquier persona pueda crear modelos de aprendizaje automático y aprendizaje profundo sin escribir ni una sola línea de código .
Neurona (Nodo) : es la unidad básica de una red neuronal. Obtiene cierto número de entradas y un valor de sesgo. Cuando llega una señal (valor), se multiplica por un valor de peso. Si una neurona tiene 4 entradas, tiene 4 valores de peso que se pueden ajustar durante el tiempo de entrenamiento.
Operaciones en una neurona de una red neuronal
Conexiones : conecta una neurona en una capa con otra neurona en otra capa o en la misma capa. Una conexión siempre tiene un valor de peso asociado. El objetivo del entrenamiento es actualizar este valor de peso para disminuir la pérdida (error).
Bias (Offset) : es una entrada adicional para las neuronas y siempre es 1, y tiene su propio peso de conexión. Esto asegura que incluso cuando todas las entradas sean ninguna (todos 0) habrá una activación en la neurona.
Función de activación (función de transferencia) : las funciones de activación se utilizan para introducir la no linealidad en las redes neuronales. Aplasta los valores en un rango más pequeño a saber. una función de activación sigmoidea aplasta los valores entre un rango de 0 a 1. Hay muchas funciones de activación que se utilizan en la industria del aprendizaje profundo y ReLU, SeLU y TanH son preferibles a la función de activación sigmoidea. En este artículo he explicado las diferentes funciones de activación disponibles .
Fuente de funciones de activación: http://prog3.com/sbdm/blog/cyh_24/article/details/50593400
Diseño básico de la red neuronal
Capa de entrada : esta es la primera capa de la red neuronal. Toma señales de entrada (valores) y las pasa a la siguiente capa. No aplica ninguna operación en las señales de entrada (valores) y no tiene pesos ni valores de sesgo asociados. En nuestra red tenemos 4 señales de entrada x1, x2, x3, x4.
Capas ocultas: las capas ocultas tienen neuronas (nodos) que aplican diferentes transformaciones a los datos de entrada. Una capa oculta es una colección de neuronas apiladas verticalmente (Representación). En nuestra imagen que se muestra a continuación, tenemos 5 capas ocultas. En nuestra red, la primera capa oculta tiene 4 neuronas (nodos), la segunda tiene 5 neuronas, la tercera tiene 6 neuronas, la cuarta tiene 4 y la quinta tiene 3 neuronas. La última capa oculta pasa valores a la capa de salida. Todas las neuronas en una capa oculta están conectadas a todas y cada una de las neuronas en la siguiente capa, por lo tanto, tenemos capas ocultas completamente conectadas.
Capa de salida : esta capa es la última capa de la red y recibe información de la última capa oculta. Con esta capa podemos obtener el número deseado de valores y en un rango deseado. En esta red tenemos 3 neuronas en la capa de salida y genera y1, y2, y3.
Forma de entrada : es la forma de la matriz de entrada que pasamos a la capa de entrada. La capa de entrada de nuestra red tiene 4 neuronas y espera 4 valores de 1 muestra. La forma de entrada deseada para nuestra red es (1, 4, 1) si la alimentamos con una muestra a la vez. Si alimentamos 100 muestras, la forma de entrada será (100, 4, 1). Diferentes bibliotecas esperan formas en diferentes formatos.
Pesos (parámetros) : un peso representa la fuerza de la conexión entre las unidades. Si el peso del nodo 1 al nodo 2 tiene mayor magnitud, significa que la neurona 1 tiene mayor influencia sobre la neurona 2. Un peso resta importancia al valor de entrada. Los pesos cercanos a cero significan que cambiar esta entrada no cambiará la salida. Los pesos negativos significan que aumentar esta entrada disminuirá la salida. Un peso decide cuánta influencia tendrá la entrada en la salida.
Propagación hacia adelante
Propagación hacia adelante: la propagación hacia adelante es un proceso de alimentación de valores de entrada a la red neuronal y obtener una salida que llamamos valor predicho. A veces nos referimos a la propagación directa como inferencia. Cuando alimentamos los valores de entrada a la primera capa de la red neuronal, se realiza sin ninguna operación. La segunda capa toma valores de la primera capa y aplica operaciones de multiplicación, suma y activación y pasa este valor a la siguiente capa. El mismo proceso se repite para las capas posteriores y finalmente obtenemos un valor de salida de la última capa.
Propagación hacia atrás
Propagación hacia atrás : después de la propagación hacia adelante, obtenemos un valor de salida que es el valor predicho . Para calcular el error, comparamos el valor predicho con el valor de salida real . Usamos una función de pérdida (mencionada a continuación) para calcular el valor del error . Luego calculamos la derivada del valor del error con respecto a todos y cada uno de los pesos de la red neuronal. La retropropagación utiliza la regla de la cadena del cálculo diferencial. En la regla de la cadena, primero calculamos las derivadas del valor de error con respecto a los valores de peso de la última capa. A estos derivados los llamamos gradientes y usamos estos valores de gradiente para calcular los gradientes de la penúltima capa. Repetimos este proceso hasta obtener gradientes para todos y cada uno de los pesos de nuestra red neuronal. Luego restamos este valor de gradiente del valor de peso para reducir el valor de error . De esta manera nos acercamos (descenso) a los Mínimos Locales (significa pérdida mínima).
Tasa de aprendizaje : cuando entrenamos redes neuronales, generalmente usamos Gradient Descent para optimizar los pesos. En cada iteración usamos retropropagación para calcular la derivada de la función de pérdida con respecto a cada peso y restarla de ese peso. La tasa de aprendizaje determina la rapidez o la lentitud con la que desea actualizar los valores de su peso (parámetro) . La tasa de aprendizaje debe ser lo suficientemente alta para que no tarde años en converger, y debe ser lo suficientemente baja para que encuentre los mínimos locales.
Precisión y recuperación
Precisión : la precisión se refiere a la proximidad de un valor medido a un valor estándar o conocido.
Precisión : la precisión se refiere a la proximidad de dos o más medidas entre sí. Es la repetibilidad o reproducibilidad de la medición.
Recuperación (sensibilidad) : la recuperación se refiere a la fracción de instancias relevantes que se han recuperado sobre la cantidad total de instancias relevantes
Matriz de confusión : como dice Wikipedia:
En el campo del aprendizaje automático y específicamente el problema de la clasificación estadística , una matriz de confusión , también conocida como matriz de error, es un diseño de tabla específico que permite la visualización del rendimiento de un algoritmo, típicamente uno de aprendizaje supervisado (en el aprendizaje no supervisado es suele llamarse matriz coincidente ). Cada fila de la matriz representa las instancias de una clase prevista, mientras que cada columna representa las instancias de una clase real (o viceversa). El nombre proviene del hecho de que facilita ver si el sistema está confundiendo dos clases (es decir, comúnmente etiquetando erróneamente una como otra).
Matriz de confusión
Convergencia : la convergencia es cuando, a medida que avanzan las iteraciones, la salida se acerca cada vez más a un valor específico.
Regularización : se utiliza para superar el problema de sobreajuste. En la regularización, penalizamos nuestro término de pérdida agregando una norma L1 (LASSO) o _L_2 (Ridge) en el vector de peso w (es el vector de los parámetros aprendidos en el algoritmo dado).
L(función de pérdida) + λN ( w ) — aquí λ es su término de regularización y N(w) es la norma L1 o L2
Normalización : la normalización de datos es el proceso de cambiar la escala de uno o más atributos al rango de 0 a 1. La normalización es una buena técnica para usar cuando no conoce la distribución de sus datos o cuando sabe que la distribución no es gaussiana (una campana). curva). Es bueno acelerar el proceso de aprendizaje.
Capas totalmente conectadas : cuando las activaciones de todos los nodos en una capa van a todos y cada uno de los nodos en la siguiente capa. Cuando todos los nodos en la capa Lth se conectan a todos los nodos en la capa (L+1)th, llamamos a estas capas capas completamente conectadas.
Capas totalmente conectadas
Función de pérdida/función de costo: la función de pérdida calcula el error para un solo ejemplo de entrenamiento. La función de costo es el promedio de las funciones de pérdida de todo el conjunto de entrenamiento.
Optimizadores de modelos : el optimizador es una técnica de búsqueda que se utiliza para actualizar las ponderaciones en el modelo.
Métricas de rendimiento: las métricas de rendimiento se utilizan para medir el rendimiento de la red neuronal. La precisión, la pérdida, la precisión de la validación, la pérdida de la validación, el error absoluto medio, la precisión, la recuperación y la puntuación de f1 son algunas de las métricas de rendimiento.
Tamaño del lote : el número de ejemplos de entrenamiento en un pase hacia adelante/hacia atrás. Cuanto mayor sea el tamaño del lote, más espacio de memoria necesitará.
Épocas de entrenamiento : es la cantidad de veces que el modelo se expone al conjunto de datos de entrenamiento.
Una época = un pase hacia adelante y un pase hacia atrás de todos los ejemplos de entrenamiento.
En Mate Labs , hemos creado Mateverse , una plataforma de aprendizaje automático, donde puede crear modelos de aprendizaje automático personalizados en minutos sin escribir una sola línea de código . Nuestra plataforma permite que todos construyan y entrenen fácilmente modelos de Machine Learning, sin escribir una sola línea de código.
Comparta sus pensamientos con nosotros en Twitter .
Cuéntanos si tienes alguna sugerencia nueva. Nuestros oídos y ojos siempre están abiertos para algo realmente emocionante.