1.1 Introducción
Gracias al aprendizaje automático, el programador no está obligado a escribir instrucciones que tengan en cuenta todos los problemas posibles y contengan todas las soluciones. En cambio, se presenta una computadora (o un programa separado) con un algoritmo para encontrar soluciones de forma independiente mediante el uso integrado de datos estadísticos de los que se derivan los patrones y en función de los pronósticos que se hacen.
La tecnología del aprendizaje automático basada en el análisis de datos se remonta a 1950, cuando comenzaron a desarrollar los primeros programas para jugar a las damas. En las últimas décadas, el principio general no ha cambiado. Pero gracias al crecimiento explosivo en el poder de cómputo de las computadoras, las leyes y los pronósticos creados por ellas se han vuelto más complicados y la gama de problemas y problemas resueltos mediante el aprendizaje automático se ha expandido.
Para iniciar el proceso de aprendizaje automático, primero debe descargar el conjunto de datos (una cierta cantidad de datos de entrada) en la computadora, en el cual el algoritmo aprenderá a procesar las solicitudes. Por ejemplo, puede haber fotografías de perros y gatos que ya tienen etiquetas que indican a quién pertenecen. Después del proceso de capacitación, el programa en sí podrá reconocer perros y gatos en nuevas imágenes sin contenido de etiquetas. El proceso de aprendizaje continúa incluso después de que se emiten los pronósticos, cuantos más datos hayamos analizado por el programa, más exactamente reconocerá las imágenes deseadas.
Gracias al aprendizaje automático, las computadoras aprenden a reconocer en fotografías y dibujos no solo caras, sino también paisajes, objetos, texto y números. En cuanto al texto, aquí no se puede prescindir del aprendizaje automático: la función de verificar la gramática ahora está presente en cualquier editor de texto e incluso en los teléfonos. Además, no solo se tiene en cuenta la ortografía de las palabras, sino también el contexto, las sombras del significado y otros aspectos lingüísticos sutiles. Además, ya existe un software capaz de escribir artículos de noticias (sobre economía y, por ejemplo, deportes) sin intervención humana.
1.2 Tipos de tareas de aprendizaje automático
Todas las tareas resueltas usando ML caen en una de las siguientes categorías.
1) La tarea de regresión es un pronóstico basado en una muestra de objetos con varios atributos. El resultado debe ser un número real (2, 35, 76.454, etc.), por ejemplo, el precio de un apartamento, el valor de una garantía después de seis meses, el ingreso esperado de la tienda para el próximo mes, la calidad del vino durante las pruebas a ciegas.
2) La tarea de clasificación es obtener una respuesta categórica basada en un conjunto de características. Tiene un número finito de respuestas (generalmente en el formato "sí" o "no"): ¿hay un gato en la fotografía? ¿Es la imagen un rostro humano? ¿Es el paciente enfermo de cáncer?
3) La tarea de agrupamiento es la distribución de datos en grupos: dividir a todos los clientes de un operador móvil por nivel de solvencia, asignar objetos espaciales a una u otra categoría (planeta, estrellas, agujero negro, etc.).
4) La tarea de reducir la dimensión es reducir una gran cantidad de características a una más pequeña (generalmente 2-3) para la conveniencia de su visualización posterior (por ejemplo, compresión de datos).
5) La tarea de detectar anomalías es separar las anomalías de los casos estándar. A primera vista, coincide con la tarea de clasificación, pero hay una diferencia significativa: las anomalías son un fenómeno raro, y los ejemplos de entrenamiento en los que puede entrenar un modelo de aprendizaje automático para identificar tales objetos son muy pequeños o simplemente no, por lo tanto, los métodos de clasificación no funcionan aquí. . En la práctica, dicha tarea es, por ejemplo, identificar actividades fraudulentas con tarjetas bancarias.
1.3 Tipos básicos de aprendizaje automático
La mayor parte de las tareas resueltas utilizando métodos de aprendizaje automático se relacionan con dos tipos diferentes: aprender con un maestro (aprendizaje supervisado) o sin él (aprendizaje no supervisado). Sin embargo, este maestro no es necesariamente el programador en sí mismo, que se encuentra por encima de la computadora y controla cada acción del programa. "Profesor" en términos de aprendizaje automático es la intervención humana en sí misma en el proceso de procesamiento de información. En ambos tipos de entrenamiento, la máquina proporciona datos iniciales que tendrá que analizar y encontrar patrones. La única diferencia es que cuando se aprende con un maestro, hay una serie de hipótesis que deben ser refutadas o confirmadas. Esta diferencia es fácil de entender con ejemplos.
Aprendizaje automático con un profesor.Supongamos que tenemos información sobre diez mil apartamentos en Moscú: área, piso, distrito, presencia o ausencia de estacionamiento en la casa, distancia del metro, precio del apartamento, etc. Necesitamos crear un modelo que prediga el valor de mercado de un apartamento por sus parámetros. Este es un ejemplo ideal de aprendizaje automático con un maestro: tenemos los datos iniciales (el número de apartamentos y sus propiedades, que se llaman signos) y su costo es una respuesta inmediata para cada uno de los apartamentos. El programa tiene que resolver el problema de regresión.
Otro ejemplo de la práctica: confirmar o negar la presencia de cáncer en un paciente, conociendo todos sus indicadores médicos. Averigüe si un mensaje entrante es spam analizando su texto. Estas son todas las tareas de clasificación.
Aprendizaje automático sin profesorEn el caso de la capacitación sin un maestro, cuando no se proporcionan al sistema "respuestas correctas", todo es aún más interesante. Por ejemplo, tenemos información sobre el peso y la altura de un cierto número de personas, y estos datos deben dividirse en tres grupos, cada uno de los cuales tendrá que coser camisas de tamaños adecuados. Esta es una tarea de agrupamiento. En este caso, es necesario dividir todos los datos en 3 grupos (pero, por regla general, no existe una división tan estricta y solo posible).
Si tomamos una situación diferente, cuando cada uno de los objetos de la muestra tiene cientos de características diferentes, entonces la principal dificultad será la visualización gráfica de dicha muestra. Por lo tanto, el número de signos se reduce a dos o tres, y es posible visualizarlos en un plano o en 3D. Esta es la tarea de reducir la dimensión.
1.4 Algoritmos básicos de modelos de aprendizaje automático
1. Árbol de decisiónEste es un método de apoyo a la decisión basado en el uso de un gráfico de árbol: un modelo de decisión que tiene en cuenta sus posibles consecuencias (teniendo en cuenta la probabilidad de que ocurra un evento), la eficiencia y el consumo de recursos.
Para los procesos empresariales, este árbol consta de un número mínimo de preguntas que requieren una respuesta definitiva: "sí" o "no". Dando respuestas consistentes a todas estas preguntas, llegamos a la elección correcta. Las ventajas metodológicas del árbol de decisión son que estructura y sistematiza el problema, y la decisión final se toma sobre la base de conclusiones lógicas.
2. Clasificación ingenua bayesianaLos clasificadores ingenuos de Bayes pertenecen a la familia de los clasificadores probabilísticos simples y se originan a partir del teorema de Bayes, que en este caso considera las funciones como independientes (esto se llama una suposición estricta o ingenua). En la práctica, se usa en las siguientes áreas del aprendizaje automático:
- Detección de correos electrónicos no deseados
- enlace automático de artículos de noticias a secciones temáticas;
- identificación de la coloración emocional del texto;
- reconocimiento de caras y otros patrones en imágenes.
3. Método de mínimos cuadradosCualquiera que haya estudiado estadística al menos un poco está familiarizado con el concepto de regresión lineal. Los mínimos cuadrados también están relacionados con sus opciones de implementación. Típicamente, la regresión lineal resuelve el problema de ajustar una línea recta que pasa por muchos puntos. Aquí le mostramos cómo hacerlo utilizando el método de mínimos cuadrados: dibuje una línea recta, mida la distancia desde él a cada uno de los puntos (conecte los puntos y la línea con segmentos verticales), transfiera la cantidad resultante hacia arriba. Como resultado, la curva en la que la suma de las distancias será la más pequeña es la deseada (esta línea pasará por puntos con una desviación normalmente distribuida del valor verdadero).
Por lo general, se usa una función lineal en la selección de datos para el aprendizaje automático, y el método de mínimos cuadrados se usa para minimizar los errores creando una métrica de error.
4. Regresión logística.La regresión logística es una forma de determinar la relación entre variables, una de las cuales es categóricamente dependiente y las otras son independientes. Para esto, se utiliza la función logística (distribución logística acumulativa). La importancia práctica de la regresión logística es que es un método estadístico poderoso para predecir eventos, que incluye una o más variables independientes. Esto tiene demanda en las siguientes situaciones:
- puntuación de crédito;
- medir el éxito de las campañas publicitarias en curso;
- pronóstico de ganancias para un determinado producto;
- evaluación de la probabilidad de un terremoto en una fecha específica.
5. Método de vector de soporte (SVM)Este es un conjunto completo de algoritmos necesarios para resolver problemas de clasificación y análisis de regresión. Basado en el hecho de que un objeto ubicado en el espacio N-dimensional pertenece a una de dos clases, el método del vector de soporte construye un hiperplano con dimensión (N - 1) para que todos los objetos aparezcan en uno de dos grupos. En el papel, esto se puede representar de la siguiente manera: hay puntos de dos tipos diferentes y se pueden dividir linealmente. Además de separar puntos, este método genera un hiperplano de tal manera que esté lo más lejos posible del punto más cercano de cada grupo.
SVM y sus modificaciones ayudan a resolver tareas de aprendizaje automático tan complejas como el empalme de ADN, determinar el género de una persona a partir de fotografías y mostrar pancartas publicitarias en sitios web.
6. El método de los conjuntos.Se basa en algoritmos de aprendizaje automático que generan muchos clasificadores y separan todos los objetos de los datos recién recibidos en función de sus resultados promedio o de votación. Inicialmente, el método de conjunto era un caso especial de promedios bayesianos, pero luego se volvió más complicado y se cubrió de algoritmos adicionales:
- refuerzo: convierte los modelos débiles en fuertes formando un conjunto de clasificadores (desde un punto de vista matemático, esta es una intersección mejorada);
- ensacado (ensacado): recoge clasificadores sofisticados, mientras que simultáneamente entrena al básico (mejora de la asociación);
- Correción de errores de codificación de salida.
El método de conjunto es una herramienta más poderosa en comparación con los modelos de pronóstico independientes, porque:
- minimiza la influencia de los accidentes promediando los errores de cada clasificador base;
- reduce la dispersión, ya que varios modelos diferentes basados en diferentes hipótesis tienen más probabilidades de llegar al resultado correcto que uno tomado por separado;
- excluye ir más allá del alcance del conjunto: si la hipótesis agregada está fuera del conjunto de hipótesis básicas, en la etapa de formación de la hipótesis combinada se expande usando un método u otro, y la hipótesis ya está incluida en ella.
7. Algoritmos de agrupamientoLa agrupación consiste en la distribución de muchos objetos en categorías para que en cada categoría, el grupo, se encuentren los elementos más similares.
Puede agrupar objetos usando diferentes algoritmos. Los más utilizados son:
- basado en el centro de gravedad del triángulo;
- basado en la conexión;
- reducción dimensional;
- densidad (basada en agrupamiento espacial);
- probabilístico
- aprendizaje automático, incluidas las redes neuronales.
Los algoritmos de agrupamiento se utilizan en biología (el estudio de la interacción de genes en un genoma con hasta varios miles de elementos), sociología (procesando los resultados de estudios sociológicos utilizando el método Ward, produciendo grupos con dispersión mínima y aproximadamente del mismo tamaño) y tecnología de la información.
8. Método del componente principal (PCA)El método de componentes principales, o PCA, es una operación estadística sobre transformación ortogonal, cuyo objetivo es traducir observaciones de variables que de alguna manera pueden estar interconectadas en un conjunto de componentes principales, valores que no están correlacionados linealmente.
Las tareas prácticas en las que se aplica el PCA son la visualización y la mayoría de los procedimientos para comprimir, simplificar y minimizar los datos para facilitar el proceso de aprendizaje. Sin embargo, el método del componente principal no es adecuado para situaciones donde los datos iniciales están mal ordenados (es decir, todos los componentes del método se caracterizan por una alta dispersión). Por lo tanto, su aplicabilidad está determinada por qué tan bien se estudia y describe el área temática.
9. Descomposición singularEn álgebra lineal, una descomposición singular, o SVD, se define como la descomposición de una matriz rectangular que consiste en números complejos o reales. Entonces, una matriz M de dimensión [m * n] se puede descomponer de tal manera que M = UΣV, donde U y V son matrices unitarias, y Σ es diagonal.
Uno de los casos especiales de descomposición singular es el método del componente principal. Las primeras tecnologías de visión por computadora se desarrollaron sobre la base de SVD y PCA y funcionaron de la siguiente manera: primero, las caras (u otros patrones que se encontraban) se representaron como la suma de los componentes básicos, luego se redujeron sus dimensiones, después de lo cual se compararon con las imágenes de la muestra. Los algoritmos modernos de descomposición singular en el aprendizaje automático, por supuesto, son mucho más complejos y sofisticados que sus predecesores, pero su esencia ha cambiado en general.
10. Análisis de componentes independientes (ICA)Este es uno de los métodos estadísticos que revela factores ocultos que afectan variables aleatorias, señales, etc. ICA genera un modelo generativo para bases de datos multifactoriales. Las variables en el modelo contienen algunas variables ocultas, y no hay información sobre las reglas para mezclarlas. Estas variables ocultas son componentes de muestra independientes y se consideran señales no gaussianas.
En contraste con el análisis de los componentes principales, que está asociado con este método, el análisis de componentes independientes es más efectivo, especialmente en aquellos casos en que los enfoques clásicos son impotentes. Descubre las causas ocultas de los fenómenos y, debido a esto, ha encontrado una amplia aplicación en varios campos, desde la astronomía y la medicina hasta el reconocimiento del habla, las pruebas automáticas y el análisis de la dinámica de los indicadores financieros.
1.5 Ejemplos de la vida real
Ejemplo 1. Diagnóstico de enfermedades.Los pacientes en este caso son objetos, y los signos son todos los síntomas que tienen, antecedentes, resultados de pruebas, medidas de tratamiento ya tomadas (de hecho, el historial médico completo, formalizado y dividido en criterios separados). Algunos signos (género, presencia o ausencia de dolor de cabeza, tos, erupción cutánea y otros) se consideran binarios. La evaluación de la gravedad de la afección (extremadamente grave, moderada, etc.) es un signo ordinal, y muchos otros son cuantitativos: el volumen del medicamento, el nivel de hemoglobina en la sangre, la presión arterial y la frecuencia cardíaca, la edad, el peso. Después de recopilar información sobre la condición del paciente, que contiene muchos de estos signos, puede descargarla a una computadora y, utilizando un programa capaz de aprendizaje automático, resolver los siguientes problemas:
- realizar un diagnóstico diferencial (determinar el tipo de enfermedad);
- elija la estrategia de tratamiento más óptima;
- predecir el desarrollo de la enfermedad, su duración y resultado;
- calcular el riesgo de posibles complicaciones;
- identificar síndromes: conjuntos de síntomas asociados con una enfermedad o trastorno dado.
Ningún médico puede procesar toda la gama de información para cada paciente al instante, resumir una gran cantidad de otros registros médicos similares e inmediatamente dar un resultado claro. Por lo tanto, el aprendizaje automático se está convirtiendo en una herramienta indispensable para los médicos.
Ejemplo 2. La búsqueda de depósitos minerales.En el papel de los signos aquí hay información obtenida por exploración geológica: la presencia de rocas en el territorio (y esto será un signo del tipo binario), sus propiedades físicas y químicas (que se descomponen en una serie de signos cuantitativos y cualitativos).
Para la muestra de entrenamiento, se toman 2 tipos de precedentes: áreas donde los depósitos minerales están presentes con precisión y áreas con características similares donde no se encontraron estos minerales. Pero la extracción de minerales raros tiene sus propios detalles: en muchos casos, el número de signos excede significativamente el número de objetos, y los métodos de las estadísticas tradicionales son poco adecuados para tales situaciones. Por lo tanto, en el aprendizaje automático, el énfasis está en detectar patrones en una matriz de datos ya recopilada. Para esto, se determinan conjuntos pequeños y más informativos de características que son más indicativos de responder la pregunta de investigación: ¿hay un fósil particular en el área indicada o no? Se puede establecer una analogía con la medicina: los depósitos también pueden revelar sus propios síndromes. El valor del uso del aprendizaje automático en esta área radica en el hecho de que los resultados obtenidos no solo son prácticos, sino también de gran interés científico para los geólogos y geofísicos.
Ejemplo 3. Evaluación de la confiabilidad y solvencia de los candidatos a préstamos:todos los bancos involucrados en la emisión de préstamos enfrentan esta tarea a diario. La necesidad de automatizar este proceso se ha retrasado hace mucho tiempo, en los años 1960-1970, cuando comenzó el auge de las tarjetas de crédito en los Estados Unidos y otros países.Las personas que solicitan un préstamo de un banco son objetos, pero los signos diferirán dependiendo de si se trata de una persona física o jurídica. Una descripción característica de un individuo privado que solicita un préstamo se forma sobre la base de los datos del cuestionario que completa. Luego, el cuestionario se complementa con otra información sobre el cliente potencial que el banco recibe a través de sus canales. Algunos de ellos se relacionan con signos binarios (género, disponibilidad de un número de teléfono), otros con signos ordinales (educación, posición), la mayoría son cuantitativos (monto del préstamo, monto total adeudado a otros bancos, edad, número de miembros de la familia, ingresos, antigüedad) ) o nominal (nombre, nombre de la empresa empleadora, profesión, dirección).Para el aprendizaje automático, se elabora una muestra, que incluye a los prestatarios cuyo historial de crédito se conoce. Todos los prestatarios se dividen en clases, en el caso más simple hay 2 de ellos: prestatarios "buenos" y "malos", y la decisión positiva de otorgar un préstamo se toma solo a favor de los "buenos".Un algoritmo de aprendizaje automático más complejo, denominado calificación crediticia, permite que cada prestatario reciba puntos condicionales por cada atributo, y la decisión de otorgar un préstamo dependerá de la cantidad de puntos obtenidos. Durante el aprendizaje automático, los sistemas de calificación crediticia primero asignan un cierto número de puntos a cada característica y luego determinan las condiciones para emitir un préstamo (plazo, tasa de interés y otros parámetros que se reflejan en el contrato de préstamo). Pero también hay otro algoritmo de aprendizaje del sistema, basado en casos de uso.PD En los siguientes artículos, examinaremos con más detalle los algoritmos para crear modelos de aprendizaje automático, incluida la parte matemática y la implementación en Python.