Transcripciones
1. Fundamentos del aprendizaje de la máquina: Oigan, todos, es Max. Y bienvenido a mi curso sobre lo esencial del aprendizaje automático. Y esta conferencia vamos a ir y ponernos en verdad en el aprendizaje automático. Entonces te voy a decir de qué se trata este curso, qué vas a aprender y también las cosas que no vamos a cubrir en este curso sólo para asegurarte de que sabes qué esperar y que también puedes decidir si esto es lo correcto curso para ti que quieres estar tomando en este momento en esta conferencia. También te voy a dar una breve introducción sobre quién soy, y luego hablaremos de qué es el aprendizaje automático y cómo se
ve generalmente el aprendizaje automático cuando lo estás haciendo en la práctica. De acuerdo, entonces ¿qué vamos a cubrir en todo este curso? En primer lugar, vamos a aprender sobre una tonelada de términos esenciales y estos términos aéreos que el tipo de lapso en todo el campo del aprendizaje automático, Y por eso es importante conocer estos términos. Cuando estás hablando de algo relacionado con el aprendizaje automático, entonces vamos a ver las técnicas de preparación de datos. Entonces vamos a mirar a las madres de rendimiento. Entonces, ¿cómo puedes evaluar qué tan bien está funcionando tu implementación de aprendizaje automático? Entonces vamos a buscar más específicamente en diferentes
algoritmos de regresión y clasificaciones . Y por último, también
vamos a aprender sobre diferentes optimizaciones que puedes usar y cómo puedes decidir usar o qué optimizador debes decidir usar para diferentes algoritmos de aprendizaje automático. Muy bien,
entonces, ¿qué vas a sacar de este curso? Si bien vas a tener una buena comprensión de lo que debes considerar cuando te
acerques a los problemas de aprendizaje automático, Así que vas a aprender sobre los algoritmos de aprendizaje automático y lo que debes considerar cuando elijas uno como bueno es lo que debes considerar antes y mientras estás entrenando una, vas a poder hablar de diferentes implementaciones de aprendizaje automático con la gente. Entonces vas a tener vas a poder tener conversaciones con gente donde
te cuenten sobre su implementación. Vas a ser capaz de entender de qué están hablando, e incluso es posible que puedas dar retroalimentación o sugerencias para cosas a considerar. Y vas a obtener una visión completa de cómo se ve todo el
proceso de aprendizaje automático . Entonces, ¿qué no incluye este curso? Este curso no incluye ejemplos codificados de implementaciones de aprendizaje automático. Entonces, como dije, esto es para darte una comprensión de los temas del machine learning para que sepas todo lo que está pasando y que puedas hablar de ello, que puedas entender cuando la gente habla de ello, y luego puedes tener conversaciones al respecto y dar retroalimentación. Pero no incluye ningún ejemplo codificado de implementar realmente alguno de los algoritmos. Y tampoco vamos a repasar el trasfondo matemático y la privación de los algoritmos y las diferentes técnicas. Ahora, en este punto, también
quiero señalar que el aprendizaje automático es un campo extremadamente vasto, y hay mucha investigación activa en curso. Es un campo muy rápido y en desarrollo, y en este curso no vamos a entrar en las áreas como las redes neuronales profundas, y tampoco vamos a volver a entrar en la última investigación. El punto de este curso es que te sientes cómodo hablando del aprendizaje automático en
su conjunto del que podrías tener conversaciones. Que se pueda entender la implementación es que la gente ha hecho. Puedes proporcionar retroalimentación al respecto, y mucho de esto te va a dar Iba a basarte en la comprensión de las técnicas
fundamentales de aprendizaje automático que han existido por un tiempo y que toda esta nueva investigación está siendo construido sobre. De acuerdo,
entonces, ¿quién soy yo? Hola, me llamo Max, y voy a ser tu instructor para este curso. He estado trabajando como científico de datos desde hace más de tres años, y también he tenido la suerte de enseñar a más de 13 mil estudiantes sobre el mundo de la
ciencia de datos . Entonces, ¿qué es el aprendizaje automático? Bueno, el propósito general del aprendizaje automático es que se capacite a una máquina para realizar una tarea y esta máquina aprenderá las reglas detrás del sistema. Entonces esto es realmente genial porque no necesitas escribir todas las reglas individuales y
no necesitas seguir cambiándolo. Entonces tu sistema va a aprender las reglas, y en realidad puede evolucionar con el tiempo y aprender nuevas reglas a medida que las cosas cambian. Y en última instancia estás dejando que la máquina generalice su conocimiento, así que va a aprender cierta cosa, y luego va a poder aplicar ese conocimiento a un campo más grande y también a nuevos problemas que tal vez no haya visto antes. Entonces, ¿qué haría un ingeniero de aprendizaje automático? Bueno, es un proceso bonito. Por lo que primero necesitas tener datos. Por lo que necesitas conseguir en proceso los datos. Necesito convertirlo de un formato sin procesar a un formato limpio. Y también vas a necesitar poder analizar y entender tus datos y crear características e indicadores. Por lo que esta primera parte es muy similar en realidad se basa en todas las habilidades de signos de datos. Entonces si no estás exactamente seguro de la ciencia de datos, también
tengo un montón de cosas sobre la ciencia de datos. Entonces si no estás seguro sobre estas 1er 2 cosas, te
recomiendo que revises esas cosas. Pero por supuesto, aprendizaje
automático se basa en todas las habilidades de signos de datos. Ahora, donde vas a seguir haciendo entonces es una vez que hayas hecho todas esas cosas, vas a pesar los diferentes algoritmos de aprendizaje automático. Vas a aplicar diferentes que vas a elegir. Varios quiere probar, y vas a identificar los más óptimos o los que quieres usar. Y a lo largo de todo este proceso, iban a liberarse, y lo vas a entrenar hasta que finalmente estés satisfecho, y luego se va a lanzar a producción. Entonces va a ser que se vaya a vivir esencialmente, e incluso después de que se vaya a la vida, todavía
vas a necesitar monitorearla. Todavía vas a necesitar ver cómo se está desempeñando y con el tiempo, también arreglarlo lo mejorará o simplemente mantenerlo actualizado.
2. Términos esenciales de aprendizaje automáticos: En esta conferencia, vamos a repasar la primera parte de los términos esenciales. Ahora, solo quiero mencionar que si no
entiendes todo lo que está pasando en este momento, no te preocupes. Yo quiero presentarles todos estos términos
antes de entrar a las diferentes áreas para que cuando vuelvan a aparecer, estés listo, familiar, y no necesitamos desviarnos para explicar nuevos términos. Entonces la mayoría de estos términos lo vamos a ver de nuevo, y si no entiendes lo mismo ahora, nuevo, no te preocupes por ello. Los cubriremos de nuevo probablemente en conferencias posteriores. Aquí la idea es sólo para hacerte una comprensión de todos los términos posibles que realmente no son pertenecientes a un área en particular u otra que puedas, has visto todos estos y que los entiendas
y sepas cómo contextualizarlos. Y que entiendas una especie de la imagen más grande de todo. Y entonces sabemos, sumergirse un poco más en detalle en cada una de las cosas que mencionamos en el video anterior. Está bien, así que saltemos a la derecha. lo primero de lo que vamos a hablar son diferentes enfoques que puedes tomar un machine learning. Estos se dividen en un enfoque supervisado y no supervisado y de refuerzo. Ahora, un enfoque supervisado es cuando se tienen datos y también se les proporciona una solución, por lo que las respuestas ideales que se desean. Entonces en este caso, lo que vemos en la imagen de la izquierda ya que tienes una línea recta. Y cada uno de estos valores puede venir con unas respuestas ideales. Por lo que puede obtener todos los valores en el eje x y desea predecir los valores en el eje y. En este caso, ya sabes cuál es el emparejamiento. Y la idea de los enfoques de aprendizaje automático supervisados es que separa tus datos. Entonces solo tomas los datos sobre los que quieres hacer predicciones, y luego revisas esas predicciones contra las respuestas. Y en base a lo correctas o lo equivocadas que son tus predicciones, entonces
cambias tu algoritmo de aprendizaje automático hasta que
finalmente lo hagas mejor acercando muy a esas respuestas. Ahora bien, el otro tipo de enfoque que puedes tomar no está supervisado, donde en realidad no hay respuestas correctas o no tienes respuestas específicas. Y así el objetivo de tu algoritmo aquí es tratar de encontrar patrones ellos mismos. Entonces un buen ejemplo es si miramos la imagen en el medio, si solo tenemos un conjunto de datos como este y queremos entender, ¿queremos saber si hay diferentes grupos presentes. Algo que podemos ejecutar es encontrar clústeres, que hablaremos más en un segundo y también más en conferencias posteriores. Y así la idea es que nuestro algoritmo de aprendizaje automático en este caso encuentre dos grupos diferentes, los cuales se muestran aquí en azul y una naranja, que ha aprendido a separar. Por último, el tercer
enfoque de aprendizaje automático que se puede tomar como enfoque de refuerzo. Y esto en algún sentido es similar a no supervisado, pero realmente lo lleva al siguiente nivel donde dejas que tu algoritmo de aprendizaje automático simplemente se vaya por sí mismo. Y empezará a hacer cosas. Y obtendrá retroalimentación en base a si es acción fue buena o si es subasta fue mala. Y se puede definir lo que es bueno y se puede definir lo que es malo. Y estos son algunos de los enfoques más modernos y también son muy complejos y pueden, ya
sabes, realmente puedes ponerte muy específico. Y esencialmente, la idea es que esto es una especie de emulación de la forma en que aprendemos. Y así el punto aquí es que dejas que tu algoritmo de aprendizaje automático y cada uno simplemente alimente de datos y luego lo dejas tomar sus propias decisiones. Y en base a la decisión que toma, entonces o bien dices, Sí, pero esta fue una buena decisión o esta fue una mala decisión. Y entonces aprenderá con el tiempo a tomar más buenas decisiones. Mano también evitar que las decisiones. Por lo que los diferentes tipos de algoritmos de aprendizaje automático que existen, esencialmente puedes tener diferentes objetivos con tus algoritmos de aprendizaje automático. Hay regresión, sí clasificación, y también hay reducción de dimensionalidad. Entonces vamos a pasar por cada una de estas regresión es cuando estás tratando de predecir un valor específico. Entonces el objetivo aquí es, digamos que estás tratando de predecir un número. Entonces si aquí tenemos nuestros datos X, solo
estamos tratando de predecir el valor y correspondiente. Entonces esto podría ser que estás tratando de predecir son una especie de serie continua de números donde estás tratando de predecir números e intervalos específicos o algo así. Pero el objetivo aquí es que estás tratando de predecir un cierto número a partir de él. tanto que la clasificación, por otro lado, es que estás tratando de dividir tus datos en diferentes grupos. Entonces en este caso, y este es el mismo gráfico que usamos la última vez, tendríamos dos grupos diferentes. Y el objetivo del algoritmo es sólo ordenar los puntos de datos en grupo a o grupo B. Así que por ejemplo, si tienes usos en tu sitio web, el algoritmo de aprendizaje automático podría ver lo que hace el usuario. Y entonces podrían decir, que se
trata de un usuario que es probable que nos compre en el futuro. O se trata de un usuario que necesita más sujeción de la mano o necesita más educación sobre cómo usar nuestro producto o cualquier otra cosa que puedan surgir los grupos. Pero esa es la idea de que no estás tratando de asignarle ningún valor numérico. Más bien estás tratando de ordenarlos en diferentes grupos. Ahora, la reducción de dimensionalidad es un enfoque que se puede tomar para preparar datos para el aprendizaje automático. Y en realidad es en sí misma una especie de conjunto completo de algoritmos de aprendizaje automático. Pero el objetivo es que muchas veces cuando
tienes datos y sobre todo cuando las cosas se complican mucho, tienes muchas dimensiones diferentes. Entonces, solo tomemos un ejemplo aquí. Si tienes una imagen y estás tratando de identificar algo en esa imagen, una imagen se compone de un montón de píxeles diferentes, dependiendo de tu resolución. Y cada píxel, si la imagen es coloreada, también tiene diferentes valores de color con ella. Por lo que viene con tres valores de color diferentes. Por lo que muy rápidamente, aunque solo tengas un 100 píxeles, tienes un 100 píxeles por tres colores. Eso son 300 valores diferentes que puedes quitarte. Y un 100 pixeles tampoco es una imagen muy grande. Por lo que se puede ver eso muy rápidamente. Tus dimensiones pueden llegar a ser muy, muy grandes. Y así la idea de la reducción de dimensionalidad es que tomes todas estas imágenes. No son sólo imágenes, sino todas estas fuentes de datos que tienen toneladas y toneladas de datos. Y tratas de reducirlo para que en lugar de tener un millón o 5 millones de puntos de datos diferentes por cada conjunto de datos que tengas, puedas reducir ese número a unos mucho más bajos, lo que ayudará a tu algoritmo de aprendizaje automático en última instancia solo te estás centrando en las cosas importantes. Muy bien, Así que vamos a sumergirnos un poco más en el edificio hacia fuera o en la evolución de un algoritmo de aprendizaje automático solo, flujo de aprendizaje automático. Lo primero que vamos a necesitar hacer es que vas a necesitar entrenar tu algoritmo. Ahora, puede tomar un algoritmo completamente nuevo o podría
tener un algoritmo parcialmente entrenado o un algoritmo ya existente que necesita mejorar. Pero lo que sea que
empieces, todavía vas a querer entrenarlo en cualquier dato que hayas recopilado. Entonces vas a usar esos datos. Voy a hacer predicciones. Y luego vas a evaluar esas predicciones y vas a buscar
los errores en base a los datos que tienes a tu disposición. Ahora, junto a la capacitación, también vas a querer hacer validación. El objetivo de la validación es, en última instancia, tener un conjunto de datos en el que puedas evaluar tus predicciones o tu modelo actual en y ver cómo funciona con datos que aún no se han visto. Y el propósito de esto es que se puedan evitar temas de ahora sobreajuste. Volveremos a hablar de nuevo un poco más tarde. Pero generalmente es solo que tu algoritmo encuentra patrones que realmente no existen. Entonces el punto de validación es que una vez que has entrenado, ¿Quieres probarlo en algunos datos que no ha visto antes para que sus predicciones no se hayan corregido sobre y ver cómo lo hace al respecto contra eso. Y la validación es realmente agradable porque esencialmente solo
estás tomando tu set de entrenamiento y estás dividiendo parte de él. Y estás usando la mayor parte de tu conjunto de entrenamiento para el entrenamiento y ellos van a usar otra parte para validarse en contra. Y realmente puede ayudarte a identificar temas de sobre-fit. Y te puede decir cuándo necesitas dejar de entrenar. Y ya sabes, lo que es una buena 0.1 es ¿no mi modelo realmente funciona bien? Ahora la última parte va a ser la parte de pruebas. Y el punto de las pruebas es en realidad muy similar a la validación. Pero hay una diferencia muy grande es que tu modelo solo llega a ver los datos de prueba todos a la vez. Y no vas a seguir mejorando tu modelo
para tratar de encajar mejor los datos de pruebas. Entonces, generalmente lo que quieres hacer es tomar tu conjunto de datos inicial y dividir 80 de él y poner eso en la parte de entrenamiento. Entonces estos son datos que probablemente tu modelo va a ver más de una vez. Y 20 por ciento acabas de poner a un lado y no lo tocas, ni siquiera lo miras. Ni siquiera fuera del humano porque no quieres
introducir ningún sesgo en tu algoritmo. Simplemente lo pones a un lado y solo lo dejas ahí y no lo tocas hasta el muy,
muy final, hasta que realmente quieras saber, vale, cómo funciona mi algoritmo ahora con los datos de entrenamiento para que el 80 por ciento, puedas dividir eso hasta en la capacitación y la validación. Y la gran diferencia entre lo de la validación y lo de la prueba es que tanto la validación como prueba de tu modelo no va a ver el datum y no va a aprender a predecir a partir de esos datos, pero es va a ser evaluado en su contra. Ahora, con la validación, puedes entrenar a tu modelo varias veces y siempre puedes probarlo contra datos inéditos y la validación donde vas a ver y vas a probar contra esos datos de validación varias veces. tanto que para el conjunto de pruebas, realmente solo lo dejas a la variante. Y tomas lo que crees que es tu modelo final. Y luego lo ejecutas contra los datos de prueba y ves cómo funciona. Y a partir de ahí, obtienes una buena representación real de cómo es probable que funcione
tu modelo cuando ve datos completamente nuevos. Ahora lo importante es que una vez que lo ejecutas, contra el conjunto de pruebas, no
quieres. Entrénalo más y ya no quieres afinarlo para que funcione mejor en el centro de pruebas debido a que todo el objetivo
del conjunto de pruebas es introducir datos completamente inéditos y desconocidos y sin ningún sesgo y sin cualquier entrada de lo que es correcto o no. Y así si comienzas a ajustar tus datos contra el conjunto de pruebas nuevamente, entonces ya no es un conjunto de pruebas, entonces es solo otro conjunto de validación. Y a partir de ahí, no es probable que el resultado que vas a obtener en la validación vaya a ser representativo de lo que realmente vas a ver cuando despliegues tu modelo en donde puedes usarlo en completamente invisible datos. Encendido. El punto del conjunto de pruebas es obtener una perspectiva casi completamente fresca y
tener realmente una buena comprensión de cómo va a funcionar tu modelo cuando realmente está ahí fuera y cuando entran nuevos valores que nunca se ve antes. De acuerdo, así que un término importante para conocer durante todo
el proceso de entrenamiento es algo llamado hiperparámetros. Ahora, los hiperparámetros son esencialmente parámetros
sintonizables de tu modelo o todo tu proceso, de todo tu proceso de aprendizaje. Entonces ese es tu modelo, cómo decides crear los errores, y también cómo decides hacer el aprendizaje. Entonces un ejemplo sería, ¿qué tan rápido aprende tu algoritmo? Ahora puedes decir, Oh, bueno, eso es fácil. Hagámoslo lo lo más rápido posible. Ahora el problema con esto es, es a veces si tu modelo aprende demasiado rápido, en
realidad puede rendirse peor y peor con el tiempo porque está tratando de sobrecorregir. Por lo que elegir qué tan rápido aprender es un equilibrado bastante importante porque es el equilibrio entre tomar demasiado tiempo para llegar a la solución o sobrecorregir y nunca volverse tan bueno como potencialmente puede ser. Entonces los hiperparámetros son cosas que tu modelo normalmente no aprenderá. Hola, puedes usar diferentes algoritmos de aprendizaje automático para aprender hiper parámetros para tu modelo. Pero hay muchos de estos parámetros gratuitos que elijas. Otro ejemplo es lo complicado que es mi modelo que vamos a ser. Entonces todas estas cosas que te quedan como que te quedan, y eso es parte de este arte del aprendizaje automático. Son estos hiperparámetros que al final estás decidiendo, ¿de acuerdo? ¿ Cómo debería, ya sabes, como, cuáles son las cosas que debería probar? ¿ Es necesario que esto sea muy complicado? ¿ Necesita ser simple? ¿ A qué velocidad quiero que esto aprenda? Todo ese tipo de cosas? Entonces, algo bueno que debes saber sobre los parámetros
híbridos es que puedes hacer esta cosa llamada búsqueda en cuadrícula. Entonces en lugar de solo escoger hiperparámetros y esperar que todo funcione bien, puedes usar esta técnica llamada búsqueda en cuadrícula, donde puedes dar una lista de los hiperparámetros que quieres
probar y simplemente ejecutar los cálculos varias veces y ejecutar el entrenamiento varias veces. Y luego comparar cómo funcionan los modelos en base a estos diferentes hiperparámetros. Y luego puedes ver, vale, qué combinación de todos estos parámetros libres es la mejor. Eso en última instancia me da un buen rendimiento de modelo. Y tal vez también eso hace que el modelo aprenda rápido. Entonces esas son también algunas de las cosas que tal vez necesites considerar está bien, ¿cuánto tiempo tengo realmente disponible para entrenarlo? ¿ Y cuánto rendimiento necesito realmente? ¿ Cuánta precisión necesito realmente? Ahora, búsqueda en cuadrícula lo puedes hacer redefiniendo los parámetros que quieres usar. Para que puedas decir, está bien, quiero que pruebes todas estas combinaciones diferentes. O simplemente puedes dejar que tu computadora elija combinaciones
aleatorias y decirle por cuánto tiempo quieres que se ejecute. Entonces el equilibrio aquí es uno, puedes elegir arte. ¿ Qué quiero explorar? Y el otro es, vale, ¿cuánto tiempo quiero dejarlo correr hasta que pueda tomarlo e ir al siguiente paso. Y por último, también algo importante a saber es la validación cruzada. Por lo que hablamos de validación en la parte anterior. Pero la idea de validación cruzada es que tomas tus datos y los divides en subconjuntos más pequeños. Mano, tomas todos menos uno de esos subconjuntos para el entrenamiento, y luego tomas el último para la validación. Y de esa forma podrás entrenar varios modelos diferentes y, o el mismo modelo varias veces utilizando diferentes conjuntos de entrenamiento y validación. Y luego puedes hacer que tu modelo tenga diferentes tipos de datos que entra y también diferentes datos no vistos. Y lo bueno para la validación cruzada es que no solo consigues entender, de acuerdo, ¿cómo funciona mi modelo ahora mismo, sino también cuánto varía mi modelo? Entonces, ¿cuál es el tipo de rango de rendimiento esperado que puedo esperar de este modelo?
3. Términos esenciales en ML esenciales continuados: Esta conferencia vamos a seguir buscando términos esenciales. Ahora, en este punto tal vez estés preguntando, Vale, genial. Entonces yo como que entiendo cómo funciona todo el proceso de capacitación. Pero, ¿cómo empiezo incluso con saber qué modelo elegir? Bueno, lo primero que hay que saber, y esto es extremadamente importante, es que cada modelo siempre es solo una aproximación de la realidad o es solo una aproximación de lo que sea que intentes hacer. Ahora, esto es cierto para esencialmente todo va sostiene de la física. Incluso los modelos de física son solo aproximaciones. Ahora, el objetivo que estás tratando de lograr con el modelo es que estás tratando de imitar o entender la realidad lo más cerca
posible para que las diferencias entre tu modelo en realidad ya no sean realmente importantes porque ellos esencialmente comportarse de la misma manera. Ahora, cada modelo suele venir con una suposición. Y en base a las suposiciones que tengas sobre tus datos, vas a elegir un modelo específico. Entonces, por ejemplo, si asume que sus datos son lineales,
es posible que desee elegir la regresión lineal. Si asumes que tus datos son más complicados, posible que quieras elegir una regresión polinómica o árboles de decisión, o incluso quizás quieras bajar por las raíces de las redes
neuronales dependiendo de la complejidad que quieras agregar. Ahora bien, si no haces ninguna suposición sobre tus datos, entonces está este teorema genial que se llama el teorema del no almuerzo gratis. Y esto básicamente dice que es imposible que sepas qué modelos es la elección correcta. Todos son igualmente viables. Entonces aplicando esto al aprendizaje automático, realmente lo que esto dice es que puede que tengas una comprensión inicial de tus datos, pero siempre es una muy buena idea tomar varios modelos diferentes que
crees que funcionarán bien en la tarea que tú están tratando de lograr y entrenar a todos estos modelos. Ya sabes, no necesitas optimizarlos por completo. Pero sólo una especie de pick algunos parámetros por defecto se les cambian aproximadamente un poco, y entrenar a estos diferentes modelos y ver cómo se desempeña cada uno de ellos. Ahora, lo que vas a conseguir, veces si tienes suerte de uso vas a conseguir diferentes modelos y algunos funcionan extremadamente mal y otros funcionan generalmente bien. Por lo que quieres escoger a tus ganadores. Ahora si todos funcionan igual de bien, entonces en este punto usted tipo de libre para elegir. Pero por lo general estás tratando de reducir el número de modelos. Y así que muchas veces no se acaba de llegar con el modelo porque a menudo es casi, es extremadamente difícil saber a qué se acerca el correcto inicial. Tan bueno que hacer es escoger varios modelos, entrenarlos a todos, probarlos todos, ver cuáles funcionan mejor,
y luego usar esos, y luego usar esos, optimizarlos aún más, ver cómo los realizan, y luego decidir en última instancia sobre uno y ir completamente por la ruta de realmente optimizarlo y entrenarlo en todo
tu conjunto de datos grande o lo que sea que tengas disponible. Hablando de conjuntos de datos, repasemos algunos de los términos importantes que encontrarás al hablar de Conjuntos de datos, específicamente también en el campo del aprendizaje automático. El primer término va a ser características. Ahora, las características son todos los datos que vas a usar para entrenar tu algoritmo. Entonces digamos que estás construyendo un algoritmo para predecir la altura de un individuo. Las características podrían ser su sexo, su altura, su ocupación, donde viven, su actividad diaria, lo que sea, cualquier cosa que uses, quieres alimentar a tu algoritmo que usará
tu algoritmo para tratar de predecir esa forma final. ¿ Va a ser una característica? Ahora bien, esto puede ser datos sin procesar que se pueden formatear datos o puede ser procesado. No importa. Es solo que estos son los datos que vas a estar alimentando en tu algoritmo. Y esos son los datos que vas a usar para tratar de hacer tus predicciones. Ahora si miramos a la derecha, esto suele ser como todo se denota un poco cuando estás
hablando de tener múltiples observaciones es lo que se les llama, pero esto es solo múltiples filas de datos. Por lo que cada una de estas filas en este ejemplo correspondería a una persona diferente. Y cada característica, que es lo que tenemos en la parte superior ahí, correspondería a las diferentes características. lo que la característica uno, por ejemplo, podría ser sexo, característica dos podría ser su altura, y luego así sucesivamente. Y la característica n podría estar dondequiera que puedan vivir. Ahora, la observación uno sería la persona número 1, observación 2 sería la persona número 2, y así sucesivamente hasta que llegues abajo a la persona número m, que es cuántas observaciones tienes. Y como se puede ver, esto se denota muy a menudo por sólo mayúscula X. Y X contiene la matriz. Donde cada fila contiene una observación y cada columna es para una característica específica. Ahora, la otra cosa que es importante saber son los objetivos, y estos suelen ser denotados por y minúscula Ahora el objetivo es tu valor de referencia que tu algoritmo está tratando de aprender. En este ejemplo, nuestros objetivos serían sólo el peso final. Y podemos ver que no tenemos múltiples columnas, solo
tenemos una columna, pero aún tenemos el mismo número de observaciones. Y así para cada observación, que en este caso sólo sería una persona, tenemos en nuestra x y nuestras características, todas las características relevantes. Y en nuestro y, en nuestros objetivos, sólo
sería el peso. Entonces y, y1 sería el peso de la persona uno, Y2 sería el peso de la persona 2, y así sucesivamente. Ahora, también hay términos importantes para conocer sobre los modelos de aprendizaje automático. El primero de esto se llama sesgo. Ahora, esto va a ser
diferente a otro tipo de sesgo del que vamos a aprender. Pero la idea de un sesgo en los modelos de aprendizaje automático es sólo para proporcionar un offset, y esto también se conoce como la intercepción. Y la forma más fácil de pensar en esto es si solo piensas en un
sesgo de línea recta aquí o tu intercepción es desplazar esa línea hacia arriba y hacia abajo, cambiando alrededor de esa intersección y. La otra cosa que tienes, nuestros pesos de característica. Por lo que en este vector almacenamos la importancia de cada característica. Y en última instancia si tienes múltiples características, tu algoritmo va a tratar de aprender estas características en función de la fórmula que esté usando, cualquiera que sea el algoritmo que esté usando. Y va a asignar pesos a tus características. Se va a asignar importancia relativa. Y entonces lo que tenemos es que cada característica tiene un peso específico asociado a ellos. Por último, también tenemos el vector de parámetro. Ahora el vector de parámetro es solo una combinación
del sesgo y la característica pesos hasta un vector completo m. Y a menudo haces esto solo porque hace que anotarlo sea más fácil para que
tengas un vector que contenga tanto tu desplazamiento o tu intercepción o tu sesgo, como quieras, llámalo, además de todos los pesos de tus características. Para que podamos ver si volvemos atrás, tenemos nuestras características aquí. Y luego cuando volvemos a seguir adelante, hemos ido un peso por cada característica. Y eso es en última instancia lo que nuestros algoritmos van a estar queriendo aprender. Y algunos algoritmos tendrán varios conjuntos de pesos de entidades. Y algunos algoritmos solo usaremos un solo conjunto de pesos de características junto con un sesgo. Y la forma más fácil, por
supuesto de representar esto es usar el vector de parámetro, porque esto permite agrupar todo, que simplemente lo hace un poco más ordenado.
4. Cómo englobar los términos esenciales: Ahora tal vez te estés preguntando, ¿cuáles son los diferentes enfoques que puedo tomar para crear un algoritmo o
cómo me aseguro de que mi modelo se mantenga actualizado? Generalmente, cuando entrenas, hay dos enfoques diferentes que puedes tomar. Ahora el primero se llama aprendizaje por lotes y el segundo se llama aprendizaje en línea. Ahora, la gran diferencia entre ambos es ese aprendizaje por lotes. Y puedes ver que también en la imagen de la derecha se entrena tu modelo de antemano. Por lo que tienes lotes de datos que entran. Por lo que los trozos de datos de todos estos chicos no eran subconjuntos más pequeños o pueden ser enormes. Los lotes son conjuntos de datos que vienen en los que entrenas a tu modelo. Y básicamente cada línea vertical de sueño que ves hay un nuevo modelo que se está creando. Por lo que entrenas a tu modelo varias veces y sigues haciendo mejoras al mismo. Y en algún momento decides que no
lo son, es hora de actuar muy bien. Hagámoslo disponible, pongámoslo en producción, o hagamos que un go en vivo o como quieras llamarlo. Y luego tienes datos en vivo entrando. Pero en este punto tu modelo ya no está cambiando. Tu modelo fue arreglado de antemano. Ahora los datos entran y se ajustan, salidas, su predicción o lo que se supone que haga el modelo. Aprendizaje en línea, por otro lado, por lo general también comienzas con una Licenciatura en él. Por lo que quieres entrenarlo primero para que lo haga bien de antemano. Pero la opción con el aprendizaje en línea es que puedes seguir entrenándolo a medida que llegan nuevos datos. Ahora bien, esto suena realmente bonito, pero por supuesto también hay complicaciones que vienen con ello. Por ejemplo, cuando llegan nuevos datos,
¿cómo sabes cuál es la decisión correcta o cuál es la respuesta correcta? Si la respuesta correcta no viene junto con ella. Entonces si no tienes una respuesta correcta obvia que viene con tu sistema cuando está en línea y es uno, solo está trabajando en actuar. Te puedes encontrar con algunos problemas porque solo vas a tener que adivinar la respuesta o vas a tener que encontrar alguna otra solución inteligente para llegar a cómo evaluar cuál es la respuesta correcta y qué deberías estar usando para entrenar ella. El punto sin embargo es que si tienes estas respuestas o si tu conjunto de datos cambia con el tiempo, aprendizaje
en línea puede ser realmente agradable porque tu modelo se va a
adaptar a medida que el tipo de datos evoluciona con el tiempo. Entonces digamos que creas un producto y solo tienes un par de mil usuarios al principio. Y tienes tu modelo en línea y tienes una buena comprensión de cómo evaluar su rendimiento y cómo hacer un cambio con el tiempo a medida que entran nuevos usuarios, hacer un montón de cosas que tu algoritmo puede desarrollar o tu modelo puede desarrollarse con estos usuarios. Y así a medida que tu producto crece, tus modelos también van a crecer y va a cambiar. Y puedes ver aquí todas esas pequeñas líneas verticales verdes también está en vivo, es básicamente nuevas versiones de tu modelo. Ahora, también es importante aquí, o para ambos casos evaluar el desempeño a lo largo de un periodo de tiempo más largo. Por lo que quieres volver al menos un par de
meses después de que lo hayas desplegado para ver cómo están
funcionando las cosas ahora Para la Licenciatura en caso de que esto sea importante porque tu modelo probablemente va a estar desactualizado en algún momento. Y así puede que ya no se esté desempeñando tan bien como, como inicialmente lo fue, sólo porque las cosas han cambiado. Para el caso de aprendizaje en línea, podría ser que tu modelo tipo de vaya hacia su propia dirección. Y en algún momento es justo,
es, no ha aprendido correctamente y se ha ido en una dirección equivocada, y ya no está funcionando tan bien como te gustaría. Y así en ese punto necesitas parar y luego tienes que volver a una versión anterior. O quieres volver a entrenarlo en algunos datos más frescos, o solo necesitas actualizarlo. Entonces en ambos casos, no solo quieres ponerlos en línea y tipo de dejarlos ahí. El para el caso de aprendizaje por lotes, podría ser que el tipo de datos de actualizaciones y tu modelo va a pasar de moda. tanto que para el caso de aprendizaje en línea, el modelo puede cambiar con los datos sobre dónde puede comenzar
su modelo en la dirección equivocada. Ahora en este punto también es importante hablar de datos y qué tan efectivos son los datos. Y es importante tener en cuenta, en primer lugar, que más datos generalmente significa un mejor rendimiento. Y con suficientes datos, incluso los modelos simples pueden funcionar muy bien en tareas complejas. Entonces si tienes toneladas y toneladas de datos, en algún momento, es posible
que no quieras pasar tanto tiempo pensando,
vale, en qué algoritmo exactamente. Y de nuevo, ¿voy a usar? Vas a querer ir con uno que generalmente realizaba pequeñez tipo de tarea. Y vas a querer enfocarte más en, vale, qué modelo puede aprender rápidamente. Porque cuando se tiene toneladas y toneladas de datos, lo que básicamente significa esta efectividad de Theta es que, bueno, varios algoritmos pueden funcionar igual de bien. Y así se va a hacer importante. ¿ Con qué rapidez se puede conseguir que un modelo funcione bien? Entonces, ¿cómo puedo ahorrar tiempo con el entrenamiento para que pueda subir mi modelo más rápido o que pueda realizarle mejoras más rápidas. Ahora, otra cosa importante que hay que saber sobre los datos o
pensar a la hora de crear un modelo y tratar de modelar datos es insuficiente. Ahora, bajo ajuste es cuando tu modelo es demasiado simple para entender correctamente los datos. Y esto también se puede llamar sesgo. Ahora bajo ajuste y sesgo son ambas variaciones son formas de sobresencillez. Entonces lo que tienes en este caso es, estás asumiendo que algo es mucho más sencillo de lo que realmente es. Entonces tomemos un ejemplo. El mercado de valores, que es una de las cosas más complicadas y hay tanto que se alimenta en él. Si intentas predecir el mercado de valores usando un modelo lineal simple, no
va a funcionar particularmente bien. Y eso se debe a que el mercado de valores no es algo tan sencillo que se puede entender sólo usando el modelo lineal. Y si tratas de ir por esa ruta, vas a ser muy subconformado o vas a tener un modelo muy inadecuado porque estás asumiendo tanta simplicidad y el mercado de valores es extremadamente complicado. Otra forma que la simplicidad puede introducirse en su modelo es a través de la regularización. Ahora bien, la regularización es parte de la función de pérdida o la función de costo va a ser algo que vamos a verlo en más, en las conferencias posteriores. Pero en última instancia lo que es y muy corto, es que estás penalizando al modelo y estás tratando de
hacerlo lo más simple posible como estás tratando de limitar su flexibilidad. Ahora, por otro lado, puedes tener sobreajuste o varianza también va a ser un poco, van en la misma dirección. Y ahí es cuando tu modelo es excesivamente complejo o cuando tiene demasiada libertad y encuentra cosas que en realidad no están ahí. Entonces si tu modelo está sobreajustada, eso significa que se encuentran patrones que en realidad no existen. Y de igual manera, cuando tienes más varianza, eso significa que tu modelo se está volviendo extremadamente complejo. Y tiene demasiada libertad. Y como tiene demasiada libertad, ya no
está funcionando bien porque se está enfocando en cosas que no son importantes. Y es encontrar estas cosas porque le estás dando tanta libertad. Y el sobreajuste o variantes pueden provenir si se utilizan modelos extremadamente complicados. Entonces, por ejemplo, si decides ir con como árboles de decisión profundos son funciones polinomiales altas o redes neuronales profundas. Y no intentas frenar su libertad si solo los dejas correr libres, es muy probable que vayan a sobreajustar tus datos porque van a entrar tan profundamente en ello y van a pensar que encontraron algo extremadamente interesante, extremadamente complejo. Y probablemente no va a ser verdad. Y así la idea de sobreajuste y en la misma región, la idea de varianza es complejidad de un modelo. Y por lo que muchas veces quieres pensar,
vale, ¿cuál es mi sesgo y cuál es mi varianza? ¿ Cuáles son los oficios fuera? Esencialmente, el agua es una de las simplicidades y ¿cuáles son las complejidades? Y cómo puedo hacer que mi modelo no sea demasiado simple, que no encuentre cosas importantes, ni que sea demasiado complejo, que tenga tanta libertad que encuentre cosas que ni siquiera están ahí. Entonces si miras el gráfico de la izquierda, por ejemplo, uno de los conjuntos de datos de prueba que tienes de una biblioteca llamada SKLearn, que es una biblioteca de aprendizaje automático para Python. Es uno de esos conjuntos de datos de prueba para el dataset iris específicamente. Y lo que tenemos aquí es sólo un simple árbol de decisiones, que también aprenderá en conferencias posteriores. Y lo importante a tener en cuenta aquí es que tenemos tres clases diferentes, las cuales se pueden ver para los tres tipos diferentes de puntos de colores. Y también tenemos tres identificaciones diferentes que hace nuestro modelo, cuales se pueden ver con los tres colores diferentes. Entonces tenemos este morado, este rosa, y este amarillo. Y se puede ver en el amarillo, hay una racha. Y la racha de rosa solo golpea un punto amarillo. Y a pesar de que estos datos son bastante simples, esto ya es un ejemplo de sobreajuste donde el modelo está tratando de
llegar a ser demasiado complejo y está introduciendo estas sobre complejidades, en este caso, una pequeña línea estrecha para caber un punto de datos en una región que de otro modo está dominada por otra clase. E incluso en, mi punto es aquí que incluso para estos conjuntos de datos muy simples, sobreajuste puede convertirse en un problema si dejas a tu modelo demasiada libertad, y si simplemente lo dejas pasar por sí solo sin controlarlo. Entonces, ¿cómo se ve generalmente el flujo
del proyecto de un proyecto de aprendizaje automático de la máquina de impresión? Bueno, lo primero que vas a necesitar hacer es pensar en el objetivo. Y antes de que hagas algo más, quieres saber cuál es el caso de negocios o cuál es el caso de uso de mi modelo? ¿ Cuál es el objetivo real que estoy tratando de lograr? ¿ Cuál es la precisión a la que voy? Y qué cosas son aceptables. Entonces agua errores aceptables y ¿cuáles son los errores inaceptables? Entonces, por ejemplo, si estás en el campo de la medicina, sí, y si estás tratando de detectar algún desnudo, si estás tratando de ayudar a los médicos detectaron enfermedad o tener algún tipo de pruebas previas. Un error aceptable sería detectar a veces algo que no está ahí. Entonces un falso positivo. Entonces a veces se puede decir, oh, esto, quizá
queramos hacer más investigaciones porque esta enfermedad puede estar presente. Y si resulta que no está ahí, entonces está bien porque la persona no va a ser dura. A pesar de que a corto plazo puede que no sea tan agradable pasar por eso y la ansiedad. Y a largo plazo tiene efectos bien. Pero un error inaceptable porque si tu modelo echa de menos la enfermedad, entonces si dice que no está ahí y no hay más pruebas que se hagan y la persona termina teniendo este diagnóstico. Entonces en este caso, por ejemplo, vas a querer concentrarte mucho en eso. No cometes errores donde te pierdes algo que en realidad está ahí porque eso puede causar daños irreparables y no es un camino que quieras bajar. Entonces en este caso, se puede ver
que a veces no se trata solo de cuánto lo haces bien, ¿Cuánto te equivocas? Pero lo que es más importante, ¿cuáles son las cosas más importantes que necesitas para hacer bien? ¿ Y dónde está bien que las cosas se equivoquen? Y entonces hay que hacerlo, porque en última instancia tus modelos trópicos no van a ser perfectos. Por lo que necesitas afinarlo para asegurarte de que las cosas que necesitas para hacer bien nuestro derecho con la mayor frecuencia posible. Y sólo después de eso, ¿quieres entonces asegurarte de que las cosas que, ya sabes, debes acertar también sean ES las correctas con la mayor frecuencia posible. Pero lo más importante, es tan importante que antes de hacer algo más, sabes cuál es el objetivo final. Growl. Entonces te vas a ir en la dirección equivocada. ¿ Vas a pasar tanto tiempo tratando de ir por un nivel de precisión extremadamente alto que ni siquiera se necesita porque eso es solo, sabes, Algo que es el objetivo de tu negocio. Ahora una vez que tengas una idea de lo que
realmente quieres hacer y lo que realmente necesitas hacer. Entonces es hora de sumergirse profundamente en tus datos. Quieres asegurarte de entender correctamente tus datos. Y también quieres asegurarte de pasar por todos los pasos de preparación de datos de los que hablamos antes. Por lo que mucha de esta primera parte es en realidad el proceso de ciencia de datos. Entonces entendiendo las preguntas del negocio, entendiendo, está bien, ¿cómo analizo mis datos? ¿ Cuáles son las diferentes formas en que puedo contextualizar mis datos? ¿ Cómo puedo traer más información a través mi conocimiento de dominio a los datos que el algoritmo de aprendizaje automático puede utilizar tal vez. Por lo que la primera parte va a estar muy fuertemente basada en habilidades de ciencia de datos. Ahora, la segunda parte es donde las cosas del aprendizaje automático realmente se ponen en marcha. Que es que entonces vas a querer crear tu tren y probar split o tu validación de tren y prueba split. Y vas a querer empezar a entrenar y validar y realizar validaciones en tus datos en o en tu modelo para que puedas mejorarlos con el tiempo. Por supuesto, quieres escoger varios modelos al principio y quieres
escoger una función de pérdida o una medida de error que creas que es buena. Y luego él, entonces vas a querer entrenar a estos diferentes modelos y vamos a querer compararlos, escoger algunos de los ganadores, optimizarlos. En este punto, también vas a necesitar buenos optimizadores para asegurarte de que tus modelos aprendan lo más rápido posible. Vas a querer hacer búsqueda en cuadrícula con validación cruzada y solo iterar sobre lotes de datos de entrenamiento. Y luego en última instancia quieres evaluar en tu set de pruebas y
quieres ver si hay algún signo de debajo o sobre ajuste. Y también se quiere llevar esto a otras personas, obtener aportaciones de ellas. Vea qué piensan del proceso, vea si tienen alguna otra entrada basada en el rendimiento del modelo o en
base a qué datos decidió suministrarlo y luego iterar desde ahí. Y una vez que te sientas bien sobre cómo está funcionando tu modelo, entonces es hora de lanzarla para ponerla a tu disposición. No. Ponlo donde sea que necesite ir. E incluso entonces todavía vas a querer monitorear el rendimiento de tu modelo. Y tú quieres, vas a querer volver a él y ver cómo se está desempeñando una semana después, un mes después. Y en última instancia también vas a necesitar
alcanzarlo, lo en nuevos datos para asegurarte de que el modelo se mantenga actualizado.
5. Preparación de datos: Bienvenido a la lección sobre técnicas de preparación de datos. Preparar adecuadamente sus datos tiene efectos sorprendentes en el rendimiento de sus algoritmos de aprendizaje automático y es un paso crucial en el aprendizaje automático. Y esto definitivamente no es algo que debas pensar en saltar. Esta es en realidad una de las partes más importantes de
asegurarse de que sus algoritmos de aprendizaje de máquina fuera estén correctamente configurados. Entonces, veamos primero un ejemplo. ¿ Cómo lidiarías con una distribución que se parezca a la siguiente. Entonces lo que tenemos aquí es sólo una distribución de generadores para mí muestra la distribución del ingreso de cualquier ciudad. Y en el eje y tienes los conteos o también podrías mirarlo. Y al igual que la tasa de ocurrencia. Y en la x se tiene el ingreso y decenas de miles de dólares. Y entonces lo que se ve aquí es una ciudad con una especie de clase media media, pero claro que tiene gente cuyo sueldo se extiende hasta tasas muy altas. Y así esencialmente lo que tenemos aquí es que tenemos una distribución sesgada o algo que tiene una cola muy larga. Tenemos una especie de distribución normal que reconocemos en el centro. Y luego hacia la derecha, esa distribución sólo tipo de continúa. Y esto tiene efectos significativos en nuestro
algoritmo de aprendizaje automático porque la escala de los datos y se vuelve extremadamente grande. Entonces se puede ver que sólo nos estamos extendiendo hacia la derecha y la derecha y nuestro conteo va a la baja. Pero siempre podemos encontrar valores a menos que rango más alto. Y esto en realidad puede ser problemas. Cuando estamos tratando de poner estos datos en nuestro algoritmo de aprendizaje automático. Y puede que no siempre lo trate tan bien como puede que desee. Y entonces, ¿cómo abordamos problemas como este? ¿ Cómo abordamos este tipo de distribuciones? Bueno, una cosa que puedes hacer es que puedes tomar el registro de los ingresos y puedes ver los efectos aquí. Lo que hace es más que tener una escala de alrededor de 2.5 a 20, que es lo que teníamos en esta distribución. Aquí, vamos a cerca de uno a 3.25 o algo así. Por lo que hemos reducido drásticamente
el rango de los datos en nuestra distribución y el rango de una parte significativa de los datos y nuestra distribución. Entonces, en lugar de pasar de aproximadamente ocho veces, que es de 2.5 a 20, sólo
tenemos alrededor de un triple cambio de uno a tres. Y eso es extremadamente importante para nuestro algoritmo de aprendizaje automático porque el anuncio ahora tiene que enfocarse en un rango de datos mucho más pequeño. Y otra cosa importante que estamos haciendo con este escalado de registros es que estamos diciendo que los números más altos son menos diferentes entre sí. Entonces en este caso, la diferencia entre 2.55, por lo que 25000 y 55 mil es mucho mayor que la diferencia entre digamos, ciento cincuenta mil y ciento setenta y cinco mil. Y eso también tiene sentido, ¿verdad? Al igual que en algún momento, esa diferencia simplemente ya no importa tanto. Y entonces eso es lo que estamos diciendo físicamente cuando estamos usando el escalado de registros. Pero también tiene impactos significativos para un algoritmo de aprendizaje automático porque es realmente bueno si podemos reducir este rango y no hacerlo tan grande. Otra cosa que podemos hacer para reducir el rango que nuestros datos están pasando es simplemente tomar un umbral. Entonces podríamos decir, por ejemplo, que, ya sabes, todo después de un 125 mil o 12.5 en este caso es básicamente todo lo mismo para cualquier proyecto que estemos considerando. Al igual, digamos que nuestro proyecto es ver qué tipos de personas pueden permitirse qué casas. Y decimos, bueno, cualquiera que esté manejando un 125 K o superior, básicamente puede permitirse todas las casas que estamos viendo. Y ya no hay diferencia real entre ellos porque ese ingreso extra no hace diferencia en nuestro proyecto. Entonces podemos decir, vale, vamos a tomar un umbral duro aquí, que se basa en este significado físico de por qué exactamente elegimos un 125 K porque decidimos en este punto, simplemente ya no hace diferencia. Y así de esta manera, también estamos reduciendo hacia abajo o rango de 2.5 a 20 abajo a 2.5 a 12.5. Entonces no estamos teniendo una reducción tan grande como lo hacemos en el caso de ley, pero sigue siendo una buena reducción. No obstante, el problema en este caso es si miramos la distribución de esa distribución normal que vemos alrededor de la marca de cinco o la marca de 50 k. Y he puesto una barra verde arriba para que puedas especie de visualizar dónde se encuentra la distribución. Y ahora si miramos a la cola derecha, vemos que los indicadores verdes son aproximadamente del tamaño de la distribución que tenemos a la izquierda. Y podemos ver que la cola sigue siendo mucho más larga que ellos. Y así nuestra distribución en este caso aún tiene una cola extremadamente larga. Y así este umbral puede ser algo bueno para usar en algunos casos, pero en realidad para este ejemplo específico, no
sería bueno usar sólo porque nuestra cola sigue siendo tan larga, pesar de que usamos un umbral y una especie de corte, una porción importante que va de 12.5 a 20. Todavía es extremadamente largo y en realidad es más largo. La parte principal de la propia distribución. Ahora, algo más que puedes hacer es que puedes tomar percentiles de tus datos. Entonces básicamente estás tomando todos los datos que tienes y lo
estás dividiendo en 100 grupos. Y luego puedes tomar cada uno de estos valores de ingreso y en su lugar reemplazarlo por el percentil. Y lo que se obtiene de aquí es lo que se puede ver en la pantalla. Obtienes un 100 grupos igualmente distribuidos y obtienes puntuación es entre 0 y un 100, que también puedes escalar para ir de 0 a uno o lo que quieras. Pero lo importante aquí es que tienes un rango bien definido y no hay desequilibrio como vemos, sobre todo en este caso, donde la cola se estira tanto tiempo en una dirección y hay
una especie de desajuste a la parte principal de su distribución y hasta qué punto los datos se extienden lejos de ella. Eso no es algo que vemos aquí. Entonces ahora que sabemos de escalar, algo más de lo que necesitamos hablar es preparar entrada para nuestros datos. En este caso, hemos mirado una escala que va de alrededor de 2.5 a 20. Y si solo tenemos un rango de entrada y hacemos parte de la preparación de datos de la que hablamos anteriormente, donde intentamos moverlo o escalarlo para reducir el impacto de la cola, eso puede ser algo bueno. Pero si tenemos varias características diferentes que utilizamos para la entrada y sus escalas son significativamente diferentes, entonces esto puede tener efectos negativos en el rendimiento del algoritmo. Por lo que a los algoritmos, y generalmente a los algoritmos de aprendizaje automático les gusta tener números que vienen en rangos similares. Entonces, por ejemplo, si tienes valores aquí que van de alrededor de 2.5 a 20, o alrededor de uno a 20, entonces quieres asegurarte de que tus otros valores también estén dentro del rango comparable. Entonces, por ejemplo, ir de cinco a 30 o de uno a 15 o algo así. No quieres es una distribución de uno que va de
alrededor de 0 a 20 y otra que va de alrededor de 0 a un 100, y luego una que va de 50 a 500 mil. Los algoritmos de aprendizaje automático a veces tienen problemas para lidiar con esos tipos de distribución. Y entonces lo que realmente quieres es que la escala que tienen tus entradas sean comparables entre sí. Entonces de lo que estamos hablando aquí no es reducir el efecto de la cola. Eso es lo que hicimos anteriormente, pero asegurándonos de que tus entradas sean de tamaño
comparable entre sí cuando estás usando múltiples entradas. Entonces lo que quieres hacer aquí es esencialmente que quieres escalar tus entidades para tener un rango más concreto o un rango más pequeño y más definido. Y una forma en que puedes hacer eso es solo usar algo llamado escala min-max. Entonces lo que haces es tomar el valor mínimo y tomar el valor máximo y dices, no hay ningún número que esté en el mínimo es 0. Y el número que está al máximo es uno. Y cualquier cosa en el medio, como un número entre 01, que depende linealmente de dónde yace. Entonces si está a mitad de camino al máximo, su valor va a ser 0.5. Ahora, el problema con esto es que todavía podemos tener una distribución desigual de los datos. Entonces podemos ver que hemos cambiado la escala en la parte inferior aquí. Vamos de 0 a uno en lugar de 2.5 a 20. Pero seguimos manteniendo la cola. Y así en este caso, por supuesto sigue siendo importante que además de hacer este escalado de características, también
hagamos alguna otra forma de preparación de datos para asegurarnos de reducir los efectos de esta cola. No obstante, esta es una buena manera de abordar tener, tener varias características y ponerlas en el mismo rango. Ahora por supuesto, un problema que también se puede obtener de esto es si
tenemos la mayoría de nuestros datos dentro de la parte baja y tenemos algunos valores atípicos. Estos valores atípicos pueden afectar en gran medida el rango de nuestra distribución. Entonces en este caso, podemos ver que la mayoría de nuestros datos están alrededor de la marca del punto 3, pero solo algunos de los valores atípicos, que es el 20 de aquí arriba, eso es lo que lo tira todo el camino hasta uno. Y así en este caso, seguimos teniendo el problema de que
aún tenemos un rango dominante más pequeño en nuestra distribución. Por lo que la mayoría de los datos ahora está entre alrededor de 0.1.4. Pero nuestro rango va todo el camino hasta uno solo por los efectos del atípicos. Por lo que sigue siendo importante hacer parte de la escala o la preparación de la que hablamos antes para reducir los efectos de estos valores atípicos que fueron para reducir los efectos de la cola larga que estamos viendo. Ahora, otro enfoque que puedes tomar es algo llamado estandarización. Ahora, lo que haces aquí, en lugar de establecer una escala definida como hacemos en ellos y max case, usamos una escala relativa. Y así encontramos la media de todos nuestros datos y encontramos la desviación estándar. Y aplicamos una transformación a cada punto de datos donde tomamos el valor, restamos la media, y luego la dividimos por la desviación estándar. Y así podemos ver por la gráfica de la izquierda, nuestros datos dispuestos ahora van de aproximadamente negativo uno a cuatro. Pero esto no es algo que esté predefinido. Esto es justo, lo estamos escalando hacia abajo en base a nuestro conjunto de datos y cómo se distribuye. Entonces esta es una buena manera de tipo de regularizar tus datos porque no estás estableciendo una escala definida y estás dejando que la distribución de
los datos gobierne cómo se ve la nueva escala. Pero sigue siendo útil porque si haces esto a través varias características o varias entradas diferentes, lo bajará a una escala comparable. Y así en lugar de establecer una escala absoluta, como lo hacemos para el min-max, que pasa de, por ejemplo, 0 a uno, podemos tener escalas todavía variables que aún son comparables entre sí usando la técnica de estandarización.
6. Preparación de datos continuada: En esta conferencia, vamos a seguir mirando las técnicas de preparación de datos. De acuerdo, entonces algo más que es importante
saber es un sesgo de muestreo y muestreo. Porque en última instancia cuando estás entrenando un algoritmo de aprendizaje automático, estás escogiendo datos que usas para el entrenamiento y estás escogiendo datos que usas para las pruebas. Ahora es importante saber que a veces la distribución de tus datos puede tener impactos significativos en cómo funciona tu algoritmo de aprendizaje automático en tu entrenamiento así como en tus conjuntos de pruebas. Entonces si miramos la gráfica de la derecha, lo que tenemos es una distribución de grupos de edad. Entonces vamos del 15 al 25. Ese es nuestro primer grupo, que tiene alrededor de un poco más de 30 participantes en él. Entonces tenemos del 2006 al 59, que tiene casi 15, y luego tenemos el 60 plus, que tiene alrededor de 20. Ahora, una técnica que puedes hacer es que puedes seguir tomando
aleatoriamente a participantes de este grupo de edad. Y si haces eso, entonces es posible que no imites la distribución subyacente. Ahora a veces eso no es malo, a veces eso está bien. Pero en algunos casos, cuando hay una, una característica importante que quieres imitar y tu distribución. A veces esa característica importante puede tener efectos sobre cómo se comportan
los sujetos o cuál es el resultado de lo que sea tu experimento. Entonces, por ejemplo, en el caso del grupo de edad, las diferentes edades pueden tener opiniones o perspectivas variables, y por lo tanto sus respuestas a preguntas o lo que pueda tener un efecto significativo en el resultado. Y así si solo hacemos un muestreo aleatorio, entonces lo que muestran estas barras de error es una especie de la desviación estándar que podemos esperar. Y así podemos ver que lo que tenemos en la distribución real versus los valores que podemos obtener si solo tomamos muestras aleatoriamente. Ahí hay muchas variantes y hay mucha incertidumbre. Y así podemos, aquí por ejemplo, ver eso, de acuerdo, si tenemos nuestro set de tren, que está representado en azul, y nuestro set de pruebas que ha representado en verde. Algunos de estos grupos de edad pueden estar por debajo están sobrerepresentados. En este caso, el grupo de edad de 60 más está subrepresentado en la capacitación y sobrerepresentado en las pruebas. Ahora, el efecto que esto tiene en nuestro algoritmo es que nuestro algoritmo tendrá menos entradas del 60 plus. Y tendrá que evaluar más aunque sobre el 60 plus. Y así puede decir que los pensamientos
del grupo de edad de 60 más no son tan importantes ni algo así. Bueno, no son tan significativos. Pero entonces cuando se está probando en contra, en
realidad tiene que evaluar mucho de los pensamientos del grupo de edad de 60 más. Y no está debidamente preparado para eso. Hay una desproporción que la cantidad de entrenamiento en relación con los otros grupos de edad que hemos hecho en el entrenamiento versus la cantidad de pruebas que se están haciendo. Y esto puede tener consecuencias
significativas en el rendimiento de su algoritmo de aprendizaje automático. Entonces lo que puedes hacer es algo llamado muestreo estratificado, donde estás tratando de imitar la distribución subyacente. Y así podemos ver en el entrenamiento y las pruebas, que nuevamente se muestra en azul y en verde, que las distribuciones ahora son mucho más similares. Ahora no siempre va a ser un partido perfecto. Y en algunos casos, la muestra aleatoria en realidad puede parecer una muestra estratificada, como la tenemos. Esta es la muestra estratificada que aquí vemos. Por lo que a veces cuando elijas grupos aleatoriamente, se verá así, pero no estás garantizado. tanto que con una muestra estratificada, te estás garantizando que estas distribuciones vean similares en el entrenamiento así como en el caso de pruebas. Y así podrás asegurarte de que estas distribuciones subyacentes se mantengan igual. Que la forma en que estos datos, que la forma en que estos datos se asignan a
tu entrenamiento y a tus conjuntos de pruebas se mantenga igual para que no te metas con algunas de estas características importantes. Ahora, en algunos casos, lo que realmente quieres hacer es que quieras tener una representación excesiva de una muestra. Entonces a veces no quieres estrato, quieres, no quieres estratificar tu muestra. No quieres una distribución pareja porque esto puede tener efectos negativos en tu algoritmo de aprendizaje automático. Entonces, por ejemplo, tomemos un filtro de spam que intentaban detectar si un correo electrónico es spam o no. Y digamos que la mayoría de los datos que tenemos no spam. Ahora bien, si haces muestreo estratificado aquí, lo que tu algoritmo de aprendizaje automático puede aprender es que si simplemente clasifica todo como no spam, va a salir bastante bien. Si la posibilidad de que el correo electrónico sea spam es bastante baja, va a hacer un trabajo bastante bueno diciendo que nada es spam, pero eso no es para nada lo que quieres. Ese tipo de derrota a todo el propósito. Entonces algo que puedes hacer aquí es que puedes sobremuestrear la cantidad del spam. Entonces, en lugar de tener muy poco spam, puedes crear tus conjuntos para que estés sobretomando la cantidad de spam. Y de esa manera tu algoritmo no va a aprender que el spam
no es importante porque aparece aproximadamente tanto como el contenido no spam. Por lo que tiene que aprender a identificarlo. Y luego cuando vuelvas al caso de prueba o al caso en línea, al caso en vivo, posible que aún no
estés recibiendo tanto spam, pero ahora puede de nuevo, mucho mejor identificar el spam porque tenía que hacerlo durante el proceso de capacitación. Por lo que a veces cuando tienes caso extremadamente bajo. Eventos, es posible que desee pensar en sobremuestrear esos eventos, incluyendo más de esos eventos, entonces en realidad puede esperar cuando su algoritmo como en vivo para asegurarse de que su algoritmo aprenda, cobra partes importantes y aprende a distinguir incluso eventos raros que aprende a identificar esos. Entonces, a pesar de que el muestreo estratificado puede parecer una buena idea inicialmente, a
veces se quiere asegurarse de que la distribución de datos, no es
lo mismo porque eso en realidad tendrá implicaciones
mucho mejores para el desempeño de su algoritmo. De acuerdo, lo siguiente de lo que quiero hablar es
¿cómo se trata con los datos no numéricos? Entonces veremos los primeros tipos de datos, que van a ser datos categóricos. Por lo que tienes diferentes categorías. Ahora de nuevo, en datos categóricos, podemos dividir esto en cosas diferentes. Uno de estos son los números de tipo ordinal, que podemos hacer aquí es, por ejemplo, tenemos el sistema de clasificación por estrellas. Tenemos una estrella, dos estrellas, tres estrellas, cuatro estrellas, y cinco estrellas. Y lo que podemos hacer es que podemos hacer, podemos tratar estos números ordinariamente. Y podemos decir, está bien, vamos a decir que una estrella, vamos a darle a eso el valor numérico de uno a sars, valor
numérico de 2,
tres, cuatro estrellas para cinco estrellas, cinco. Entonces lo que necesitamos hacer para los datos categóricos es que necesitamos transformarlos en valor numérico. Ahora hacer este tipo de transformación a números secuenciales es bueno. Cuando los valores subyacentes tienen un
distinguido, distinguido fue entre ellos si hay una jerarquía, por lo que dos estrellas es mejor que una estrella, cuatro estrellas es mejor que una de tres estrellas, y cinco estrellas es la mejor. Por lo que esta es una buena manera de tratar los datos que tienen un orden subyacente. Otro ejemplo es si tienes calificaciones de opinión que generalmente dicen que esto es malo, esto está bien, esto es bueno, genial, que puedes volver a asignar valores numéricos que van en aumento. Entonces vas 12345 y el cinco es en realidad mejor que los cuatro. Por lo que usar este tipo de transformación es bueno cuando hay un orden claro en tus datos. Pero de lo contrario, en realidad puede causar problemas. Entonces si haces esto, por ejemplo, si tienes categorías de estudiante,
ex alumnos, maestro, y padre de familia, realmente no
puedes asignar 1234 porque de esa manera tu algoritmo puede aprender que un estudiante es menor que un alumno, que es menor que un maestro, que es menor que un padre de familia. Y realmente no se pueden comparar las categorías así porque son categorías
diferentes y pueden estar experimentando lo mismo desde diferentes perspectivas. Entonces lo que puedes hacer en este caso, cuando no hay un orden claro entre estas diferentes categorías, puedes hacer algo llamado codificación one-hot. Y eso es lo que vemos en la mesa de la izquierda, donde para cada una de las categorías, se crea su propia columna. Y siempre que ese valor esté presente, ese valor obtiene entonces uno. Y así podemos ver aquí, si es estudiante, la columna estudiantil va a tener uno y cada otra columna va a tener un 0 si es un ex alumno, cada otra columna va a tener un 0 excepto la columna de ex alumnos que tiene uno. Si es profesor, la columna docente va a tener uno y todo lo demás va a ser 0. Y si es padre, el padre va a pasar uno y todo lo demás será 0. Y así lo que puedes hacer aquí es que puedes tomar categorías y
puedes transformarlas en su lugar a este codificador de un solo hot, que permite escuchar algoritmo mejor lidiar con estos tipos categóricos. Ahora esto suele ser bueno para hacer si tienes un bajo número de categorías, por lo que alrededor de 10. Pero no quieres hacer esto si tienes unas 100 categorías, porque eso solo infla la cantidad de entrada que tienes y tu algoritmo puede no manejarlo muy bien porque tiene que aprender todos estos diferentes factores de entrada. Entonces otra forma en que puedes hacer esto es usar algo llamado incrustaciones. Ahora bien, este es un muy utilizado para el texto, razón por la
cual también lo vamos a estar mirando desde la parte textual de los datos no numéricos. Pero las incrustaciones es algo que puedes hacer para categorías así como texto. Y la idea aquí es que tomes un valor y en su lugar
transformas eso en un conjunto de valores numéricos. Entonces, por ejemplo, lo que podemos hacer es tomar la palabra potato y podemos usar una incrustación 3D. Y así a cada palabra o cada categoría se le asignan tres números. Ahora estos números pueden inicialmente, inicialmente ser aleatorizados, bueno, inicialmente se
establecerán aleatoriamente. Pero estas categorías son, estas incrustaciones son en realidad algo que se puede aprender. Y la dimensión de incrustación es en realidad hiperparámetro de su modelo ahora también. Pero un ejemplo de esto es si tomamos las palabras nubes, sol, lluvia, y hueso de lluvia, entonces si aprendemos que estas incrustaciones son, las incrustaciones en realidad pueden verse como lo que vemos a la izquierda. Y puedes ver que para conseguir un arco iris, lo que tienes es, bueno, vas al Sol, restas las nubes, añades la lluvia, y básicamente te tienes un arco iris. Entonces puedes hacer, o, lo siento, Vas a las nubes, agrega la lluvia, y agrega el sol, y te tienes aquí un arco iris. Y así se puede ver que hay un, hay una relación entre los números que asignamos a cada una de las palabras. Y así somos categorías relacionadas o palabras
relacionadas en realidad se van a empezar a agrupar. Y se van a separar más palabras distintas. Y así las incrustaciones son extremadamente útiles porque permiten tomar un gran número de palabras o un gran número de categorías y
reducirlas a un conjunto de dimensiones mucho más bajo. Entonces, por ejemplo, si hacemos incrustaciones 3D, que pueden tomar una tonelada de palabras y podemos simplemente reducirlas a tres valores numéricos diferentes en lugar de tener, digamos, un codificador 100 de un solo hot. Por lo que un 100 columnas diferentes. En cambio sólo tenemos tres. Y esto es mucho mejor para nuestro algoritmo porque entonces
puede lidiar mucho mejor con estas incrustaciones. Y puede saber qué valores son similares así como qué valores son diferentes. Y puede tratar más apropiadamente estos y no tiene que
aprender o no tiene que lidiar con todas estas categorías diferentes.
7. Algorithms de la clasificación: En esta conferencia, vamos a aprender sobre los algoritmos de clasificación. Entonces, en primer lugar, ¿qué son? Bueno, son esencialmente algoritmos que te permiten predecir categorías a partir de tus datos. Ahora, también hay algoritmos de clasificación que te permiten identificar grupos dentro de tus datos. Entonces hagámoslo con un ejemplo más práctico usando el gráfico de la derecha. Lo que tenemos es sólo un simple tiempo dedicado distribución. lo que cada punto de datos representa, por ejemplo, una persona en el eje x, tenemos el tiempo dedicado al trabajo con el derecho siendo más tiempo, siendo
la izquierda menos tiempo. Y en el eje y tenemos el tiempo que pasamos con la familia, nuevo rematando más y abajo siendo menos. Ahora, digamos también que sabemos que este grupo está dividido en dos categorías diferentes. Tenemos el grupo a, que es el del tipo de arriba a la izquierda, que es más tiempo con la familia y menos en el trabajo. Y tenemos el de abajo a la derecha. Ahora bien, es posible que estos grupos no sólo se identifiquen por la forma en que actúan socialmente, sino que tal vez esto también esté relacionado con la forma en que la gente compra. Tienes dos tipos diferentes de consumidores, que acaba de pasar a caer en esta categoría de unos van más tiempo con la familia y otros van a pasar más tiempo en el trabajo. Ahora, veamos también el punto verde en el medio. Se trata de una persona nueva a la que se está entrando y queremos poder predecir qué categoría van a caer para que
sepamos la forma correcta de abordarlos desde,
por ejemplo, una perspectiva de marketing, qué tipo de catálogos tal vez estaría interesado? ¿ Qué tipo de comportamiento de compra podemos esperar de ellos y cómo podemos ajustar su experiencia en consecuencia? Entonces queremos saber en qué grupo de personas encajan. Y así una gran manera de hacerlo es usar algoritmos de clasificación, que te permitirán asignar un grupo o predecir un grupo en lugar de que esta nueva persona va a caer en. Entonces cuando usas algoritmos de clasificación, bueno, vas a usarlos cuando estás más interesado en un atributo en lugar de un valor numérico exacto. Por ejemplo, digamos que tenemos dos categorías de gatos y perros son simplemente gatos y no gorras. Y ahora tenemos otra imagen en este caso, y queremos asignar esta imagen a una categoría que queremos clasificar esta imagen. ¿ Es esta imagen de un gato o no es un gato? Y así este es otro ejemplo muy sencillo de lo que puede hacer un algoritmo de clasificación. Asignaremos esta imagen a las clases de gato ya definidas. No somos gato. Muy bien, así que entremos un poco más de detalle en
algunos de los algoritmos y en realidad veamos algunos ejemplos de estos algoritmos. Vamos a estar usando el conjunto de datos de Iris que se incluye con SKLearn. Y básicamente es sólo mirar tres tipos diferentes de flores, que es lo que tenemos a la izquierda aquí. Cada una de estas flores se acaba de tomar de la página de Wikipedia para el conjunto de datos del iris. Por lo que también puedes buscarlos ahí arriba y encontrarlos ahí. Y esencialmente hay dos formas. En primer lugar dos formas generales de la forma en que podemos acercarnos a la clasificación. Uno de ellos está supervisado, el otro no está supervisado. La gran diferencia aquí, por
supuesto, siendo así de supervisados, ya
hemos conocido objetivos para cuando estamos entrenando, mientras que sin supervisión, no estamos realmente seguros de cuál es la solución correcta. Ahora, otra parte de los algoritmos de clasificación son algoritmos clasificación de
una sola clase o de varias clases. Por lo que poder predecir una sola clase o ser capaz de predecir múltiples clases. Y veremos cada uno de estos casos y un poco más de detalle ahora. Entonces, en primer lugar, vamos a ver algoritmos supervisados de clase única. Ahora, lo que tenemos a la izquierda aquí son solo dos de las cuatro características que se trazan desde el dataset de Iris. Entonces a la izquierda tenemos el ancho del pétalo en centímetros y en el eje y más bien, y en el eje x para ambas gráficas, tenemos la longitud del pétalo. Ahora también hemos dividido nuestros datos en dos categorías. Tenemos el no VR, rig Nika. Yo soy, no tengo ni idea de cómo pronunciar esto, pero es una de las flores. Y luego tienes la otra categoría que es ese tipo de flor. Entonces básicamente podemos ver, y la forma en que he etiquetado estos datos es todo en negro no es esa flor, y todo en verde es esa flor. Ahora lo que ves en los colores de fondo son dos algoritmos de clasificación diferentes. Uno de ellos es un clasificador de descenso de gradiente estocástico, el SGD, que utiliza una máquina de vectores de soporte lineal. Nuevamente, estos son solo nombres para clasificadores. Entonces si esto es, suena confuso, solo piénsalo como un nombre para algo. Y lo otro es un clasificador de regresión logística. Ahora, la gran diferencia aquí es la zona azul. Representa donde dice el algoritmo de aprendizaje automático, este no es ese tipo de flor. Y el área roja dice que este es ese tipo de flor. Y lo que tenemos en el medio ahí es el límite de decisión. Esencialmente si cruzas esa línea en medio de ese tipo de línea escabullera verde. Si vas a la izquierda, por ejemplo, para el caso SGD, entonces vas a entrar en la categoría no esa flor. Y si vas a la parte superior derecha y vas a entrar en esa categoría de flores. Ahora se puede ver por cierto, que he decidido mostrar los datos. Este algoritmo, por supuesto, no es un 100 por ciento exacto. Tenemos algunas de las flores nudos esa categoría apareciendo en donde el algoritmo predice eso,
ese es en realidad ese tipo de flor. Entonces de nuevo, el negro representa lo que realmente es la flor, y los colores en el fondo representan lo que el algoritmo predice un poco. Entonces el negro no es esa flor, verde es esa flor, y el azul es el algoritmo predice que no es que la flor y rojo es el algoritmo predice que es ese tipo de flor. Ahora algo interesante a notar aquí es que si comparamos el gráfico superior y el gráfico inferior, podemos ver que los dos algoritmos diferentes que estamos usando aquí tienen diferentes límites de decisión. No sólo se encuentran en diferentes posiciones, sino que también están en diferentes ángulos. En este caso, ambos están, en algún sentido, separando casi linealmente los datos. Entonces lo que están haciendo es simplemente básicamente casi simplemente dibujando una línea recta entre los datos que lo separa. Pero podemos ver que el descenso de gradiente estocástico, que sólo está usando máquina de vectores de soporte lineal en este punto, tiene más de una separación diagonal, mientras que la regresión logística es más una separación horizontal. Entonces veamos cada uno de estos algoritmos con un poco más de detalle. En el caso de la regresión logística, lo que nuestro algoritmo está tratando de hacer es intentar optimizar las ecuaciones inferiores, solo tratando de encontrar la mejor probabilidad. Y está usando la ecuación logística para ellos. Y así vemos que tenemos las características como x, tenemos y como nuestra predicción, y tenemos nuestra intercepción y nuestros coeficientes o nuestros pesos, como los presentamos antes. Y entonces lo que podemos ver, lo que obtenemos de aquí en el lado izquierdo es que obtenemos una probabilidad si a este ancho de pétalo y longitud de pétalo, esto es, ¿es esa flor o no? Cuál es la probabilidad de que dados estos dos valores, esta es la flor. Y así podemos ver que a bajo ancho PDL y básicamente a cualquier longitud del pedal, la probabilidad es muy baja. Y así si retrocedemos y miramos eso,
eso es exactamente lo que vemos a la baja anchura del pedal. No importa que la longitud del pedal o la probabilidad sea baja. Lo que significa que el clasificador clasifica esto como no ese tipo de planta. tanto que cuando vamos al ancho PDL alto para básicamente cualquier longitud o probabilidad del pedal es alta, lo que significa que nuestro clasificador ahora clasifica esa región como ese planificador. Entonces podemos ver que cualquier cosa en rojo tiene, básicamente nuestro algoritmo está diciendo que es una alta probabilidad que, eso tiene esa planta. Y así voy a asignar estos valores aquí y decir cualquier cosa por aquí es esa planta. En tanto que en la región azul tenemos una baja probabilidad de que cualquier cosa en esa región sea nuestra planta. Entonces eso es lo que tenemos aquí en la gráfica inferior para regresión logística. Si miramos el SVM lineal o el clasificador SGD, aquí
el clasificador de descenso de gradiente estocástico. Lo que hace el SVM lineal es intentar encontrar un hiperplano que separa linealmente los datos. Ahora qué es un hiperplano, básicamente
es solo una línea, en este caso, en el caso bidimensional aquí. Y si es de tres dimensiones, Es una superficie. Y si son cuatro dimensiones, es una especie de área interna, pero sólo trata de encontrar algo que pueda dibujar que separa los datos. Y así es exactamente lo que vemos aquí. Lo que el algoritmo está tratando de hacer es que está tratando encontrar una buena línea que separa los datos. Pero también lo que está haciendo es tratar de mantener la distancia de los puntos de datos a la línea lo más grande posible. Y así los algoritmos toman diferentes enfoques al problema. Y por lo tanto también podemos ver que salen con diferentes resultados. Y así con la regresión logística, podemos ver que tenemos una probabilidad para que cada valor se le asigne una probabilidad entre 0 y 1 de pertenecer o no pertenecer a ese tipo de clase. tanto que para el caso de la Máquina de Vectores de Soporte lineal, tenemos una región de 0 que no es esa clase y de una que es esa clase. Y básicamente tenemos esa región en el medio donde hay un gran salto de no esa clase a esa clase. Entonces podemos ver una es una probabilidad que va mucho más suavemente y la otra básicamente tiene un gran salto entre ellos.
8. Algorithms de la clasificación continuado: En esta conferencia, vamos a continuar con
los algoritmos de clasificación que iniciamos la última conferencia. Muy bien, así que echemos un vistazo a los algoritmos supervisados multiclase. Entonces lo que hicimos antes es que sólo tratamos de diferenciar entre esa flor o no ese tipo de flor. Pero en realidad en este conjunto de datos, hay tres tipos diferentes de flores contenidas dentro de él, que es lo que vemos aquí. Entonces en la gráfica superior de la izquierda, tenemos nuestros tres tipos diferentes de flores. Están separados usando un algoritmo llamado KNN por estar de pie para los vecinos k más cercanos. Y en la parte inferior
tenemos, tenemos una regresión logística usando un enfoque uno versus descanso. Entonces hablemos de estos con un poco más de detalle, específicamente el uno contra el descanso. Ahora, lo que tenemos en el primer caso es justo aquí, sólo
estamos tratando de separarnos entre una clase de sí o no. Y entonces a eso se refiere la parte de una sola clase, donde o tratando de decir sí o no, es, es binario. Ahora bien, algunos de estos algoritmos en realidad no tienen una contraparte multiclase. Sólo pueden decir que sí o no. No tienen opción ABC. Y así la forma en que puedes usar estos algoritmos para, lugar de decir simplemente sí o no, convertirlos en un ABC, es usar un enfoque uno versus descanso, lo que significa que entrenas a un clasificador que predice la probabilidad de que cada uno de estos pertenezca a ese tipo de flor. Entonces tenemos, en este caso, tres regresiones logísticas, cada una de ellas dando una puntuación para una cierta longitud de pétalo y anchura de pétalo perteneciente a un tipo específico de flor. Y el clasificador que nos da la mayor probabilidad que esta longitud del pedal y esto correspondiera a esta flor. Ese es el que se va a elegir. Y así se llama el enfoque uno versus descanso. Y de esta manera podemos convertir una sola clase o un clasificador binario que solo puede predecir valores sí o no y usar varios de ellos juntos para luego predecir clases múltiples. Y así podemos ver aquí al fondo, ese es el límite de decisión que obtenemos. Y hace un trabajo bastante bueno de separarlos. Nuevamente, se puede ver que algunos de los puntos tipo de spillover. Entonces tenemos la flor verde un poco derramándose sobre el régimen rojo y algunas de las flores rojas derramándose en lo que el algoritmo predeciría ser el régimen verde. Pero hace un trabajo bastante bueno separando a estos tres. Ahora para los vecinos k-más cercanos, este algoritmo que solo mira son, ¿cuáles son los puntos a mi alrededor? Y luego basado en eso, trata de hacer una conjetura. Y así una cosa importante a tener en cuenta aquí es que para la regresión logística para la máquina vectorial de soporte, pero siempre tuvimos es esencialmente, básicamente una línea recta que separa. tanto que para el vecino k-más cercano, podemos ver que en realidad hay una curva entrando, específicamente para la parte difícil entre ir entre las dos flores y la esquina superior derecha. Y así podemos ver que diferentes algoritmos dan diferentes límites de decisión. De nuevo los límites de decisión, son esas líneas astutas que separan la salida de los clasificadores. Y por supuesto, hay muchos más tipos diferentes de clasificadores a los que puedes entrar. Y estos son sólo algunos de los ejemplos. Ahora, debido a que todos estos clasificadores se comportan de manera tan diferente, no suele ser calificación si aprendes cada algoritmo de clasificación individual , más
bien, es más importante que tengas una muy buena comprensión de un par de ellos. Así que elige 34 o cinco y entiende los con más detalle y siéntete cómodo con ellos. Y a menudo sólo tener ese tipo de rango de algoritmos para elegir y entenderlos completamente a menudo hará que tu modelo sea mucho mejor. En lugar de tratar de usar toneladas de diferentes algoritmos de clasificación donde realmente no entiendes lo que están haciendo, cómo se están comportando, y cuál sería más apropiado usar y este tipo de situaciones. Entonces, por ejemplo, otros tipos de
algoritmos supervisados de múltiples clases son Naive Bayes o puedes usar redes neuronales, pero por supuesto hay muchos más. Pero en última instancia otra vez, lo mejor es simplemente familiarizarse bastante con una pareja y luego simplemente apegarse a esos porque esos son los que mejor entiendes. Y si tienes un puñado de algoritmos de clasificación para elegir, las probabilidades son, uno de ellos siempre va a hacer un buen trabajo de ayudarte a resolver cualquier problema que estés abordando. Muy bien, veamos algoritmos no supervisados multiclase. Ahora. Esencialmente en este momento sólo vamos a mirar a uno porque estos pueden llegar a ser bastante complicados. Y vamos a ver un algoritmo de clustering llamado k-means. Ahora lo que hace el algoritmo de clustering es que lo separa. Separa nuestros datos en diferentes clústeres, en diferentes grupos. De nuevo, vemos aquí tenemos un límite de decisión y tenemos clases diferentes. Y el caso principal, estamos diciendo de antemano, queremos que este algoritmo divida estos datos en dos grupos diferentes. Y así es lo que hace. Vemos el lado izquierdo es un grupo y el lado derecho como otro grupo. Y en la mitad inferior vemos, o decimos, queremos que este algoritmo lo divida en tres grupos diferentes. Entonces eso es algo que decimos de antemano. Y en este caso vemos que tenemos uno en la parte inferior izquierda, uno en el medio, y otro a la derecha. Ahora este enfoque se llama de nuevo clustering. Y cuando definimos de antemano cuántos grupos diferentes queremos que el algoritmo identifique. Y este caso, trata de agrupar los datos para que haya una varianza mínima dentro de cada grupo. Muy bien, entonces, ¿cómo iría usted para
evaluar qué tan bien está funcionando su algoritmo de clasificación? Bueno y fácil, una especie de enfoque directo sería sólo medir la precisión. Básicamente mira cuál es la proporción de resultados o predicciones correctamente clasificados. Pero esto puede empezar a causar problemas si tienes un alto número de clases. Entonces digamos que estás prediciendo 20 clases diferentes. Eso significa que cada clase es de alrededor del 5% si se distribuyen uniformemente. Si tienes una precisión del 95%, eso es casi más, Eso básicamente sigue siendo solo adivinar al azar porque podrías estar viendo no cada vez y 95% del tiempo todavía vas a estar en lo correcto. Por lo que la precisión no suele ser una buena manera de actuar sobre la evaluación de algoritmos de clasificación. Pero podemos ver en la parte inferior justo aquí, todavía
he mostrado la precisión del descenso del gradiente estocástico, así
como la regresión logística, que es justo el número de predicciones correctas, que en este caso en realidad no está tan mal porque sólo tenemos dos clases. Pero de nuevo, la precisión realmente puede comenzar a causar problemas cuando vas a un mayor número de clases. Entonces, ¿cuáles son sus opciones? ¿Hay? Bueno, otra opción es mirar a la precisión. Precisión que miras o calculas mirando el número de predicciones correctas. Son predicciones positivas correctas, y dividiéndolo por el número de predicciones positivas correctas, así
como predicciones positivas incorrectas. Entonces eso significa una verdadera predicción positiva o una correcta positiva es si dices esto o esta flor es este tipo de flor. Y si no es hecho ese tipo de flor, entonces eso es un verdadero positivo. Un falso positivo es cuando dices que esta flor es ese tipo de flor, pero en realidad no es ese tipo de flor. Si dices, Sí, esta es la flor que busco, pero en realidad no es esa flor de lo que tienes aquí es un falso positivo. La precisión es realmente buena para usar cuando quieres saber qué tan confiables son mis trues? Cuando digo que este es el caso, entonces es muy probable que este sea el caso. Ahora, el otro tipo, pero puedes usar u otro tipo que puedes usar es algo llamado recordar, donde miras el número de verdaderos positivos sobre la suma de los verdaderos positivos y los falsos negativos. Entonces el falso negativo es cuando estás diciendo que esto de hecho no es esa clase, mientras que en realidad es esa clase. Entonces estás diciendo que este no es este tipo de flor, sino una realidad, es ese tipo de flor. Ahora recuerden, ¿es bueno usar cuando se quiere evaluar con qué frecuencia echo de menos mis verdaderos valores? Ahora, lo que también puedes usar algo llamado matriz de confusión. La matriz de confusión hace es que te muestra con qué frecuencia una clase se confundió como otra. Entonces en este caso, podemos ver por la derecha aquí tenemos las dos mesas para el SGD. Tenemos las filas están mostrando
los valores verdaderos y nuestras columnas están mostrando los valores pronosticados. Y así podemos ver 78 donde pronosticó negativo y en realidad somos negativos. tanto que 20 para usar predijo positivo, pero en realidad somos negativos. Entonces tenemos una confusión pasando aquí. Pero no tenemos valores negativos pronosticados que fueran positivos. Y entonces lo que estás viendo con una matriz de confusión es ¿con qué frecuencia se confunde una clase con otra clase? Ahora esto puede ser extremadamente útil, sobre todo si estás haciendo multiclase. Pero claro, requiere Algo más de comprobación porque no es solo un número, es una matriz y C se puede entrar y realmente se puede ver,
Vale, ¿dónde está mi algoritmo haciendo errores? Pero por supuesto requiere más trabajo porque necesitas entrar y necesitas mirar todo
el conjunto de números en lugar de tener un solo número para medir el rendimiento. Ahora bien, estas son solo algunas de las herramientas que puedes usar para la evaluación. Hay, por supuesto, también todavía otras herramientas, pero estas son una especie de las más básicas que debes conocer. Y estos son también los que deberían darte un gusto y una comprensión de por qué no
siempre es ideal usar la precisión y qué otras formas puedes acercarte a evaluar algoritmos de clasificación.
9. Algorithms de devolución: En este video, vamos a repasar algoritmos de regresión. Entonces, en primer lugar, ¿qué son? Bueno, los algoritmos de regresión son esencialmente algoritmos que nos permiten predecir valores numéricos. Entonces, ¿cuándo quieres usarlos? Bueno, un caso realmente bonito para usarlos sería si quieres rellenar los valores que faltan. Por ejemplo, si tienes un conjunto de datos que es algo incompleto, pero antes tienes datos comparables. Y puedes entrenar tus algoritmos a ellos, rellenar los valores que faltan para que aún puedas usar esos datos, más bien tener que descartarlos. Otro lugar que podrías usarlo para él, se usa muy a menudo para esto es para pronosticar. Por lo que esto podría ser pronóstico de tiempo o esto también podría estar pronosticando solo en diferentes áreas. Por lo que los algoritmos de regresión se usan muy a menudo si quieres usar una parte de tus datos y quieres hacer predicciones sobre otra parte sobre la que tal vez no tengas datos. Ahora, también puedes usar algoritmos de regresión cuando quieras entender cómo se comporta tu sistema en diferentes regímenes. Y lo que quiero que noten en la gráfica de la derecha aquí es que en realidad
tenemos la misma curva exacta para esta curva parecía lineal. Entonces si retrocedemos, vemos que en realidad es una línea recta que tenemos a la derecha aquí. Y ahora si miramos más el gráfico, podemos ver que este pod en realidad ya no es lineal. Podemos ver que es un polinomio. Entonces cómo curvas en ella. Ahora bien, este dato obviamente fue generado por mí. Esto no es extremadamente realista. Pero el punto que quiero hacer aquí es que en algunas regiones son los datos realmente pueden parecer lineales. Entonces si acercamos la región entre 01 o 0.51, que es lo que hacemos aquí. En realidad podemos ver que una línea lineal o una línea, una línea lineal, una línea. Un trabajo bastante bueno de encajar los datos aquí, pero cuando nos alejamos, esto en realidad ya no es el caso. Por lo que una línea recta ya no va a hacer un buen trabajo de modelar esto. Y así si tenemos un buen modelo o un buen algoritmo, entonces podemos entrar en diferentes regímenes y ojalá podamos entender cómo se comporta los datos en estas diferentes partes. Y así de esta manera, un modelo muy bueno puede ayudarnos a entender algo que aún no hemos podido investigar. Pero claro, dicho eso, también
debes ser consciente de que a veces o a menudo cuando entrenas un modelo, sólo
va a ser válido para el rango de datos en el que
lo estás creando en lugar de en todo el conjunto de datos. Entonces, aunque los algoritmos de regresión pueden ser muy poderosos para ayudarte a predecir valores numéricos, quieres asegurarte de que cuando los estamos usando, que los estés usando en tu rango de datos apropiado. Y eso si estás obteniendo datos que están completamente fuera del rango que normalmente has considerado. Se desea volver a evaluar cómo funciona su algoritmo en esas piezas de datos. Porque como podemos ver en la comparación aquí a la derecha, primero empezamos linealmente y luego vamos a este polinomio. Entonces si entramos en datos de mucho fuera del rango que estamos acostumbrados a ello antes, la forma en que nuestros datos en nuestro sistema se comportan puede cambiar. Muy bien, así que echemos un vistazo a algunos de los algoritmos. De nuevo vamos a estar usando el dataset del iris que también usamos para el caso de clasificación. Ahora, cuando estás haciendo regresión, normalmente solo hablas de supervisados. supervisado no está particularmente bien definido para los algoritmos de regresión. Y por eso cuando hablamos de regresión, lo general va a ser un caso supervisado donde tienes tus datos de entrenamiento y también
tienes etiquetas apropiadas para un objetivo apropiado valores que quieres lograr. Muy bien, entonces consideremos de nuevo estos datos del iris. Lo que tenemos aquí en el eje x, que se puede ver en la gráfica de la izquierda, es la longitud del sépalo. Y luego en el eje y tenemos la longitud del pedal. Y lo que se puede ver de esta gráfica es estas dos características parecen estar algo relacionadas. Entonces intentemos usar algunos algoritmos de regresión para ver si podemos predecir algunos de los valores o si
podemos tener un modelo que intente modelar este comportamiento que estamos viendo aquí. Ahora hay diferentes formas en que podemos acercarnos la regresión y hay muchos algoritmos diferentes. El más simple es una regresión lineal. Lineal sólo ser un polinomio de línea recta es una línea curva. Eso es algo de lo que vimos aquí. Entonces esto va a ser lineal. Esto va a ser un polinomio. Y luego también tienes máquinas vectoriales de soporte que puedes usar para la regresión. También puedes utilizar el K-Vecinos más cercanos. Regresión. Las redes neuronales son muy a menudo, por supuesto, también se usan para la regresión, y también siguen siendo muchos otros algoritmos supervisados que puedes usar para la agresión. Entonces al igual que para la clasificación tenemos y muchos algoritmos para elegir entre los que podemos usar para la regresión. Y muchas veces simplemente se reduce a, de acuerdo, cuál es el problema y cuál es nuestro conjunto de datos y qué modelo es mejor apropiado para usar para este tipo de datos. Entonces echemos un vistazo a la regresión lineal. Lo que tenemos aquí es un modelo de regresión lineal entrenado en este conjunto de datos. Y lo que he usado es como si utilizaras una codificación de un solo calor. Recuerda que hablamos de eso en el caso de preparación de datos, donde codificamos de un solo en caliente los tres tipos diferentes de flores. Y así nuestro modelo lineal en realidad crea tres diferentes mejores adaptaciones para cada uno de los tipos de flores individuales. Y podemos ver que este es el resultado. Y así lo que se puede ver desde el modelo lineal es que podemos bajar a menor longitud sepal y podemos predecir longitudes PDL apropiadas. No sabemos si ese valor sería correcto o no, pero al menos podemos intentar predecirlo. Y podemos hacer lo mismo. Y podemos hacer eso por todos los gusanos planos ya que hemos usado la codificación de un solo calor. Y así lo que nuestro modelo lineal está hecho en realidad es que lo divide en tres diferentes, por lo
que tienes tres flores diferentes en este caso, a través de diferentes modelos lineales , que todo solo usaría m. esto es. Entonces qué flor es. Y entonces usarías lo apropiado cuando nuestro modelo para hacer predicciones? También podemos hacer lo mismo usando una regresión de vecino k-más cercano. Ahora el vecino k-más cercano, en lugar de lo que hace el modelo lineal es que trata de encontrar la mejor línea lineal para pasar por los datos y el vecino k-más cercano mira a los vecinos circundantes a un datapoints. predicción es solo el valor promedio de los puntos de datos circundantes. Y así podemos ver que cuando vamos a bajar o más longitud sepal que nuestro algoritmo KNN realmente ya no proporciona muchas grandes predicciones. Por lo que podemos ver cuando entramos en la longitud SQL inferior, Es básicamente todo plano. Y en el caso lineal, está disminuyendo ahora porque no tenemos datos en ese caso, realidad no sabemos cuál es la correcta o si incluso existen flores de esas características. Entonces hasta que tengamos datos ahí, en realidad no
podemos validar cuál de estas calles más precisa. Pero podemos ver que el comportamiento de estos dos muy diferente. Y también podemos ver que para el caso lineal, realidad no será sólo una línea recta. tanto que para el caso del vecino k-más cercano, tenemos pequeños tipos de líneas horizontales que saltan arriba y abajo a medida que atravesamos el diferente SQL. Y nuevamente aquí tenemos tres modelos diferentes, cuales también están codificados por colores en un morado, negro, y gris para las flores de color naranja, azul y rojo respectivamente. Y así se puede ver que tenemos regímenes pequeños donde estas predicciones serían las mismas. Y estamos como teniendo, casi
parece una escalera que no está totalmente conectada sobre la que estamos haciendo predicciones. Entonces al igual que en el caso del clasificador, podemos ver que diferentes algoritmos, por supuesto se comportan
de manera muy diferente. Y así que una gran manera de, tu gran cosa que hacer, por supuesto, es solo ver,
bien, ¿qué tipo de predicciones de consternación
hace algoritmo o cómo se ve realmente mi algoritmo? Si es así, visualizar la predicción es que tu algoritmo donde la habitación haría para todas estas diferentes longitudes SQL es una buena manera de entender lo que realmente hace tu algoritmo. Ahora por supuesto, esto eran sólo dos algoritmos. Entonces miramos aquí el caso lineal. Miramos aquí a los vecinos k-más cercanos. Nuevamente, como dije, hay muchos algoritmos de regresión diferentes y cada uno de ellos toma un enfoque diferente. Y así la forma en que se verán las predicciones también va a ser muy diferente. Entonces, ¿cómo evaluaríamos estos diferentes modelos? Bueno, lo bueno que hay que hacer es sólo mirar el error. Ahora, voy a usar y para denotar nuestros objetivos aquí, y voy a usar y hat para denotar nuestra predicción. Y una forma en la que puedes ver el error es simplemente mirando el error medio absoluto. Entonces miras cada predicción y ves hasta qué punto la predicción está lejos del verdadero valor. Se toma un valor absoluto para que los números sólo sean positivos. Los resumiste y lo divides por el número de puntos de datos. Y así de esa manera, obtienes una medida de en promedio, qué tan lejos está tu predicción del verdadero valor. Y así podemos ver a la derecha, tenemos dos modelos. A la izquierda, tenemos la regresión lineal en la parte superior
izquierda, a mi derecha tenemos al vecino k-más cercano. Y en la parte inferior podemos ver que usando el error medio absoluto, la regresión lineal está desactivada alrededor de 0.2. Entonces eso significa que en promedio, está apagado alrededor de 0.2 centímetros. Y la predicción de la longitud del pedal, mientras que el vecino K más cercano está apagado sólo unos 0.17 centímetros. Por lo que usando esta medida, parece que funciona el k-vecino más cercano. Ahora, en realidad también hay una forma diferente de ver el aire. Y esto a menudo es uno preferido, que está mirando el error cuadrado medio y básicamente la salida del aprendizaje automático, a menudo también se
le conoce como el error
cuadrado medio raíz o esa es una forma diferente de referirse a él. Hablaremos de eso en un segundo. El error medio al cuadrado es más que tomar tu predicción y ver qué
tan lejos está del objetivo y simplemente tomar valores absolutos, quieres cuadrar eso. Y la razón por la que cuadraste eso es porque eso significa que los valores atípicos o las predicciones que están muy apagadas son castigados mucho más fuertemente. Entonces, por ejemplo, en el caso de error medio absoluto, si tenemos una predicción que está desactivada por 0.1 y otra que está desactivada por 0.5. Estos esencialmente van a ser ponderados por igual. En tanto que en el caso de error medio cuadrado, el error mayor va a tener un efecto mucho mayor en nuestra evaluación aquí. Y la razón por la que el error medio cuadrado es agradable es porque no sólo nos da una medida de lo bueno que es nuestro algoritmo, sino que severamente castigado cuando las predicciones están muy alejadas del objetivo real. Y así podemos ver aquí si miramos el error medio cuadrado para la regresión lineal y los k vecinos más cercanos. Nuevamente, la regresión lineal en este caso en realidad también tiene una media cuadrada más alta. Entonces eso significa a partir del error medio absoluto, vemos no sólo es el modelo en promedio apagado más, sino del caso de error medio cuadrado, vemos que también los atípicos no son tan ricos o los extremos no están tan bien ajustados como en el caso k vecino más cercano. Ahora bien, ¿qué es este caso de error cuadrado de raíz? Si bien el error de media cuadrada de raíz es sólo tomar la raíz cuadrada del error medio cuadrado. Ahora, la razón por la que quieres hacer esto es porque el error medio al cuadrado nos da valores y cuadrado. Entonces lo que tenemos aquí del error medio cuadrado es
que tenemos una diferencia de centímetros al cuadrado esencialmente, cual no lo es, realmente no tiene sentido. No es realmente lo que buscamos. Entonces podemos tomar la raíz cuadrada y ahora
podemos leer que de la raíz media caso de error cuadrado, tenemos un error de unos 0.2 centímetros, mientras que para el caso k-vecino más cercano, tenemos un error de alrededor de 0.2 centímetros. Por lo que tomar la raíz cuadrada trae o unidades de vuelta a lo que
realmente estamos midiendo y nos permite asignar un valor más físico. Ahora la razón por la que realmente no usas el error root-mean-squared y los casos de machine learning. Porque el rendimiento es el mismo, solo
estás tomando la raíz cuadrada al final. Y la raíz cuadrada es solo una operación extra que tomará más tiempo. Y así solo puedes usar el error medio cuadrado,
porque si el error cuadrado medio es más grande, entonces la raíz cuadrada de ese valor también va
a ser más grande que cualquier valor con el que lo estés comparando. Por lo que tomar la raíz cuadrada en realidad no agrega nada extra cuando quieres usar esto para evaluar tu algoritmo. Tomar la raíz cuadrada agrega mucho extra cuando se quiere interpretar el error desde una perspectiva humana. Pero cuando lo estás usando en tu algoritmo para entrenar el error medio cuadrado, hace, es, hace exactamente lo mismo. Y no necesitas usar el costo extra de computar la raíz cuadrada cada vez.
10. Técnicas de optimización: En esta conferencia, vamos a ver las técnicas de optimización para nuestros algoritmos. Antes de eso sin embargo, hagamos un breve recapitulación de lo que hemos hecho hasta ahora. En primer lugar, nos fijamos en prepararnos para la capacitación. Por lo tanto, identificando posibles buenas características y simplemente yendo
generalmente a entender nuestros datos. Después entramos en más detalle sobre la preparación nuestros datos con técnicas utilizando como la normalización, escalado y la importancia del muestreo. Y luego habíamos mirado diferentes tipos de algoritmos, específicamente para la regresión y para la clasificación. Pero, ¿cómo hacemos que nuestros algoritmos aprendan más rápido? Entonces para esto, acabamos de hablar de qué algoritmos podemos usar? ¿Qué hacemos? O incluso todo el flujo de la ciencia de datos, que es básicamente todo hasta la elección del algoritmo. Entonces, ¿cómo vamos por nuestros datos? ¿ Cómo preparamos nuestros datos? ¿ Cómo entendemos nuestros datos? ¿ Cómo identificamos las buenas características? ¿Cómo lo hicimos? ¿ Cómo exploramos todos esos temas importantes? Y luego hablamos de usar nuestro modelo y cómo evaluamos nuestro modelo. Pero ahora, ¿cómo hacemos que nuestro algoritmo aprenda más rápido? Porque a veces cuando estás usando muchos datos, tu algoritmo en realidad puede tardar bastante tiempo entrenar y solo tienes que esperar a que se complete. Y así por supuesto, una cosa que puedes hacer es simplemente usar más o fuertes o computadoras. Pero también hay otras técnicas que puedes usar para tratar de hacer tus algoritmos aprendan más rápido para que se vuelvan mejores, más rápidos. Y eso es lo que vamos a ver ahora. Entonces aquí vamos a cubrir los diferentes tipos de optimizadores. Vamos a empezar con descenso gradiente, que es algo que también usábamos antes. Vamos a ver impulso, luego nag, eeta grad y RMS prop y finalmente átomo así como N átomo. ¿ De acuerdo? Antes de entrar en eso sin embargo, rápidamente
quiero introducir otro término llamado la tasa de aprendizaje. Ahora, la tasa de aprendizaje define qué tan rápido aprende nuestro algoritmo o básicamente ¿cuánto afecta su algoritmo por los errores que está haciendo actualmente? Ahora, puedes pensar intuitivamente, está bien, bueno, quiero que mi algoritmo aprenda lo más rápido posible, así que entonces se vuelve lo más bueno posible rápidamente. En realidad no vamos a cómo funciona. Entonces veamos el tipo de dos extremos. Y esta suele ser una de esas cosas Goldilock en las que no quieres ser demasiado pequeña. Porque si eres demasiado pequeño, entonces esencialmente vas a tardar mucho tiempo en llegar a una solución óptima o a un modelo que haga suficiente trabajo aceptable. Entonces si tu tasa de aprendizaje es demasiado pequeña, va a tardar demasiado. Pero si tu tasa de aprendizaje es demasiado grande, entonces en realidad es posible que estés tomando saltos que se vuelven demasiado grandes y es posible que nunca alcances una solución óptima porque tu algoritmo está sobrecorrigiendo. Ahora la tasa de aprendizaje se denota por eta, que es este símbolo hacia abajo en la parte inferior, que básicamente se ve como un
N. extraño Y así cuando pasamos por las siguientes partes de la conferencia, si ves eso, eso prueba en pelota o esa extraña n, Esa va a ser nuestra tasa de aprendizaje. Ahora la tasa de aprendizaje también es un hiperparámetro de tu sistema que puedes sintonizar. Y por supuesto, quieres obtener esa tasa de aprendizaje óptima para
que no vayas demasiado grande que tu modelo sobre corrija soy, pero tampoco demasiado pequeño que tu modelo te lleve demasiado tiempo llegar a la solución óptima. Y podría haber hecho lo mismo con pasos más rápidos o pasos más grandes. De acuerdo, veamos el primer algoritmo que se llama descenso
gradiente, desciende gritty. Todo lo que estamos haciendo es tomar nuestra función de error, o una función de pérdida o nuestra función de costo, que es en este caso, por ejemplo, lo que he trazado es el error cuadrado medio, que es de lo que hablamos en el caso de regresión. Entonces el error medio cuadrado es sólo una ecuación cuadrática, que es justo este cuadrado de aquí. Y podemos ver que el gradiente desciende sí, es que sólo toma nuestros pesos actuales. Y básicamente cambia nuestros pesos por la tasa de aprendizaje y el gradiente de donde estemos actualmente a nuestra función de costo. Entonces si miramos el gráfico de la derecha, si nuestro error es más hacia ese lado izquierdo más arriba de la curva, entonces vamos a tener un gradiente más empinado en ese punto. Y así podemos agregar más error. tanto que si estamos más cerca del mínimo, que es a lo que queremos llegar, entonces nuestro gradiente va a ser más pequeño. Y ahora la escala de tasa de aprendizaje que esencialmente se puede pensar en escalar ese gradiente. Por lo que podemos ver cambiar la tasa de aprendizaje básicamente está cambiando entre la naranja o la flecha púrpura en el caso uno o el bloque y el azul. Entonces podemos hacer que una tasa de aprendizaje sea mayor o menor, y eso básicamente afecta el tamaño de paso que vamos a dar. Entonces todo lo que estamos haciendo con descenso gradiente ya que tenemos nuestros pesos, incluyendo nuestro sesgo. Por lo que recuerdas ese término theta de antes, y simplemente miramos nuestros pesos actuales y los actualizamos en base al error, en
base a cada tasa o en base a cada peso, que proviene de la función de costo. Muy bien, lo siguiente que podemos hacer es usar la optimización del impulso. Ahora con el impulso que hace es básicamente toma descenso gradiente, que es lo que miramos justo antes, y agrega un poco. Entonces, lo que hace el descenso de gradiente es cada paso que
calculamos el gradiente y luego ajustamos nuestros pesos en consecuencia. Entonces si estamos muy arriba la curva de aire o los gradientes van a ser más pronunciados. Y vamos a ajustarnos cada vez más. Y cuanto más nos acercamos a la, a esa inmersión en la parte inferior, podemos ver que nuestra flecha un poco más pequeña y más pequeña. Y así vamos a ajustar menos. Entonces lo que hace el impulso es que hace un seguimiento de básicamente los gradientes anteriores. Y así podemos ver aquí el impulso es un poco lo que he notado en verde. Y si empezamos por la izquierda, empezamos a rodar por la colina. Y nuestro impulso se muestra ahí en verde. Y luego también tomamos el gradiente en el punto local y cambiamos nuestro impulso en consecuencia. Y luego actualizamos nuestros pesos en base al nuevo impulso y efecto que esto tiene es que podemos ver a la izquierda, vamos a empezar a rodar por la colina mucho más rápido esencialmente porque vamos a retomar impulso. Pero cuando llegamos al fondo, podemos ver que a la derecha, por ejemplo, el impulso sigue apuntando hacia arriba. Entonces vamos a rodar más allá de la colina un poco más allá antes de que entonces nos desaceleremos y retrocedamos hacia abajo. Entonces para el descenso del gradiente fueron básicamente, si estamos del lado izquierdo, estamos algo así como rodando por la colina y estamos disminuyendo a medida que llegamos al fondo. tanto que con ímpetu, puedes imaginarlo más como si tuviéramos un tazón y pondríamos una pelota en la punta del tazón y simplemente dejarlo correr hacia abajo. Y aun cuando el balón alcanza el tipo de punto inferior, aún tiene algún impulso que lo va a llevar hasta el otro lado del tazón antes de que se ralentice y luego vuelve y como que rebota alrededor un poco hasta que llegue a una org, se queda puesto en esa parte inferior. Y así un impulso como optimizador funciona de una manera muy similar. El siguiente tipo de Optimizador se llama gradiente acelerado
Nesterov o knack para abreviar. Y básicamente sólo toma impulso. Pero en lugar de mirar las apps de gradiente, los pesos actuales, mira el gradiente, los pesos actuales más nuestro impulso. Por lo que podemos ver que nuestro paso actual serían esas flechas ahora más transparentes. Y nuestro paso en nuestros pesos actuales más el impulso sería entonces la flecha más opaca, por lo que las más coloreadas. Y algo bonito de eso es que nuestro algoritmo en realidad son el optimizador mira un poco hacia el futuro y comillas alrededor del siguiente paso. Y así no se va a acelerar tanto como podemos ver en el caso de la izquierda. En realidad no vamos a conseguir ese gran impulso. Y también vamos a desacelerar más una vez que hayamos pasado el punto óptimo, como podemos ver en el lado derecho, donde ya tenemos un patada más grande. Entonces lo que hace knock es, en
lugar de mirar y usar los gradientes en los pesos actuales, mira los gradientes en los pesos actuales más el impulso, luego ajustar el impulso de acuerdo a eso y actualizar nuestros pesos en base al impulso. Está bien. Por lo que el siguiente tipo va a ser 80 egresados y RMS prop. Y estos están muy relacionados, razón por la
cual los puse en la misma categoría. Y esencialmente todo lo que estamos haciendo aquí es que tenemos una especie de similar al impulso antes de un, otro símbolo que estamos usando la actualización y todo lo que estamos haciendo es que
estamos, tenemos nuestro valor inicial actual y cambiamos que basado en el gradiente en cada dirección. Y así lo estamos escalando por mis gradientes como podemos ver. Entonces estamos tomando el gradiente de cada onda y lo estamos multiplicando por sí mismo. Ese va a ser nuestro valor S aquí, que se va a definir para cada peso individual. Y luego actualizamos nuestros pesos y sesgos reales
restando el gradiente y dividiendo cada valor por ese valor predefinido. Entonces lo que estamos haciendo aquí es que en realidad estamos reduciendo el efecto de gradientes más grandes. Y así no vamos a estar yendo en la dirección equivocada, pero esencialmente vamos a ser guiados más hacia ese óptimo más rápido. Ahora esa extraña E en la parte inferior, Eso se llama epsilon, y eso es sólo un número muy pequeño. Y tienes eso para que no te dividas por 0. Pero esencialmente lo que hace es que toma todos los gradientes y los escala en función de su tamaño. Y de esa manera tu algoritmo realmente no va hacia las direcciones de Ron, pero irá más rápido en la dirección correcta. prop de Rms es casi lo mismo. Todo lo que estamos haciendo es que estamos agregando un término de escalado, que es esta gamma de aquí. Um, y así de esta manera tipo de descartamos algunas de las partes anteriores y podemos ajustar los pesos que son corrientes que tienen los guardianes, así
como la memoria de los valores anteriores. Por lo que podemos ver que eeta grad y la prop de RMS son muy similares y tienen el mismo objetivo, que no es dejar que tu algoritmo vaya en direcciones equivocadas. Pero lograron esto un poco diferente. Enorme problema suele ser mejor que 80 egresados, sólo porque no recuerda tanto de lo viejo y se olvida más rápido y considera más los valores actuales. Pero esta gamma, por supuesto, también
es algo que puedes sintonizar. Entonces este es otro hiperparámetro. Muy bien, finalmente tenemos a Adam y un átomo. Ahora qué hacen estas, y probablemente reconozcas muchas de estas partes. Entonces tenemos la P, que es esencialmente una P por impulso. Tenemos el S, que es el S de garaje Ada o RMS prop en realidad en este caso. Y lo que estamos haciendo es combinar nuestro P y R S, y básicamente actualizamos en base a estos dos valores. Y hay un poco de como algo de escalado pasando. Por lo que estamos dividiendo nuestras p por 1 menos Gamma 1 y nuestra S por una menos gamma2. Y esencialmente solo estamos haciendo esto para que
alcancemos un valor más óptimo y valores óptimos de P y S más rápido. Pero la idea de este algoritmo Adam es que combina impulso y combina lo que sí usa para la prop de RMS, y funciona bastante bien. Y entonces también tenemos un átomo, que básicamente toma el átomo y agrega el Nesterov. Entonces en lugar de mirar los gradientes y el lugar actual, mirará los gradientes en el siguiente lugar después de considerar el impulso. Y básicamente eso hace lo mismo que NAG es a momentum y átomo es dos átomo. Por lo que estos son todo tipo de los optimizadores populares. Si quieres ir y solo escoge uno. El predeterminado que normalmente se usa es el descenso en gradiente, pero de ninguna manera es el óptimo. Si solo vas a elegir un optimizador aleatorio, suele
ser bueno ir con el átomo o el átomo N. Estos funcionan muy, muy bien. Y así, ya sabes, si no estás realmente seguro, probablemente
deberías ir con esos,
pero debes tener en cuenta que otomana un átomo normalmente naranja, el predeterminado quiere ir por ello. Pero se puede ver que cada uno de estos optimizadores que tipo de se comportan de manera diferente. Y así, ya sabes, hay lineamientos de cuáles son generalmente mejores. Pero por supuesto, esto también puede depender de la situación. Y si no estás seguro, puede valer la pena experimentar con como dos o tres de ellos. Y luego ver qué tipo de optimizado realmente realiza el mejor en cuanto a hacer de tu algoritmo uno de los más rápidos. Y luego ir con eso el resto del camino. Para que cuando estás mejorando tu modelo, en realidad aprenda más rápido de
lo que de otra manera lo haría. Muy bien, y así con eso, hemos llegado al final del coro. Y sólo quería agradecerles a todos por unirse a mí. Espero que hayas aprendido mucho. Espero que hayas disfrutado del curso, y espero que te sientas cómodo teniendo algunas conversaciones sobre el aprendizaje automático ahora. Ahora bien, habrás notado que a lo largo de este curso hay mucho trabajo de ciencia de datos que entra en él, un machine learning o la especialización de machine learning. En realidad se basa en tener habilidades de ciencia de datos realmente sólidas. Entonces si te interesa especializarte en el aprendizaje
automático o si te interesa convertirte en científico de datos. También tengo algún gran contenido en mi sitio web codificando con max.com diseñado
específicamente para sacarte de absolutamente ninguna experiencia al científico de datos. Entonces si te interesa eso o si quieres escuchar mis consejos sobre cómo empecé, nuevo, puedes comprobarlo en codificación con max.com. Y sí, gracias de nuevo por acompañarme y espero verte en uno de mis otros cursos.