 Bueno, gracias a Fernando, muchas gracias a todos por estar acá, gracias a la organización, que no hay nadie acá, pero bueno, gracias igual. Bueno, el curso va a ser tomando como la optimización como rama, como excusa para mostrar algunos o varios ejemplos y aplicaciones donde se usa la optimización en un montón de distintas ramas de matemática y también de, bueno, de eso que sé, cosas que ustedes pueden ver en los celulares, en la aplicación, todos los días, así que voy a tratar de ir mezclando un poco de las dos cosas. Entonces, básicamente la estructura va a ser que voy a hablar de optimización por un lado, sobre qué es, qué tipo de cosas se pueden decir, qué tipo de cosas, qué tipo de algoritmos se pueden hacer y por otro lado, sobre aplicaciones, en principio no atadas a las cosas de, no atadas directamente a las cosas de la teoría y algoritmos que voy a decir. Van a ver como salpicadas, porque bueno, justamente eso es como una excusa para mostrar las aplicaciones. Entonces, este, qué más quería decir antes, bueno, no importa, vamos a empezar, vamos a introducir algunas cosas, aparte de todo esto, estamos haciendo, acá está aprendido, ahí sí, capaz de hacer falso contacto a algo, ahí bien, bien, este, decía entonces, que voy a, voy a probablemente decir más cosas de las que escriba, bueno, para empezar, qué es un problema de optimización, básicamente es encontrar el mínimo de una función sobre un conjunto. Y la variabilidad de posibles funciones y posibles propiedades que le podemos pedir a la función y la variabilidad de estructura que podemos pedir en el espacio X, va a lugar a cosas bastante distintas de las que voy a tratar de comentar, por lo menos, un par. Entonces, tenemos una función de un determinado conjunto en R y queremos hallar su mínimo. Una vez es, lo interesante no es hallar estrictamente el mínimo, sino hallar dónde se minimiza y eso lo escribimos, digamos, así, es, el argmin, o sea, en el lugar donde se minimiza de todos esto, de todo lo del conjunto X, el lugar donde se minimiza la función fx. Hay algunos problemas donde nos interesa el mínimo, hay algunos problemas donde nos interesa en qué lugar se minimiza. Bueno, y el conjunto, el conjunto X es lo que muchas veces decimos que son las restricciones de la optimización. Por ejemplo, vamos a decir que, ejemplo tonto, mínimo en X positivo, lo escribimos así como las restricciones de la optimización, o sea, el conjunto X es el conjunto de los números positivos. Esos, las restricciones esas muchas veces las vamos a poner en forma de conjunto. Bueno, ¿y qué puede pasar? Puede pasar que f puede ser diferenciable o no. Puede ser convexo o no. El conjunto X también puede ser convexo o no. El conjunto X puede ser una variedad diferenciable. El conjunto X puede ser un espacio de dimensión infinita o no. Puede ser dimensión infinita, puede ser ARN, puede ser un conjunto de RN. Puede pasar un montón de cosas que dan lugar claramente a estrategias y a problemas completamente distintos. Algunos ejemplos que sí conocen, digamos, antes de pasar a ejemplos que quizás no conozcan. Bueno, todos han trabajado en algún momento con algún problema de optimización en los cursos de cálculo, digamos. Encontrar la caja de volumen máximo con ciertas restricciones sobre el área o ese tipo de cosas. O encontrar el rectángulo de área máxima que queda inscripto en la mitad de una circunferencia. Bueno, en este caso, por ejemplo, lo que nos interesa, si lo que nos interesa es el área, el rectángulo, nos interesa esto. Si nos interesa cuál es el rectángulo, nos interesa esto. Esos son los tipos de problemas que nos pueden surgir. Bueno, todos esos problemas ya los conocemos, no voy a dar ejemplos sobre eso. Hay otros ejemplos que conocen que son mínimos cuadrados, mínimos cuadrados que es básicamente minimizar, dado una matriz A y un vector B, minimizar, pongamos esto así, AX menos B, la norma de AX menos B. Eso surge en un montón de lados, quizás surja en alguna otra aplicación que voy a comentar. Y otro ejemplo que aparece bastante es la proyección sobre un conjunto, porque llamamos de P a la función proyección, o sea que P va, digamos, de Rn a X, que es la que hace lo siguiente, la proyección de un elemento Z es el elemento de X que está más cerca, perdón, elemento de X que está más cerca de Z, dibujo, casta X, casta Z, la proyección es eso. Entonces el conjunto, el punto de X que está más cerca de Z, eso lo ponemos así, es el lugar donde se minimiza la distancia al conjunto, o sea que son, es el X del conjunto que hace esta distancia lo más chico posible. ¿Está bien? Es otro problema de optimización. Bien. Bueno, ¿qué vamos a ver? Vamos a ver un poco de teoría del estilo de, por ejemplo, optimalidad y alguna de esas cosas. Vamos a ver algunos algoritmos básicos tipo, bueno, que es lo que a uno se le ocurriría hacer para resolver este problema. Por ejemplo, para resolver un problema un poco más general. Y lo que les decía, vamos a ver un montón de aplicaciones. Entonces sé que acá hay gente que le gusta en los grafos, que le gusta la álgebra, que le gusta la estadística, que más veo por ahí, hay algo estadística de vuelta. Vamos a ver ejemplos de física, de estadística, de álgebra, de las cosas nuevas, tipo de machine learning, ese tipo de cosas. Bueno, y cosas que van a ir surgiendo. Entonces, empecemos. Antes que nada, un comentario sobre los límites, de qué se puede resolver hoy en día en el siguiente sentido. Durante mucho tiempo, la función F y el conjunto de restricciones pueden ser lo que se llama lineal. Es decir, que F es una función lineal y que el conjunto X está dado por igualdades o desigualdades lineales. Esos son los que llaman problemas lineales y esos se van a resolver desde hace bastante tiempo. Durante mucho tiempo se pensó que ese era el límite, que se podían resolver los previos en lineales y que el resto no. Pero eso cambió hoy en día. El límite, digamos, entre lo que se puede resolver y lo que no se puede resolver, no es lo que no se puede resolver. Vamos a decir, tengo un problema que tiene estas características y yo te respondo, sí, eso lo puedo resolver, es la convexidad. O sea, si es una función que es convexa y un conjunto que es convexo, yo digo que eso lo puedo resolver. No me digas nada más de la función, no me digas nada más del conjunto, eso lo puedo resolver. Eso ha ido cambiando con los años, como les decía. Bien, entonces, ¿cómo estamos? Te preparé el me, porque si no, nos embolamos un poco. Entonces, vamos a empezar con un ejemplo. Les decía, voy a ir salpicando el curso con ejemplos. Muchas veces los ejemplos no van a haber hecho bastante tiempo porque son lo más interesante. Y vamos a empezar por uno de ellos. Después vamos a hacer un poco de teoría y después vamos a hacer otro ejemplo. Ejemplo 1, que es el problema de valores propios, de valores y vectores propios. Entonces, tenemos una matriz A, voy a notar las matrices así, como que están en, vamos a hacer una matriz cuadrada de N por N, vamos a notar así. Tenemos una matriz simétrica y queremos encontrar los valores propios y los vectores propios, si quieren. Valores y vectores propios, todo el mundo? Bien. La definición es sencilla, todo el mundo puede trabajar con eso, pero para una computadora para hallar los valores y los vectores propios, en general uno lo hace, digamos, pone ahí en su lenguaje de programación favorito que le calculen los valores propios y aparecen. Bueno, detrás de eso hay un montón de cosas muchas de las cuales son recientes, o sea, los algoritmos para calcular los valores propios, se sabe que funcionan bien o mal o más o menos en los últimos años, en los últimos pocos años, en la última década. Entonces, vamos a ver cómo podemos plantear esto como un problema de optimización y cuáles son algunos algoritmos que, no voy a hablar de los algoritmos que se usan, pero sí de cómo se puede plantear esto como un problema de optimización, que eso da lugar a algunos algoritmos que se usan. Entonces, como iba a empezar esto, entonces el problema es encontrarlos o describir eso, el problema, los valores y o vectores propios. Bueno, entonces, hay una opción que es directo de la definición. O sea, agarras en la matriz, calculas el polynomial característico y hallas las raíces. Ahí hay varias cosas que dije muy rápido y que cuando uno se le pone a pensar, en realidad hay que ver un poco más lento. Calcular el polynomial característico no es tan sencillo y hallar las raíces del polynomial característico es mucho más difícil. Sí, después vamos a dar un par de charlas sobre esto. Creo que Fe, vas a hablar un poco, no sé, pero hallar raíces en general es un problema que no está resuelto para nada. Y más aún, en este caso particular el problema de valores propios es muy inestable cuando se toma ese punto de vista. Si hallas el polynomial característico y hallas las raíces y cambias un poquitito uno de los coeficientes, entonces te da lugar a raíces completamente distintas y, típicamente, cuando uno sabe cuantas en las computadoras tiene pequeños errores, entonces el polynomial característico no lo vas a calcular perfectamente. Entonces, ese tipo de cosas son las que no queremos que pase. Así que vamos a tomar otro camino. Vamos a tomar el siguiente camino. Vamos a pensarlo así. Entonces, pensemos. Lo que tenemos en definitiva es que a lo podemos diagonalizar. Lo que estamos buscando es u por d, por otra apuesta, con u, hortogonal. Las hortogonales la voy a denotar así, el grupo hortogonal. Eso es lo que sabemos. Si a esimétrica se diagonaliza, tenemos espectral, entonces lo podemos escribir así. Eso es lo que quiere decir en definitiva es que d es u transpuesta por a, por u. Tenemos a nosotros, entonces lo que vamos a pensar es en buscar matrices. u acá, tal que, de manera que u transpuesta por a por u sea diagonal. Si encontramos esa, planteándolo esa manera, si encontramos una u que haga que u transpuesta por a por u sea diagonal, entonces u es la matriz que tiene en los vectores propios colgados. Y hacemos otra apuesta por a por u y esa es la matriz diagonal con todos los valores propios. Bien, ¿cómo podemos plantear esto como un problema de optimización? Queremos minimizar algo. Pensemos en esta matriz. Eso es una matriz cuadrada que quiero que sea diagonal. O sea, ¿qué es lo que quiero minimizar? Afuera diagonal. Quiero que todos estos sean cero. Quiero que sea lo más chico posible. Sé que pueden llegar a ser cero porque a esimétrica, por lo tanto existe una u que transforma esto en diagonal. Así que este problema lo puedo plantear así, como el mínimo de, digamos, la diagonal de u transpuesta a u menos u transpuesta a u. Vamos a poner la norma de Frobenius, que es la suma de todos los elementos del cuadrado. No importa, es una norma de matrices. Da igual, cualquiera pongan ahí porque eso va a ser cero. Si fuera un vector. Exacto. El mínimo donde? ¿Qué es lo que estoy buscando? ¿Cuál es la matriz que tengo y cuál es la que estoy buscando? Tengo a, ¿no? A es la entrada y lo que estoy buscando es la matriz u que minimice esto. Si estoy buscando una u, por todo en al. Lo que estoy buscando en realidad es el armin, digamos. El mínimo yo sé que es cero. ¿Sí? Bien. Entonces acá tengo planteado el problema de valores y vectores propios como un problema de estos. Así. Donde el conjunto x, el conjunto de restricciones, es que la matriz tiene cero ortogonal. Si lo siguen, lo pueden escribir como que u transpuesta a u, la identidad, como quieran. Y esta es la función que queremos minimizar. En este caso, de casualidad, sabemos que este valor, el mínimo de la función es cero. Pero nos interesa buscar dónde se alcanza ese mínimo. ¿Está bien? Bien. Por ahora no voy a decir cómo podemos llegar a resolver esto. Después, vamos a volver en algún momento sobre esto. ¿Hasta ahí? ¿Bien? Bueno, veamos una forma distinta, un poco distinta, de encarar esto. Voy a poner un comentario más sobre esa manera de verlo. Y es que, en realidad, es algo que se puede ver, pero que no voy a hacer todas las cuentas. Pero si n es diagonal, es una matriz diagonal cualquiera, con todas las entradas distintas. Por ejemplo, n es la diagonal, que tiene 1, 2, 3, hasta n, o sea, hago una matriz y le pongo 2, 0, y acá 1, 2, 3, y hasta n. Entonces, esto en realidad también se puede plantear como el problema así. No importa demasiado, pero también es cierto que la matriz que minimiza esto también es la misma u. Por ahora, y además, los precios que quedan ordenados en el orden que los pusiste acá. Eso es como un comentario, nada más. Bueno, bien. Veamos otra manera de encarar esto, que es lo que se llama el consciente de Riley, que es la siguiente función. De vuelta, da la matriz a. Sí, la matriz a la considero a. El consciente de Riley es una función que va de rn-0 a r, definida así. Con esto que tengo que sacar el 0 porque estoy viviendo acá. Y básicamente lo que hace el consciente este es, olvídense de la normalización, piensen que estamos trabajando con vectores de norma 1. Entonces, lo que está haciendo esto es agarrar el vector, piensen en el plano. Arran un vector de norma 1 y hacen a por x. Ese vector es, te da por acá. Lo que están haciendo es el producto interno de este con esto. Pensemos que estamos en norma 1. De hecho, se puede ver que esto es invariante a escalas, así que lo podemos pensar en la esfera. Podemos mirar. Si hay cosas que digo que se les escapan, no importa. Porque yo voy tirando cosas como para, se que hay distinto público, entonces está. Hay cosas que no importan. Entonces, ¿qué dije? Que esto lo podemos pensar en realidad como de la esfera Sn-1 Ar porque es invariante a escalas. O si quieren, lo pueden pensar como restringir todo esto a los vectores de norma 1. Entonces, claro, si lo que estamos haciendo es agarrar un vector x de norma 1, hacer a por x y después hacer el producto interno, ¿qué es lo más grande que va a poder ser eso? ¿Cuándo el producto interno de dos cosas es grande? Cuando son con lineales. ¿Y cuándo es de todos los valores propios? Veamos cuál va a ser el más grande de todos. El valor propio más grande. Voy a tener, en este caso que estamos en 2, voy a tener 2 vectores propios. Con uno me va a quedar lambda 1, el producto interno este me va a quedar lambda 1 y con el otro me va a quedar lambda 2. ¿Verdad? Más o menos ahí. Entonces, bueno, ya dije eso. Voy a decir eso entonces. Eso tiene un nombre. Tenemos, no importa el nombre. Pero si si lambda 1, lambda n son los valores propios. Entonces el máximo de R a, con la restricción que dijimos que la norma sea 1 porque igual estoy normalizando, ¿no? No importa. Este es lambda 1, el valor propio más grande y el mínimo es lambda n. Y además, los puntos críticos en la esfera son exactamente los vectores propios. Es lo que dijimos recién, escrito real. Los vectores propios normalizados, ¿no? De norma 1. Bien, entonces, el valor propio más grande, por ejemplo, el valor propio más chico, ¿alcanza con maximizar o minimizar esta función? Un comentario ahora que no hice al principio, que debería haber hecho. Siempre hablamos de minimizar, minimizar una función, pero da lo mismo en minimizar o maximizar. Uno le cambia el signo y transforma una cosa en la otra. Y cuando hablamos de que la convexidad ayuda, ahí estamos hablando de minimizar. Sabemos minimizar funciones convexas. Sabemos maximizar funciones con caos que lo mismo poniendo de todo menos, ¿no? Entonces, si quieren, pueden pensar en estos problemas, como los problemas que hay que resolver para hallar los valores propios. Entonces, hay que maximizar una función de ese estilo. Como comentario al margen, esto de acá se puede ver usando multiplicadores de la granja. Fácil. Esto sí tomamos gdx como esta función que es la función de la restricción, ¿no? O sea, la restricción esta es que gc a cero, ¿no? Bueno, si usan los multiplicadores de la granja, los que lo hayan visto con esta función y con esta restricción, lo que les queda es que los puntos críticos verifican. Entonces, esto es escribir. Usando multiplicadores de la granja resulta que los puntos críticos verifican. ¿Se acuerdan? El método de multiplicadores de la granja tenía como la derivada o el gradiente de la función y el gradiente de las restricciones y tenían que hacer un múltiplo. Bueno, hay que hacer las cuentas y se lo voy a dejar como ejercicio, pero es eso. Que el múltiplo de un gradiente sea el otro gradiente es esa ecuación que hay ahí, que es la ecuación de que x sea un vector propio. ¿Está bien? Bien, esto les queda como ejercicio a los que tengan ganas. Bien, entonces, este es un primer ejemplo donde aparece muy naturalmente y además de manera muy útil plantear un problema como una optimización. Este, por lo más es un problema muy relevante. No voy a decir más ahora sobre métodos y sobre cómo minimizar o maximizar esto o lo que acabo de borrar. Pero lo que quería era que quedara planteado ahí, como que el problema ese que es interesante se puede plantear desde el punto de vista de optimización y se puede resolver desde el punto de vista de optimización. También una hoja. Volvemos ahora a hablar de optimización en general y después volvemos a otro ejemplo. Creo que en total voy a hacer 7 o 8 ejemplos como les decía de física, de cualquier cosa. Y ese fue el primero. Bueno, entonces vamos a hablar ahora de condiciones de optimalía. En realidad vamos a hablar de algunas. Todo, voy a hacer ahora un par de disclaimers. Primero yo no soy un experto en el tema. Así que salgo en alguna cosita que comente en algún momento no sé mucho más de lo que estoy diciendo. Y segundo un pantallazo, un montón de cosas. Así que todo es incompleto. Pero en este caso le voy a explicitar porque, bueno, porque es lo primero. No me voy a olvidar. Entonces, ¿qué es lo que hacemos? En general, cuando tenemos un problema de optimización uno busca el mínimo global. Es decir, el mínimo de verdad, el valor más chico de la función en el conjunto. Eso es un problema que salvo, que tengamos algunas hipótesis extras como convexidad o alguna de esas cosas bastante difícil. Y muchas veces no los vamos a resolver. Entonces, una vez se conforma con encontrar mínimos locales. Y eso es encontrar mínimos locales también es un poco difícil. Entonces uno se conforma con encontrar algunos puntos que verifiquen algún tipo de condición que son las condiciones de la optimalidad. Típicamente, ustedes conocen condiciones de la optimalidad. ¿Sí? Ya saben que, por ejemplo, si f de r en r es derivable y que f tiene un mínimo local en x0. Entonces, se anula la derivada. ¿Está bien? Creo que es secundaria. Bueno, vamos a tratar de generalizar esto. Esta es como la condición de la optimalidad más fácil y más simple de la que todos conocemos. Vamos a tratar de generalizarla para distintos lados. Para funciones en dimensiones más grandes. Para funciones no derivables. Para espacios que no sean r, que sean su conjunto de rn. Vamos a ver cómo vamos haciendo ahí con algunas cosas. Entonces, primero, le decía, claramente esta condición no es una condición suficiente. No es una condición necesaria de la optimalidad, no es una condición suficiente. Cuando la función es convexa, sí. Alcanza con encontrar un punto donde se anula la derivada y ahí ya tenemos el mínimo global. Por eso la convexidad es tan importante. Bien. Entonces, primero, esto se genera fácil. Funciones de rnn. Donde la condición queda, que el gradiente se anula. Y ahora vamos a intentar generalizarlo, como decía yo, recién para en distintas direcciones. Cuando no tenemos derivabilidad y cuando el conjunto no es todo. Entonces, empecemos, creo que por ese último, que sí, que es un... no sé si es más fácil, pero es más corto. Entonces, tomemos ahora f de un conjunto x a r con x. Su conjunto de rn, por ahora, vamos a hacer todo en rn o espacios vectoriales de dimensión finita, espacios de matrices, ese tipo de cosas. Después, capaz que, si nos da tiempo, vamos para el otro lado. Y vamos a pedir convexidad acá, sobre el conjunto. Entonces, vamos a poner una condición un poco más general que la que pusimos recién, que el gradiente se anule. O sea, que lo incluye como caso particular, y espero que además, sigue siendo... la seguimos... vamos a poder interpretar geométricamente también. Escribilo acá, entonces. Tenemos ahora convexa. Tenemos, entonces, el siguiente resultado. La posición diferenciable. Dije que vamos a generalizar en dos lugares, y vamos a pedir diferenciable acá. Provisión en esas condiciones, o sea, una función diferenciable en un conjunto convexo de rn a r, tenemos 1. Si f tiene un mínimo local en x, un mínimo... vamos a ponerle x estrella. Entonces, acá vendría la condición que es de gradiente 0. Vamos a tener otra condición que es la siguiente, que es que producto interno de gradiente en el punto con x, menos x asterisco es mayor igual que 0 para todo x en el conjunto. Ahora vamos a ver qué es lo que quiere decir esa condición. Y 2, si además f es convexa, la condición de arriba es suficiente. Vamos a mostrar muy poca cosa, porque quiero hacer un pantallazo general. Igual es fácil de mostrar, pero... Ahora si no nos cuenta qué quiere decir eso. Sí, tenemos un conjunto convexo acá de x. Tenemos un mínimo, vamos a suponer que el mínimo sea por acá. ¿Verdad? ¿Qué es lo que quiere decir esto? Pensemos, perdón, vamos a hacer otro dibujo. Porque así, quiero dibujar las curvas de nivel de la función. Entonces, dibujo las curvas de nivel de f. Acá está el mínimo de verdad. Estas son las curvas de nivel que van creciendo. Pero el conjunto en el que voy a estar trabajando es este de acá. Entonces, el mínimo se da acá. ¿Está claro eso para todos? De poco igual. Acá se da el mínimo global de la función. Estas son curvas de nivel que van creciendo. Yo quiero encontrar el punto del conjunto rojo que esté lo más cerca de este posible, en el sentido de que esté en la curva de nivel más chica posible. Y es ese. ¿Está ahí, está bien? ¿Qué quiere decir esto? ¿Cómo es el gradiente de la función en este punto? ¿Qué propiedad tenemos de gradiente y curva de nivel de la función? Claro, es perpendicular a la curva de nivel. ¿Qué quiere decir esto? Entonces, que el producto interno mayor o igual que cero, lo que quiere decir en definitiva es que forman un ángulo de dos. Entonces, lo que quiere decir es que agarrate cualquier punto del conjunto este, ese, ese, ese y considera el vector que es x menos x asterisco. O sea, ese, ese, ese Cualquiera de esos vectores que te consideras dentro del conjunto, el producto interno con el gradiente te da positivo. Si te ira negativo, ¿qué pasa? Si te ira negativo, lo que quiere decir es que el producto interno es negativo y de crecer la función. Eso solamente porque es convexo, exactamente. De hecho, si agarramos un conjunto no convexo y suponerte que estas son las curvas de nivel y acá está el mínimo, entonces el gradiente va para allá. Sin embargo, puedo encontrar un vector que sea x, menos x asterisco, cuyo producto interno sea negativo, pero sin embargo, no me puedo mover ¿Está bien? ¿Cómo que así me cae ahí? Bien. Vamos a, va a estar, no sé lleno, pero vamos a ver un poco más de, vamos a ver un par más de interpretaciones de este estilo. Así de, este, con productos internos y, y flechitos. Bien. Bueno, buenísimo. ¿Qué más podemos decir de esto? Ah, bueno. Comentario número 1. Esto, efectivamente, generaliza lo que vimos recién. ¿Qué quiere decir eso? Que si x es todo Rn, ¿en qué se transforma esto? ¿Se tendría que transformar en que el gradiente se anule? ¿Por qué se transforman eso? Vamos a ver que entonces el conjunto x es todo Rn. ¿Por qué esta condición es, efectivamente, que el gradiente se anule? Te voy a mover para todos lados. Si se tiene que ser mayor y igual que cero para todos lados, agarrás uno y su apuesto y después otro y su apuesto, tiene que ser positivo y negativo, tiene que ser ser. Si es todo Rn, acá recuperamos que el gradiente tiene que ser cero. Bien. Eso es observación 1. Si x es todo Rn, recuperamos esa condición. Observación 2. La voy a usar para algo que va a venir mañana. Si esta es la siguiente proyección que vimos recién, es decir, entonces, la condición aquella, condición 1, es equivalente a la siguiente condición. X asterisco se iguala la proyección de x asterisco menos alfa por el gradiente para todo alfa positivo. Parece medio horrible, pero en realidad es bastante natural. ¿Estás parado en x asterisco? Entonces es minimizar. Si encontras una dirección en la cual te mueves y la función decrece, estamos contentos y ese en el que estabas parado no era el mínimo. ¿Estoy parado en algún punto? Me muevo hacia un lugar, estoy todavía dentro del conjunto y la función es más chica de la que tenía, entonces el mínimo no era donde estaba parado. Pues estoy descendiendo. Entonces fíjense qué es lo que dice acá. Dice, parate estás parado en x asterisco y tomo todo lo que quieras en la dirección del gradiente. Que es menos gradiente. O sea que ahí la función decrece. Sí, me estoy moviendo en el dibujo hacia adentro en las curvas de nivel. Estoy parado en x asterisco. Me muevo todo lo que quieras en la dirección de descenso, la mejor dirección de descenso que puedes encontrar. Eso te puede llevar afuera del conjunto, eventualmente. Bueno, proyectate adentro del conjunto. Si te quedaba donde estabas, quiere decir que no había nada mejor. Esa es la traducción, digamos, de la condición de optimalidad esta en términos de la proyección. Y eso lo voy a dejar lo voy a usar probablemente mañana para un método de optimización en conjuntos. Bien, ¿cómo venimos? Me aburrido. Bueno. Generalizamos entonces por lo menos para para conjuntos que son cualquier conjunto convexo dentro de Rn. Vamos ahora a generalizar para el otro lado. Vamos a generalizar para cuando la función no es diferenciable. Entonces, vamos ahora y lo vamos a hacer para funciones convexas solamente en principio. Vamos a definir una noción más general de diferenciabilidad y vamos a ver cómo queda la condición de optimalidad para eso. Definición. F, vamos a poner de Rn a R, convexa. Decimos que yx un punto de D, un vector de Rn capaz que puedo poner X ahí ahora. Decimos que D es un subgradiente en X sí solo sí. Tenemos lo siguiente. Ahora si puedo poner vamos a dejarlo así. Ahora qué es lo que quiere decir esto. ¿Alguien escuchó alguna vez hablar de subgradiente? Bueno, subgradiente es como una generación del gradiente en el siguiente sentido. ¿Cuál es la definición? Pensamos en derivada. Pensamos en R primero para fijar ideas y después vamos a Rn. ¿Cuál es la noción geométrica derivada más asociada que tenemos? ¿La derivada de una función en un punto es? La recta. La recta que pasa tangente por ese punto. Eso es exactamente esto con la igualdad. Entonces lo que dice esto es bueno, con la igualdad hay un término de orden 2 ahí. Lo que dice esto es que la función vamos a hacer un dibujo vamos a hacer un dibujo de una función no diferencial a propósito. O sea que tiene como un quiebra ahí. Y este es el X donde voy a estar mirando en la definición. Entonces considerate la recta. Esto en R lo que quiere decir es la recta que pasa por este punto y tiene pendiente de... ¿Garra cualquier número de? Esta es la recta que pasa por este punto y tiene pendiente de... Lo que tiene que pasar es que tiene que dejarle la función por arriba. Eso es lo que hice acá. O sea esa recta da lugar la pendiente de esta recta es un subgradiente. ¿Entiendes eso? En cualquier lado está por arriba de la recta. Eso es lo que hice acá. La función está por arriba de la recta. Entonces acá hay una recta que es un subgradiente. Acá hay otra recta que es un subgradiente. Acá hay otra recta que es un subgradiente. Puedes eventualmente no tener un subgradiente. Si la función es convexa siempre tienes un subgradiente. Por eso pedí convexidad. Pero sí, puede ser eventualmente no tener. Si tienes algo que es así, capaz que acá no tenés un subgradiente. Esa parte de abajo. Pero si la función es convexa siempre tienes un subgradiente. Lo que vemos en el dibujo es que puede haber más de uno. Entonces, primero llamamos al conjunto de todos los subgradientes en un punto X. Lo llamamos subdiferencial. Es un conjunto que lo denotamos. Ahora algún ejemplo para fijar ideas. Entonces tenemos un ejemplo. Un ejemplo. La función no diferenciable por excelencia que se usa como ejemplo para todo. Valor absoluto de X. Funcion de R en R, no diferenciable en un punto, que es convexa además. ¿Está bien? Entonces, vamos a dibujar. Entonces agarren el 1, por ejemplo. Está por acá. El 1, F1 es 1. ¿Cuáles son todas las rectas que dejan a la función por abajo? Sólo hay una, la que tiene pendiente 1. ¿Sí? Pues si te giras para un lado de abajo de una parte, si te giras para el otro de abajo de la otra parte. Así que en 1 hay un solo subgradiente que coincide con la derivada además. Eso es general. Cuando la función es diferenciable, el único subgradiente es el gradiente. Así que en ese sentido es una generalización del gradiente. Entonces, vamos a escribir eso, que el subgradiente de 1 es el conjunto formado por 1. No es 1, porque es un conjunto formado por un solo elemento que es el gradiente. No olviden de los tecnicismos, no importa. Es 1. Pensemos cuál es el subgradiente de la F en 0, que es el lugar donde no es diferenciable. Entonces, ¿cuáles son todas las pendientes que dejan a la función por arriba? Y bueno, es así, es así, es así, hasta ahí, ¿no? Es así, es así, es así, esa también, o la del medio. O sea, que son todas las que están entre menos 1 y 1. Así que esto es el conjunto menos 1 y 1. Vamos a graficar eso un poco haciendo abuso de notación, porque estamos graficando un conjunto, digamos, pero eso quiere decir que para todos los para todos los x mayores que 0, la derivada es 1, así que esto va a ser así. 1 menos 1, no es que 0. Y en 0, esto acá es todo el conjunto este, el subdiferencial. ¿Verdad? Bien, perfecto. Es un conjunto y tiene un montón de propiedades. Por ejemplo, siempre es convexo. Y en el caso en que tengas, que puedas escribir la función como el máximo de dos funciones, que es este caso, podemos escribirla con el máximo entre esta y esta, el conjunto que está, todo el intervalo que está entre la derivada 1 y la derivada de la otra. Se pueden decir más cosas. Se pueden decir un montón de cosas de las funciones convexas. No sé si las voy a necesitar, pero estas acá, digamos, sí. No puse la observación esa, ¿no? Que dije que si la función es diferenciable observación si f es diferenciable en un punto, entonces el subgradiente de f en x es el conjunto formado por el degradiente. Bien, y ahora sí veamos la posición cómo queda la condición de optimalidad cuando hablamos de subgradientes. Entonces sea f de x en r con f con vexa para poder definir el subgradiente. Se puede definir la función de algunas truquitas, pero entonces x asterisco minimiza f en x existe un subgradiente tal que tenemos algo parecido a lo que teníamos hoy que el producto interno del subgradiente con todas las direcciones que podemos tomar a partir de x asterisco al conjunto de positivo para todos z. Fíjense que si cambian de subgradiente, la borré la condición de optimalidad anterior pero es exactamente la condición de optimalidad para cuando haremos la función diferenciable. Entonces en ese sentido es una generalización del anterior. Lo que pedimos es que el gradiente puede ser una opción pero si la función es no diferenciable cualquier subgradiente cumpla esto ya te alcanza para tener una condición de optimalidad. Y tiene una interpretación geométrica también. Quiero contar otro ejemplo antes de que terminemos hoy porque los ejemplos son lo más divertidos pero estas cosas a mi me gustan también. Antes de eso observaciones observación 1 veamos que efectivamente generaliza lo que vimos recién, todo lo que vimos recién y vemos alguna condición particular. Entonces si es diferenciable recuperamos la condición anterior. Observación 2 si el conjunto es todo de Rn ¿Qué pasó cuando hicimos la generalización hoy del gradiente? Teníamos acá escrita la condición de optimalidad del gradiente, crea que el producto interno del gradiente con todas las direcciones que podemos tomar fuera mayor que 0. Dijimos si podemos tomar todas las direcciones porque es un punto interior entonces el gradiente necesariamente tiene que ser 0 puede ser positivo para un lado, negativo al otro tiene que ser 0. Porque tenemos exactamente la misma la misma condición. Entonces lo que pasa es que 0 tiene que estar en el sub-gradient en el sub-diferencial. Y esta es la condición más general para cuando tienes una función no diferenciable. Gradiente se anula, no diferenciable 0 es un sub-gradient es un elemento de sub-diferencial. Bueno. Vamos a la segunda hoja. Y ahora me quedan dos cosas, la interpretación y otro ejemplo. Creo que si vamos al otro ejemplo se nos va a perder un poco las nociones que estamos trabajando ahora por el otro lado. Si voy a la interpretación geométrica ahora se me terminarán de dormir todo. ¿Qué hacemos? Vamos a hacer el ejemplo y después vuelvo. Ejemplo 2. Más divertido me parece. Entonces, ejemplo 2 basado en un trabajo de CANDES y RE. El problema es el siguiente. Dicho mal, el problema consiste en recuperar una matriz a partir de algunas de sus entradas. Entonces, es como que tenemos una matriz N por M y tenemos algunas entradas que conocemos y queremos recuperar la matriz original. Antes de la pregunta, si se puede hacer eso no, obviamente no. Puedes poner cualquier cosa ahí. Como sabes que va a ser la matriz original. Sí, está claro. Su manga hay una matriz subyacente llena, una matriz de N por M y nosotros podemos mostrar en algunos lugares. Podemos conocer. Elegí 10 valores y yo te digo cuáles son esos valores. Tratar recuperar la matriz original. Obviamente eso así es imposible. Está claro, ¿no? Y poniéndole un poco de estructura la matriz se puede lograr eso. Es un problema que tiene muchas aplicaciones. La estructura que vamos a explotar ahora es la de bajo rango. Vamos a suponer que la matriz tiene bajo rango. Y eso tiene un montón de aplicaciones. Voy a decir dos. Una, creo que ya la conocen, es el problema de Netflix. Netflix era el siguiente. Netflix tiene un montón de usuarios, un montón de películas y le gustaría saber y vieron que cada uno puede ranquear las películas. Entonces, la matriz que tiene Netflix es altamente incompleta porque claramente no todos los usuarios vieron todas las películas, obviamente. Algunos usuarios vieron algunas películas solamente. Si acá ponen esta matriz todos los usuarios tienen esa situación. Cada usuario vio solamente algunas películas y a su vez, cada película fue vista solamente por algunos usuarios. Y tiene entonces algunos puntajes así, algunos ranking. ¿Por qué a Netflix le gustaría saber qué poner acá? Y bueno, porque si acá si esto es un número alto, entonces le va a recomendar a este usuario ver esta película. Porque piensa que le va a gustar. Esa es el sistema de recomendación de Netflix. ¿Se entendió el problema? Bien. Netflix puso un desafío que creo que había un millón de dólares de premio o algo así, para el que mejorara su sistema de recomendación. Y en definitiva los que ganaron hicieron algo basándose en esto y después adornándolo con otras cosas. Pero básicamente completaron la matriz de Netflix asumiendo que tiene bajo rango. ¿Por qué tiene sentido asumir que tiene bajo rango? ¿Qué quiere decir que tiene bajo rango? Y bueno, que tiene bajo rango quiere decir que hay muchas combinaciones que haciendo combinaciones lineales de algunos pocos elementos puedes construir otros. ¿No? Y eso es en definitiva lo que pasa. Las personas no somos todas completamente distintas. Hay gustos que son compartidos. Entonces muy probablemente hay dos personas que tienen el mismo gusto por las películas o muy parecido y entonces esas columnas van a ser muy parecidas. O filas, no sé cómo lo dije. Bien, entonces tiene sentido asumir un modelo de bajo rango para una matriz. Y ese es el problema entonces de Netflix. Otro problema parecido. Tienen una red de sensores, sensores inalámbricos y cada uno puede saber a la distancia que está basado en la potencia de los vecinos que tienen más. Piensen yo que sé. En routers, en teléfonos celulares, lo que quieran. Tienen sensores inalámbricos y cada uno puede saber a qué distancia está de los vecinos que tienen más cerca solamente. Y quieren reconstruir cuáles son todas las distancias. Entonces tienen algo parecido. Tienen una matriz, o no voy a hacer el mismo dibujo de vuelta, tienen una matriz donde tienen ahora es cuadrada, solamente a la de los vecinos más cercanos que es la que puede censar. ¿Se entendió? Nos gustaría reconstruir cuál es la topología cuáles son todas las distancias posibles entre todos los sensores. Bueno, si el gráfico es si esos sensores están puestos en un espacio planar, en un espacio de dos dimensiones, entonces el rango de esa matriz es dos. Entonces solamente con algunos valores uno puede recuperar todo el resto. Entonces al rango es tres. Es otro ejemplo en el cual con algunas mediciones uno puede recuperar la matriz original. ¿Cuál es el problema de optimización que está atrás? Entonces bueno, el problema es básicamente tenemos un conjunto omega de índices y conocemos que tenemos una matriz M sabemos que no escribí cuál era la matriz objetivo, digamos, vamos a compararle X. Queremos encontrar una matriz X X, una matriz N por M, este es el objetivo y lo que sabemos es que M coincide con la matriz X para algunos índices, para los índices que están en este conjunto de índices omega. ¿Sí? ¿Cómo decir eso que decimos que escribí acá? Los valores de X en algunos, nada más en los que están ahí. Y lo que queremos hacer es encontrar la matriz M, la matriz X, perdón, que minimiza el rango. ¿Y cuáles son las restricciones? Y las restricciones tienen que ser que coincida con las medidas que tengo en los lugares donde tengo medidas. Entonces el mínimo tal que Xij coincida con Mij para los Ij. ¿Aguen? Eso es el problema que dije hoy. Tenés algunos lugares donde la matriz está fija, no puedes mover. Completad la matriz de manera que tenga rango mínimo posible. ¿Aguen? Bueno, la mala noticia es que ese problema es NP hard, o sea, es imposible de resolver y de hecho es bastante difícil. Entonces esto no se puede resolver así no más por lo menos. Por ejemplo, para la matriz del tamaño del desafío de Netflix es inviable eso. Ya para la matriz es muy chica ya es inviable eso. Entonces una opción es hacer lo que se llama una relajación con vexa. Es decir, usar una función lo más parecida posible a ésta pero que sea con vexa y por lo tanto lo podemos resolver. Y entonces la relajación con vexa de esa función o sea la función con vexa más cerca de la función rango es una norma que es la norma nuclear. Básicamente fíjense si quieren alguna vez la descomposición de valores singulares o si quieren piensen una matriz cuadrada y piensen la descomposición de valores propios. El rango es la cantidad de valores singulares no nulos. Y la norma nuclear es la suma de los valores singulares. Entonces la norma nuclear se le nomina así la norma nuclear es la suma de los valores singulares. Si maí son los valores singulares Bueno, esto va a estar relacionado con algo que voy a decir después que estos son todos positivos pues son los valores singulares. Entonces está relacionado con algo que voy a comentar mañana que es que muchas veces uno quiere encontrar la cantidad mínima de elementos no nulos tal que pase tal cosa y eso es algo similar a esto es un problema que es difícil de resolver entonces lo que hace es pasar a la suma de los valores absolutos de esas cosas y eso bajo ciertas condiciones coincide con la otra. Dicho así nomás no quiere decir nada mañana quizás cobre un poco de sentido. Entonces transformamos este problema en este otro. Vamos a mirar este otro problema con las mismas restricciones. La buena noticia es que primero que esta función es convexa y por lo tanto esto se puede resolver. Las restricciones son muy simples esto se puede resolver. Esa es la primera buena noticia y la segunda buena noticia es que coincide con la solución de este problema que es el que no se va a resolver bajo algunas condiciones de la cantidad de medidas que tenemos. Básicamente uno para resolver esto necesitaría el orden de n cuadrado medidas y se obtienen tasas de mucho menor que n cuadrado creo que n log n o algo así. No importa pero bajo condiciones bastante benevolentes se puede garantizar que el resultado de este problema que lo sabemos resolver es igual al resultado de aquel problema que no sabemos resolver. Otro comentario aparte esta función es no diferenciable esto sirve como ejemplo para todo lo que vimos recién de que cuando tenemos funciones no diferenciales necesitamos condiciones de la optimalidad como se escriben las condiciones de la optimalidad para funciones no diferenciales como son los algoritmos para funciones no diferenciales y todas esas cosas son muy útiles en este tipo de problemas. Bien Bueno entonces vamos a hacer bien cortito volvemos a la entornación geométrica de la condición de la optimalidad que es esta que está acá así que no la veo ahorrar por lo menos porque tiene algunos dibujos y cuando ve unos dibujos por lo menos cree que está entendiendo algo entonces volvemos a la interpretación geométrica de condiciones de optimalidad Ustedes ya me dijeron hoy hace un ratito cual es la interpretación geométrica no sé si lo hablamos específicamente pero lo tenía en la cabeza la interpretación geométrica de la condición de la optimalidad con los multiplicadores de la grande gradiente de la bueno vamos a ver algo que generaliza eso estamos generalizando todo entonces primero vamos a hacer una definición capaz que algunos ya la conocen definición da un conjunto C C y un punto X en C llamamos cono normal C en X al conjunto que es cono normal a C en X un conjunto de todos los elementos del espacio en definitiva son los vectores G 7 es el conjunto C y este es X son los vectores que soportan al conjunto, digamos, que dejan al conjunto todo de un lado este acá en este caso eso deja al conjunto todo de un lado que eso es lo que vimos hoy se acuerdan que vimos esa interpretación de que el producto interno es positivo, negativo entonces, ¿sí? bueno en realidad el cono normal es este acá es el vector que define a la recta o al hiperplano que deja al conjunto todo el otro lado ¿sí? en los dibujos clásicos el cono normal es simplemente una semirecta normal bien, entonces ¿que recuerda esto? hicimos algún dibujo recién usamos que el gradiente era normal a la curva de nivel ¿no? vemos que pasa con los subgradientes entonces fijemos vamos a tener una función R, vamos a poner una función de Rn a R y fijemos X0 y ahora vamos a considerar el siguiente conjunto el conjunto C, que es el conjunto de nivel en Rn tal que fz es menor o igual que fx0 ¿no? entonces es muy fácil ver se lo dejo de ejercicio que si G es un elemento del subdiferencial de F en X entonces G pertenece al cono normal de este conjunto C el conjunto nivel en ese X piensen primero que es una generalización que el gradiente es perpendicular a la curva de nivel si la función es diferenciable entonces el único elemento de acá es el gradiente ¿vale? ¿y qué dice esto? bueno que el gradiente está en el cono normal y el cono normal es el perpendicular a la curva de nivel cuando la función es diferenciable ¿vale? bien entonces ahora sí, hagamos los últimos dos dibujos bien, entonces la condición de optimalidad era esta que está acá voy a borrar los comentarios esa condición de optimalidad se traduce esto acá se traduce en que exista un elemento G del subdiferencial de F en X asterisco tal que menos G esté en el cono normal del conjunto en X asterisco fíjense, es inmediato acá en lugar de un mayor igual que cero en la definición de cono normal tengo un menor igual que cero por eso aparece el menos acá el resto es inmediato dibujo, tenemos una función con la siguiente curva de nivel y un conjunto vamos a ponerlo así este conjunto es X estas son las curvas de nivel de F así que el mínimo se da donde? el mínimo se da acá ¿no? desde el X asterisco donde es el mínimo es el subdiferencial por eso hice las curvas de nivel el único elemento del subdiferencial es el gradiente que el gradiente es perpendicular a la curva de nivel ese es el gradiente de F en X asterisco ¿cuál es el cono normal al conjunto X en este punto? son todos los vectores que cuando haces producto interno con todas las direcciones todas las direcciones estas Z-X son todas estas direcciones partiendo de X asterisco todas estas direcciones con todas esas direcciones tiene que formar un ángulo de más de 90 grados así que tengo 90 grados para acá 90 grados para acá y este entonces es el cono normal son todas las direcciones que forman más de 90 grados con todos los vectores partiendo de X asterisco hacia el conjunto ¿está bien o va de vuelta? va de vuelta estas son todas las direcciones que puedo formar acá está el X asterisco estoy parado acá así que me muevo en el conjunto X el Z se mueve en el conjunto X es el mismo dibujo que hice hoy me muevo acá son todos los vectores que puedo formar así todo eso tiene que formar más de 90 grados con los elementos del cono normal entonces cuál es el cono normal es el límite para acá y entonces cuál es esa condición que menos el gradiente está en el cono normal que menos el gradiente está en el cono normal bien y ahora le dije que eran dos último voy a hacer uno más que es cuando la función es no diferenciable entonces tenemos curva de nivel que son así y el conjunto sí es diferenciable ese es X y acá sea el mínimo X asterisco si el borde del conjunto es diferenciable el cono normal es una semi recta lo mismo que pasaba que cuando la F era diferenciable con su curva de nivel así que el cono normal a la función acá justo me quedó medio parecido a este, vamos a hacerlo un poco más esa es una curva de nivel el cono normal es eso es perpendicular al borde del conjunto y cuáles son los elementos del gradiente y bueno los elementos del subgradiente son los que están en el cono normal a la curva de nivel o al conjunto de nivel en el punto de lo que tengo que mirar es cuál es el cono normal a este conjunto cuál es el cono normal a ese conjunto en este punto son los puntos que son las direcciones que forman más de 90 grados con todos los elementos de ese conjunto o sea que hago lo mismo de acá 90 grados que están acá, todas estas flechitas son elementos del subdiferencial son subgradientes los subgradientes son funciones diferenciables cuál es el gradiente perpendicular a la curva de nivel funciones no diferenciables, cuáles son los subgradientes los que están en el cono normal a la curva de nivel la curva de nivel en este caso las dibujé así cuál es el cono normal a esta curva acá son esas direcciones que están ahí después es la condición y bueno que alguno de estos cuando admiras el menos te queda colinear con ese ahí fíjense acá que hice un ejemplo de la función diferenciable y el mínimo se da en un borde donde el conjunto es no diferenciable y acá hice una función que es no diferenciable el mínimo se da en un punto de no diferencialidad de función pero el borde es diferenciable siempre en algunos de los dos casos tenía uno que era recto el cono normal a la superficie acá era una semi recta y acá el gradiente era perpendicular a la curva de nivel buen azar y se lo dejo como ejercicio que hagan el caso en que la función es no diferenciable el mínimo se da en un punto de no diferenciabilidad y en un punto de no diferenciabilidad del borde entonces tienen dos conos porque acá tenía un cono donde cuál es el subgradiente y acá tenía un cono que era el cono del conjunto van a tener dos conos tienen que ver cómo es lo que pasa ahí bueno, estos fueron condiciones de la optimalidad y un par de ejemplos hicimos el programa de valores propios y el programa de completado una matriz de bajo rango mañana vamos a ver un poco de algoritmia, de cómo hallar efectivamente los mínimos vamos a construir sus sesiones que tienden al mínimo o algún punto que cumple y vamos a ver un par de ejemplos más que todavía no sé cuáles voy a elegir así que los que sobreviven vamos mañana