Concepto
Inteligencia Artificial (IA): Emula el comportamiento humano y sus decisiones.
Matching Learning (ML): Conjunto de diferentes modelos de algoritmos para convertir datos empíricos en modelos reutilizables y predictivos. Matching Learning (aprendizaje automático), es un subdominio de la IA que surge a partir de la creación de un modelo y su posterior ajuste automático para la generalización de su aplicabilidad a inputs de datos de una o diferente clase.
¿Cuándo utilizar ML?Desentrañar sistemas de muchas reglas, en sistemas que varían o fluctúan con frecuencia, en donde no somos capaces de determinar completamente el análisis de los datos (ejemplo clasificación de objetos en una imagen).
Deep learning (DL): Deep Learning (aprendizaje profundo). Modelo de redes neuronales artificiales de múltiples capas ocultas. De hecho a partir de 3 o más capas ocultas se considera deep learning. El total de capas va a determinar la profundidad del modelo.
-------------------------------------------------
Dudas a resolver:
- Casificacion logistica: Clasificación binaria que utiliza función sigmoide como función de salida. La función softmax se utiliza en clasificación multiclase ya que comooutput de la función nos proporciona un vector cuya suma es =1.
- ¿Por que en cada tipo de problema utilizamos una funcion de salida?: En clasificación binaria: sigmoide, en clasificación multiclase: softmax, en regresion continua: relu,leakyrelu o tanh. EN LAS CAPAS PROFUNDAS LA FUNICÓN DE ACTIVACION PUEDE SER SIMILAR AUNQUE SEAN PROBLEMAS DIFERENTES--> ReLU por ejemplo.
- ¿Por que existen diferentes funciones de error?: Según la naturaleza del problema al que nos enfretemos. De forma similar a como sucede con las funciones de salida. En los problemas de regresión se utiliza el error cuadrático medio. En problemas de clasificación donde las salidas son discretas utilizamos la entropía cruzada (cross-entropy) o el error logarítmico.
Las funciones de error en las redes neuronales deben ser diferenciables para permitir el cálculo de gradientes durante la retropropagación.
- Explicacion proceso de Optimización: Tras el cálculo de la función de error de nuestro resultado con respecto a la etiqueta tiene lugar la optimización por el cual actualizamos los peso. Si la función de coste: J(W,B). Batch gradient desdents (proceso más frecuente para optimizar) Wn=Wn−α ∂Wn/∂J(Wn,B). Siendo Wn el peso correspondiente. ¡¡Es como si quisieramos saber como varía la función de error al variar un único peso de los múltiples que hay de tal manera que la diferencia sea cada vez menor entre los pesos actualizados y la etiqueta !! ¿Como calculamos la derivada de cada peso correspondiente con respecto a la derivada de la función de error? Para ello debemos de emplear la regla de la cadena y derivadas parciales para simplificar el proceso de cálculo
Existen otras fórmulas para el realizar la optimización como son momento, Adaptative Gradient (AdaGrad) o Adam (Adaptive Moment Estimation).
- Diferencia de la regla de la cadena y derivadas parciales en backpropagation (=retropropagación; proceso fundamental de la etapa de optimización): 1. Regla de la cadena: Herramienta fundamental en el cálculo diferencial: Permite obtener derivada de una función compuesta de varias funciones. Se utiliza, por tanto para propagar el error desde la capa de salida hacia atrás a través de cada capa ya que nos va a permitir calcular la derivada para un peso correspondiente y poder utilizarla en por ejemplo, batch gradient descendt.
2. Derivadas parciales: Permite obtener derivada (podemos denominarlo gradiente) de una variable en una función compuesta de varias variables. Se utilizan, por tanto, para analizar cómo cambia una función en relación con cada una de sus variables independientes calculando el gradiente de los pesos y sesgos en cada capa.
Ejemplo de uso de la cadena y derivadas parciales: Supongamos una red neuronal simple con una sola capa oculta. Activación de la primera capa: z=Wx+b.Función de activación:y= u(z). Cálculo de error L= Loss(y*,y).
- Explicacion conceptual de DBSCAN, K-Means y SVM: DBSCAN: Algoritmo de clustering basado en la densidad que puede identificar grupos de puntos densamente conectados y separar ruido (puntos que no pertenecen a ningún clúster). Es especialmente útil para encontrar clústeres de formas arbitrarias y manejar ruido. Para ello selecciona puntos considerados como centros, frontera y de ruido (que no pertenecen ni acentral ni frontera). K-Means: K-Means es un algoritmo de clustering basado en particiones que divide los datos en k clústeres. Cada clúster está definido por su centroide (el promedio de todos los puntos en el clúster).SVM: SVM es un algoritmo supervisado utilizado para clasificación y regresión. El objetivo de SVM es encontrar un hiperplano que separe los datos de diferentes clases con el margen máximo posible. Para ello utiliza el mínimo número de hiperplanos posibles que separan las clases utilizando vectores de soporte que son aquellos que determinan su función.
Otros aspectos
2. REDES NEURONALES
CONVOLUCIONALES
La red neuronal convolucional (CNN) son el tipo de redes más utilizadas para algoritmos de IA en visión computerizada y tratamiento de imágenes. Son más complejas que las neuronas vistas anteriormente.
Las CNN a diferencia que las redes neuronales densas permiten reconocer características aisladas de la imagen como bordes, aristas… y son capaces de reconocer estructuras espaciales.
¿Convolución?: Operación matemática que genera una tercera función a partir de la interacción de dos anteriores. Para ello una de las funciones se desplazada de forma invertida una “x” distancia sobre la otra. A continuación se calcula el área bajo la curva del punto superpuesto (multiplicación de ambos puntos f(x) y g(x)) entre ambas funciones.
La integral está expresada en términos infinitesimales pero en el apartado de las CNN se aplican en términos discretos —> convoluciones discretas.
Consiste, como hemos comentado, en el desplazamiento de un tensor sobre otro de forma invertida y proceder a la multiplicación de los elementos de ambos vectores. El desplazamiento “x” que hace un vector sobre otro es muy importante; se denomina en la jerga STRIDE y va a determinar el tamaño final del vector.
El tensor que se desplaza sobre el otro recibe el nombre de Filtro o Kernel; ESTE TIPO DE FILTRO ES EL QUE PERMITE CENTRARSE EN UNA CARACTERÍSTICA DE LA IMAGEN COMO EL CONTORNO, SOMBRA….. En Python existe la librería Scipy para hacer la convolución de dos tensores de 2 orden. El producto resultante de ambos vectores recibe el nombre de mapa de características.
Existen otras operaciones importantes en relación con las convoluciones como son el padding; consisten llenar de ceros alrededor del mapa de características de tal forma que tengamos un tensor final de tamaño similar al inicial; es decir previo a la convolución. Otras operaciones son el max pooling y el avarage pooling que consisten en resaltar el máximo o la media respectivamente en cada uno de los desplazamientos.
En el entrenamiento de las redes neuronales convolucionales estas se entrenan para aprender mapas de características, es decir elementos significativos distintivos de la imagen.
La anatomía de una CNN consiste en: 1 Entrada: característica del tensor que alimenta la red. 2 Base: Capas y número de neuronas y sus parámetros. Encargadas de extraer los mapas de características. 3. Cabeza. Capas destinadas a realizar una tarea en concreto. Pueden por ejemplo tener una función de activación tipo SoftMax para clasificación.
—--------------------------------------------------------------------------------
La visión computerizada incluye modelos de ML y cuyas secciones incluye: Clasificación de objetos- detección de objetos (detecta diferentes objetos y su localización en la imagen) y segmentación (divide imágenes en múltiples segmentos, segmentos y regiones según a la clase que pertenecen).
La segmentación la podemos dividir en dos apartados:
Segmentación semántica en la que se clasifican los píxeles de la imagen en etiquetas previamente descritas.
La segmentación por instancias es una extensión de la segmentación semántica ya que además de detectar diferencia a cada uno de los segmentos. Los modelos más empleados en segmentación son: FCN- SegNet-U-Net-Pyramid Scene Parsing Network, PSPNet - Mask R-CNN.