¿Dónde empiezo a aprender sobre el aprendizaje automático si no tengo ningún conocimiento al respecto?

Creo que necesita algunos conocimientos básicos sobre programación, de lo contrario será un poco difícil para usted.

Mi sugerencia necesita aprender programación R y después de eso Basic en su prioridad / necesidad puede aprender Java, Python, etc.

Después de eso, puedes aprender Machine Learning de un experto , no de un chico normal.

Así que te sugiero los mejores cursos en línea disponibles en Machine Learning

1. Machine Learning AZ ™: Python práctico y R en ciencia de datos [Recomendado]

2. Deep Learning AZ ™: redes neuronales artificiales prácticas

3. Ciencia de datos y aprendizaje automático con Python: ¡manos a la obra!

4. Bootcamp de ciencia de datos y aprendizaje automático con R

5. Inteligencia artificial: aprendizaje por refuerzo en Python

Estos son los mejores en la industria.

Practica bien.

Todo lo mejor .

Puede comenzar con la siguiente imagen de alto nivel del campo.

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.


Ahora, con ese panorama general, puede comenzar con los requisitos previos de la siguiente manera. 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.
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. Árboles de decisión
                    2. Sistemas de recomendación
                    3. Procesos de decisión de Markov
                    4. 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.

                    Es importante implementar algunos algoritmos básicos cuando comience a hacer ML, como el descenso de gradiente, AdaBoost, árboles de decisión, etc. [además de lo que haya implementado en la descripción general de 10 días]. También debe tener cierta experiencia con el preprocesamiento de datos, la normalización, etc. Una vez que haya implementado algunos algoritmos desde cero, para otros algoritmos, debe usar las implementaciones estándar (como LibSVM, Weka, ScikitLearn, etc.) en algunos problemas de juguetes, y obtener una buena comprensión de diferentes algoritmos.


                    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.

                    Para aprender el aprendizaje automático, debes ser mejor que el promedio en matemáticas. Estas son las matemáticas que debe aprender teniendo en cuenta el objetivo final para estar preparado.

                    • Álgebra lineal-Álgebra lineal– MIT 18.06 Álgebra lineal por Gilbert Strang
                    • Teoría de la probabilidad-Probabilidad y estadística – MIT 6.041 Análisis de sistemas probabilísticos y probabilidad aplicada por John Tsitsiklis
                    • Cálculo
                    • Cálculo de variaciones.
                    • Teoría de grafos
                    • Métodos de optimización (multiplicadores de Lagrange)
                    • Cualquier lenguaje de programación ampliamente utilizado para ML como python, MATLAB o C ++.

                    PD: recomendaría Python aquí como lenguaje y recomendaría los siguientes enlaces:

                    • Aprendizaje automático con texto en scikit-learn (PyCon 2016)
                    • Aprendizaje automático en Python con scikit-learn

                    Una vez cumplidos estos requisitos, puede por fin comenzar a considerar Machine Learning.

                    ¿6 PASOS FÁCILES para utilizar el APRENDIZAJE DE MÁQUINAS?

                    Este es el lugar donde comienza la diversión. Ahora, se espera que la base comience a echar un vistazo a algunas informaciones. La mayoría de las empresas de aprendizaje automático tienen básicamente el mismo proceso de trabajo:

                    PASO 1.) Fabrica tus fundamentos de aprendizaje automático estudiando material relacionado con el tema:

                    a.) Las conferencias de Andrew Ng’s Machine Learning son un gran comienzo:

                    Colección de conferencias | Aprendizaje automático: YouTube

                    b.) Certificado de aplicaciones y minería de datos de Stanford:

                    Certificado de Posgrado en Minería de Datos y Aplicaciones

                    c.) Escuela de verano de aprendizaje automático:

                    https://www.youtube.com/playlist

                    d.) Un enlace a la lista de reproducción completa está aquí (Lecture Collection | Machine Learning)
                    https://www.youtube.com/view_pla

                    e.) “La mejor introducción de aprendizaje automático que he visto hasta ahora”.

                    PASO 2.) Tome un curso en línea

                    Lo principal que aconsejo a alguien que necesita ingresar al aprendizaje automático es tomar el curso en línea de Andrew Ng.

                    Creo que el curso de Ng es especialmente directo y excepcionalmente eficiente, por lo que es un conocimiento extraordinario para alguien que necesita ingresar a ML. Me sorprende cuando las personas me revelan que el curso es “excesivamente fundamental” o “excesivamente superficial”. En el caso de que me revelen que solicito que aclaren el contraste entre la Regresión logística y el SVM, PCA lineal frente a la factorización matricial, regularización o descenso de gradiente. He hablado con aspirantes que afirmaron años de encuentros de LD que no sabían la respuesta a estas preguntas. En su mayor parte, se aclaran claramente en el curso de Ng. Hay muchos otros cursos en línea que puede tomar después de este, pero ahora está en su mayor parte preparado para pasar a la siguiente etapa.

                    Vea mi publicación anterior 10 mejores videos, profesores y cursos sobre aprendizaje automático para principiantes y avanzados

                    PASO 3.) Algunas sugerencias de libros

                    Mi siguiente paso sugerido es obtener un libro de ML decente (mi lectura más abajo), leer las principales secciones de introducción, y después de eso rebotar a cualquier parte que incorpore un algoritmo, usted está interesado. Cuando haya descubierto ese algo, salte a él, vea cada uno de los puntos de interés y, en particular, impleméntelo. En el paso anterior del curso en línea, a partir de ahora habría actualizado algunos algoritmos en Octave. Sea como fuere, aquí estoy buscando ejecutar un algoritmo sin ninguna preparación en un lenguaje de programación “real”. En cualquier caso, puede comenzar con una simple, por ejemplo, Regresión logística regularizada en L2, o k-means, pero también debe impulsarse a actualizar todos los más intrigantes, por ejemplo, SVM. Puede utilizar una implementación de referencia en una de las muchas bibliotecas existentes para asegurarse de obtener resultados equivalentes.

                    • El razonamiento bayesiano y el aprendizaje automático de David Barber
                    • El aprendizaje automático de Kevin Murphy: una perspectiva probabilística
                    • Los elementos del aprendizaje estadístico de Hastie, Tibshirani y Friedman
                    • Reconocimiento de patrones y aprendizaje automático de Bishop
                    • Aprendizaje automático de Mitchell

                    También hay numerosos libros excelentes que llaman la atención sobre un tema específico. Por ejemplo, Sutton and Re-Inforcement Learning es una obra de arte. Además, el libro Deep Learning (accesible en la web) prácticamente se está convirtiendo en un ejemplo antes de ser distribuido. Sea como fuere, necesita un par de esos libros para reunir una comprensión equilibrada y hasta cierto punto del campo.

                    Vea mi publicación anterior 10 eBooks gratuitos de lectura obligatoria sobre conceptos básicos de aprendizaje automático.

                    También puede ir específicamente a un trabajo de investigación que presente un algoritmo o enfoque que le interese y salte a él.

                    PASO 4.) Algoritmos más esenciales

                    Se confía en usted para conocer los aspectos básicos de un algoritmo esencial.

                    Vea mi anterior post 15 algoritmos que los ingenieros de aprendizaje automático deben saber.

                    En cualquier caso, aparte de los algoritmos, también es fundamental saber cómo configurar sus datos (selección de características, transformación y compresión) y cómo evaluar sus modelos. Tal vez, para empezar, podría consultar nuestro Aprendizaje automático en el ejercicio de instrucción scikit-learn en SciPy 2016. Se condensa una gran parte de los rudimentos al presentar la biblioteca scikit-learn, que puede resultar útil para la ejecución y otros exámenes. :

                    PASO 5.) Juega con algunos conjuntos de datos enormes que son de acceso abierto.

                    Descubra un conjunto de datos que le parezca especialmente interesante o sobre el que tenga hipótesis y compruebe si tiene razón.

                    Datos del gobierno de EE. UU. http://www.data.gov/

                    Ferrocarril Catering y Turismo Corporación http://www.irctc.co.in

                    PASO 6.) Participa con un equipo de personalización o aprendizaje automático centrado en el producto.

                    El grupo que busca debe estar cargado de ingenieros a quienes desea instruir y aprender. Esto lo mejorará para convertirse en un buen ingeniero de aprendizaje automático. Del mismo modo, al dividir un grupo de productos, descubrirá rápidamente cómo la ciencia y la hipótesis del aprendizaje automático varían de la capacitación. Específicamente, cómo la conducta del cliente le mostrará algo nuevo cada día.

                    Lo abordaría en 3 etapas:

                    1)

                    Probablemente comenzaría con un curso introductorio práctico / charla para obtener una breve descripción general. En mi opinión, ver ejemplos prácticos definitivamente debería ayudar a comprender el panorama general y de lo que ML es capaz en general, y qué puede hacer con él.

                    En cuanto a los recursos. Para la parte 1), hemos enseñado un tutorial de aprendizaje automático relativamente conciso con scikit-learn en SciPy que puede ser útil.

                    https://www.youtube.com/watch?v=https://www.youtube.com/watch?v=

                    Scikit-learn es un kit de herramientas de Python con una de las mejores API que existen, lo que hace que aplicar ML sea muy fácil (desde una perspectiva técnica). Además de eso, Andreas Mueller tiene un buen libro práctico que es un excelente tutorial de aprendizaje de scikit:

                    https://www.amazon.com/Introduct

                    2)

                    A continuación, elegiría un libro que explicara esos conceptos un poco más a fondo, posible con una ligera introducción a las matemáticas que se desarrollan detrás de escena.

                    Aquí, consideraría el curso de ML impartido por Andrew Ng como ya se mencionó en otra respuesta: Machine Learning | Coursera. Sin embargo, tenga en cuenta que los ejercicios de codificación están en Matlab / Octave, pero generalmente es fácil de aprender durante el curso (y proporcionan muchas instrucciones para eso).

                    Si está interesado en un libro, he escrito uno que es una mezcla de práctica Python desde cero y scikit-learn, pero también presenta la mayoría de los conceptos básicos de matemáticas detrás de estos algoritmos: Python Machine Learning: Sebastian Raschka: 9781783555130: Amazon.com : Libros

                    3)

                    Si bien es probable que no se requiera un conocimiento matemático más detallado para comprender los conceptos básicos de los algoritmos de ML, pero ciertamente no hace daño para tener una mejor idea de las limitaciones de ciertos algoritmos y la depuración de los sistemas de ML. Si está interesado en la investigación de ML (en contraste con la ML aplicada), probablemente desee estudiar la teoría de probabilidad, el álgebra lineal y la teoría de optimización con más profundidad.

                    Aquí no conozco ningún buen curso. Sin embargo, el libro “Elementos de aprendizaje estadístico” de Jerome H. Friedman, Robert Tibshirani y Trevor Hastie (disponible en línea de forma gratuita) es un gran comienzo: minería de datos, inferencia y predicción. 2da edición.

                    Creo que Twoleaps: aprender es compartir. será útil para encontrar un buen mentor para Machine Learning. Estoy usando la plataforma para obtener tutoría en programación, pero escuché de algunos amigos que también pueden conectarlo con un buen mentor de ML. Dale un tiro. El problema con el aprendizaje de la programación para mí fue similar, que no sabía dónde comenzar y cómo continuar en el camino para poder progresar continuamente.

                    PD: Soy un chico de 24 años que trabaja en un call center e intento buscar una carrera en programación. Ir en el anonimato para que mi jefe no se entere. 😀

                    Lo primero que puede hacer es leerlo en Wikipedia para obtener una descripción general.

                    Debido a que el aprendizaje automático (ML) es un término general en el que existen otros dominios como AI, visión artificial, etc., no desea aprender todo.

                    Elija el subdominio en función de su nivel de interés. A algunas personas les gusta la IA, a otras les gusta la detección de imágenes, la robótica.

                    Enfoque siempre desde la aplicación del mundo real a la parte de la teoría. El aprendizaje automático es muy amplio y también necesita aprender los lenguajes de programación específicos del dominio como ‘R’ o incluso lenguaje de propósito general como C ++, Java, Python.

                    Antes de comenzar a aprender Machine Learning, debes ser bueno en uno o dos lenguajes de programación y álgebra.

                    Si los conoce, puede comenzar con el Curso de aprendizaje automático de la Universidad de Stanford impartido por Andrew Ng . Está disponible de forma gratuita en Coursera.

                    Aprendizaje automático | Coursera

                    Es la mejor calificación y el mejor curso disponible en línea para principiantes.

                    Aquí está el video introductorio.

                    Comenzaría con un fondo matemático (cálculo, álgebra lineal, estadística, probabilidad), luego trataría de construir mi intuición sobre los algoritmos (intente https://www.slideshare.net/Colle …). A partir de ahí, puede leer libros o documentos que equilibren las matemáticas detrás del algoritmo con problemas aplicados en R o Python.

                    Hay muchos cursos en línea disponibles sobre aprendizaje automático para todos los niveles.

                    Puede consultar los siguientes sitios web: coursea, edx, mooc, udemy.

                    Sin embargo, le recomendaría que lea libros, materiales en línea sobre ML para obtener un buen conocimiento sobre ML.

                    More Interesting

                    ¿Cuáles son los pros y los contras del uso de redes neuronales artificiales frente a los controles clásicos?

                    ¿Por qué un SMB deshabilitado previene un ataque de ransomware?

                    ¿Cuál es la diferencia entre los clasificadores de aprendizaje automático y los modelos de lenguaje estadístico?

                    ¿Cómo funciona el código de visualización en Windows Media Player?

                    ¿Cuál es la mejor computadora portátil para un estudiante entrante de CS en la Universidad de Cornell?

                    ¿Cuáles son algunos problemas en el aprendizaje automático donde los algoritmos simples pueden incluso vencer a las redes neuronales avanzadas de aprendizaje profundo bien diseñadas?

                    ¿Cómo funciona el mecanismo de alimentación en el torno?

                    ¿Cómo se puede comenzar una investigación independiente en informática?

                    ¿Cómo ven las empresas de tecnología de Silicon Valley a los estudiantes que estudian Ciencias de la Computación en universidades del Reino Unido en comparación con los que estudian en universidades estadounidenses más conocidas?

                    ¿Debo instalar Ubuntu 14.04 o 16.04 en mi servidor?

                    Cómo pedirle a un desarrollador senior que aprenda Git correctamente, ya que siempre confirma el código directamente en la rama maestra

                    ¿Cuáles son algunos proyectos simples de PNL basados ​​en un documento de conferencia (no demasiado complejo) que un estudiante de informática puede probar? Necesito hacer un proyecto de compilador basado en PNL como parte de mi curso.

                    ¿Pueden las computadoras tener dos CPU? Si no, ¿por qué?

                    ¿Cuáles son los principales usos de las mini computadoras?

                    ¿Qué son los exámenes de competencia para informática?