Cómo aprender el aprendizaje automático desde el nivel cero

He escrito sobre esto en otras respuestas. Copiando la respuesta aquí como referencia:

I. LA GRAN IMAGEN:

Problema que estamos tratando de resolver : dados algunos datos, el objetivo del aprendizaje automático es encontrar patrones en los datos. Hay varios entornos, como el aprendizaje supervisado, el aprendizaje no supervisado, el aprendizaje de refuerzo, etc. Pero el más común es el aprendizaje supervisado; así que nos centraremos solo en eso en el panorama general. Aquí, se le dan datos etiquetados [llamados “datos de entrenamiento”], y desea inferir etiquetas en nuevos datos [llamados “datos de prueba”]. Por ejemplo, considere los autos sin conductor. Los datos etiquetados incluirían la imagen de la carretera por delante en una instancia particular como se ve desde el automóvil, y la etiqueta correspondiente sería el ángulo de dirección [supongamos que la velocidad se controla manualmente, por simplicidad]. El objetivo del automóvil autónomo es que, dada una nueva imagen de la carretera, el sistema debería poder determinar el ángulo de dirección óptimo.

Cómo resolver : La mayor parte del aprendizaje automático supervisado se puede ver utilizando el siguiente marco: se le dan puntos de datos de capacitación [matemática] (x_1, y_1), \ ldots, (x_n, y_n) [/ matemática], donde [matemática] x_i [/ ​​math] son ​​los datos [por ejemplo, imagen de la carretera en el ejemplo anterior], y [math] y_i [/ ​​math] es la etiqueta correspondiente. Desea encontrar una función [math] f [/ math] que se ajuste bien a los datos, es decir, dado [math] x_i [/ ​​math], genera algo lo suficientemente cercano a [math] y_i [/ ​​math]. Ahora, ¿de dónde sacas esta función [matemáticas] f [/ matemáticas]? Una forma, que es la más común en ML, es definir una clase de funciones [math] \ mathcal {F} [/ math], y buscar en esta clase la función que mejor se ajuste a los datos. Por ejemplo, si desea predecir el precio de un apartamento en función de características como el número de habitaciones, el número de baños, el área cubierta, etc., puede suponer razonablemente que el precio es una combinación lineal de todas estas características, en cuyo caso, la clase de función [math] \ mathcal {F} [/ math] se define como la clase de todas las funciones lineales. Para los autos sin conductor, la clase de función [math] \ mathcal {F} [/ math] que necesita será mucho más compleja.

Cómo evaluar : Tenga en cuenta que simplemente ajustar los datos de entrenamiento no es suficiente. Los datos son ruidosos, por ejemplo, todos los apartamentos con la misma cantidad de habitaciones, la misma cantidad de baños y la misma área cubierta no tienen el mismo precio. Del mismo modo, si etiqueta los datos de los automóviles autónomos, puede esperar cierta aleatoriedad debido al conductor humano. Lo que necesita es que su marco de trabajo pueda extraer el patrón e ignorar el ruido aleatorio. En otras palabras, debería funcionar bien en datos invisibles . Por lo tanto, la forma de evaluar los modelos es guardar una parte de los datos de entrenamiento [llamado “conjunto de validación”] y predecir sobre estos datos para medir qué tan bueno es su modelo.

Ahora, independientemente de lo que estudies en el aprendizaje automático, debes tratar de relacionar los temas con el panorama general anterior. Por ejemplo, en la regresión lineal, la clase de función es lineal y el método de evaluación es la pérdida cuadrada, en SVM lineal, la clase de función es lineal y el método de evaluación es la pérdida de bisagra, y así sucesivamente. Primero entienda estos algoritmos a alto nivel. Luego, entra en los detalles técnicos. Verá que encontrar la mejor función [matemática] f [/ matemática] en la clase de función [matemática] \ matemática {F} [/ matemática] a menudo resulta en un problema de optimización, para lo cual utiliza el descenso de gradiente estocástico.


II HOJA DE RUTA PARA EL APRENDIZAJE DE LA MÁQUINA DE APRENDIZAJE:

Para tener una base matemática básica, debe tener algún conocimiento de los siguientes conceptos matemáticos:
– Probabilidades y estadísticas
– Álgebra lineal
– Optimización
– Cálculo multivariable
– Análisis funcional (no esencial)
– Lógica de primer orden (no esencial)
Puede encontrar material razonable sobre la mayoría de estos buscando “notas de conferencia ” en Google. Por lo general, encontrará buenas notas de clase compiladas por un profesor que enseña ese curso. Los primeros resultados deberían darle un buen conjunto para elegir. Vea la respuesta de Prasoon Goyal a ¿Cómo debo comenzar a aprender las matemáticas para el aprendizaje automático y desde dónde?
Hojea estos. No es necesario que los revise con mucho detalle. Puede volver a estudiar matemáticas cuando sea necesario mientras aprende ML.

Luego, para obtener una descripción general rápida de ML, puede seguir la hoja de ruta a continuación (he escrito sobre muchos de estos temas en varias respuestas sobre Quora; he vinculado los más relevantes para una referencia rápida).

Día 1:

  • Terminología básica:
    1. Configuraciones más comunes: configuración supervisada, configuración no supervisada, configuración semi-supervisada, aprendizaje de refuerzo.
    2. Problemas más comunes: Clasificación (binaria y multiclase), Regresión, Agrupación.
    3. Preprocesamiento de datos: normalización de datos.
  • Conceptos de conjuntos de hipótesis, error empírico, error verdadero, complejidad de conjuntos de hipótesis, regularización, compensación de sesgo-varianza, funciones de pérdida, validación cruzada.

Dia 2:

  • Conceptos básicos de optimización:
    1. Terminología y conceptos básicos: optimización convexa, lagrangiana, problemas primarios-duales, gradientes y subgraduados, [math] \ ell_1 [/ math] y [math] \ ell_2 [/ math] funciones objetivo regularizadas.
    2. Algoritmos: descenso de gradiente por lotes y descenso de gradiente estocástico, descenso de gradiente coordinado.
    3. Implementación: escriba código para el descenso de gradiente estocástico para una función objetivo simple, ajuste el tamaño del paso y obtenga una intuición del algoritmo.

Día 3:

  • Clasificación:
    1. Regresión logística
    2. Máquinas de vectores de soporte: intuición geométrica, formulaciones primarias-duales, noción de vectores de soporte, truco del núcleo, comprensión de hiperparámetros, búsqueda en cuadrícula.
    3. Herramienta en línea para SVM: juegue con esta herramienta SVM en línea (desplácese hacia abajo hasta “Interfaz gráfica”) para tener una idea del algoritmo.

Día 4:

  • Regresión:
    1. Regresión de cresta
  • Agrupación:
    1. algoritmo k-means y Expectation-Maximization.
    2. Agrupación jerárquica de arriba hacia abajo y de abajo hacia arriba.

Dia 5:

  • Métodos bayesianos:
    1. Terminología básica: Prioridades, posteriores, probabilidad, estimación de máxima probabilidad e inferencia máxima a posteriori.
    2. Modelos de mezcla gaussiana
    3. Asignación de Dirichlet latente: El modelo generativo y la idea básica de la estimación de parámetros.

Día 6:

  • Modelos gráficos:
    1. Terminología básica: redes bayesianas, redes de Markov / campos aleatorios de Markov.
    2. Algoritmos de inferencia: eliminación de variables, propagación de creencias.
    3. Ejemplos simples: Modelos ocultos de Markov. Modelo ising.

Días 7–8:

  • Redes neuronales:
    1. Terminología básica: neurona, función de activación, capa oculta.
    2. Redes neuronales convolucionales: capa convolucional, capa de agrupación, retropropagación.
    3. Redes neuronales basadas en memoria: redes neuronales recurrentes, memoria a corto y largo plazo.
    4. Tutoriales: estoy familiarizado con este tutorial de la antorcha (querrá consultar el directorio [math] \ texttt {1_supervised} [/ math]). Puede haber otros tutoriales en otros marcos de aprendizaje profundo.

Día 9:

  • Temas varios:
    1. Métodos de conjunto
    2. Árboles de decisión
    3. Sistemas de recomendación
    4. Procesos de decisión de Markov
    5. Bandidos multi-armados

Día 10: (día de presupuesto)

  • Puede usar el último día para ponerse al día con lo que queda de días anteriores, o aprender más sobre cualquier tema que le parezca más interesante / útil para su trabajo futuro.

Una vez que haya pasado por lo anterior, querrá comenzar con un curso en línea estándar o un texto de aprendizaje automático. El curso de Andrew Ng sobre Coursera es un buen punto de partida. Una versión avanzada del curso está disponible en The Open Academy (Machine Learning | The Open Academy). Los libros populares con los que tengo experiencia son los siguientes:

  • Reconocimiento de patrones y aprendizaje automático: Christopher Bishop
  • Aprendizaje automático: una perspectiva probabilística: Kevin P. Murphy

Si bien el libro de Murphy es más actual y más elaborado, creo que Bishop es más accesible para los principiantes. Puedes elegir uno de ellos según tu nivel.
En este punto, debe tener un conocimiento práctico del aprendizaje automático. Más allá de esto, si está interesado en un tema en particular, busque recursos en línea específicos sobre el tema, lea documentos seminales en el subcampo, intente encontrar algunos problemas más simples e impleméntelos.


Para el aprendizaje profundo, aquí hay un tutorial del laboratorio de Yoshua Bengio que se escribió en los primeros días del aprendizaje profundo: Tutoriales de aprendizaje profundo. Esto explica las ideas centrales en el aprendizaje profundo, sin entrar en muchos detalles.

Debido a que el aprendizaje profundo es un campo que es más empírico que teórico, es importante codificar y experimentar con modelos. Aquí hay un tutorial en TensorFlow que brinda implementaciones de muchas tareas diferentes de aprendizaje profundo: aymericdamien / TensorFlow-examples. Intente ejecutar los algoritmos y juegue con el código para comprender mejor los conceptos subyacentes.

Finalmente, puede consultar el libro Deep Learning, que explica el aprendizaje profundo de una manera mucho más sistemática y detallada. Para los últimos algoritmos que no están en el libro, deberá consultar los documentos originales.


III. CONSEJOS PARA LA APLICACIÓN:

Hay diferentes niveles en los que puedes entender un algoritmo.

En el nivel más alto, sabes lo que un algoritmo está tratando de hacer y cómo. Entonces, por ejemplo, el descenso de gradiente encuentra un mínimo local al dar pequeños pasos a lo largo del gradiente negativo.

Yendo un poco más profundo, profundizarás en las matemáticas. Nuevamente, tomando el descenso de gradiente, por ejemplo, aprenderá cómo tomar gradiente para cantidades de vectores, normas, etc. Con aproximadamente el mismo nivel de profundidad, también tendrá otras variantes del algoritmo, como manejar las restricciones en el descenso de gradiente. Este es también el nivel en el que aprende a usar bibliotecas para ejecutar su algoritmo específico.

Más profundo, implementa el algoritmo desde cero, con pequeños trucos de optimización. Por ejemplo, en Python, querrás usar la vectorización. Considere los siguientes dos fragmentos de código:

# Versión 1:

importar numpy como np

N = 10000000
a = np.random.rand (N, 1)
b = np.random.rand (N, 1)

para i en rango (N):
s = s + a [i] * b [i]

imprimir m

# Versión 2:

importar numpy como np

N = 10000000
a = np.random.rand (N, 1)
b = np.random.rand (N, 1)

s = a * b

imprimir m

Ambos tienen la misma funcionalidad, pero el segundo es 20 veces más rápido. Del mismo modo, aprenderá algunas otras técnicas de implementación importantes, como la paralelización del código, la creación de perfiles, etc. También aprenderá algunos detalles específicos del algoritmo, como cómo inicializar su modelo para una convergencia más rápida, cómo configurar la condición de terminación para compensar precisión y tiempo de entrenamiento, cómo manejar casos de esquina [como puntos de silla de montar en descenso de gradiente], etc. Finalmente, aprenderá técnicas para depurar el código de aprendizaje automático, que a menudo es complicado para los principiantes.

Finalmente, llega la profundidad a la que se escriben las bibliotecas. Esto requiere mucho más conocimiento de los sistemas que los pasos anteriores: saber cómo manejar datos muy grandes, eficiencia computacional, administración efectiva de la memoria, escribir código GPU, multihilo efectivo, etc.


Ahora, ¿con cuánto detalle necesitas conocer los algoritmos? En su mayor parte, no necesita conocer los algoritmos en la profundidad de la implementación de la biblioteca, a menos que esté en la programación de sistemas. Para los algoritmos más importantes en ML, como el descenso de gradiente, SVM, regresión logística, redes neuronales, etc., debe comprender las matemáticas y cómo usar las bibliotecas para ejecutarlas. Esto sería suficiente si no eres un ingeniero de ML y solo usas ML como una caja negra en tu trabajo diario.

Sin embargo, si va a trabajar como ingeniero de ML / científico de datos / científico de investigación, también debe implementar algunos algoritmos desde cero. Por lo general, los cubiertos en los cursos en línea son suficientes. Esto le ayuda a aprender muchos más matices de diferentes herramientas y algoritmos. Además, esto lo ayudará con los nuevos algoritmos que podría necesitar implementar.

El aprendizaje automático es una subárea central de la inteligencia artificial, ya que permite a las computadoras entrar en un modo de autoaprendizaje sin ser programado explícitamente. Cuando se exponen a nuevos datos, los programas de computadora están habilitados para aprender, crecer, cambiar y desarrollarse por sí mismos.

Si eres principiante en el aprendizaje automático, entonces debes comenzar desde lo básico de las matemáticas. El aprendizaje de las matemáticas depende del nivel y el interés del individuo. La investigación en fórmulas matemáticas y el avance teórico del aprendizaje automático continúa y algunos investigadores están trabajando en técnicas más avanzadas.

Los temas matemáticos importantes necesarios para el aprendizaje automático son:

1. álgebra

2. probabilidad

3. estadísticas

4. cálculo

puedes aprender machine learning a través de algunos cursos en línea:

Los mejores cursos en línea de aprendizaje automático son:

  • Machine Learning AZ ™: Python práctico y R en ciencia de datos

de este curso puedes aprender sobre:

Este curso es divertido y emocionante, pero al mismo tiempo nos sumergimos profundamente en Machine Learning. Está estructurado de la siguiente manera:

  • Parte 1: preprocesamiento de datos
  • Parte 2: Regresión: Regresión lineal simple, Regresión lineal múltiple, Regresión polinómica, SVR, Regresión de árbol de decisión, Regresión forestal aleatoria
  • Parte 3 – Clasificación: Regresión logística, K-NN, SVM, Kernel SVM, Naive Bayes, Clasificación del árbol de decisión, Clasificación aleatoria del bosque
  • Parte 4 – Agrupación: K-medias, agrupación jerárquica
  • Parte 5 – Aprendizaje de reglas de asociación: Apriori, Eclat
  • Parte 6 – Aprendizaje de refuerzo: límite de confianza superior, muestreo de Thompson
  • Parte 7 – Procesamiento del lenguaje natural: modelo de bolsa de palabras y algoritmos para PNL
  • Parte 8 – Aprendizaje profundo: redes neuronales artificiales, redes neuronales convolucionales
  • Parte 9 – Reducción de dimensionalidad: PCA, LDA, Kernel PCA
  • Parte 10 – Selección y refuerzo del modelo: validación cruzada k-fold, ajuste de parámetros, búsqueda de cuadrícula, XGBoost

Además, el curso está repleto de ejercicios prácticos basados ​​en ejemplos de la vida real. Entonces, no solo aprenderá la teoría, sino que también obtendrá práctica práctica para construir sus propios modelos.

y también…

  • Master Machine Learning en Python & R
  • Tener una gran intuición de muchos modelos de Machine Learning
  • Hacer predicciones precisas
  • Haz un análisis poderoso
  • Hacer modelos robustos de aprendizaje automático
  • Crea un fuerte valor agregado para tu negocio
  • Usar Machine Learning para fines personales
  • Manejar temas específicos como el aprendizaje por refuerzo, PNL y aprendizaje profundo

cursos en línea adicionales de aprendizaje automático:

  • Bootcamp de ciencia de datos y aprendizaje automático con R
  • Aprendizaje automático para ciencia de datos
  • principiante a avanzado: aprendizaje automático y redes neuronales

Libros de texto sugeridos para el aprendizaje automático: (solo con fines de referencia)

  • Aprendizaje automático práctico con Scikit-Learn y TensorFlow: conceptos, herramientas y técnicas para construir sistemas inteligentes por Aurélien Géron
  • scikit-learn, un aprendizaje automático para principiantes absolutos: una introducción en inglés sencillo por Oliver Theobald

TODO LO MEJOR….

El aprendizaje automático es un campo de la informática que brinda a las computadoras la capacidad de aprender sin ser programado explícitamente. Ahora venga a la pregunta. Es posible que desee aprender el aprendizaje automático desde el nivel cero. Quiero sugerirte. puedes aprender los fundamentos básicos de la máquina, como aprender cómo la máquina puede interactuar con los humanos, piensa como la máquina, cómo puede funcionar la máquina, así que primero todo es Analizar .

Sugiero que primero aprenda los fundamentos básicos del aprendizaje automático después de ir a Advance.

Como un consejo para comenzar a aprender sobre el aprendizaje automático desde el nivel cero es seguir un proceso de 4 pasos

Ajustar la mentalidad . Cree que puedes practicar y aplicar el aprendizaje automático.

Elige un proceso . Use un proceso sistémico para resolver problemas.

Elige una herramienta . Seleccione una herramienta para su nivel y asignela a su proceso.

Practica en conjuntos de datos . Seleccione conjuntos de datos para trabajar y practicar el proceso.

  • Hay muchos buenos libros disponibles para aprender el aprendizaje automático desde principiante hasta avanzado. Algunos libros aquí pueden descargarse fácilmente y comenzar su aprendizaje.
  1. Introducción al aprendizaje automático – Alex Smola
  2. Introducción al aprendizaje automático en segundo lugar … – Computer Scien
  3. Machine Learning por Tom M Mitchell

http://personal.disco.unimib.it/

  • Algunos blogs y sitio web

https://machinelearningmastery.com/blog/

https://www.reddit.com/r/MachineLearning/

mlweekly.com

https://www.analyticsvidhya.com/blog/2015/06/machine-learning-basics/

Gracias.

Curso de IA aplicada: es una gran plataforma para los cursos en línea de Machine Learning, es uno de los mejores cursos de machine learning donde puedes aprender más de 25 técnicas de machine learning con más de 10 proyectos del mundo real. Incluso están dando orientación profesional sobre el aprendizaje automático. Para aprender este curso no hay requisitos previos. Enseñarán desde lo básico. Incluso están enseñando programación de pitón desde lo básico.

Taller GRATUITO de aprendizaje automático en línea: Motor de recomendación de indumentaria, regístrese en

Motor de recomendación de prendas de vestir –AI Workshop @AppliedAICourse

Use el cupón: [correo electrónico protegido] para obtener acceso gratuito. Envíe la solución a la tarea en, [correo electrónico protegido]

Puede aprender el aprendizaje automático en el nivel más bajo al pasar por los cursos de ML para principiantes. Hay muchos por ahí. Puede encontrar los cursos de ML más votados en Learn Machine Learning – Los mejores tutoriales de Machine Learning | Hackr.io

Espero que esto ayude.

Utilice cualquiera de los sitios web en línea que ofrecen cursos gratuitos (o económicos) en informática. Udemy o Codecademy Tome uno de esos cursos básicos y obtenga una idea general del aprendizaje automático y sus principios, y continúe construyendo sobre eso hasta que alcance un alto nivel de competencia.

Consulte Cómo iniciar AI / ML / DL desde cero. ¡¡Buena suerte!!

More Interesting

¿Es posible o valioso obtener otro doctorado en Machine Learning (Deep Learning) de una de las 50 mejores universidades de los Estados Unidos?

¿Qué arquitectura / herramientas usan los gigantes tecnológicos como Facebook / Amazon / Apple / Microsoft para el análisis de big data / ML?

¿Por qué no reescalamos el vector de coeficiente de una regresión de lazo?

¿Qué se sabe sobre la eficiencia de la agrupación espectral en caso de que los datos no estén completamente conectados?

¿Cuáles son algunos excelentes boletines semanales de Data Science?

¿Qué quiere decir con redes neuronales lineales profundas / no lineales?

¿Cuál es el papel de la descomposición de Cholesky en la búsqueda de PDF normal multivariante?

En general, ¿necesita tener un doctorado para obtener un trabajo de Machine Learning / Data Mining en una startup o en una gran empresa?

¿Por qué el código de paralelo de GPU es más complicado que el código de paralelo de CPU?

¿Qué significan las hipótesis finita e infinita en el aprendizaje automático? Cuáles son las diferencias entre ellos?

¿Hasta dónde nos pueden llevar las redes neuronales / de aprendizaje profundo / IA para encontrar una solución al problema de las noticias falsas?

¿Es mejor hacer una competencia de ciencia de datos en Kaggle o crear un algoritmo comercial en Quantopian para encontrar un trabajo en finanzas cuantitativas?

¿Cuál es la regla de entrenamiento para redes de perceptrón de capa única con umbral?

Cómo analizar un algoritmo de repetición selectiva

¿Cuál es el poder computacional de las redes neuronales no recurrentes frente a las redes neuronales recurrentes?