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).