Guía de aprendizaje automático de Python desde cero (1): introducción a los conceptos básicos

Resumen de columnas

Esta columna compartirá algunas experiencias de aprendizaje de los blogueros al comenzar con el aprendizaje automático. Espero que puedan obtener algo de mi experiencia de aprendizaje. Puede haber inexactitudes y omisiones, ¡perdóneme!

Al preparar esta columna, el blogger asume que los lectores tienen cierta base en Python/programación. Esta columna también asumirá que los lectores tienen algunos conocimientos básicos de aprendizaje automático (como algunas definiciones de vocabulario básico).

¿Qué es el aprendizaje automático/inclinación automática/ML?

Aquí hay una referencia a la definición dada por Tom Mitchell, el padre del aprendizaje automático, en su libro de texto Machine Learning :

Se dice que un programa de computadora aprende de la experiencia E y de una medida de desempeño P con respecto a alguna clase de tareas T si su desempeño ( medido por P ) mejora con la experiencia E.

En pocas palabras, el aprendizaje automático se ocupa del diseño y desarrollo de algoritmos que puedan mejorarse continuamente con la experiencia. Cada algoritmo de aprendizaje automático (en adelante, ML) consta de al menos tres partes:

  1. 任务/Task。La tarea se refiere al objetivo que el algoritmo quiere alcanzar. Por ejemplo, la tarea de los algoritmos de reconocimiento facial es identificar y clasificar con precisión y rapidez los rasgos faciales humanos a partir de señales visuales.
  2. 性能/Performance。El rendimiento se refiere a alguna medida de la efectividad de un algoritmo. La mayoría de los algoritmos de aprendizaje automático utilizan la precisión para determinar si el algoritmo ha sido entrenado.
  3. 经验/Experience。La experiencia se refiere a lo que el algoritmo puede utilizar para aprender. Para algoritmos simples, una base de datos estática proporcionada externamente puede ser el objetivo del aprendizaje. Para algoritmos más complejos (como el aprendizaje por refuerzo/aprendizaje por refuerzo), su experiencia es generada y recopilada por el propio objeto de entrenamiento.

Lo que diferencia al ML de otros campos informáticos tradicionales es que los algoritmos de ML son uno 黑箱模型/Black-box model. Cuando escribimos código nosotros mismos, normalmente escribimos uno 白箱模型/White-box model, es decir, utilizamos el modelo/algoritmo que escribimos y los datos de entrada para producir resultados. Pero la diferencia con los algoritmos ML es que le damos datos de entrada y salida, y el algoritmo generará un modelo que se ajusta a los datos en función de los datos. De esta manera, muchos procesos que los humanos no pueden comprender fácilmente (como el reconocimiento facial) pueden ser aprendidos y comprendidos en un alto nivel por las máquinas a través de la experiencia que aportan los datos.

Proceso de aprendizaje automático

El desarrollo de una aplicación ML completa generalmente tiene el siguiente proceso:

  1. 确定任务/Problem Definition。En este paso, es necesario aclarar cuál es la tarea/tarea del algoritmo ML y determinar qué modelo/índice de evaluación del desempeño/tipo de datos es el más efectivo. Este paso es fundamental porque nosotros, como seres humanos, tenemos 归纳偏置/Inductive biasque tomar decisiones y suposiciones subjetivas sobre la naturaleza del problema. Para problemas complejos, como los vehículos autónomos, ciertos sesgos inductivos (como pensar que un bosque aleatorio de tres capas de profundidad es el mejor modelo) pueden tener graves consecuencias.
  2. 获取数据/Data Ingestion。En este paso necesitamos obtener los datos utilizados para entrenar el modelo. Por lo general, hay dos formas de obtener datos: la primera es obtenerlos usted mismo (como medir la humedad y la temperatura todos los días) y la segunda es obtener los datos de otras personas (la fuente más común y simple es Kaggle ) . Los datos generalmente incluyen dos partes: 特征/Featuresy 标签/Labels. Una característica representa la entrada que toma el modelo, como una imagen. La etiqueta representa el resultado esperado del modelo, como el nombre del animal en esta imagen.
  3. 预处理数据/Data Preparation。Inevitablemente encontraremos algunos datos sin sentido o incompletos. En este momento tenemos que plantearnos si borrarlos o completarlos de otra forma. También podemos hacer algo de ingeniería de funciones/Ingeniería de funciones para enriquecer más nuestros datos.
  4. 分离数据/Data Segregation。A veces tenemos que decidir qué datos se utilizan para el entrenamiento y qué datos se utilizan para evaluar el rendimiento del modelo. Si un modelo puede 训练集/Training Setlograr una alta precisión en , pero 测试集/Test Setuna baja precisión en , lo llamamos que 过拟合/Overfittingel algoritmo sobrecomprende las características de los datos de entrenamiento, lo que hace que tenga un rendimiento deficiente en datos invisibles. Viceversa, si el modelo tiene 训练集/Training Setuna precisión menor en pero 测试集/Test Setuna precisión mayor en , lo llamamos 欠拟合/Underfittingque el modelo no ha tenido tiempo de captar bien las características de los datos de entrenamiento.
  5. 训练模型/Model Training。Los modelos de entrenamiento a menudo deben repetirse muchas veces y se seleccionan diferentes hiperparámetros/hiperparámetros para lograr un rendimiento diferente del modelo. Este paso también requiere relativamente tiempo y requiere mucha computación.
  6. 评估性能/Candidate Model Evaluation。Necesitamos monitorear constantemente el desempeño del modelo para elegir el modelo más apropiado.
  7. 应用模型/Model Deployment。Empaquete el modelo entrenado, incorpórelo en la aplicación y ábralo al público para realizar pruebas.
  8. 持续监测性能/Performance Monitoring。El rendimiento del modelo se puede volver a entrenar y mejorar con los datos recibidos después del lanzamiento.

proceso de aprendizaje automático

A menudo, es necesario repetir los pasos del tres al seis muchas veces para encontrar un modelo más adecuado. Dado que estos pasos dependen en gran medida del sesgo inductivo, es imposible determinar de manera rigurosa y precisa el modelo, los superparámetros y los datos más apropiados, por lo que se le llama "alquimia", es decir, tomar el elixir (el modelo entrenado) de el horno de alquimia.), solo puedes conocer la calidad (rendimiento) de Dan (modelo) sacándolo y mirándolo (evaluando el desempeño), y no hay garantía de que el Dan (modelo entrenado) que practiques por segundo El tiempo será mejor que la primera vez. Algunos estudiantes incluso utilizaron las semillas del generador de números aleatorios como números de lotería.

Grandes categorías de aprendizaje automático

En términos generales, los algoritmos de ML se pueden dividir en tres categorías según los datos y los métodos de aprendizaje que requieren:

  1. 监督学习/Supervised Learning/SL。Este tipo de algoritmo requiere tanto 特征/Featuresy en los datos 标签/Labels. Al igual que un maestro que enseña a sus estudiantes a resolver un problema, debe decirles claramente cuál es la respuesta correcta después de que terminen de responder.
  2. 非监督学习/Unsupervised Learning/UL。Los datos para estos algoritmos sólo son necesarios 特征/Features, no obligatorios 标签/Labels. Al igual que un niño que juega con bloques de construcción, colocará y combinará los bloques de acuerdo con ciertas reglas que observa.
  3. 强化学习/Reinforcement Learning/RL。Este tipo de algoritmo no requiere ningún dato, pero sí uno 训练对象/Agentque pueda explorar por sí solo y algunas sumas 环境/Environmentque pueda realizar . Por ejemplo, si se coloca una lombriz en un laberinto con azúcar y corriente eléctrica, la lombriz aprenderá mediante prueba y error cómo obtener recompensas y pasar el laberinto.行为/Actions奖励函数/Reward Function

Preparación antes de empezar

Habiendo dicho todo esto, presentemos brevemente el entorno y el software necesarios para el aprendizaje automático en esta columna.

Anaconda es un administrador de entorno Python muy conveniente con muchas funciones integradas. Lo que utilizamos principalmente son sus Jupyter Notebookfunciones. Debido a la ventaja de que su código se puede ejecutar y depurar en bloques, podemos depurar fácilmente el modelo y agregar instrucciones. Para Jupyter Notebookobtener instrucciones de uso, consulte el tutorial del sitio web oficial . El blogger también agregará el archivo ipynb correspondiente a cada blog, ¡así que estad atentos!

Conclusión

En el próximo blog, el blogger presentará cómo utilizar métodos ML para 普通最小二乘法/Ordinary Least Sqares/OLSimplementar la regresión lineal. Si tienes alguna pregunta o sugerencia, no dudes en comentar o enviar un mensaje privado. Codificar no es fácil. Si te gusta el contenido del blogger, ¡dale me gusta y apóyalo!

Supongo que te gusta

Origin blog.csdn.net/EricFrenzy/article/details/131297961
Recomendado
Clasificación