Transcripciones
1. Introducción: Automóviles autoconducidos, realidad aumentada, asistentes de voz. Se trata de productos del futuro cercano habilitados por la inteligencia artificial. Pregunta cómo funciona la inteligencia artificial sin embargo, y obtendrás un montón de cosas neuronales profundas, gráficas, figuras, visualizaciones, memes incluso. Confundida. Esta clase es diferente. Te explicaré lo que está pasando detrás de bambalinas con sustancia, sin intimidación. No usar palabras de moda sólo por el bien de ello. Esta vez, estás aprendiendo aprendizaje automático de verdad. Hola. Yo soy Alvin. Soy Doctorado en Ciencias de la Computación Estudiante y Profesor en UC Berkeley donde he impartido clases a más de 5 mil alumnos. He trabajado en investigación de aprendizaje profundo para aplicaciones orientadas a la producción. En primer lugar, desde hace dos años en Facebook Reality Labs y Mixed Reality para productos como Oculus Quest. Ahora, en Tesla Autopilot para la autoconducción completa. A partir de años de producción frente a la investigación, estoy destilando conceptos de aprendizaje automático en una introducción práctica para ti. Esta clase está escrita para cualquier persona intrigada por la inteligencia artificial y el aprendizaje automático. Lo creas o no, el secreto es dar un paso atrás y aprender las bases desde el
punto cero para descomponer un producto sexy de IA en su componente y todas las partes. Tomando este curso, estás dando un paso significativo hacia la aplicación de ML hacia tu producto, tu afición, o tu negocio. Puedes ser codificador o una persona completamente no técnica de líder empresarial y artista; cualquiera realmente. No obstante, si aún no conoces Python, obtendrás mucho más del curso tomando mi curso Coding 101: Python para principiantes. Para todos; codificador o no, el objetivo principal de este curso es construir una base para tu futura educación de aprendizaje automático. Esto significa; uno, aprender a aprender aprendizaje automático, y dos, aplicar este método al aprendizaje de algunos conceptos introductorios. Para tener éxito como practicante de ML, necesitas código y matemáticas. Trabajaremos en ambos en este curso. En particular, cubriremos conceptos y términos matemáticos fundamentales tal como se aplica a ML. No te preocupes, no hay símbolos griegos funky. Sólo las ideas. ¿ Cómo usar una popular biblioteca de aprendizaje automático en Python? Después usaremos esto para construir un clasificador facial y de movimiento, y por último, conocer el vocabulario para el aprendizaje automático para que puedas hablar cómodamente sobre temas ML. Nos esforzamos por comprender los conceptos básicos de ML, no solo por introducir algo de aprendizaje profundo en cada frase. Eso puede ser para nuestro futuro rumbo. En este curso, estamos aprendiendo los fundamentos. Entender el aprendizaje automático hará un largo camino. Después de tomar este curso, tendrás las herramientas, el vocabulario, los conocimientos para comenzar a aprender sobre otros campos de aprendizaje automático: visión por computadora, procesamiento del lenguaje
natural, lo que sea. Entender las aplicaciones del deep learning a ese campo, pero primero vamos a aprender los fundamentos del machine learning de la manera correcta en este curso. Empecemos.
2. Proyecto: Tu proyecto en este curso es desglosar un problema de aprendizaje automático que te resulte emocionante en sus partes componentes. Cubriremos estas partes componentes, datos, modelo, objetivo y algoritmo en la lección 3. Esto ayudará a fortalecer su comprensión de un mundo de IA ML en rápido movimiento. A modo de ejemplo de descomponer un problema junto con el código, construirás un clasificador de emociones faciales. No te preocupes, no se requiere experiencia de codificación. Si aún no sabes codificar, simplemente
puedes copiar cada línea que te explique y escribo. No obstante, obtendrás más al curso entendiendo Python. Te puedes atrapar tomando mi curso de Coding 101, Python para principiantes. Este clasificador de inmersión facial es una gran manera de ver uno, conceptos de
ML en acción, y dos, una forma visual de entender el poder del ML. Esta es una de mis partes favoritas de la visión por computadora. El hecho de que puedas ver funcionando tu modelo ML, y tal vez lo más importante, es crítico ver que incluso los modelos ML más simples pueden ser altamente prácticos. Si puedes producir una solución ML rápida y fácil en solo minutos, absolutamente debes. Todo lo que se necesita son los insights y los fundamentos que recogerás en este curso. A veces no necesitas un modelo elegante y a veces lo haces. Una, comenzaremos con el panorama general, qué es la IA, qué es el ML, y cómo aprender ML. Dos, luego nos centraremos en el ML, diseccionando problemas de ML y practicando conceptos de aprendizaje automático. Aprenderemos sobre diferentes ideas fundamentales como featurización, sesgo varianza, regularización, regresión lineal. Después nos alejaremos discutiendo diferentes temas de ML y practicaremos productos de IA anotados en sus diferentes componentes ML. Para las dos clases de codificación de este curso, recomiendo encarecidamente sentarme a practicar la codificación junto a mí. Coder o no, puedes hacerlo. Honestamente, ver es creer, una vez que consigues que funcione ese primer programa ML, es absolutamente alucinante. Quiero que experimentes ese mismo momento alucinante, no solo usando un producto de IA, sino construyendo tu propia solución ML. Ahora, empecemos con la pregunta con la que viniste aquí, ¿qué es la IA?
3. ¿Qué es IA? ¿Y el ML?: Contestemos ahora la pregunta, ¿qué es la inteligencia artificial? También, ¿qué es el aprendizaje automático? ¿ En qué se relacionan y en qué se diferencian? En primer lugar es la inteligencia artificial o IA para abreviar. La IA ampliamente definida son máquinas que actúan como humanos. Hay una serie de diferentes productos de IA que reflejan esto: asistencia por voz, autos
autoconducidos y dispositivos de realidad aumentada estilo Iron Man. Sin embargo, para entender realmente qué hace que estos productos de IA sean tan inteligentes, tenemos que descomponerlos. Para empezar disecemos a un asistente de voz. Un asistente de voz a nivel básico es discurso a texto, luego una búsqueda de texto, y finalmente, texto a discurso de nuevo. Estas tres partes son todos problemas de aprendizaje automático, y en conjunto estas soluciones ML se convierten en un producto de IA. Ahora podemos volver a responder ¿qué es la IA? La IA es más específicamente una combinación de soluciones de aprendizaje automático. Eso nos lleva a nuestra siguiente pregunta, ¿qué hace que el aprendizaje automático sea lo que es? ¿ Qué es el aprendizaje automático? Generalmente, los modelos de estudios de ML que aprenden de datos como lo hicimos con la IA harán que esta definición de ML sea más concreta. Estos son algunos problemas típicos de aprendizaje automático. En primer lugar, detectar anomalías. Por ejemplo, reconocer la actividad bancaria anormal. Segundo, recomendar productos. Encuentre productos que pueda estar buscando. Tercero, predecir el futuro. Por ejemplo, predice el precio de tu próxima compra. Suena como una amplia variedad de problemas muy diferentes. ¿ Qué define realmente el aprendizaje automático? Bueno, y si te dijera que estos son en realidad todos el mismo problema. Para entender cómo, tengo que darte alguna información secreta. Digamos que tenías información sobre mis hábitos de gasto, que aquí se imagina, específicamente, dada una de mis compras, puedes asignar probabilidades a cuánto gasté. Por ejemplo, con 50 por ciento de probabilidad, mi compra es menor a 5 dólares. Con 25 por ciento de probabilidad, mi compra está entre $5 y $10 y así sucesivamente y así sucesivamente. esto lo llamamos una distribución. En una distribución se asignan probabilidades a ciertos eventos que suceden. En este caso, asignamos probabilidades a cuánto gasto. Esta distribución es completamente ficticia por cierto,
con una probabilidad del 100 por ciento, mis compras definitivamente de la tienda del dólar. ¿ De qué manera nos ayuda esta distribución? Estos fueron los tres problemas ML de antes. Permítanme mostrarles cómo responder estos tres problemas utilizando nuestra distribución. En primer lugar, aquí te explicamos cómo detectar anomalías. Mira la distribución y pregunta qué tan probable es este monto de compra. Por ejemplo, una compra de 200 dólares es extremadamente improbable de acuerdo con esta distribución. De esta manera, una compra de 200 dólares es una anomalía. En segundo lugar, aquí te explicamos cómo recomendar productos. Digamos que compro un artículo de $8, esto podría significar que estoy comprando artículos en la categoría de $5-$10, por lo que podemos recomendar más productos en ese rango de precios. En tercer lugar, aquí te explicamos cómo predecir el futuro. sólo mirar esta distribución, podemos decir que el rango de precios de probabilidad más alto es menor a $5. Por lo tanto, es probable que mi próxima compra sea inferior a $5. Esto nos lleva a una nueva definición de ML. En particular, ML estudia modelos que aprenden distribuciones de datos. Qué distribución de datos queremos aprender depende del problema. Podríamos estar interesados en la distribución de precios de compra, distribución de precios de acciones, o tal vez distribución de imágenes naturales. Este último, la distribución de imágenes es un concepto extraño. Cualquier distribución sobre el espacio de alta dimensión es difícil de visualizar en realidad. Revisitaremos esto en clases posteriores. Por último, para lanzar una definición más, definamos el aprendizaje profundo. ¿ Qué es el deep learning? El aprendizaje profundo es en realidad un subconjunto de aprendizaje automático. En particular, el deep learning estudia modelos complejos que aprenden distribuciones de datos. Necesitaremos unas cuantas lecciones más para entender qué significa realmente complejo. Con eso concluyen los temas para esta lección. Definimos los productos de inteligencia artificial como una combinación de soluciones de aprendizaje automático. Definimos soluciones de aprendizaje automático como modelos que aprenden distribuciones de datos. Por último, definimos el aprendizaje profundo como modelos de aprendizaje automático simplemente complejos. Para resumir aún más, para entender la IA, entender primero el aprendizaje automático. Ese es precisamente el objetivo de este curso, comenzar
a entender el ML, no sólo los fundamentos, sino también cómo aprender el aprendizaje automático. Para una copia de estas diapositivas y más recursos, asegúrate de consultar la página web del curso. Eso es todo para nuestras definiciones fundamentales. En la siguiente lección, aprenderemos a aprender aprendizaje automático.
4. Cómo aprender el aprendizaje automático (ML): En esta lección, discutiremos cómo aprender el aprendizaje automático. Específicamente, discutiremos cuatro categorías diferentes de conocimientos de aprendizaje automático. Aquí se enumeran las cuatro categorías, datos, modelo, objetivo, y algoritmo. Definamos estas categorías antes de sumergirnos en ellas una por una. El primer rubro son los datos. Estas son las entradas y la salida deseada para su aplicación. Para cualquier aplicación, debes hacer algunas preguntas. En un alto nivel, ¿cuál es tu objetivo? ¿ Cómo se estructura el insumo? ¿ Qué predice y existen fuentes de datos
adicionales que podrían dar información adicional? A continuación te presentamos algunos ejemplos de respuestas. Por ejemplo, tu objetivo podría ser clasificar los dígitos escritos a mano. Tu entrada sería entonces una imagen de un número escrito a mano. Por último, la salida es un número. Para este problema en particular, no
hay fuentes de datos adicionales que podamos aprovechar. El segundo rubro es nuestro modelo. Esta es una función que hace predicciones. Para cualquier modelo, debes preguntar, ¿qué tan complejo debe ser mi modelo, es suficiente una función lineal? ¿ Necesito una función cuadrática, un polinomio, una red neuronal? Un modelo de ejemplo es un modelo lineal, ya que en regresión lineal, visualizaremos la regresión lineal con más detalle más adelante. El tercer rubro es nuestro objetivo. Un objetivo anteriormente especifica lo que se desea aprender. Para cualquier objetivo, debes preguntar, ¿maximizo la ganancia o minimizo el error? ¿ Cómo defino el error? ¿ Cómo defino ganancia? ¿ Existen desequilibrios en mis datos? ¿ Hay sesgos que debo abordar? Ejemplo, objetivo es minimizar el error ajustando la pendiente de la línea e interceptar. El error es la diferencia entre nuestras predicciones y los datos observados como etiquetas. Desecharemos esto más concretamente más adelante. Si este ejemplo no tiene sentido, está bien. Vamos a repasar esto con más detalle en una lección posterior. El cuarto categoría es el algoritmo. Esta es la forma de lograr tu objetivo de manera efectiva, cómo hacer la parte de aprendizaje del aprendizaje automático. Hay varias preguntas que puedes hacer. ¿ Debo resolver esto manualmente? ¿ Debería resolverlo iterativamente? Reducir el problema a uno más fácil? Un ejemplo de respuesta es tomar el conjunto derivado a cero y resolver. Tenga en cuenta que estos algoritmos no son el foco para esta clase. Estos valen la pena aprender en un momento posterior, pero no en una introducción todavía. Para resumir el propósito de esta sección, este es mi consejo para ustedes. Categoriza cualquier nuevo conocimiento de machine learning que obtengas en datos, modelo, objetivo o algoritmo. Con eso concluye la visión general de nuestro marco de cuatro categorías para el aprendizaje automático. Ahora, empecemos a usar este marco de aprendizaje. Ahora vamos a introducir fundamentos del conocimiento para cada categoría de aprendizaje automático. En primer lugar son los datos o de qué aprender. Los datos en cualquier problema de aprendizaje automático se dividen en tres partes. La primera parte es el conjunto de trenes, los datos que utilizas para entrenar a tu modelo. La segunda parte es el conjunto de validación, los datos contra los que compruebas tu modelo. Puedes usar este conjunto de validación para escoger el mejor modelo o mejores retoques de modelo. El último parte es el conjunto de pruebas. Solo debes ejecutar tu modelo en el set de prueba una vez. Esta es su comprobación final para el rendimiento de los modelos de aprendizaje automático antes de enviarlo a producción, por ejemplo. Ahora vamos a ampliar sus conocimientos sobre modelos o cómo predecir. Existen dos tipos de modelos, generativos y discriminativos. modelos generativos aprenden cómo se generaron directamente los datos. Dada la clase, los modelos generativos aprenden la distribución de datos. Por ejemplo, los modelos generativos se pueden utilizar para automejorar imágenes, generar ensayos o transformar texto en voz. Los modelos discriminativos aprenden los límites entre clases. Dados los datos, los modelos discriminativos aprenden la probabilidad de cada clase. Por ejemplo, los modelos discriminativos se pueden utilizar para clasificar la emoción facial, realizar análisis de sentimientos de tuits o traducir el habla a texto. Nos vamos a quedar con modelos mayoritariamente discriminativos en nuestras discusiones por ahora. Hay otra forma de dividir modelos. También podemos considerar un modelo supervisado contra modelos no supervisados. modelos supervisados tienen etiquetas. Aquí te presentamos dos tipos de modelos supervisados. Los modelos de clasificación clasifican los insumos en una o varias clases. Por ejemplo, dada una imagen, clasificar la raza de perro, y los modelos de regresión predicen una salida de valor continuo. Por ejemplo, predecir un futuro precio de las acciones. modelos no supervisados no tienen etiquetas. Aquí hay dos tipos de modelos no supervisados. Una, la agrupación dividirá los insumos en grupos separados. Por ejemplo, puede preguntar qué secuencias de ADN son más similares y los algoritmos de reducción de dimensionalidad reducirán el número de dimensiones que tienen sus datos. En esta clase, nos enfocaremos en modelos supervisados. Ahora, vamos a entender los objetivos de aprendizaje automático o su meta de manera más concreta. Para ello, tendremos que entender cómo se
generan los datos y cómo llegamos a una noción de error. Digamos que estamos tratando de predecir y desde x. Y puede ser precios abastecidos y x puede ser la fecha. Tu verdadero modelo, la verdad de tierra, la respuesta está en verde. Por cada x, esta línea te proporciona una y. esta línea verde será nuestro verdadero modelo de tierra verdad. Ahora, vamos a muestrear datos de este verdadero modelo. Estos datos son nuestros datos verdaderos. Ahora perturbemos nuestros verdaderos datos agregando algo de ruido. Este ruido podría deberse al ruido observacional en el mundo real, tal vez tus gobernantes en impreciso o tu reloj esté ligeramente apagado. Agregar ruido entonces nos da nuestros datos observados. Este es el conjunto de datos que recogerías y es todo lo que tenemos para entrenar a un modelo. Todas las visualizaciones que mostramos previamente en verde los datos verdaderos, el modelo verdadero, no tenemos acceso a ninguno de esos. Simplemente tenemos acceso a los datos observados aquí en azul. Entonces entrenamos a nuestro modelo, la línea aquí en negro. Este modelo entrenado también nos da algunas predicciones, los puntos negros. Por último, el error es la diferencia entre nuestras predicciones y los datos observados que recolectamos. Esta es una forma de definir el error. Esto es sólo la intuición visual, lo
escribiremos más formalmente más adelante. Por último, la última categoría es algoritmos. Un algoritmo que puedes recordar de la clase de cálculo para minimizar o maximizar un objetivo es tomar el derivado, establecer en cero, y resolver. No vamos a ir mucho más profundo, sin embargo. Como dijimos antes, vamos a saltar por encima de esta categoría de conocimiento por ahora. Eso concluye los temas de esta lección. Para resumir, cubrimos el marco que aquí se enumeran, las cuatro categorías de conocimiento de aprendizaje automático o modelos de
datos, objetivos y algoritmos. A medida que aprendas el aprendizaje automático, debes compartimentalizar tus conocimientos en estas cuatro categorías. Esto fue una gran ayuda y yo apenas estaba empezando y espero que esto
te ayude a procesar las grandes cantidades de conocimiento ML que vas a encontrar. Para una copia de estas diapositivas y más recursos, asegúrate de consultar la página web del curso. Con eso concluye nuestra lección Meta sobre cómo aprender el aprendizaje automático. En la siguiente lección, aprenderás sobre tu primer modelo. No te olvides de estos cuatro compartimentos de conocimiento ML. Para cada nuevo tema, asegúrate de preguntarte a qué categorías de conocimiento pertenecen esos conceptos.
5. El modelo más simple del mundo: En esta lección, exploraremos más que los modelos de aprendizaje automático más simples, Align. No te dejes engañar. El modelo en sí es sencillo. Es sólo una línea, pero tenemos bastantes conceptos en esta lección que no son tan simples. En esta lección de hecho, habrá unas cuantas ecuaciones matemáticas. Cuando nos encontramos con esas ecuaciones, no
hay necesidad de memorizar. Centrarse en lo que significa cada declaración. Ahora discutamos qué puede hacer una línea o un modelo lineal. En primer lugar, se puede utilizar un modelo lineal para la regresión. regresión es un tipo de problema con salidas y etiquetas valoradas continuas. Valorado continuo significa que el valor puede ser decimales como 1.5 o 2.365. Aquí te presentamos un ejemplo de un problema de regresión. A lo largo del eje x es la altura del perro, a lo largo del eje y es la longitud de la cola del perro. Hemos trazado nuestros datos observados en azul. En este ejemplo, nuestro objetivo es predecir la longitud de la cola del perro desde la altura del perro. En otras palabras, cree una función que predice un valor y por cada entrada de valor x. Veamos ahora cómo se puede usar un modelo lineal para la regresión. Este algoritmo de aprendizaje automático se llama mínimos cuadrados ordinarios o regresión lineal. El punto de esta próxima sección es presentarte alguna notación matemática. En particular, vamos a revisitar las últimas visualizaciones de lecciones, pero esta vez vamos a formalizar esas visualizaciones como declaraciones matemáticas. Volver a nuestro problema de regresión. Esta vez, usaremos un x e y genéricos Nuestro objetivo es predecir y usando x. denotaremos nuestros datos observados con puntos azules a la izquierda. Cada punto azul tiene una coordenada como se muestra a la derecha. Nuestro objetivo es ajustar una línea en la imagen en negro a los datos observados. Recordemos que la ecuación de una línea es y es igual a mx más b. X es nuestra entrada y y es nuestra salida. M y b son nuestros parámetros de modelo. Cambiar los parámetros del modelo dará como resultado una nueva línea o un nuevo modelo. Ahora haremos predicciones usando nuestra línea que aquí se muestra como puntos negros. Para obtener estas predicciones, enchufa tu entrada x_1 en la ecuación de una línea. Enchuparse la siguiente a nuestra ecuación para una línea entonces nos da nuestra predicción y_1 sombrero. Esto se puede repetir para cada una de tus coordenadas. Ahora necesitamos definir formalmente nuestra pérdida o error usando las predicciones. En particular, toma la diferencia entre el sombrero y observado y predicho. Esta es la distancia vertical desde cada uno de los puntos grises observados hasta el punto negro correspondiente en la línea. Entonces cuadramos la diferencia porque queremos penalizar tanto la subestimación como la sobreestimación. Nuevamente, repita esto para todos tus puntos. Esto concluye la visualización de nuestra pérdida. Tomemos un momento para simplificar un poco nuestras matemáticas. Aquí están las ecuaciones para nuestras predicciones que vimos antes. Podemos escribir una versión genérica de esto sustituyendo los números por la letra i. Esta letra i es una variable que corresponde a la ith muestra observada. Es sólo una forma para nosotros de resumir las tres líneas anteriores con una línea aquí donde las pérdidas que vimos previamente. Para obtener la pérdida total para nuestro modelo, necesitamos sumar todos estos juntos. Podemos representar sucintamente la suma usando alguna notación matemática. Este funky aspecto lateral w es una letra griega mayúscula Sigma. Esta Sigma mayúscula con la minúscula i significa que sumamos sobre todo i. No más letras griegas por cierto, sólo ésta. Ahora enchufemos todo para conseguir nuestro objetivo final en matemáticas. Para nuestro objetivo, queremos minimizar la pérdida que describimos previamente. Observe el subíndice mb. Este subíndice nos dice lo que podemos ajustar para minimizar la pérdida. En este caso, minimizaremos nuestra pérdida ajustando los parámetros del modelo m y b A continuación, observe el guión L. Esta es nuestra pérdida. Conectemos nuestra pérdida de la diapositiva anterior. Esto es objetivo actualizado, sin embargo, nuestra predicción y_i hat es indefinida. Vamos a enchufar eso también. Este es el objetivo final. Parece un montón de letras aleatorias cuando miras todo el asunto. Pero recapitulemos las partes individuales. En primer lugar, minimizamos la pérdida ajustando las líneas m y b. En segundo lugar, la pérdida es la distancia vertical entre la predicción y la etiqueta observada. Por último, definimos las predicciones para ser nuestra línea evaluada en cada x i Eso es todo para los símbolos. Para resolver este objetivo, mínimos cuadrados
ordinarios simplemente toman el conjunto derivado a 0 y resuelven. Nos vamos a saltear esa parte sin embargo. Ahora, si te sientes devanado por todos los símbolos, siéntete libre de saltar a la siguiente lección donde empezamos a construir un clasificador de emociones faciales. No hay más símbolos matemáticos, pero necesitaremos algunos conceptos para entender cómo se pueden usar los mínimos cuadrados para la clasificación. A diferencia de la regresión, la clasificación se distingue por etiquetas categóricas. Por ejemplo, las etiquetas para nuestro clasificador de emociones faciales serán felices, tristes, o sorprendidos. Este es nuestro objetivo. Nuestra predicción es algún valor continuo y queremos convertir esto en una emoción como feliz. Centrémonos en representar feliz como número. Para ello, asigne cada emoción a un número, feliz a 1, set a 2, y sorpresa a 3. Nuestro objetivo ahora es convertir nuestra predicción decimal en una etiqueta entera 1, 2, o 3. Pero, ¿cómo hacemos eso? Para empeorar las cosas, nuestro decimal no está limitado. Podría ser 5.267, podría ser 10.7, podría ser 1,000. Necesitamos un truco. Cambiamos nuestra predicción. En lugar de emitir un solo número, tenemos nuestro modelo de salida tres números. Si el primer número es el más grande, predeciríamos la primera clase. Si el segundo número es el más grande, predecimos la segunda clase. Por ejemplo, aquí predeciríamos la clase 2 ya que 5.36 es el valor más grande. Aquí, predeciríamos la clase 1 ya que 7.94 es el número más grande. Dado que sólo hay tres entradas, nuestras clases pronosticadas solo pueden ser 1, 2, o 3. Esto soluciona nuestro problema con que la predicción sea ilimitada. Esta es nuestra estrategia de predicción final para tres clases, predecir tres números, tomar el índice del valor más grande, y ese índice es tu predicción de clase. En este caso, predecir la clase 2 ya que el segundo valor es más grande. A continuación, puede convertir este índice de clase a un nombre de clase. Por ejemplo, la clase 2 aquí corresponde a triste. De esta manera, nuestro modelo de mínimos cuadrados puede predecir triste. En general para un problema de clasificación con clases k, salida k números, luego tomar el índice del mayor número. Ese índice es tu predicción de clase. Esto resuelve la predicción, pero ahora, ¿cómo entrenamos esto? Hay tres salidas y sin embargo sólo hay una etiqueta. Recuerda, calculamos el error tomando la diferencia entre nuestra predicción y nuestra etiqueta. Por lo que también necesitamos una etiqueta tridimensional. ¿ Cómo convertimos nuestra etiqueta entera en una etiqueta tridimensional? En realidad es sencillo, más o menos. Sustituya la etiqueta 1 por un vector tridimensional, 1, 0, 0, reemplace la etiqueta 2 por los vectores tridimensionales de 0, 1, 0, y finalmente, reemplace tres por el vector 0, 0, 1. Llamamos a esta transformación específica una codificación de un solo calor. Por lo que ahora tenemos una etiqueta codificada en caliente tridimensional adecuada en la parte inferior para supervisar nuestra salida tridimensional en la parte superior. Para resumir para la clasificación con clases K, codificar de
un solo en caliente todas las etiquetas usarán ambos conceptos. Sólo codifica tu primer modelo de mínimos cuadrados. Esto concluye conceptos para esta lección. Para recapitular, definimos la regresión como un problema con etiquetas valoradas continuas. Los mínimos cuadrados es un método para resolver un problema de regresión. También definimos la clasificación como un problema con las etiquetas
categóricas y exploramos cómo aplicar mínimos cuadrados la clasificación mediante el uso de un solo codificado en caliente para una copia de estas diapositivas y más recursos asegurarnos de revisar el curso sitio web. Con eso concluye esta lección. A pesar del título, esta no es para nada una simple lección. El modelo, alinearlo simple, pero necesitábamos algunos conceptos avanzados para que esa línea funcione si estás confundida, sugiero dejar esta lección a un lado por ahora. No te frustres volver a mirar atrás con espalda. En cambio, sugiero volver a visitar esta lección después de una buena noche de sueño. Si ahora no tiene sentido, lo hará en un día. En la siguiente lección, codificaremos un modelo de mínimos cuadrados en funcionamiento para la clasificación de emociones faciales.
6. Construye un clasificador de emociones faciales: En esta lección, construirás tu primer modelo de aprendizaje automático, un clasificador de emociones faciales. Todavía puedes seguir adelante si no sabes codificar. Pero sacarás más de esta sección del curso si sí sabes cómo. Para ponerse al día con la programación de Python, puedes tomar mi curso de Coding 101 Python para principiantes. También usaremos objetos en esta lección. Opcionalmente puedes quedarte atrapado con programación
orientada a objetos tomando mi Coding 101 plus, sube de
nivel tu código con programación orientada a objetos. Eso es todo por las exenciones de responsabilidad. Hagámoslo. Comience navegando a esta URL y acceda a una plantilla repl.it. Sugiero pausar el video aquí incluyendo la cuenta si aún no lo has hecho. tanto que puedes codificar sin una cuenta, una cuenta te permite guardar tu código. Una vez que veas esta página bifurca el producto para obtener tu propia copia editable. Para ello, haga clic en el nombre del proyecto en la parte superior izquierda para obtener un desplegable. Haga clic en los puntos suspensivos para obtener otro desplegable y finalmente, haga clic en el botón de tenedor. Entonces te recomiendo colocar tus ventanas Skillshare y repl.it lado a lado como se muestra aquí. Empezaremos con las importaciones que necesitarás para este proyecto. En primer lugar, introduce tu modelo. Nuestro modelo se llama regresión lineal. El modelo de regresión lineal es proporcionado por el paquete Python scikit-learn. Scikit-learn es una biblioteca dedicada a herramientas para estadísticos y profesionales del aprendizaje automático. Aquí escribe, “De”, scikit-learn se abrevia como sklearn, por lo que sklearn.linear_ modelo de importación LinearRegresion. A continuación, importar un OneHotenCoder para nuestras etiquetas. De sklearn de nuevo, pre-procesamiento importación OneHotenCoder. A continuación, importar utilidad para evaluar las predicciones de
clasificación de sklearn.metrics importar preciacidad_ puntuación. Asegúrate de que estás escribiendo exactamente como escribo abajo al caso y a la puntuación. Por último, importar una biblioteca de álgebra lineal llamada NumPy. Importar NumPy como np. Ahora iniciaremos el script cargando tus datos de entrenamiento y validación. Tanto los conjuntos de datos de capacitación como de validación están en su directorio de datos. Utilice la función de carga NumPy para cargar nuestros datos de entrenamiento. Asignaremos esto a una variable llamada tren de datos. Aquí voy a crear unas cuantas líneas vacías en blanco y
diremos data_ tren es igual a np.load y la ruta a tus datos está en el directorio de datos fer 2013 train.npz. Este fer solo representa el reconocimiento de emociones faciales. Este archivo npz cargado actúa como un diccionario. Podemos acceder a la clave X para obtener muestras de nuestro conjunto de datos de capacitación. En una nueva línea, teclearemos x_ tren igual al tren de
datos y una X. en mayúscula Repita esto para las etiquetas del conjunto de datos de entrenamiento. Y_tren es data_tren Y. Podemos repetir este proceso para el conjunto de datos de validación. Aquí escribiré data_val np.load data fer 2013 val.npz. Entonces X_Val es las validaciones X y Y_Val son las validaciones Y. Ahora, necesitamos pre-procesar nuestros datos. Por ahora, el único procesamiento p que necesitamos es una codificación OneHot para nuestras etiquetas. Para ello, utilizaremos un OneHotenCoder, una utilidad proporcionada por scikit-learn. En primer lugar, aquí hay un consejo. Todas las bibliotecas de scikit-learn siguen el mismo patrón. Crearemos o instanciaremos el objeto scikit-learn como nuestro primer paso. Para el segundo paso llame al método fit, este es efectivamente el método del tren. Es un poco engañoso porque para transformaciones como el OneHotenCoder no existe tal cosa como el entrenamiento. Por último, para su tercer paso llame al método de transformación o predecir
al que llame depende de si el objeto es un modelo o transformación como el OneHotenCoder. la razón que sea, cuando por primera vez estaba recogiendo la biblioteca de scikit estos pasos realmente me confundieron, así que ojalá ponerlos aquí ayuda. Ahora sigamos los pasos. En primer lugar, crearemos una instancia de su OneHotenCoder. Aquí tipo codificador es igual a OneHotenCoder. A continuación, scikit-learn ofrece una transformación de
ajuste método ordenado que combina el segundo y tercer pasos. Usemos eso ahora. Tenemos que codificar nuestras etiquetas de capacitación. Llama al método de transformación de ajuste en tren Y. Aquí vamos a asignar el resultado a una nueva variable llamada Y-oh-train, abreviatura de OneHot. Entonces vamos a llamar a los codificadores fit transform method en los datos de entrenamiento. Por último, vamos a llamar a toarray. Esto es una peculiaridad para OneHotenCoder En particular, llamar a toarray asegura que su salida es una matriz. Ahora, con toda la configuración hecha podemos crear y entrenar a nuestro modelo. Nuestro modelo es un modelo LinearRegresion de scikit-learn. Seguiremos los mismos tres pasos desde antes, instanciar, encajar y predecir. A continuación, debajo de tu código existente, vamos a crear una instancia de la clase LinearRegresion, modelos iguales a LinearRegresion con paréntesis. A continuación, entrenar el modelo LinearRegresion en el conjunto de datos de entrenamiento, por lo que model.fit y estamos incurriendo en pasar en los conjuntos de datos de entrenamiento X y los conjuntos de datos de entrenamiento Y. Entonces usaremos el modelo para generar puntuaciones para cada clase sobre el entrenamiento conjunto de datos. Definiremos tren de puntuación es igual a las predicciones del modelo sobre el conjunto de datos de entrenamiento. Repita esto en el conjunto de datos de validación. Score_val es model.predicen en el conjunto de datos de validación. Por último, para cada muestra encontrar el índice del mayor valor. Ese índice es tu predicción final de clase. Aquí, tendremos la predicción es el índice de la clase más grande. A continuación, repita esto para el conjunto de validación. Con el modelo entrenado y las predicciones hechas, ahora
necesitamos evaluar estas predicciones utilizando una función scikit-learn llamada precisión score evaluará nuestras predicciones de modelos. Aquí lo vamos a escribir, “Imprimir”. En primer lugar, le daremos una etiqueta, “Precisión del tren” y luego evaluaremos realmente las predicciones de los modelos. Y_tren, YHAT_tren. Observe aquí en realidad no creé una nueva línea, es porque mi ventana es tan diminuta que ésta se envolvió. A continuación, repita esto para el conjunto de datos de validación. Vamos a imprimir val accuracy y luego repetir puntaje de
precisión para las etiquetas de validación y las predicciones de validación. Ahora, dale la flecha verde corre en la parte superior para ejecutar tu código. En primer lugar verás un montón de registros de instalación ya que repl.it configura tu entorno de ejecución. Esto tomará unos minutos. En segundo lugar, verás un prompt vacío mientras el modelo está entrenando, esto tardará unos 15 segundos. Por último, verás los resultados de tu evaluación con aproximadamente 59 por ciento de precisión de entrenamiento y 61 por ciento de precisión de validación y enhorabuena, ese es tu primer modelo de aprendizaje automático de clasificador de emociones faciales. No obstante, una precisión de entrenamiento del 59 por ciento parece bastante baja. Eso significa que estamos bajo el ajuste de nuestro modelo. Arreglaremos esto en la siguiente lección. Para una copia de estas diapositivas y el código terminado para esta lección asegúrate de revisar la página web del curso. Esto concluye tu primer modelo de aprendizaje automático, un clasificador de emociones faciales. Como dijimos anteriormente, nuestra precisión de entrenamiento del 59 por ciento es bastante baja. En la siguiente lección, hablaremos de formas de mejorar tu clasificador de emociones faciales.
7. Cómo mejorar tu modelo: En esta lección, hablaremos de mejorar tu modelo de aprendizaje automático. Una advertencia, hay bastantes términos en esta lección, pero no hay necesidad de memorizar a medida que avanzamos. Revisaremos estos términos y tomas en la última parte de esta lección. En particular, cubriremos un trade-off conocido como el trade-off de sesgo varianza. Después cubriremos dos métodos de control de esa compensación, conocidos como featurización y regularización. Ahora vamos a sumergirnos en la compensación. A lo largo del eje x, tenemos complejidad del modelo. Por ahora, se puede pensar en la complejidad del modelo como cuántas operaciones necesita ejecutar el modelo para hacer una predicción. A lo largo del eje y, está el error. Nuestro objetivo con cualquier modelo es encontrar el modelo con el menor error. Encuentra el punto dulce para la complejidad del modelo. No obstante, es fácil perderse ese punto dulce. Haz que un modelo sea demasiado complejo, y golpeas uno de los males más temidos del aprendizaje automático, el sobreajuste, donde un modelo está demasiado cerca para adaptarse a los datos de entrenamiento en el límite que el modelo más sobrefit memorizará los datos. Haz que un modelo sea demasiado simple y golpeas un mal relacionado, underfitting, donde el modelo no es lo suficientemente expresivo para capturar información importante en los datos. Esto podría significar que solo miras los puntajes de la tarea para predecir las puntuaciones de los exámenes, ignorando los efectos de leer notas, completando exámenes de práctica, y más. El motivo por el que el error se comporta así es por sesgo y varianza. sesgo es el error para tu mejor modelo posible. En consecuencia, si eliges más y más modelos expresivos, tu mejor modelo posible se vuelve mejor y mejor, que
lleva a menos error y menos sesgo. En resumen, cuanto más complejidad
del modelo, menos sesgo tienes. La varianza es la propagación de tus predicciones. Con modelos cada vez más expresivos,
su conjunto de modelos de posibles salidas crece cada vez más grande. Esto probablemente significa que las predicciones de tu modelo, para todos los datos que se da, también se propagan. En resumen, cuanto más complejidad
del modelo, más variantes se tienen. La suma de sesgo y varianza entonces te da tu error. Este es el compromiso. Nuestro objetivo es equilibrar el sesgo y la varianza para minimizar el error eligiendo la complejidad del modelo apropiada. Para resumir, equilibra el sesgo y la varianza afinando la complejidad del modelo. Ahora hablaremos de formas específicas de compensación sesgo y varianza. Dados estos dos males, subajuste y el sobreajuste, hay una variedad de enfoques para luchar contra ambos. En primer lugar es la featurización, que combate el subajuste al aumentar la complejidad del modelo. En primer lugar, considere algunos datos. Aquí, los círculos representan muestras de una clase. El X's representa muestras de una segunda clase. Nuestro objetivo es usar mínimos cuadrados para clasificar las dos clases. Es decir, deseamos encontrar una línea que separa ambas clases. Eso resulta ser realmente duro, no importa qué línea dibujemos, no
podemos separar las dos clases. Lo que realmente queremos es un círculo que separe limpiamente las dos clases. Esto es un problema porque un círculo no es una línea y en este momento, sólo
sabemos entrenar modelos ML que dibujan líneas a través de puntos. ¿ Cómo podemos usar una línea para separar estas dos clases? Para entender cómo, primero
anotaremos cada punto con sus coordenadas. Observe que los ejes son x e y, como normal. Después cuadraremos la coordenada x de cada punto y cuadraremos la coordenada y de cada punto. Observe ahora que los ejes son x al cuadrado y y al cuadrado. Estas nuevas etiquetas de ejes significan que estamos en un sistema de coordenadas diferente o en un espacio diferente. En este espacio, de repente es muy fácil trazar una línea que separa las dos clases. Ahora definamos x tilde como x cuadrado. Observe que la etiqueta del eje x ahora es x tilde. Siguiente definir y tilde a como y cuadrado. Observe que la etiqueta del eje y es ahora y tilde. Usando x tilde e y tilde, ahora
podemos escribir la ecuación para la línea roja. Ahora tenemos una línea que puede separar las dos clases con solo cuadrar las coordenadas de entrada. Llamamos a este proceso de potenciación de la featurización de los insumos. Ahora, para explicar por qué esto es posible sin embargo, revisualicemos esta línea en el espacio tilde en el espacio x, y original. Observe que tenemos un círculo en nuestro espacio original. Pero, ¿por qué está bien esto? ¿ Cómo nos salimos con la suya dibujando un círculo usando una línea? Bueno, ese es el truco. Featurizamos nuestras muestras o feature-levantadas en un espacio diferente antes de dibujar una línea. Una línea en nuestro nuevo espacio corresponde a un círculo en nuestro espacio original. Ese es el poder de la featurización. En este caso, nuestra featurización fue cuadrando cada coordenada. También puedes featurizar de otras maneras. Podrían multiplicar coordenadas entre sí, elevar cada coordenada a poderes superiores, o aplicar coseno, por ejemplo. Estos permiten dibujar líneas en espacios dimensionales superiores que corresponden a formas complejas en el espacio original. Para resumir, featuriza tus datos para aumentar la complejidad del modelo y luchar contra el subajuste. El último concepto es la regularización, que combate el sobreajuste disminuyendo la complejidad del modelo. Existen diversas formas de regularizar. Una es modificar tu objetivo de optimización para incluir un término que penalice la complejidad del modelo. No entraremos en detalles por ahora. Para resumir, regulariza tus datos para disminuir la complejidad del modelo y combatir el sobreajuste. Para recapitular, cubrimos el trade-off de sesgo varianza, donde el sesgo disminuye con el aumento de la complejidad
y la varianza aumenta con el aumento de la complejidad del modelo. Para equilibrar el sesgo con variantes, utilizamos la featurización para combatir el subajuste y utilizamos la regularización para combatir el sobreajuste. Sé que eso es un bocado de términos. Eso son siete términos ahí mismo en menos de 10 minutos. Sin embargo, por una vez diré que debes memorizar estos términos. Nuevamente, aquí están los siete términos que debes memorizar. Voy a redefinir brevemente estos aquí otra vez. sesgo disminuye conforme aumenta la complejidad del modelo. La varianza aumenta a medida que aumenta la complejidad del modelo. Luego necesita equilibrar el sesgo y la varianza para minimizar el error del modelo. El subajuste ocurre cuando tu modelo es demasiado simple y puedes featurizar para que tu modelo sea más complejo. El sobreajuste se produce cuando su modelo es demasiado complejo y se puede regularizar para simplificar. Sé que eso es mucho para aceptar a la vez. Si te sientes agotado por memorizar en este momento, eso está completamente bien. Toma un descanso, toma una ducha o duerme en él. Si estás agotado, idealmente espera un día antes de intentarlo de nuevo. Una buena noche de descanso hará milagros. Otra posibilidad es simplemente continuar con la clase ya que los lugares para llevar
realmente están viendo el impacto de la featurización y regularización en la precisión. Para una copia de estas diapositivas y más recursos, asegúrate de consultar la página web del curso. Esto concluye nuestra lección de mejora de modelos. En la siguiente lección, implementaremos estas técnicas para modular el sesgo y la varianza, produciendo un clasificador de emoción facial mejorado y más preciso.
8. Mejora tu clasificador de emociones faciales: En esta lección, mejorarás tu clasificador de emociones faciales implementando los conceptos de la última lección; featurización y regularización. Comience navegando a esta URL para acceder a una plantilla Replit. Debería entonces ver la pantalla como la mía en el lado derecho. Una vez que veas esta página, bifurca el proyecto para obtener tu propia copia editable. Para ello, haga clic en el nombre del proyecto en la parte superior izquierda para obtener un desplegable. A continuación, haga clic en los puntos suspensivos para obtener otro desplegable. Por último, haga clic en el botón “Tenedor”. Entonces te recomiendo colocar tus ventanas Skillshare y Replit de lado a lado, como se muestra aquí. En primer lugar son las características polinomiales. Comience importando una nueva utilidad
de preprocesamiento de scikit-learn llamada características polinomiales. Esto nos permitirá featurizar nuestros datos. También llamamos a esta característica levantar nuestros datos. Entonces aquí, justo al lado de OneHotenCoder, voy a escribir características polinomiales. De nuevo, no creé una nueva línea, es simplemente porque mi ventana es demasiado pequeña así que la línea 2 envuelta alrededor. Las características polinomiales aumentarán la dimensionalidad de nuestros datos. Lo que eso significa es que si cada muestra tenía previamente 2 mil 400 dimensiones, nuestra muestra featurizada polinomial podría tener 24 mil dimensiones, por ejemplo. En consecuencia, necesitamos reducir la dimensionalidad de
cada muestra antes de aplicar la featurización. Adelante y desplácese hacia abajo a la derecha hasta donde ha definido Y_oh_train. Directamente debajo de eso, ahora vamos a reducir la dimensionalidad de nuestro conjunto de datos. Aquí, el tipo en x_train es igual a sí mismo, pero con un corchete cuadrado, coma de
colon, dos puntos más, y un 40. Ten en cuenta que esta es una notación que no has visto antes. Indexar en matrices en Python es un tema ligeramente más avanzado que saltaré por ahora. Básicamente, solo debes saber que esta notación toma cada dimensión 40. Esto reduce la dimensionalidad de cada muestra de 2,400 a 60. Sigamos adelante y repitamos esto para el conjunto de datos de validación. Aquí tenemos x_val de nuevo es igual a sí mismo, corchete
cuadrado, coma colon, colon, colon, 40. Nuevamente, recuerda que aquí hay dos columnas. A continuación, calcularemos características polinomiales. Al igual que con otras utilidades de scikit-learn, lo
haremos en tres pasos. Vamos a instanciar, encajar, y luego transformarnos. En primer lugar, instanciar a nuestro featurizador. Nuevamente, directamente debajo del código que acabas de escribir, ahora
escribiremos featurizer es igual a las características polinomiales, y vamos a establecer la interacción en el argumento de palabra clave a true para limitar cuánto aumenta nuestra dimensionalidad. Aquí vamos a escribir interaction_only es igual a true. Voy a pegarle a “Escape” para despedir a este modelo. Nuevamente, no creé una nueva línea, esto es sólo la línea 21 desbordada. Segundo, vamos a llamar tanto a ajuste como a transformar al mismo tiempo en las muestras de entrenamiento. Directamente debajo de esta línea, vamos a escribir en x_train es igual a featurizer.fit_transform. Nuevamente, x_train. Voy a pegarle a “Escape” para despedir a esa modelo. Repitamos ahora esto para el conjunto de datos de validación. X_val es igual a featurizer.fit_transform x_val. Eso completa nuestras modificaciones. Ahora tenemos un modelo de regresión polinomial, o en otras palabras, un modelo de regresión lineal con características polinomiales. Ahora pulsa la flecha verde “Ejecutar” en la parte superior de tu archivo. Nuevamente, repl.it tardará unos minutos en configurar el entorno. Nuestro expediente luego tardaremos un minuto en entrenar a tu modelo. Una vez que ambos hayan finalizado, verás una precisión de entrenamiento del 72 por ciento
y una precisión de validación del 64 por ciento, ligeramente mejor. No obstante, esta brecha del siete por ciento entre la capacitación y la precisión de validación es motivo de inquietud. Esto significa que nuestro modelo está sobrecargado. Para abordar esto, a continuación regularizaremos nuestro modelo. Para regularizar nuestro modelo, utilizaremos un método llamado regresión de cresta. Esto en realidad implica cambiar sólo dos líneas de código ya que scikit-learn nos ha facilitado enchufar y jugar. Adelante y desplácese de nuevo a la parte superior de su archivo. Primero vamos a cambiar nuestra importación de regresión lineal a cresta. Tipo en cresta. Segundo, borra tu modelo de regresión lineal y reemplácelo por cresta. Desplácese hacia abajo hasta donde definió su modelo de regresión lineal. Esto está en la línea 25 para mí. Elimina tu modelo de regresión lineal y reemplácelo por cresta. regresión de Ridge incluye un hiperparámetro alfa, cual gobierna cuán fuertemente penalizamos la complejidad molar. Vamos a penalizar muy fuertemente la complejidad molar aquí. Vamos a agregar la palabra clave argumento alfa es igual a 1e11. Ahora vuelve a ejecutar tu archivo haciendo clic en la flecha verde en la parte superior. Tu modelo debería tardar un minuto en entrenar. Después verás una precisión de entrenamiento del 67 por ciento y una precisión de validación del 64.5 por ciento. A pesar de que la precisión de entrenamiento es menor, la precisión de validación es ligeramente superior en 0.3 por ciento. El menor vacío de precisión de validación de capacitación también significa que hemos regularizado con éxito nuestro modelo. La siguiente pregunta natural es, ¿
puedes hacer aún más mejoras? Las mejoras que hemos realizado hasta ahora son todo lo que he planeado para este curso porque para hacer más mejoras, necesitamos entender la estructura de las imágenes, aprovechar tus conocimientos de dominio para mejorar tus modelos. En este caso, ya que estamos trabajando con imágenes, necesitamos aprovechar nuestra comprensión fundamental de la visión computarizada. Para aprender más sobre visión por computadora y para construir una demo con la que puedas jugar fácilmente, puedes echar un vistazo a mi curso de visión por computadora para principiantes. De lo contrario, eso concluye tu mejor cara clasificador de emoción. Hemos incorporado varios conceptos clave en esta lección. Ahora que estamos conscientes del compromiso de sesgo varianza, podemos usar la featurización y la regularización para combatir tanto el subajuste como el sobreajuste en nuestro modelo. Aquí hemos aplicado ambas técnicas, aplicando featurización polinomial y luego regularizando con regresión de cresta. Para una copia de estas diapositivas y el código terminado para esta lección, asegúrate de revisar el sitio web del curso. Esto concluye nuestro clasificador de emociones faciales. En la siguiente lección, comenzaremos a retroceder hacia una discusión de alto nivel. En particular, se desglosarán los problemas de aprendizaje automático en las cuatro piezas de las que hemos hablado antes: Datos, modelo, objetivo y algoritmo.
9. Práctica: disección de problemas ML: En esta lección, desglosaremos varios problemas de aprendizaje automático en datos, modelo, objetivo y algoritmo. Esto se practica efectivamente para aplicaciones del mundo real de tus conocimientos. Cuando te encuentras con un artículo ML, post de
blog, discusión, o notas, te
recomiendo repetir este ejercicio para entender dónde poner ese nuevo conocimiento. En resumen, mi consejo es desglosar los problemas de ML en datos, modelo, objetivo y algoritmo. Esta diapositiva puede parecer familiar. Anteriormente, di un consejo para categorizar siempre el conocimiento ML en estas cuatro categorías. Este es realmente el mismo consejo que se acaba de aplicar explícitamente a esta lección. Empecemos por descomponer el ejercicio por el que acabas de pasar, que es la clasificación de las emociones de cara. En primer lugar son los datos. Pasaremos la mayor parte de nuestro tiempo desglosando esta porción, aplicación y datos. Antes de dejarte probar este ejercicio, vamos a revisar las preguntas aquí, para que pueda enfatizar lo que tus respuestas necesitan incluir. En primer lugar, ¿cuál es tu objetivo? Tu objetivo debería describir lo que estás generando y cuál es tu insumo. Segundo, ¿cómo se estructura tu insumo? Esta respuesta debe describir cómo se traducirán sus datos de entrada en números. Tercero, ¿qué predice? Esta respuesta debe describir la salida numérica para su modelo y cómo traducir esos números a su formato final. Por último, ¿existen fuentes de datos adicionales? Ahora, pausa el video y toma un minuto para llenar la columna de la derecha respondiendo las preguntas de la izquierda. Aquí están las respuestas que se me ocurrió. En primer lugar, ¿cuál es tu objetivo? Tu objetivo es clasificar la emoción a partir de imágenes faciales. En segundo lugar, la entrada es una imagen de un rostro. Consulta mi curso de visión por computadora para principiantes para ver cómo se representan las imágenes como números. Tercero, ¿qué predice? Predecimos una de tres emociones: feliz, triste, o sorprendida. Recordemos esto prediciendo tres salidas, luego tomando el índice del mayor valor. A continuación, cada índice corresponde a un nombre de clase. Para obtener más detalles, consulte la sección de clasificación de la Lección 5. Por último, ¿existen fuentes de datos adicionales? Para este problema, no hay. Nuevamente, para más detalles sobre cómo se representan las imágenes como números, vea mi curso de visión computarizada para principiantes. Siguiente arriba es modelo. Yo sólo voy a llenar esto ahora. Dado que sólo cubrimos un tipo de modelo hasta el momento en nuestros ejercicios, utilizamos un modelo lineal. Ahora el objetivo. También sólo cubrimos un objetivo en detalle en la Lección 5. Voy a llenar esto. Minimizamos el error ajustando nuestros parámetros de modelo, la pendiente de línea, e interceptamos. El error se define formalmente como la distancia entre nuestras etiquetas y predicciones. Por último, el algoritmo. Mencionamos esto algunas veces pero no discutimos. Al igual que antes, voy a llenar esto. Para resolver estos cuadrados, puedes tomar el derivado, establecer en cero, y resolver. Eso concluye nuestro primer desglose de problemas ML. En los problemas de ML restantes, sólo
veremos la primera categoría, aplicación, y los datos. Solo hemos cubierto un modelo, objetivo y algoritmo. Esas respuestas en teoría seguirían siendo las mismas. A continuación se presenta el análisis de sentimiento de tuit. Si no estás ya familiarizado, el análisis de sentimientos es una tarea donde predecimos el sentimiento, como frustrado, sarcástico, o excitado. Análisis de sentimiento de tweet significa que analizamos el sentimiento por un tuit. Ahora, pausa el video aquí y llena el desglose de datos para el análisis de sentimientos de tuits. Aquí está mi respuesta. En primer lugar, ¿cuál es tu objetivo? Tu objetivo es clasificar un sentimiento a partir de los tweets. Segundo, ¿cómo se estructura el insumo? Este que no hemos cubierto antes. Para representar las palabras como números, considere un diccionario de todas las palabras posibles. Digamos que hay 1,000 palabras en nuestro diccionario, podemos representar un tweet como números
sustituyendo cada palabra por su posición en el diccionario. Por ejemplo, un tweet de tres palabras podría ser de 200, 350, 75. Tercero, ¿qué predice? Entonces predecimos el sentimiento. Yo he inventado tres sentimientos aquí, pero te vendría bien cualquiera que quieras: feliz, triste y enojado. Al igual que antes, ya hemos discutido cómo
traducir los números de salida de modelo en un nombre de clase. Por último, existen fuentes extra de información que podemos aprovechar. Una fuente natural son los gustos de tweet y los comentarios. Eso concluye nuestro desglose de análisis de sentimiento de tuit. Ahora, desglosemos discurso a texto. Pausa el video aquí y llena el desglose de datos para discurso a texto. Aquí está mi respuesta. ¿Cuál es tu objetivo? Tu objetivo es transcribir el audio al texto. Por ahora puedes pensar en esto como clasificar cada fragmento de audio en una de varias palabras posibles. Segundo, ¿cómo se estructura el insumo? Para la entrada, ¿cómo traducimos el audio en números? Bueno, un formato común se llama espectrograma. Se puede pensar en un espectrograma como partituras para el discurso. Tercero, ¿qué predice? Nuestra predicción es una palabra. Anteriormente discutimos cómo traducir palabras en números usando un diccionario y el índice de palabras. Haremos lo mismo aquí, prediciendo un índice de palabras para luego traducirlo en una palabra. Para fuentes de datos adicionales, podemos usar el audio circundante y otras palabras pronosticadas. Por ejemplo, si la última palabra fuiste tú, la siguiente palabra es probable que sean y no lo es. Con eso concluye el desglose por discurso a texto. Ahora, vamos a descomponer la dirección inversa, texto a voz. Pausa el video aquí y llena el desglose de datos para discurso a texto. En primer lugar, tu objetivo es ahora generar audio a partir del texto. Segundo, simplemente cambiamos la entrada y salida de mi último ejemplo. El input es una lista de índices de palabras. Tercero, predecimos un espectrograma o una partitura para el discurso. Por último, para fuentes de datos adicionales, podríamos usar fragmentos aleatorios de audio con personas que dicen estas palabras. Con eso concluye el desglose por texto a discurso. Eso también concluye la práctica para esta lección. Hemos desglosado los cuatro problemas que aquí se enumeran. En particular, discutimos una forma de representar las palabras como números, que es utilizar en su lugar posiciones de palabras en el diccionario. También discutimos una forma de representar el audio como números, que es utilizar un espectrograma o partituras para el sonido. Para una copia de estas diapositivas y más recursos, asegúrate de consultar la página web del curso. Eso es todo para diseccionar problemas de aprendizaje automático. En la siguiente lección, discutiremos una forma de
organizar sus conocimientos sobre diferentes temas ML.
10. Taxonomía de temas ML: En esta lección, estableceremos una taxonomía de diferentes áreas de aprendizaje automático. Conocer diferentes categorías de temas de aprendizaje automático es fundamental para aprender a aprender aprendizaje automático. Esto te ayudará a
compartimentar aún más tus conocimientos de aprendizaje automático para avanzar. No obstante, a diferencia de los primeros cuatro compartimentos de conocimiento, estas categorías son una lista sin fin, siempre yendo. En resumen, mi consejo es categorizar en todos los temas en datos, modelo, objetivo y algoritmo. Es posible que estés notando una tendencia. De verdad lo decía en serio. Dije que categorizara todo el conocimiento ML en estas cuatro categorías. Sólo estoy repitiendo este consejo en diferentes formas para realmente conducir el punto a casa. Va a haber un montón de términos y definiciones aleatorias en esta lección, el objetivo no es necesariamente memorizarlos todos. En cambio, el objetivo es memorizar el diagrama que mostrará al final. De esa forma sabrás organizar tu lista de problemas conocidos y todos los problemas, Organizaremos la taxonomía alrededor de los compartimentos de conocimiento que discutimos antes. Datos, modelo, y objetivo, como de costumbre, estarán saltando por ahora la parte de algoritmos del conocimiento de machine learning. Al final, seleccionaremos aleatoriamente combinaciones de estos diferentes datos, modelo y objetivos. Cada una de estas combinaciones produce una nueva investigación ML y tema. En primer lugar están las diferentes aplicaciones y fuentes de datos. Existen muchos tipos de datos de entrada. Hay imágenes y videos en visión por computadora. Hay texto en el procesamiento del lenguaje natural. Entonces también hay aplicaciones de aprendizaje automático a otros campos. En ML por seguridad, su entrada puede ser imágenes cifradas. En robótica, su entrada puede ser imágenes con profundidad para un robot quirúrgico. En las ciencias físicas, su entrada puede ser la resonancia magnética en busca de órganos en el cuerpo. Hay un sinnúmero de otros tipos de insumos y áreas de investigación que no he incluido. Parte del aprendizaje automático se está agregando a esta lista de campos y aplicaciones. A continuación se presenta la taxonomía de los modelos. En realidad lo discutimos previamente. Antes de la exhaustividad, los revisaremos brevemente. Podemos dividir los modelos en generativos, que aprendieron la forma en que se generan los datos, y discriminativos, que se enfoca en los límites entre clases. También podemos dividir modelos en supervisados con etiquetas y sin supervisión sin etiquetas. Otro término que escucharás a menudo es semi-supervisado. Esto a menudo significa, ya sea a,
una combinación de modelos supervisados y no supervisados o b, supervisar un modelo en señales que no requieren anotación humana. También existen varias categorías de objetivos. Anteriormente, cubríamos un tipo de objetivo, uno centrado en la precisión. No obstante, también existen otros objetivos amplios de aprendizaje automático. Cinco de los más comunes son la precisión, la generalizabilidad, la interpretabilidad, la eficiencia y la estética. La precisión es sencilla. generalización es la capacidad para que el modelo obtenga alta precisión más allá de las muestras de entrenamiento las dadas. La interpretabilidad pasa por muchas definiciones diferentes, pero la idea básica es entender de alguna manera el proceso de toma de decisiones del modelo. La eficiencia puede ser la eficiencia de entrenamiento, qué tan rápido entrena el modelo. También podría ser eficiencia de predicción. Con qué rapidez se ejecuta el modelo, cuánta memoria usa, cuánta potencia necesita, etcétera. Por último, la estética. Esto suele ser para tareas generativas que tienden a tener una definición ambigua de calidad. Por último, vamos
a discutir algunos problemas específicos de aprendizaje automático y dónde caen en la taxonomía. Aquí la lista de cinco problemas ML que cubriremos. Recuerda, la elección de estos problemas ML es bastante arbitraria. Los elegí para mostrar que cualquier problema de ML puede encajar en una taxonomía. Si hay algo que te comprometas con la memoria en esta lección, es la taxonomía o diagrama. Este es el diagrama que usaremos. A la izquierda están las diferentes categorías que hemos discutido en datos, modelo, y objetivo. A la derecha están los problemas. Tu objetivo no es memorizar estos problemas ML a la derecha, ahora mismo. El comida para llevar es que simplemente puedes elegir cualquier combinación de datos, modelo, y objetivo para encontrar nuevo problema o área. Ahora escojamos algunas combinaciones de la izquierda y asignarlas a nombres de la derecha. Aquí, morado significa que podemos escoger lo que queramos. Nos saltaremos esos. Bajo modelo, pick semi-supervisado, y bajo generalización escogida objetiva. Un tema de ML que optimiza la generalización para unos modelos semi-supervisados es el aprendizaje de pocos tiros a la derecha. En el aprendizaje con pocas tomas, tu objetivo es lograr la misma precisión con estos pocos ejemplos de entrenamiento como sea posible. Ahora cambiemos el modelo de un semi-supervisado a supervisado manteniendo el objetivo igual. Un tema ML que optimiza la generalización para modelos supervisados es la adaptación de dominios. En la adaptación de dominios, tu objetivo es entrenar un modelo en una distribución, por ejemplo, videos
diurnos, y adaptarte durante la prueba a otra distribución, por ejemplo, videos nocturnos. Mantengamos los modelos supervisados, pero ahora consideremos un objetivo diferente, la eficiencia. Un tema ML que mejora la eficiencia de los modelos supervisados es la destilación. En destilación, tu objetivo es capacitar a un modelo estudiantil utilizando predicciones de un modelo docente más complejo, más grande. Ahora, cambiamos todas las categorías. Bajo datos, pick vision, bajo modelo, pick generativo y semi-supervisado, bajo objetivo, pick estéticas. Un tema ML en esta categoría es Transferencia de estilo. En la transferencia de estilo, tu objetivo es combinar el estilo de una imagen con el contenido de otra. Por ejemplo, puedes volver a imaginar una foto real usando el estilo Noche estrellada de Van Gogh. Para nuestro último problema, bajo modelo, pick supervisado, bajo objetivo, pick precision. Un tema ML en esta categoría son ejemplos adversarios. En ejemplos adversarios, tu objetivo es engañar a un modelo añadiendo una marca de agua invisible a la entrada. Por ejemplo, puedes modificar invisiblemente una imagen de panda para engañar a la modelo para que piense que la imagen es de un mono. Por último, los ejemplos adversarios apuntan a la precisión o más bien tratan destruir la precisión para los modelos supervisados. Ya lo hemos hecho. Hemos logrado identificar en qué parte de nuestra taxonomía pertenece cada problema ML. Escoger combinaciones aleatorias de temas de la izquierda nos
da diferentes temas de ML y áreas de investigación a la derecha. Esta es la diapositiva de resumen, te lo prometo. Toma una captura de pantalla si quieres. Básicamente, a medida que aprendes más y más temas de aprendizaje automático, te sugiero agregar a este diagrama nuevos campos para el Aprendizaje Machine Aplicado a la izquierda bajo datos, y nuevas combinaciones de datos, modelo, y objetivo generará nuevos problemas a la derecha. Para una copia de estas diapositivas y más recursos, asegúrate de consultar la página web del curso. Esto concluye la taxonomía de los temas de aprendizaje automático. En esta lección, comenzamos con amplias categorías de temas ML y vimos cómo las combinaciones de diferentes categorías pueden resultar en nuevos problemas de ML. No obstante, en realidad, te encontrarás con el reverso. No empezarás recogiendo categorías y terminarás con un nuevo problema de ML. En cambio, aprenderás sobre un nuevo problema de ML y luego trabajarás hacia atrás para ajustarlo a tu taxonomía. Elegí practicar la dirección equivocada porque la “Dirección equivocada es más fácil”. Practicar esta dirección más fácil muchas, muchas veces te ayudará eventualmente a encajar problemas de ML del mundo real en tu taxonomía. En la siguiente lección, desglosaremos varios productos de IA en estos problemas ML.
11. Práctica: disección de productos IA: En esta lección, desglosaremos los productos de IA en problemas de ML. Considera esto como práctica también para aplicaciones del mundo real de tus conocimientos. Cuando te encuentras con un artículo de noticias, post u otro marketing para un producto de IA, te
recomiendo repetir este ejercicio de
desglosar ese producto en diferentes sub-problemas. En resumen, mi consejo es desglosar los productos de IA en subproblemas
ML en cualquier momento que encuentres un producto de IA. Esto también se aplica a los productos de IA que aún no existen por cierto. Aprender a descomponerse es realmente un arte. Esta habilidad es clave para entender lo que es posible hoy frente a lo que no lo es. Descompondremos tres productos diferentes de IA en subproblemas ML, asistencia por
voz, autos autoconducidos y realidad aumentada. En primer lugar, ¿qué es un asistente de voz? Ya lo mencionamos anteriormente. En primer lugar, traducir discurso a texto, buscar y traducir textos de vuelta al discurso. También ahora tienes una comprensión más profunda del primer y último paso. A continuación, ¿qué es un auto autoconducido? Un modelo simplista de un automóvil incluye la detección de objetos, donde dibujas cajas alrededor de cada objeto de la escena. Esto te da una idea del espacio manejable. A continuación, planeas un camino. Esto podría ser un problema de optimización propio, donde minimiza la distancia y el tiempo hasta el destino mientras te limitas al espacio manejable. Por último, tenemos controles. Esto no es un subproblema ML, pero lo he incluido por el bien de la integridad, los controles implican realmente mover el auto, como girar la rueda o golpear el pedal de gas. Estas tres partes describen mínimamente un auto autoconducido. Por último, ¿qué es la realidad aumentada? Existen algunos problemas de ML relacionados que hacen que el AR funcione. Uno es el rastreo de adentro hacia afuera, donde el dispositivo se localiza en relación con su entorno. Esto es lo que permite caminar en una realidad virtual o aumentada. Otro es el seguimiento de la mano, donde se rastrean las articulaciones en segmentos de su mano. Esto permite usar gestos para controlar el dispositivo. Por último, otro es la detección de objetos. Donde vuelvas a dibujar cajas de contorno alrededor de todos los objetos de la escena. Esto permite anotar artículos en realidad aumentada. Ese es el muestreo de diferentes subproblemas ML requeridos para la realidad aumentada. Para una copia de estas diapositivas y más recursos, asegúrate de consultar la página web del curso. Eso es todo para los conceptos en esta lección y en el curso. Lo hemos hecho círculo completo de nuevo al enfoque de alto nivel para entender la IA y el ML, terminando con la práctica del mundo real para tus conocimientos de IA, ML. En la siguiente lección, hablaremos de los próximos pasos para aprender más sobre AI, ML.
12. Siguientes pasos: Enhorabuena por completar el curso. De verdad, debes darte palmaditas en la espalda para aprender el aprendizaje automático. No sólo recolectar palabras de moda y pelusa de marketing, sino que en realidad sentarse a aprender el código en las matemáticas. Cubrimos temas amplios como la IA a fundamentos específicos como la featurización. Todos estos son conceptos que un entrevistador espera que conozcas, que un practicante de ML como tú espera que cada colega sepa. Ten en cuenta que esto es sólo el inicio de tu educación en ML, pero a medida que comiences a aprender más, quiero que tengas dos ideas clave en mente. Número 1, desglose cada problema ML en datos, modelo, objetivo y algoritmo. Compartimentalizar tus conocimientos en estas cuatro categorías te ayudará enormemente. Cuando alguien te habla de una nueva solución ML genial, tus preguntas sobre esa solución deben orientarse en torno a estas cuatro categorías. Sólo después de marcar estas cuatro casillas entiende lo suficiente como para reimplementar completamente esa solución ML. Si un entrevistador te pregunta sobre resolver un problema de ML, lo
mismo, orienta tu respuesta en torno a estas cuatro categorías. Segundo, recuerda el equilibrio de sesgo varianza. Un modelo de fantasía complejo hace para una gran pelusa de marketing. Pero al ser más inteligente con el diseño de tu modelo, puedes trabajar de forma más rápida y eficiente. Neural profundo cualquier cosa es genial clickbait, pero no siempre la solución correcta. Para tus siguientes pasos, te
recomiendo primero, revisar visión por computadora 101 en mi perfil de Skillshare para que puedas sumergirte profundamente en una aplicación de machine learning. Construirás un Snapchat como filtro de perro y cubrirás conceptos clave de visión por computadora. También puedes consultar mis cursos relacionados con datos como SQL 101, y data science 101 para cubrir el análisis y procesamiento de datos. En segundo lugar, consulte el sitio web del curso para obtener diapositivas, recursos, y enlaces. También encontrarás artículos que ahora puedes leer, entender e implementar tú mismo. Tercero, asegúrate de seguirme en Skillshare para más cursos de ML en el futuro. Como sabes, hay muchos temas emocionantes y con las bases de este curso, estás listo para aprender más. Me emociona mostrar más ML a gente como tú. Ahora, la gran pregunta, ¿puedo empezar a jugar con ML hoy? Sí, claro, definitivamente
debes empezar a jugar con ML hoy para que
veas cómo evitar perderte aplicar ML de formas peligrosas. En primer lugar, la práctica es clave. Más experiencia significa una mejor comprensión de los riesgos, modos de
falla, y caminar está en ML. Segundo, también te animaría a seguir aprendiendo sobre temas técnicos de ML para ampliar tu capacidad de descomponer y agregar productos en problemas de componentes ML. Tercero, examine cuidadosamente el mundo que te rodea. Algunos problemas y aplicaciones son adecuados para ML y otros no. Por ejemplo, la predicción meteorológica se realiza actualmente por supercomputadoras y grandes cantidades de ecuaciones diferenciales. Podrías aplicar ML, pero debes estar preparado para entender por qué los estadísticos antes no lo han
probado ya o por qué los predicadores meteorológicos populares no usan esto actualmente. ML tiene muchas aplicaciones, pero quiero que resuelvas problemas reales, no solo aplique AI ML por el bien de ello. Espero que estén viendo la IA con nueva luz. Acabas de completar tu primer paso en tu carrera y educación de AI ML. La próxima vez que veas el producto AI intenta identificar sus partes ML componentes. La próxima vez que veas un nuevo problema de ML intenta dividirlo en datos, modelo, objetivo y algoritmo. Eso es todo. Enhorabuena una vez más por llegar hasta el final del curso y hasta la próxima vez.