Serie de conceptos básicos de tecnología de modelos grandes de inteligencia artificial: procesamiento de datos a gran escala e ingeniería de funciones

Autor: Zen y el arte de la programación informática

1. Introducción a los antecedentes

Desde la llegada del big data, cada vez más personas investigan y desarrollan productos y servicios de inteligencia artificial (IA) basados ​​en big data, como sistemas de recomendación, motores de búsqueda, reconocimiento de imágenes, asistentes de voz, etc. Sin embargo, cómo procesar datos masivos de forma eficaz y extraer sus características se ha convertido en una dificultad importante y un desafío clave al que se enfrentan muchos investigadores de modelos de inteligencia artificial. Cómo entrenar de manera eficiente modelos de aprendizaje automático de alta dimensión y alta latitud, y cómo realizar la reducción de dimensionalidad, la selección de características y la extracción de características en los datos se han convertido en la clave para resolver este problema. Para resolver este problema, Google lanzó TensorFlow en los últimos años y el equipo deepMind del equipo de Google en Berkeley también está explorando constantemente nuevas tecnologías de inteligencia artificial y ha logrado grandes avances a través de métodos de aprendizaje profundo. A medida que aumenta la complejidad del modelo, el tiempo dedicado a la formación se vuelve cada vez más largo. Por lo tanto, cómo procesar y entrenar estos modelos de manera rápida y eficiente se ha convertido en una máxima prioridad en el campo de la IA. 2. Conceptos centrales y conexiones Primero, se deben aclarar dos conceptos: Procesamiento de datos e Ingeniería de funciones. Corresponden a diferentes etapas del proceso de formación y modelado del modelo de aprendizaje automático.

  • Procesamiento de datos: La etapa de procesamiento de datos incluye la recopilación, limpieza, almacenamiento, conversión y otros enlaces de datos. El objetivo principal es transformar datos sin procesar en datos estructurados que puedan usarse para modelar, de modo que el modelo pueda analizar, comprender y predecir mejor el significado inherente de los datos.
  • Ingeniería de características: la ingeniería de características es una rama de la etapa de procesamiento de datos, su objetivo principal es extraer, transformar o eliminar alguna información indispensable en los datos originales, para que el modelo pueda generalizarse más, adaptarse a los cambios y mejorar el rendimiento. La ingeniería de características puede ayudarnos a descubrir, comprender y seleccionar características óptimas, reducir efectivamente la complejidad computacional y mejorar la efectividad del modelo.

2.1 Descripción general del procesamiento de datos a gran escala y la ingeniería de características En la actualidad, el procesamiento de datos a gran escala y la ingeniería de características involucran principalmente tres aspectos: recopilación de datos, extracción de características y selección de características.

  • Recopilación de datos: el proceso de recopilación de datos generalmente lo completa la plataforma de adquisición de datos, incluidos rastreadores, interfaces API, bases de datos y archivos, etc. El objetivo es recopilar cantidades masivas de datos para su posterior procesamiento. Existen varios métodos de recopilación de datos, como rastrear información de Internet, llamar a servicios de datos a través de API y leer datos de repositorios fuera de línea.
  • Extracción de características: la extracción de características también se denomina ingeniería de características y se refiere a la extracción de características de los datos originales para lograr una mejor coincidencia de patrones, clasificación, regresión, agrupación y otras tareas. Los algoritmos comúnmente utilizados para los métodos de ingeniería de características incluyen KNN, árbol de decisión, Bayes ingenuo, SVM, PCA, etc. La idea básica de la ingeniería de características es encontrar información útil a partir de datos existentes, establecer representaciones de características, reducir la complejidad del modelo y mejorar la precisión de la predicción del modelo.
  • Selección de funciones: la selección de funciones es una tarea importante en la ingeniería de funciones. La selección de funciones consiste en seleccionar un subconjunto adecuado entre muchas funciones y eliminar funciones redundantes, inútiles o repetidas. La selección de características tiene un efecto positivo en el entrenamiento del modelo, lo que puede mejorar la capacidad de generalización del modelo, reducir el sobreajuste y mejorar la solidez del modelo. Existen muchos métodos para la selección de funciones, como el método de filtrado, el método Wrapper, el método de incrustación, el método de eliminación recursiva, etc.

2.2 Escenarios de aplicación de TensorFlow TensorFlow es un marco de software de código abierto que se utiliza para crear modelos de aprendizaje automático. TensorFlow admite múltiples lenguajes de programación, incluidos Python, C++, Java, etc. Debido a las poderosas funciones de TensorFlow, se usa ampliamente en muchos campos, incluida la visión por computadora, el procesamiento del lenguaje natural, los sistemas de recomendación, la bioinformática, etc. Las características principales de TensorFlow son las siguientes:

  • Fácil de usar: TensorFlow proporciona una interfaz flexible y fácil de usar, lo que facilita mucho el proceso de creación, capacitación e implementación del modelo.
  • Portabilidad: TensorFlow puede ejecutarse en varias plataformas, incluidas CPU, GPU, terminales móviles, etc., y proporciona herramientas de optimización automática para diferentes plataformas.
  • Diseño modular: TensorFlow adopta un concepto de diseño modular y los diferentes componentes se comunican entre sí a través de límites claros, comunicación simple e interfaces consistentes.
  • Admite múltiples plataformas: TensorFlow admite los principales sistemas operativos, incluidos Windows, Mac OS X, Linux, etc., y se pueden usar GPU para la aceleración en cada plataforma. Los escenarios de aplicación de TensorFlow incluyen los siguientes:
  • Procesamiento del lenguaje natural: TensorFlow tiene una amplia experiencia en el campo del procesamiento del lenguaje natural. Por ejemplo, se utiliza para tareas como clasificación de texto, generación de vectores de palabras, reconocimiento de entidades con nombre, resumen de texto y generación de texto. Entre ellas, la tarea de generación de texto es la aplicación más práctica.
  • Reconocimiento de imágenes: TensorFlow también tiene una amplia experiencia en el campo del reconocimiento de imágenes. Por ejemplo, se utiliza para tareas como detección de objetos, restauración de imágenes, superresolución de imágenes y transferencia de estilos de imágenes.
  • Motor de búsqueda: la escalabilidad y las funciones distribuidas de TensorFlow le permiten responder rápidamente a las solicitudes en presencia de grandes cantidades de datos.
  • Sistema de recomendación: TensorFlow también tiene una amplia experiencia en el campo de los sistemas de recomendación. Por ejemplo, se utiliza para tareas como recomendación de películas, recomendación de noticias y recomendación de platos.
  • Otros campos: TensorFlow también se utiliza ampliamente en otros campos, como la bioinformática, el análisis de mercados financieros, la gestión médica y sanitaria, etc.

3. Explicación detallada de los principios del algoritmo central, pasos de operación específicos y fórmulas de modelos matemáticos. Actualmente, los métodos de ingeniería de características y procesamiento de datos a gran escala incluyen principalmente preprocesamiento de datos, ingeniería de características, reducción de dimensionalidad, selección de características, detección de anomalías, bosque aleatorio, GBDT. , etc. 3.1 Preprocesamiento de datos El objetivo principal del preprocesamiento de datos es convertir datos sin procesar en datos estructurados que puedan usarse para modelar, lo que generalmente incluye limpieza de datos, conversión de datos, normalización de datos, etc. La limpieza de datos incluye el llenado de datos faltantes, el procesamiento de valores atípicos, etc.; la conversión de datos incluye la conversión de formato de datos, la conversión de codificación de datos, etc.; la normalización de datos se refiere a la estandarización o eliminación del significado cero de los datos. Las técnicas de preprocesamiento comúnmente utilizadas incluyen:

  • Procesamiento de valores faltantes: complete los valores faltantes usando modo/media/mediana, etc.
  • Procesamiento de valores atípicos: para conjuntos de datos con menos valores atípicos, se descartan directamente; para conjuntos de datos con más valores atípicos, se pueden detectar y procesar mediante métodos como el método de rango intercuartil.
  • Conversión de funciones: convierta variables categóricas en variables numéricas.
  • Selección de funciones: eliminar funciones irrelevantes, PCA, reducción de dimensionalidad de funciones, etc.
  • Segmentación de datos: divida los datos en conjunto de entrenamiento, conjunto de validación y conjunto de prueba.

3.2 Ingeniería de características La ingeniería de características se refiere a la extracción, transformación o eliminación de características en datos originales para un mejor modelado y predicción. Los pasos operativos de la ingeniería de características generalmente se dividen en extracción de características, transformación de características y selección de características. Extracción de características: la extracción de características consiste en extraer características de los datos existentes. Los algoritmos comúnmente utilizados para los métodos de extracción de características incluyen KNN, árbol de decisión, Naive Bayes, SVM, PCA, etc. Transformación de características: la transformación de características consiste en convertir variables continuas en variables binarias, variables categóricas en variables numéricas, variables de tiempo en variables de secuencia, etc. Selección de funciones: la selección de funciones consiste en seleccionar un subconjunto adecuado entre muchas funciones y eliminar funciones redundantes, inútiles o repetidas. La selección de características tiene un efecto positivo en el entrenamiento del modelo, lo que puede mejorar la capacidad de generalización del modelo, reducir el sobreajuste y mejorar la solidez del modelo. Existen muchos métodos para la selección de funciones, como el método de filtrado, el método Wrapper, el método de incrustación, el método de eliminación recursiva, etc. 3.3 Reducción de dimensionalidad La reducción de dimensionalidad consiste en realizar operaciones de reducción de dimensionalidad en características para reducir la complejidad del modelo. Las técnicas de reducción de dimensionalidad comúnmente utilizadas incluyen análisis de componentes principales (PCA), técnicas de kernel (análisis discriminante lineal de kernel), ICA, etc. PCA es una tecnología de reducción de dimensionalidad que regulariza, transforma linealmente y proyecta datos. Puede usarse para selección de características, reducción de dimensionalidad de datos, visualización de datos, compresión de datos, etc. La técnica del kernel (análisis discriminante lineal del kernel) es una técnica de reducción de dimensionalidad que realiza transformaciones y proyecciones no lineales en datos. ICA es un algoritmo de análisis de componentes independientes (ICA). 3.4 Selección de funciones La selección de funciones consiste en seleccionar un subconjunto adecuado entre muchas funciones y eliminar funciones redundantes, inútiles o repetidas. Los métodos de selección de funciones más utilizados incluyen el método de filtro, el método de envoltura, el método de incrustación y el método de eliminación recursiva. El método de filtro consiste en filtrar algunas características que rara vez aparecen, el método Wrapper consiste en retener las características con un buen rendimiento de clasificación, el método de incrustación consiste en asignar variables continuas a un espacio de baja dimensión y el método de eliminación recursiva consiste en eliminar iterativamente. todas las características con pequeñas correlaciones características hasta que se cumplan los requisitos. 3. 5 Detección de anomalías La detección de anomalías se refiere a la detección de valores atípicos basada en ciertas características estadísticas. Los métodos de detección de anomalías más utilizados incluyen el método de puntuación Z, el método IQR, el método LOF, etc. El método de puntuación Z se basa en la puntuación Z obtenida de los datos de la muestra observados para determinar si es un valor atípico; el método IQR se basa en los intervalos de cuartil superior e inferior de los datos de la muestra para determinar si es un valor atípico; el El método LOF (factor de valores atípicos locales) es un método de detección de valores atípicos local que utiliza la relación de distancia entre muestras para determinar valores atípicos. 3.6 Bosque aleatorio El bosque aleatorio es un método de aprendizaje conjunto. El bosque aleatorio es un método de ensacado basado en un modelo de árbol. Al construir múltiples árboles de decisión, cada árbol tiene solo unos pocos atributos aleatorios (es decir, perturbaciones aleatorias), se entrena en paralelo y finalmente genera resultados completos. La ventaja del bosque aleatorio es que tiene una gran capacidad anti-ruido y no se ve afectado fácilmente por valores atípicos, pero la desventaja es que requiere mucha memoria para grandes conjuntos de datos. 3.7 GBDT El árbol de decisión de impulso de gradiente, también llamado GBDT, es un método de impulso. Genera una serie de modelos débiles a través de iteraciones repetidas y finalmente combina estos modelos débiles para obtener un modelo fuerte. La ventaja de GBDT es que es simple, eficiente y adecuado para datos de alta dimensión, pero la desventaja es que puede provocar un ajuste excesivo. 3.8 Estrategias para el procesamiento de big data y la ingeniería de funciones en las competencias de Kaggle Las competencias de Kaggle (una plataforma de competencia de aprendizaje automático) a menudo involucran cantidades masivas de datos, por lo que se requiere el preprocesamiento de datos y la ingeniería de funciones correspondientes. Las estrategias para el procesamiento de big data y la ingeniería de funciones en la competencia Kaggle son las siguientes: 8 estrategias para el procesamiento de big data y la ingeniería de funciones en las competencias de Kaggle Las competencias de Kaggle (una plataforma de competencia de aprendizaje automático) a menudo involucran cantidades masivas de datos, por lo que se requiere el preprocesamiento de datos y la ingeniería de funciones correspondientes. Las estrategias para el procesamiento de big data y la ingeniería de funciones en la competencia Kaggle son las siguientes: 8 estrategias para el procesamiento de big data y la ingeniería de funciones en las competencias de Kaggle Las competencias de Kaggle (una plataforma de competencia de aprendizaje automático) a menudo involucran cantidades masivas de datos, por lo que se requiere el preprocesamiento de datos y la ingeniería de funciones correspondientes. Las estrategias para el procesamiento de big data y la ingeniería de funciones en la competencia Kaggle son las siguientes:

  1. Muestreo: al muestrear datos, la cantidad de datos es limitada y la cantidad de cálculo se reduce manteniendo la calidad de los datos.
  2. Muestreo estratificado: utilizar diferentes proporciones muestrales para diferentes tipos de muestras.
  3. Mejora de datos: a través de múltiples mejoras a los datos, se expande el volumen de datos y se reduce la desviación del modelo.
  4. Estandarización de datos: unificar todos los datos en una misma dimensión.
  5. Eliminar valores atípicos: cuando haya valores atípicos, elimine la muestra.
  6. Procesamiento de valores faltantes: según el tipo de característica, se adoptan diferentes métodos de procesamiento, como llenado medio, llenado de modo, llenado personalizado, etc.
  7. Normalización: estandarice todos los datos para eliminar efectos dimensionales.
  8. Procesamiento de valores atípicos: cuando la distribución de datos está desequilibrada, se puede procesar mediante submuestreo o sobremuestreo.
  9. Reducción de dimensionalidad PCA: la reducción de dimensionalidad PCA se realiza en todas las funciones para reducir la cantidad de funciones.
  10. Selección de características: extracción de características importantes mediante cribado, empaquetado, incrustación y otros métodos.
  11. Codificación de etiquetas: convierta etiquetas de categorías en etiquetas numéricas.

Supongo que te gusta

Origin blog.csdn.net/universsky2015/article/details/133594553
Recomendado
Clasificación