¿Cómo se pueden clasificar / resumir los diversos algoritmos de aprendizaje automático de acuerdo con los problemas que resuelven?

Los algoritmos de aprendizaje automático generalmente se incluyen en este tipo de patrón:

Dada una función desconocida f :: X -> y , y algunas muestras de ( x, f ( x )), encuentre una aproximación de f.

Lo hacen teniendo un conjunto de hipótesis H y encontrando la mejor hipótesis h en H que se ajusta “bien” a las muestras. Con suerte, si elige H y una buena definición de “bien”, y tiene suficientes datos, su aproximación será cercana a la verdadera desconocida f .

Diferentes algoritmos de aprendizaje automático tienen diferentes conjuntos de hipótesis H , diferentes formas de encontrar la mejor hipótesis h y hay diferentes formas de juzgar qué tan cerca está h ( x ) de f ( x ) para nuevos ejemplos x .

Por ejemplo, clasificadores lineales como Regresión logística, Naive Bayes, SVM lineal y Perceptron, todos comparten el mismo conjunto de hipótesis H , es decir, el conjunto de hiperplanos en X. Tienen diferentes formas de determinar cuál es la mejor hipótesis h . Las SVM de kernel son equivalentes a transformar X en un nuevo espacio X ‘ y ejecutar una SVM lineal en X’ .

Usando una hipótesis muy poderosa, el conjunto H permitirá más grados de libertad. Con muy pocos puntos de datos n , podrá “explicar” el comportamiento de cualquier f a expensas de no poder generalizar a puntos de datos invisibles. Esto se llama sobreajuste.

Los clasificadores de redes neuronales (profundas) realizan una transformación no lineal una vez por capa y su capa final es equivalente a la regresión logística. Cuando se entrenan con descenso en gradiente, no exploran el conjunto de hipótesis completo, por lo que tienen menos probabilidades de sobreajustarse que si hubieran elegido la mejor hipótesis absoluta.

Hay muchas formas de crear un conjunto de datos. Los diferentes clasificadores comienzan con diferentes supuestos H sobre cómo es probable que se vea f . Para una comparación visual, vea la demostración de comparación de clasificadores de Scikit-learn.

La clasificación y la regresión solo difieren en lo que están optimizando (diferentes definiciones de qué tan bien encaja h ). El aprendizaje no supervisado está tratando de aprender una distribución de probabilidad de X , por lo que una hipótesis h se ajusta bien a los datos si asigna una alta probabilidad a los puntos de datos.

La motivación para la mayoría del aprendizaje automático es que el código es costoso y quebradizo y, por lo general, está especializado para un uso en particular, pero los datos son objetivos, baratos y verdaderos, por lo tanto utilizables para múltiples propósitos. Por lo tanto, preferiría tener muchos datos y poco código que lo contrario.

El aprendizaje automático utiliza estadísticas avanzadas para desarrollar programas transitables a partir de plantillas (por ejemplo, modelos lineales, redes neuronales, máquinas de vectores de soporte, árboles de decisión) que son simples (en relación con los programas que los humanos escriben) pero en virtud de tener una gran cantidad de parámetros (con cierta regularidad, para hacer que la cosa sea comprensible), capaz de adaptarse a un amplio espacio de relaciones y, por lo tanto, implementar una gran cantidad de posibles “programas” sin estado.

Muchos programas no tienen estado, lo que significa que implementan una función matemática; pero no siempre sabemos cuál es esa función. Tomemos el reconocimiento óptico de caracteres (OCR) por ejemplo. Si tiene una imagen en escala de grises de 16 por 16, entonces la cuestión de “¿Es esto una A” puede representarse, en teoría, por alguna función [0, 1] ^ 256 -> [0, 1] … donde las entradas son las intensidades de cada píxel y la salida es la probabilidad de que el escritor tenga la intención de “A”. Sin embargo, esa función es demasiado compleja, incluso en 256 dimensiones, que algunos llamarían “baja”, tenemos más complejidad que cualquier humano. visualizar: para que cualquiera lo explique explícitamente, y programar exactamente esa función sería una tarea indeseable, propensa a errores y sin utilidad general (no nos ayudaría a programar un reconocedor “B”).

Entonces, el objetivo de un algoritmo de aprendizaje automático es tener un programa que construya un programa basado únicamente en datos. Por lo general, las incógnitas que se completan en el programa generado son parámetros numéricos. A veces hay muchos: para las redes neuronales, pueden llegar a millones.

Bien, hay algunas distinciones en los algoritmos de aprendizaje automático, dependiendo de los objetivos del escritor. No entraré en el rendimiento y la estabilidad numérica, pero esos son problemas por derecho propio. Centrémonos en algunos de los conceptos básicos.

Clasificación versus regresión: algunos problemas de predicción implican la clasificación de entradas en una de un conjunto de categorías previamente conocido. Por ejemplo, con letras escritas a mano (imágenes) tiene datos que casi siempre determinan una categoría única (“A”, “B”), pero escribir un programa explícito que realice la tarea sería inviable. Para problemas de regresión, está tratando de predecir una cantidad numérica o, a veces, una probabilidad de aterrizar en una clase específica. Por lo general, elegirá una función de pérdida para predicciones incorrectas y gran parte de ML está aplicando optimización matemática para minimizar la pérdida. A menudo, la función de pérdida se elige para que sea directamente proporcional a la improbabilidad de esos datos dado el modelo (o, en otras palabras, minimizar la pérdida es equivalente a maximizar la probabilidad condicional de los datos observados, dado el modelo).

La clasificación, en particular, cuando hay más de 3 categorías, puede ser más difícil que la regresión. La mayoría de los problemas de regresión tienen solo una dimensión de salida. Con la clasificación en clases K, tiene un espacio de salida dimensional K-1 y un modelo con poca potencia puede tener problemas allí.

Aprendizaje supervisado versus no supervisado : el aprendizaje supervisado es el más fácil de los tres paradigmas de aprendizaje. Con el aprendizaje supervisado, ha etiquetado los datos, lo que significa que sabe qué columnas son sus predictores y cuáles son sus respuestas. Casi siempre, podrás descubrir qué tan bueno es el modelo, simplemente probándolo en más datos. (Recuerde, sin embargo, que el error de entrenamiento no tiene sentido. El error en un conjunto de validación invisible es una mejor estimación del rendimiento futuro del modelo).

Con el aprendizaje no supervisado, no tiene un campo de respuesta distinguido (o variable dependiente) en sus datos. No está intentando predecir el valor de una variable en función de todas las demás, sino más bien encontrar una estructura general en la forma empírica de los datos. Una forma en que se ha dicho es que, con el aprendizaje supervisado, está tratando de estimar una probabilidad condicional para 1 variable (respuesta) basada en observaciones; con el aprendizaje no supervisado, está tratando de descubrir la función de densidad subyacente que se aplica a todo el espacio, es decir, el producto cartesiano de los dominios de todas las variables. Resulta que hacer cualquier cosa con distribuciones de probabilidad en espacios de alta dimensión (1000+) es muy difícil. Un ejemplo de aprendizaje no supervisado es la agrupación, que es el proceso de encontrar un cierto estilo de distribución de probabilidad, una mezcla aditiva en la que los componentes son un tipo preespecificado (generalmente gaussiano), que podría aplicarse a los datos. (Los grupos corresponden a estos componentes gaussianos, que uno espera que estén lo suficientemente separados como para no causar una superposición sustancial).

Hay paradigmas de aprendizaje más exóticos como el aprendizaje por refuerzo, pero generalmente requieren simular un entorno (posiblemente cambiante); no puede simplemente crear un modelo a partir de un conjunto de datos inmutable, porque los datos antiguos pueden estar obsoletos, ya no son aplicables al nuevo entorno. Además, si hay interacción estratégica (juego), esto se convierte más en una cuestión de teoría profunda del juego que de optimización estadística.

Enfoques globales versus locales: algunas técnicas de aprendizaje automático intentan imponer una estructura global en el modelo. Por ejemplo, la regresión de mínimos cuadrados ordinarios supone que la función subyacente es globalmente lineal. Probablemente sea una suposición falsa, pero a menudo es lo mejor que se puede hacer en extrapolación. Otros métodos de predicción (p. Ej., Regresión lineal local, vecino más cercano, promedio de Nadaraya-Watson) dan más peso a los datos locales , mientras que los datos lejanos pueden tener un peso tal que sea cero o más bajo (la desintegración típica es gaussiana, es decir, exponencial cuadrática) como para desaparecer efectivamente. Los métodos locales no asumen una estructura global; sin embargo, esto significa que utilizan menos datos (para cada punto de predicción) y extrapolan mal.

Paramétrico versus no paramétrico: un modelo paramétrico no recuerda todo el conjunto de datos. Se realiza la computación (o, para modelos más complejos, como redes neuronales, entrenamiento), pero los datos en sí no necesitan almacenarse para usar el modelo para la predicción. Por ejemplo, una vez que realiza una regresión lineal y obtiene parámetros, es sencillo ejecutar el modelo utilizando solo esos. Por otro lado, algunos modelos (por ejemplo, el vecino más cercano) incorporan todo el conjunto de datos dentro del modelo. Esto generalmente significa que hay poco o ningún tiempo de entrenamiento, pero hay más tiempo de cálculo cuando se realiza cada predicción. Además, si su conjunto de datos es grande, debe saber bastante sobre la recuperación de información (incluso hasta el nivel de saber cómo configurar los índices de la base de datos) para hacerlo correctamente.

Convexo versus no convexo: la mayoría de los problemas de aprendizaje automático se reducen a la optimización (en el sentido matemático). Cuando tiene un problema convexo, lo que significa que la función que está tratando de minimizar es “en forma de cuenco” y el único punto estacionario (derivada cero) es el mínimo global, las técnicas de optimización están bien estudiadas y generalmente hay muchas que funcionan – algunos pueden ser terriblemente lentos, pero llegarán al mejor modelo para ese conjunto de datos. La regresión lineal de mínimos cuadrados y la regresión logística de máxima verosimilitud son, por ejemplo, problemas convexos: la función de pérdida es convexa en todos los parámetros del modelo. Sin embargo, para otras técnicas (por ejemplo, redes neuronales) tiene una función de pérdida no convexa y no se garantiza que un punto estacionario sea bueno. Podría ser un mínimo local, o un punto de silla, o incluso un máximo local.

Sesgo y varianza: esta no es una clasificación de técnicas, sino una compensación fundamental en el aprendizaje automático. Los modelos con poca potencia (es decir, no lo suficientemente complejos) a menudo no capturarán la complejidad intrínseca de la función subyacente real, lo que significa que tienden a estar sistemáticamente desactivados (sesgados) en la predicción. Por ejemplo, si ajusta un modelo lineal cuando la función real es una función cuadrática convexa, subestimará sistemáticamente los valores para puntos extremos y sobreestimará en el medio. Por otro lado, los modelos con exceso de potencia tienden a malinterpretar el ruido en los datos, o el error que puede surgir si simplemente no es el tipo correcto de modelo, y puede terminar respondiendo fuertemente a estos errores (esa es la variación). Esto genera modelos que se ajustan muy bien a los datos de entrenamiento pero tienen un rendimiento horrible en datos de prueba no vistos. Equilibrar el sesgo y la varianza es un arte, pero la mayoría de los algoritmos de aprendizaje automático proporcionan herramientas e “hiperparámetros” (por ejemplo, tasas de aprendizaje, penalizaciones de complejidad) que pueden usarse para modular la complejidad del modelo. A menudo, la validación cruzada empírica es la única forma de encontrar buenos hiperparámetros. En la práctica, esto significa que querrá dividir sus datos en 3 conjuntos: un conjunto de capacitación para construir modelos, un conjunto de validación para evaluar hiperparámetros y luego un tercer conjunto de pruebas para juzgar el rendimiento del modelo (ya que el conjunto de validación ya ha sido absorbido por los hiperparámetros).

Permítanme agregar dos imágenes a la respuesta de Paul Hobbs, tomadas de http://work.caltech.edu/lectures … (Yaser Abu-Mostafa, Caltech):

Panorama general de lo que es aprender:


Sinopsis de las principales técnicas de aprendizaje automático:


La clasificación principal de los modelos de aprendizaje automático según los problemas que resuelven es el aprendizaje supervisado frente al aprendizaje no supervisado, pero se vuelve bastante complicado una vez que intentas clasificar los modelos a un nivel más fino.

También me gusta esta sinopsis de scikit-learn:


Del mismo modo, desde http://dlib.net/ml_guide.svg :

Del mismo modo, de la hoja de trucos del algoritmo de aprendizaje automático

Realmente depende del espacio de la aplicación. Y algunos enfoques tienen múltiples usos.

En mi clase de IA para juegos, observamos algunos problemas y subproblemas.

(1) Comprensión y predicción del jugador
Predictores de ngram, clasificadores bayesianos

(2) Aprendizaje de habilidades
Redes neuronales entrenadas genéticamente, clasificadores bayesianos, lógica difusa genéticamente entrenada.

(3) Comprensión ambiental / contextual
Máquinas de estado. Q aprendizaje. Máquinas de estado difusas. Comportamiento orientado a objetivos. Comportamiento basado en reglas.

(4) Navegación
Búsqueda de ruta (que es realmente un subconjunto de búsqueda de gráficos), Flocado

(5) Planificación de movimiento
También búsqueda de gráficos, generalmente min / max o negamax.

El modelo de “Agente autónomo” es muy útil en los juegos y consta de tres niveles, cada uno de los cuales conduce al siguiente hacia abajo.

El nivel superior está planeando establecer metas.
El nivel medio es encontrar dirección / trayectoria
El nivel inferior es la locomoción.

Este enfoque general de 3 capas se puede aplicar a otras acciones y luego moverse. En general se puede resumir como:

Primero, decide qué hacer
Luego, determina cómo hacerlo
Entonces hacerlo.

Los algoritmos de aprendizaje automático se pueden clasificar en tres tipos

  • Aprendizaje supervisado : en este escenario se conoce una variable dependiente / variable de efecto en los datos históricos. Aquí todo lo que queremos es poder encontrar una relación entre la variable dependiente y las variables independientes. La intención aquí es poder predecir el valor futuro de la variable dependiente en función de los valores de las variables independientes.
  • El aprendizaje automático supervisado tiene varios algoritmos, que se eligen en función del tipo de la variable dependiente y las variables independientes.
  • El siguiente enlace de quora le dice cómo usar qué algoritmo basado en el tipo de la variable dependiente y las variables independientes. https://www.quora.com/How-do-you
  • Aprendizaje no supervisado : aquí no hay una variable dependiente. Lo que desea aquí es poder encontrar subconjuntos homogéneos dentro del conjunto de datos que sean lo más heterogéneos posible de otros subconjuntos. El análisis de conglomerados es una técnica popular para lo mismo.
  • Aprendizaje de refuerzo : aquí el algoritmo intenta imitar las acciones de los animales en diferentes situaciones (estímulo). El automóvil sin conductor, el algoritmo de juego de ajedrez, etc. es un ejemplo de aprendizaje de refuerzo. Puede ver el video de YouTube a continuación para ver un ejemplo del aprendizaje por refuerzo
  • Para obtener más información sobre casos de uso de negocios de AI / ML y Predictive Analytics en la vida real y cómo Valiance ha proporcionado la solución adecuada, puede consultar nuestro Blog. Además, lea nuestra sección de Documentos de investigación para conocer las diferentes soluciones en detalle.

    More Interesting

    ¿Cuáles son las consecuencias y desventajas de usar datos agregados? ¿Cómo podemos combatirlos si no hay datos de nivel granular?

    En LSTM, ¿cómo calculas qué tamaño deben tener los pesos?

    ¿Qué idioma es el mejor para construir código de producción de aprendizaje automático?

    Procesamiento de lenguaje natural: ¿Cuál es la mejor manera de calcular la similitud de cadenas?

    ¿Cuál es la diferencia entre derivada de una función o pendiente de gradiente?

    ¿Mi reproductor de caja de ritmo aprendió qué canción tocar a continuación?

    ¿Qué tan complejo debe hacer un corrector ortográfico básico a través del procesamiento del lenguaje natural para verificar los nombres de los hoteles?

    ¿Cuáles son las aplicaciones más prometedoras de ML / AI en el cuidado de la salud, excluyendo la informática de imágenes?

    ¿Será el hardware especializado para el aprendizaje profundo un cambio de juego?

    ¿Qué algoritmos de aprendizaje automático para la clasificación admiten el aprendizaje en línea?

    Cómo numerar los clústeres en la agrupación jerárquica de documentos en Python

    ¿El curso de aprendizaje automático que el profesor Andrew Ng ofrece en Coursera me será útil como desarrollador de software profesional para resolver problemas de aprendizaje automático del mundo real?

    ¿Cómo es ser ingeniero de aprendizaje automático en Quora?

    Cómo generar una oración gramaticalmente correcta y completa usando un número dado de palabras

    Cómo evaluar un experimento además de usar una diferencia en regresión de diferencia