Entradas

ALGEBRA LINEAR PERA TODOS [Parte 2]

Autor: Paolo Caressa     

Traductor: Paula Vidal

Puntos, vectores y su álgebra Hasta ahora hemos hablado de puntos como la totalidad de los puntos del plano que se identifican de una manera bidireccional con la totalidad de todos los pares posibles de números reales.En lo que respecta al aprendizaje automático, nos interesan los conjuntos de puntos finitos, ya que queremos representar objetos particulares para clasificar o fenómenos para relacionarlos como puntos en un espacio cartesiano. Para encontrar una regularidad o un “patrón” en estos puntos, a menudo nos interesa considerar líneas rectas, planos, así como figuras geométricas más complejas, como cónicas en el plano o cuadrículas en el espacio.Ya hemos visto, con un ejemplo, que algunas figuras geométricas se pueden representar individualmente o con sistemas de ecuaciones. Limitémonos al caso de las líneas rectas y de los planos para comprender en general cómo se representan, dado que a menudo estas representaciones se utilizan en el aprendizaje automático.   Una línea recta es intuitivamente un conjunto de puntos alineados: uno de los axiomas de Euclides establece que en dos puntos solo pasa una línea recta, es decir, que para determinar unívocamente una línea recta es suficiente para indicar dos puntos distintos. Para entender cómo se puede hacer esto en el plano cartesiano, consideremos dos puntos distintos P y Q de coordenadas P=(x1,y1) e Q=(x2,y2). Definimos el vector que va de P a Q como un par de números Cattura 6 Es decir, un vector es, por definición, una diferencia de puntos, donde el término diferencia significa la diferencia entre los componentes que tienen el mismo índice. Desde un punto de vista informático podemos pensar de esta manera: un punto es una matriz (o lista)que son números con dos elementos. Normalmente, una matriz A = [x, y] formadas desde 0, es decir, A [0] = x y A [1] = y. Luego, si A y B son matrices, el vector  \overline{AB}  se puede representar con la matriz [B [0] – A [0], B [1] – A [1]]. Queda por entender por qué llamamos “vector” a una diferencia de puntos: porque es un objeto dotado de dirección, verso e intensidad, como los vectores de la física. La dirección es simplemente la línea que pasa por P y Q; que va de P a Q (el vector opuesto sería \overline{PQ}  que va de Q a P: ¿cuáles son sus componentes?) La intensidad es la distancia entre los puntos P y Q. Por lo tanto, un vector determina una línea y en ella, una dirección: por supuesto, hay vectores infinitos que determinan la misma línea. Por ejemplo la recta que pasa por los puntos   P= (0,1)  y Q= (0,-2) entonces seria la recta \overline{PQ}= (-2,2) , pero también el vector (-1,1)  que tiene la misma dirección, pero tiene diferentes intensidades. En general, por cada numero  (-a,a) un no nulo representa esta línea. Decimos que dos vectores son paralelos si son un múltiplo del otro por un factor de escala distinto de cero. De hecho, otra forma de determinar una recta es identificar un punto P  y un vector \overline{v}  de modo que expresamos todos los puntos paralelos de la recta trasladados a los vectores paralelos de  \overline{v}  X= P+ \overline{av} Esto se denomina ecuación paramétrica de la recta, ya que expresa el punto genérico de la línea por medio de un parámetro que varía en todos los números reales. Tenga en cuenta que utilizamos la operación de suma entre un punto y un vector, definida de manera obvia: si P= (X,Y)  e  v= \overline{RS} entonces   P + \overline{RS} \left ( x+w-a,y+z -b\right ) , suponiendo  que las cordinadas de los puntos  R y  S sean  R=(a,b)  y S=(w,z) .  Osea sumamos las coordinadas  del punto y los componentes  del vector para obtener un nuevo punto. Cuando agregamos un vector a un punto, también decimos que aplicamos el vector en ese punto. Los vectores, además de permitir definir las líneas rectas y en dimensiones superiores, planos e hiperplanos, podemos observar que:

  1. Los vectores se pueden sumar y entre ellos obteniendo otros vectores:

\overline{PQ} + \overline{RS}= Q-P+S-R Entonces notamos que  \overline{PQ} + \overline{QP}=0  (el vector es 0) y  \overline{QP}   es el vector opuesto  \overline{PQ}. Además, esta operación de suma satisface las propiedades conmutativas y asociativas habituales. 2.  Los vectores se pueden multiplicar por un numero obteniendo otros vectores:  Además, esta operación del producto cumple con las propiedades conmutativas, asociativas y distributivas habituales. En particular el vector denominado nulo  \overline{0} se obtiene multiplicando por cero y  con un vector opuesto de un determinado vector  \overline{v}, es  decir aquel vector  \overline{w} tal que  \overline{v} + \overline{w}=0 , lo obtenemos   \overline{v}  multiplicamos  por -1.   El término espacio vectorial significa un conjunto de elementos con dos operaciones, de suma entre los elementos y de multiplicación de un elemento por un número, que satisface las mismas propiedades de las operaciones entre los vectores del plano.

vettore in un piano

Figura 3. El vector obtenido con la suma de dos vectores del plano se construye tomando la diagonal del paralelogramo identificado por los dos vectores si se aplica en el mismo punto.

En realidad, en el aprendizaje automático utilizamos invariablemente espacios vectoriales de dimensiones finitas cuyos vectores se expresan en coordenadas, en este caso los vectores son diferencias de puntos, como en el ejemplo que estamos discutiendo. De hecho, un elemento de confusión para los principiantes es que tanto los puntos como los vectores del espacio cartesiano se representan como pares de números.Queremos recordar que, incluso si están representados de la misma manera, son objetos conceptualmente distintos. Un punto identifica un solo punto en el espacio, un vector identifica un desplazamiento a lo largo de una dirección, hacia y cierta longitud donde es posible hacer que un punto corresponda con un vector y viceversa de la siguiente manera: al punto P podemos hacer que corresponda con el vector    \overline{OP}  este va desde el origen del plano cartesiano hasta el punto. P; si en cambio   \overline{v} ,  es un vector, podemos asociar el punto.  0+\overline{v} .   Esta distinción entre puntos y vectores a menudo se pasa por alto, pero mientras tanto es importante distinguir conceptos aparentemente idénticos, y luego porque ayuda a interpretar las aplicaciones de la teoría: por ejemplo, en la siguiente figura se representan, según un cierto algoritmo de aprendizaje automático, algunas palabras de un Cuerpo de documentos en inglés con los puntos del plano cartesiano:   italy   Como puedes ver los puntos representan palabras. ¿Qué representan los vectores en este caso? Tomemos el vector que va de “pizza” a “italia” y apliquemos a “sushi”: obtenemos indicativamente “japón”. Deducimos que ese vector representa la respuesta a una pregunta, que es “dado un plato típico, ¿cuál es su nación?”. En este caso, está claro que los puntos y vectores representan conceptos distintos. Longitud y ángulo entre vectores, similitud del coseno Para definir la longitud de un vector introducimos una notación ampliamente utilizada: el producto escalar (o dot-product). Sea  \overline{v} =(v_1,v_2) e  \overline{v} = (v_1,w_2) decimos que el productor escalar de   \overline{v}  y  \overline{w}   es el numero: ecuacion 1   Obtenemos la suma de los productos de los componentes del mismo índice de los dos vectores. En particular, el producto escalar de un vector por sí mismo es, por definición, el cuadrado de su longitud: ecuacion 2 La longitud de un vector también se llama norma: tenga en cuenta que la fórmula muestra claramente que la regla que hemos considerado es “euclidiana”, y la razón se debe al hecho de que si escribimos como diferencia de puntos, encontramos que nueva ecuacion 3 La longitud de un vector que hemos definido aquí es la que en física se llama su intensidad: además de la longitud, también podemos definir el ángulo entre dos vectores, implícitamente por medio de la fórmula: ecuacion 4 Usando la función coseno del arco es posible calcular este ángulo a partir del producto escalar de los dos vectores y sus longitudes: la razón por la cual esta fórmula define efectivamente el ángulo entre los vectores está relacionada con la trigonometría. Nostamos que   \theta  es un numero entre -1 y  1  tal que: imagen 3 Entonces, mientras la distancia compara la similitud entre dos puntos, que son tanto más similares cuanto más cerca está de cero, el coseno mide la similitud entre dos vectores, en el sentido de que cuanto más cerca está de 1 en valor absoluto y más los vectores determinan la misma recta. Esta medida se usa a menudo en el aprendizaje automático para clasificar objetos mapeados en espacios vectoriales. El espacio cartesiano en N dimensiones. En el tour del tal vez de la geometría cartesiana y vectorial que hemos seguido hasta ahora, nos hemos limitado al caso de la dimensión N = 2 para ayudarnos con los dibujos y desarrollar los conceptos en un entorno familiar: pero en las aplicaciones estamos tratando con espacios de dimensión. También muy alto. En este caso, debemos renunciar a la intuición, pero en realidad todas las fórmulas que hemos dado y todos los conceptos que hemos definido se transportan “en pie de igualdad” al caso de cualquier tamaño.De hecho, todas las fórmulas dependen de sumas y restas de las coordenadas de los puntos y los componentes de los vectores: si estos componentes son 2 o 20,000, no hay una diferencia real. Aún mejor, todo esto se implementa de manera muy eficiente en una computadora, donde podemos digerir puntos y vectores en espacios muy grandes sin problemas. Sin embargo, debemos explicar un concepto de hiperplano: en el caso del plan coincide con el concepto de línea y en el caso del espacio ordinario con el concepto de plano. Dada una dimensión N consideramos el espacio cartesiano R^n.   Una línea recta de este espacio está, como en el caso de la dimensión 2, determinada por un par de puntos o por un punto y por un vector: la ecuación paramétrica es la misma que en el caso bidimensional. Si N > 2 También podemos considerar ecuaciones paramétricas del tipo: ecuacion 5 En este caso tenemos dos parámetros que varían independientemente, por lo tanto, por intuición, el conjunto de puntos X que satisfacen esta ecuación en la variación de a y b en los números reales corresponde a los pares (a, b), es decir, al plano. En otras palabras, es un objeto bidimensional. En realidad pueden haber excepciones : por ejemplo    \overline{v}= \overline{w} la ecuación paramétrica anterior se reduce a ecuacion 6 Así que en realidad representa una recta. Entonces, si escribimos una ecuación paramétrica con múltiples parámetros, el tamaño del conjunto de puntos descrito por esta ecuación depende de las relaciones entre los vectores utilizados para escribirla: en el caso anterior, si los vectores son paralelos, la ecuación representa una línea recta y no un plano. Si en general, en un espacio de tamaño N, escribimos una ecuación paramétrica en los parámetros N – 1, tenemos: ecuacion 7 Si todos los vectores que aparecen en él son paralelos, ¡todavía tenemos una línea recta! Para asegurarnos de que tenemos un objeto de tamaño N-1, debemos encontrar un análogo de la condición de paralelismo entre dos vectores que se pueda expresar con más de dos. Digamos que n vectores: Cattura 1 son linealmente independientes si la única forma de satisfacer la ecuación ecuacion 8 Es que todos los coeficientes  a_1, a_2,a_n   son nulos! Es decir, la única solución a esta ecuación vectorial debe ser Cattura2 Ahora podemos definir un hiperplano de tamaño N – 1 en un espacio cartesiano de tamaño N como el conjunto de puntos definidos por la ecuación paramétrica ecuacion 9 Para variar en todas las formas posibles de los números: Cattura 3

y suponiendo que los portadores representados a continuación son linealmente independientes.

Cattura4 Un hiperplano también se puede describir mediante una ecuación cartesiana, es decir, mediante una relación lineal entre las coordenadas del punto genérico que le pertenece: ecuacion 10 donde b_i no todos son equivalentes a 0. Una forma de determinar esta ecuación es observar que la suma de los productos de los coeficientes y las coordenadas es el producto escalar entre el vector  \overline{b} = (b_1, b_2,..,b_n) y el vector \overline{x} = (x_1, x_2,..,x_n) de las coordenadas, para que podamos escribirlo. Cattura 5 Esto significa que el hiperplano está formado por vectores que son perpendiculares al vector que representa la dirección perpendicular al hiperplano, el que falta para llenar todo el espacio. Un hiperplano de tamaño N – 1 en un espacio de tamaño N separa el espacio en dos partes, exactamente como una línea recta separa el plano en dos y un plano separa el espacio tridimensional en dos: los puntos que pertenecen a una de las dos partes en las que el espacio está separado del hiperplano que tiene las coordenadas que satisfacen la desigualdad. ecuacion 13 Mientras que los puntos cuyas coordenadas satisfacen la desigualdad. ecuacion 14 Constituyen la otra parte del espacio delimitado por el hiperplano. Esta idea de usar un hiperplano para separar el espacio en dos partes es separable linealmente y se usa en algoritmos clásicos de aprendizaje automático, como árboles de decisión o máquinas de vectores de soporte. Las matrices y su álgebra. Una de las características del álgebra lineal es la facilidad y universalidad de sus métodos numéricos: en esencia, es suficiente haber implementado un algoritmo (o una variante de él), a saber, la eliminación de Gauss, para poder hacer básicamente cualquier cosa [una introducción a este algoritmo. Se encuentra por ejemplo en estas notas]. Estos algoritmos normalmente ya están implementados en todas las bibliotecas de cálculo numérico estándar, por ejemplo, numpy.linalg de Python. Para cerrar este tutorial (ahora demasiado largo) es apropiado introducir la noción clave que involucra a todos estos algoritmos, y que también es útil en todos los desarrollos conceptuales del álgebra lineal: el concepto de matriz. Una matriz es simplemente una tabla de números: o incluso definible como una matriz bidimensional. Por lo tanto, decimos que una matriz n × m es una tabla de números que denotamos mediante dos índices, iej, donde el primer índice identifica la fila y el segundo la columna: en la intersección de la fila i y la columna j encontramos el número identificado por estos índices (en matemáticas los índices comienzan en 1 y no en 0 como en informática) Cuando lo escribimos en su totalidad, una matriz se representa de la siguiente forma tabular: ecuacion15   Una matriz en la que n = m se llama matriz cuadrada. Desde un punto de vista práctico, una matriz parece simplemente un vector de longitud nm cuyos elementos están dispuestos en forma tabular en lugar de estar escritos en secuencia. Sin embargo, este cambio de notación es esencial para usar estos objetos. En particular, las matrices enriquecen el álgebra de los vectores con una operación de multiplicación propia: primero notamos que podemos sumarlos y multiplicarlos por un número, aún obteniendo matrices del mismo tipo Catturab6 Una matriz en la que n = m se llama matriz cuadrada. Desde un punto de vista práctico, una matriz parece simplemente un vector de longitud nm cuyos elementos están dispuestos en forma tabular en lugar de estar escritos en secuencia. Sin embargo, este cambio de notación es esencial para usar estos objetos. En particular, las matrices enriquecen el álgebra de los vectores con una operación de multiplicación propia: primero notamos que podemos sumarlos y multiplicarlos por un número, aún obteniendo matrices del mismo tipo Cattura66 Aparentemente no hay una diferencia sustancial, pero en realidad si interpretamos un vector como un tipo particular de matriz, el vector de fila es una matriz de 1 × 3 mientras que el vector de columna es una matriz de 3 × 1. Lo que se puede hacer es, de hecho, dada una matriz A del tipo n × my una matriz B del tipo n × r multiplicar A por B obteniendo una matriz n × r. El coeficiente de los índices i y j de la matriz AB se calcula como la siguiente suma: Cattura 12 Tenga en cuenta que este es el producto escalar del vector de fila dado por la i-ésima fila de A para el vector de columna dado por la j-ésima columna de B: esta es la razón por la cual el producto de las matrices de las llamadas filas de productos por columnas. Ejemplo: multiplicamos una matriz de 2 × 3 para una matriz de 2 × 3: image1 Ahora volvamos a nuestros vectores: podemos multiplicar el vector de fila por el vector de columna, y una matriz de 1 × 1 produce un número (el producto escalar). Pero también podemos multiplicar el vector de columna 3 × 1 por el vector de fila 1 × 3 obteniendo una matriz de 3 × 3: catura 12 Por lo tanto, observamos que al multiplicar dos vectores de un espacio de dimensión N obtenemos un vector de un espacio de otra dimensión: 1 o N × N. La matriz de identidad es la matriz cuadrada que contiene cero en todas partes excepto en la diagonal donde contiene 1 (los elementos diagonales de una matriz son aquellos cuyo índice de fila es igual al índice de columna :). Por ejemplo, en la dimensión 3 la matriz de identidad es   ecuacion 16   Como sugiere su nombre, multiplicar una matriz A por la matriz de identidad aún produce A. Además, el producto de la matriz es distributivo con respecto a la suma. Sin embargo, el álgebra matricial tiene una particularidad: el producto no es conmutativo, lo que significa que AB es diferente de BA (de hecho, BA podría no tener significado, por ejemplo, n ≠ m). Por ejemplo ultima ecuacion   Otra operación típica que se lleva a cabo es la multiplicación de una matriz n × m para un vector de columna de m componentes: resulta un vector de columna de n componentes.

ALGEBRA LINEAL PARA TODOS[Parte 1]

Autor: Paolo Caressa

Traductor: Paula Vidal

 

Premisa

 Como en cualquier otro sector interdisciplinario en  el  aprendizaje automático y en el  aprendizaje profundo, necesariamente debemos utilizar nociones, conceptos y formalismos que provienen de diferentes fuentes y  en muchos casos, requieren que se comprendan diferentes tipos  de mentalidades. Por esta razón, es costumbre decir que el científico de datos debe ser un “mezcla” entre un científico de computación, un estadístico y un matemático, pero pocos se adentran en comprender  estas  tres materias y al mismo  las tres no resultaran igualmente fáciles, intuitivas y hermosas para una mente. En particular, las principales nociones matemáticas que son indispensables para un científico de datos, como para  también para aquellos que están interesados únicamente en comprender cómo funciona un sistema de aprendizaje automático para lograr administrarlo mejor, uno de la némesis es el álgebra lineal

Es sorprendente que para los matemáticos consideran que el álgebra lineal es una cosa muy fácil. Me atrevo a decirlo, citando la frase del matemático I.M. Herstein, ¡el álgebra lineal tiene solo tres características, es fácil, útil y hermoso! El propósito de este tutorial es explicar las nociones básicas de álgebra de una manera simple pero rigurosa, por lo que si ya sabe cómo calcular los vectores propios y los valores propios de una matriz o tal vez una descomposición en valores singulares (SVD) o un análisis de los componentes (PCA) si no sabe de lo que estoy hablando nos despedimos aquí. De lo contrario, ¡disfrute de su lectura!

El plano y el espacio cartesiano

Vamos atrás en el tiempo y recordémonos cuando íbamos a la  escuela secundaria: “geometría analítica (o cartesiana)” Inventado por Descartes y Fermat en el siglo XVII, la idea básica de la geometría cartesiana es proporcionar un modelo numérico para el plano y el espacio. En resumen, el descubrimiento consiste en identificar el conjunto de puntos del plano (es decir, mapeado de manera biunica para que no se pueda distinguir) con el conjunto de pares de numéricos (x, y) con x e  independientes. Primero, recordemos que los puntos de la línea se identifican con el conjunto de números reales (es decir, racional e irracional) ordenados por la relación habitual <. Fijamos un punto O en la línea recta y correspondiente a 0, fije un punto U (diferente de O) y haga que corresponda a 1; Todos los demás puntos están determinados por la posición relativa con respecto a estos:

 

recta

Por lo tanto, queda claro lo que significa la distancia entre dos puntos P y Q en la línea: si x e y son los números correspondientes, la distancia PQ es igual a | x – y | (valor absoluto de la diferencia):

 

Cattura 1 1

 

 

Así que basta que una resta línea se fijen los puntos  cero y uno, en un parte estarán  los números positivos (aquellos que están todos en un lado de O e incluyen U) y los números negativos (aquellos que están todos en un lado de O y no incluyen U).

Observemos este ejemplo:

La recta de geometría está completamente representada en el conjunto R de números reales un punto corresponde a uno y solo un número, donde cada número real que podemos imaginar como un número decimal que tiene un número finito de dígitos después de la coma, que tiene un número finito de dígitos después de la coma que se repiten indefinidamente, o que tiene un número infinito no dígitos periódicos después de la coma (estrictamente hablando, deben excluirse las secuencias que terminan con un 9 periódico).

Pasemos ahora al plano

Fijamos un punto O en el plano y toma una recta x que pase a través del punto y una segunda línea ortogonal a x, llamada y. Tanto como en  x e  y se elige la misma unidad de medida (es decir, un punto U distinto de O y se establece convencionalmente que la distancia OU es 1).De esta manera, es posible medir la distancia entre dos puntos que están en x con respecto a la unidad de medida establecida.La correspondencia entre un punto P del plano y un par (a, b) de números se produce de la siguiente manera:

  1. El punto P se proyecta en el eje x obteniendo un punto P’ y se pone a = a la distancia entre  P’ y  O.
  2. El punto P se proyecta en el eje y obteniendo un punto P ’’ y b = distancia entre P ’’ y O.

Entonces asociamos el punto  P con los puntos (a, b): para pasar de las coordenadas (a, b) a los puntos, será suficiente encontrar los puntos P ‘y P’ ‘en las líneas rectas x e y que están alejadas para a y b desde el origen O, trazamos los ejes perpendiculares para estos puntos y determinar P como su intersección.

Plano cartesiano

Figura 1. Tres puntos en un plano cartesiano, con sus coordinadas y con sus proyecciones en los ejes de la recta.Fuente: wikipedia

 

 

Entonces:

 

El plano de la geometría se identifica completamente con el conjunto R2 de los pares de números reales:  a un punto corresponde a uno y solo un par.

La notación R2 indica los pares ordenados de elementos de R. Si X es un conjunto, Xn es generalmente el conjunto de n-ple de elementos de X.

¿Cuál es la ventaja de considerar el plano como el conjunto de pares de números (a, b)?

  • En primer lugar, podemos decir qué es, un conjunto de parejas precisamente, no necesitamos axiomas ni nada más.
  • En segundo lugar, transformamos los problemas geométricos, que normalmente involucran construcciones complicadas y razonamientos muy largos, en cálculos.

La geometría cartesiana es, por lo tanto, la geometría ideal para hacer en la computadora: podemos reducir todo a números y cálculos. No es sorprendente que las bibliotecas 2D que se utilizan para dibujar en la pantalla de la computadora, o en una ventana de la aplicación, representen puntos como pares de números (las coordenadas) y un atributo que represente su color.

Por ejemplo: ¿cómo representas una curva en el plano cartesiano?

Hay dos maneras:

  • A través de una ecuación cartesiana, una relación única que enlaza las coordenadas de un punto genérico.
  • A través de una ecuación paramétrica, que muestra el punto genérico de la línea en función de un parámetro.

Por ejemplo, consideremos la ecuación x2 + y2 = 1 y la ecuación 2x + y = 0. La primera representa una circunferencia central del origen y el radio 1, la segunda es una línea recta que pasa por el origen.

Supongamos que queremos calcular las intersecciones: utilizando la geometría clásica deberíamos construir estas intersecciones de alguna manera, mientras que con la geometría cartesiana nos hacemos la siguiente pregunta: ¿cuáles son los puntos de coordenadas (x, y) sujetos simultáneamente a las relaciones x2 + y2 = 1 y 2x + y = 0?

La segunda ecuación es equivalente a  y = –2x, que se reemplazó en el primero y  es igual a x2 + (- 2x) 2 = 1, es decir x2 + 4×2 = 1 que es x2 = 1/5, que tiene dos soluciones x = 1 / √5 ex = –1 / √5, con el que encontramos las dos intersecciones requeridas: los puntos (1 / √5, –2 / √5) y (–1 / √5, 2 / √5). En este punto, identificamos el espacio cartesiano en tres dimensiones con el conjunto de triples (x, y, z) de números reales, es decir, con el conjunto R3. Por lo tanto, un punto en el espacio está determinado únicamente por sus tres coordenadas cartesianas, en las que podemos trabajar para resolver problemas geométricos, después de haberlos traducido en problemas algebraicos.

 

Distancia entre dos puntos

Hemos dicho que a lo largo de una recta, identificada con el conjunto de números reales, las distancias se calculan con el valor absoluto de la diferencia. ¿Cómo calculamos las distancias en un plano ? Lo interesante es que hay diferentes maneras de hacerlo, todas las cuales son generalizaciones de la distancia en la recta, mencionamos las tres principales, todas pertenecientes a la familia de distancias Minkonski:

  • la distancia euclidiana la distancia a manhattan
  • Distancia uniforme.

La distancia euclidiana entre dos puntos P = (x1, y1) y Q = (x2, y2) en el plano viene dada por la siguiente fórmula:

Cattura 2

Mientras tanto, vemos que si P y Q están en la misma línea, por ejemplo, el eje x, esta distancia se reduce al valor absoluto de la diferencia de coordenadas: de hecho, si suponemos que  P = (x1,0) e Q = (x2,0) ) La fórmula anterior nos ofrece (como es habitual cuando tomamos la raíz cuadrada de un número que consideramos positivo).

La distancia euclidiana en realidad se llamaría pitagórica, como se desprende del teorema de Pitágoras: supongamos que tenemos un triángulo rectángulo OPQ, con un vértice en el origen, un lado en el eje x   y el otro perpendicular al eje x.

cattura 3

(como es habitual cuando tomamos la raíz cuadrada de un número consideramos la positiva).

La distancia euclidiana en realidad se llamaría pitagórica, como se desprende del teorema de Pitágoras: supongamos que tenemos un triángulo rectángulo OPQ, con un vértice en el origen, un lado en el eje xy el otro perpendicular al eje x.

Así, las coordenadas de P serán del tipo (x, 0) y las de Q del tipo (x, y): la distancia entre O y P es x y la que entre Q y P es y, con lo cual, para el teorema de Pitágoras, d (O, Q) 2 = d (O, P) 2 + d (P, Q) 2 = x2 + y2. Así que en este caso, tomando la raíz cuadrada,

Cattura 4

y la fórmula se verifica. En el caso general, el razonamiento es análogo, pero también participan las coordenadas de O (que en nuestro caso llegar a ser cero). Así la distancia euclidiana se reduce a la distancia entre dos puntos en una línea recta y tiene un contenido geométrico obvio.

recta.opq

 

La distancia en el espacio se calcula de manera similar, teniendo en cuenta que los puntos tienen una coordenada adicional: si  P = (x1,y1,z1) e Q = (x2,y2,z2) Son puntos del espacio cartesiano, su distancia es:

Cattura 5 1

Para los más curiosos, en el resto de este párrafo explico otras dos formas de calcular la distancia en el plano, que dan lugar a diferentes valores de la distancia euclidiana pero que siguen siendo formas válidas de medir la distancia entre dos puntos.

Otra distancia que a veces se usa en el aprendizaje automático es la “distancia de Manhattan”, también conocida como “distancia de taxi”:

d_1\left ( P,Q \right )= \left \| X_1-X_2 \right \| + \left \| Y_1-Y_2 \right \|

Nuevamente, si P y Q están en el eje x, esta distancia coincide con el valor absoluto de la diferencia. La distancia del nombre de los taxis viene dada por el hecho de que la distancia entre P y Q no se mide con el teorema de Pitágoras, que busca un atajo diagonal entre P y Q, pero que comienza desde P y se mueve a lo largo del eje x hasta llegar arriba o debajo de Q, luego moviéndose a lo largo del eje y y alcanzando Q.

 

 

 

 

 

DITANZA EUCLIDEA TRIANGULO

Figura 2. Distancia euclidiana (verde) vs. distancia de taxi (rojo)

Es la maniobra que debe hacer un taxi para ir desde un punto en una cuadra hasta el punto opuesto: no puede pasar en la mitad de la cuadra, sino que debe ir por sus lados.

Otra distancia, que a veces se usa, es la “distancia uniforme”, que la escribimos en la siguiente formula \left \{ |x_1-x_2 | \right \}\left \{ |y_1-y_2 | \right \}

Es decir, esto se calcula tomando la longitud máxima del segmento obtenido al proyectar los dos puntos en los ejes x e y: nuevamente, es obvio que si los puntos se encuentran en el eje x, esto se reduce al valor absoluto de la diferencia entre dos puntos. Una notación de color: en el espacio, una “bola” se define como el conjunto de puntos que tienen una distancia menor que un número fijo, el radio, desde un punto fijo, el centro: es decir, si O es el centro y el radio, todos los puntos tales que d (P, O) <r constituyen la bola. Esta terminología es clara si usamos la distancia euclidiana.Pero, usando la distancia de los taxis, ¿qué figura geométrica sale considerando todos los puntos P de modo que d1 (P, O) <r? (pista: se dice que esta distancia tiene las bolas cuadradas …).

Redes neuronales capsulares

Autor: Matteo Alberti

Traductor: Paula Vidal

 

Las redes neuronales convolucionales obtienen grandes resultados cuando los datos que estan en fase de prueba, resultan ser muy similares a los utilizados en la fase de aprendizaje, pero, en caso de rotaciones, traducciones o transformaciones, estos resultan sujetos a una falta de capacidad para generalizar. Por lo tanto, es una práctica común proporcionarle a nuestro training set un aumento de datos y de los ejemplos de estas posibles variantes, sin embargo, obtenemos un aprendizaje mnemotécnico en nuestra red (con el crecimiento computacional vinculado a la mayor cantidad de datos) en lugar de tener un modelo capaz de generalizar bien y que distinga cada tipo de situacion.

En los últimos años, las investigaciones en el campo de computer vison (en lo que se refiere al aprendizaje profundo) se centró en cómo aumentar la profundidad de una red, agregando más capas (capas) para lograr un mayor grado de abstracción (comenzando desde las primeras capas convolucionales capaces de extraer formas pequeñas, ángulos o intensidad de color, vamos paso a paso combinando características simples en diseños cada vez más complejos)

Para hacer esto, tenemos que mantener bajo control el número de parámetros (y los tiempos computacionales) usamos un operador, común en todas las redes profundas, osea un pooling (para ser precisos, la versión llamada max-pooling) que nos permite que reduzca el número de parámetros reduciendo progresivamente el componente espacial seleccionando los valores más altos pero perdiendo la información espacial relacionada con las características extraídas.

 

1

 

Por lo tanto, la investigación sobre la arquitectura de las redes neuronales se centra progresivamente en el objetivo de aprender a generalizar mejor en lugar de proporcionar datos cada vez más procesados. Se realizó un primer paso con las redes neuronales capsulares, donde nuestro objetivo es obtener una Equivariancia (invarianza de las rototraslaciones) que reemplace al operador de pooling con una nueva estructura denominada: Dynamic Routing

  

Introduccion

Una cápsula es un grupo de neuronas. La actividad de un vector de una cápsula representa los parámetros de instanciación cuando un objeto (o parte de él) viene detectado por la red. La longitud de este vector representa la probabilidad de existencia de la clase dada, mientras que la orientación del vector codifica información espacial (por ejemplo, rotaciones y traducciones) dentro de una matriz de posa.

Matriz de Posa: es una herramienta utilizada en la representación gráfica donde la construcción de una imagen parte de una representación jerárquica de formas geométricas. En nuestro caso, el objetivo resulta ser un objetivo un tanto opuesto; deconstruir una imagen en sus componentes básicos de la cual vamos a guardar la posición relativa en referencia a las otras características

 

2.jpg

Cuando una cápsula que está en un nivel inferior se activa produce una predicción aproximada a su nodo de afiliación de las cápsulas en su nivel superior a través de una matriz de transformación. Si una cápsula de alto nivel recibe suficientes predicciones de pertenencia, se activa. Este proceso, denominado dynamic routing, permite sustituir el pooling máximo a través de una selección “inteligente” de características que se mantienen durante la fase de formación.

 

3

Clasificado la cara solo la figura de la izquierda

 

Arquitectura

 

La principal diferencia en las redes capsulares, por lo tanto, consiste en una arquitectura no profunda.

4

 Vamos Analizar las capas principales:

  • La primera capa convolucional (256 kernels, 9×9, stride igual a uno, activación ReLu)

En la primera capa convolucional vamos a convertir la intensidad de los píxeles en características de bajo nivel, no nos importa mantener la posición espacial relativa; de hecho, queremos utilizar todas esas propiedades importantes par acompartir parámetros útiles para reducir los tiempos computacionales.

Il secondo strato dunque riceve in input le features estratte tramite convoluzione:

  • PrimaryCaps consiste en dos capas ocultas

La primera capa corresponde al proceso de rendering el cual lo hemos descrito antes.

La segunda capa, por el contrario, es convolucional (32 cápsulas 8 dimensionales) donde cada cápsula representa una característica extraída, por lo tanto, a través de una convolución de 9×9 kernels y un ritmo igual a dos.

El output de PrimaryCaps consiste por lo tanto, en cápsulas de 32x6x6 8 dimensiones.

  • DigitCaps

 

La última capa por reproducir en forma vectorial h FC-Layer, es decir, vamos a reducir el número de neuronas (en este caso de cápsulas) para obtener una para cada clase del objetivo

 

Resumiendo las principales innovaciones:

  • Reemplazar las neuronas con las cápsulas
  • Reemplazo de max-pooling con dynamic routing
  • Nueva función de activación
  • Arquitectura no profunda

 

Función de activación

Como se introdujo anteriormente, queremos que la actividad vectorial producida por una cápsula represente la probabilidad de existencia de la data feature . Entonces, necesitamos una nueva función de activación que ya no funcione con escalares sino con vectores:

.

La siguiente función, llamada“squashing” no hace nada más que normalizar en nuestro vector entre cero y uno sin modificar la orientación del mismo vector.

Esto nos permite no solo Equivariance sino, en el caso de la detección de rostros, por ejemplo, podemos saber si y cuántos grados gira la cara.

5

Dynamic Routing

Dynamic Routing no es solo un max-pooling que seleziona el número de conexiones de una manera más inteligente, nos permite preservar, como se describió anteriormente, la “jerarquía entre las partes”El Dynamic Routing quindi es un proceso iterativo, en la fase directa, que conecta cápsulas con actividades  similares.

 

2.jpg 1

En cada iteración cada cápsula produce una matriz de multiplicación con la salida de las cápsulas anteriores seleccionando solo aquellos con mayor producto escalar y orientación similar, analizando:

 

5 1

 

1)  Cápsulas en el nivel l y su salida  , r número de iteraciones de routing

2)  coeficiente temporal necesario para la iteración inicializada a cero

4)   Es pesado para cápsulas de “bajo nivel”, el uso del softmax para obtener un escalar no negativo con suma a uno. La primera iteración     la misma para todas las cápsulas que inician con

5) Para cada cápsula de “alto nivel”, calculamos una combinación lineal de los datos de entrada pesados con los coeficientes  , es decir, vamos a sumarlos y redimensionarlos

6) Aplicamos la función squash para “normalizar” a 1 y preservar la orientación del vector

 

 

Entrenamiento de una red capsular

Una vez fijado el forward pass a través del dynamic routing, vamos a entrenar nuestra red a través de una función de doble pérdida.

  • La primera parte se entrena a traves de una backpropagation como en las clasicas CNN , entonces entrenemos los siguientes pesos  para maximizar la norma de la cápsula  relativa a la de clase objetivo  ()
  • Otra versión de la red usa un MLP (como Autoencoding) para reconstruir la imagen de entrad

Nuestra función de pérdida será dada por Loss Funcion =  + p

Donde el término p no es más que un término de penalización para no afectar excesivamente a la segunda parte

 

2.jpg 2

 

Esta función de autocodificación es posible porque dentro de cada capsula final (una por cada clase del objetivo) toda la información está codificada para reconstruir la imagen. Entonces podemos crear una especie de función discriminativa que compare los datos de entrada con el target reconstruido usando la información de la matriz de posa.

 

Accuratezze raggiunte

1 1

 

Además de la precisión clásica, es interesante evaluar las propiedades intrínsecas de este modelo

Parametros CNN: 35.4 M (Deep)

Parametros Capsnet (8.2 M)

El número de parametros resulta significativamente más bajo debido a la menor cantidad de datos. Pero difiere mucho del large-dataset de gran tamaño en cuanto, el mecanismo aún no está optimizado

 

Resistencia a las transformaciones relacionadas:

CNN 66%

CapsuleNet 79%

 

Alta capacidad discriminatoria en objetos superpuestos:

 

2.jpg 3

Gracias a su capacidad de reconstrucción, no solo podemos clasificar sino segmentar objetos superpuestos (uno de los grandes límites de las redes neuronales convolucionales)

 

La GTX 745 y la instalación de tensorflow – gpu en Windows

Autora: Eleonora Bernasconi

 

Especificaciones de la tarjeta de gráficos NVIDIA GeForce GTX 745

Especificaciones: https://www.geforce.com/hardware/desktop-gpus/geforce-gtx-745-oem/specifications

Núcleos CUDA: 384

Base Clock (MHz): 1033

Velocidad de la memoria ( Gbps ): 1.8 Gbps

Cantidad de memoria: 4 GB

Interfaz de memoria: DDR3

Ancho de banda máx (GB/sec): 28.8

 

Figura 01 – nvidia-smi para el monitoreo de GPU

Abra el símbolo del sistema e ingrese:

cd C:\Program Files\NVIDIA Corporation\NVSMI

nvidia-smi

N.B. El porcentaje de uso de la GPU oscila entre 92% y 94%, en el Administrador de tareas de Windows permanece en 70%.

 

Instalación de Tensorflow con GPU para Windows 10

Requisitos

Python 3.5

Nvidia CUDA GPU. Verifique que la GPU sea compatible con CUDA.

Configurando la tarjeta GPU Nvidia

Instala Cuda Toolkit 8.0 e cuDNN v5.1.

Descarga e instalación de CUDA Toolkit

Toolkit 8.0 https://developer.nvidia.com/cuda-downloads

Ejemplo de directorio de instalación: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0

Descarga e instalación de cuDNN

Installa cuDNN versione 5.1 per Windows 10: https://developer.nvidia.com/cudnn

Extraiga los archivos cuDNN e ingréselos en el directorio Toolkit.

Variables de entorno

Después de instalar CUDA toolkit, asegúrese de que CUDA_HOME esté configurado en las variables de entorno; de lo contrario, agréguelo manualmente.

Figura 02 – Variables de entorno CUDA_HOME parte 01

 

Figura 03 – Variables de entorno CUDA_HOME parte 02

Instala Anaconda

Descarga : https://www.anaconda.com/download/

Cree un nuevo entorno con el nombre tensorflow-gpu y la versión 3.5.2 de python

conda create -n tensorflow-gpu python=3.5.2

N.B. En caso de que se encuentre con versiones incompatibles entre sí, simplemente active estos comandos para resolver el problema:

conda install -c conda-forge tensorflow-gpu

Anaconda instalará automáticamente las versiones requeridas de cuda, cudNN y otros paquetes.

Figura 04 – conda install -c conda-forge tensorflow-gpu

activate tensorflow-gpu

Figura 05 – activate tensorflow-gpu

 

Instala tensorFlow

pip install tensorflow-gpu

Figura 06 – pip install tensorflow-gpu

i Ahora ha terminado y tiene instalado con éxito tensorflow con la GPU !

i Recuerde activar el comando:activate tensorflow-gpu para entrar en modo GPU!

Prueba de GPU

python

import tensorflow as tf

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

 

Figura 07 – prueba de GPU

 

Prueba en CIFAR-10 con 10 épocas

Tiempo promedio por época:150 sec

Tiempo total: 25 min

Figura 08 – Prueba en CIFAR-10 con 10 épocas