Cómo aprender el aprendizaje automático, el aprendizaje profundo y las redes neuronales desde cero

TL; DR : Aprende las matemáticas. Conoce tus datos. Aprende a codificar. Ver videos. Practica por tu cuenta.


En mi experiencia, la mejor manera es tener las pautas 1, 2, 3:

  1. Aprende estadísticas. No puedo enfatizar la importancia de las estadísticas para el aprendizaje automático. Todo lo que hagas en ML tendrá sus raíces en las estadísticas de una forma u otra.
  2. Conoce las matemáticas Cualquier persona puede importar bibliotecas y crear un modelo de ML, sin conocer las matemáticas o la lógica que hay detrás. Sin embargo, un buen científico de datos siempre conoce las matemáticas detrás del modelo que está haciendo. Es un estándar de la industria, y muchos empleadores tienen este requisito básico.
  3. Comprende el problema; Lee los datos. En general, tendrá muchos datos con los que trabajar, y muchos datos equivalen a muchos errores y redundancias. El preprocesamiento y la limpieza de los datos es una de las tareas más grandes que un científico de datos puede enfrentar. Diría que aproximadamente el 60% de su tiempo se dedicará a analizar, limpiar y reducir los datos. Debe tener una buena comprensión del problema con el que está tratando de trabajar, para poder crear un modelo adecuado.

Saber cómo codificar no es tan importante como saber qué codificar. Debe saber el tipo de datos que está manejando y el problema que está tratando de resolver. La codificación es secundaria, y muchos lenguajes (python, R, C ++) ofrecen bibliotecas para facilitar su uso. Los idiomas como python y R son fáciles de aprender, ya que derivan gran parte de su sintaxis del idioma inglés, lo que facilita su lectura y comprensión.

Ahora, comencemos con el proceso de aprendizaje real: ¿qué hacer primero y por dónde comenzar?

El aprendizaje automático, las redes neuronales y el aprendizaje profundo se abordan mejor como estructuras en capas, que deben abordarse una tras otra.

La mejor manera de comenzar con Machine Learning es comenzar con video cursos / tutoriales, algunos de ellos se mencionan a continuación.
Aprendizaje automático | Coursera (el mejor curso para ayudarte a comenzar)
Aprendizaje automático | Udacity
Aprendizaje automático con Python – YouTube

Una vez que lo domine, le sugiero que tome un proyecto propio y comience a trabajar en él. Como no eres un codificador ávido, te sugiero que también comiences a aprender un lenguaje de codificación, preferiblemente python. También he proporcionado algunos enlaces para aprender Python.
Programación para todos (Introducción a Python) | Coursera
Serie de tutoriales básicos de Python 3: YouTube

Una vez que sea minucioso con sus conceptos de Machine Learning, puede pasar a Redes neuronales y Deep Learning.

También le sugiero que cree una cuenta en kaggle.com (Your Home for Data Science). Es un portal para científicos de datos, y se le proporcionarán muchos desafíos para que los lea, discuta y resuelva.

Al final, te dejo con algunos consejos sobre cómo ser bueno en lo que haces:

  • SIEMPRE limpie y preprocese los datos. En un entorno de aprendizaje controlado, es posible que tenga datos puros, pero ese no será el caso el 100% de las veces en la vida real.
  • Visualizar datos es muy importante. Le da una idea de las relaciones que ciertos atributos tienen entre sí, y le ayudará a preprocesar los datos o diseñar un modelo.
  • Es posible que un modelo complicado y potente no siempre le brinde los mejores resultados. A veces, un modelo simple y fácil de implementar puede ser útil.
  • En el tiempo libre, busque las documentaciones de varias bibliotecas de ML. Nunca se sabe qué cosa interesante puede encontrar.
  • Para ser un buen científico de datos, no es necesario tener una computadora portátil potente. Con servidores baratos y confiables disponibles, puede probar una pequeña porción de sus datos en su máquina, y si el modelo que ha elegido se adapta bien a su problema, puede cargar su código y los datos a un servidor remoto para hacer el cálculo para ti.

Espero que esto haya sido de alguna ayuda para usted.

¡Viva y prospere!
* inserta el saludo vulcano *

No importa de qué campo sea, las técnicas de ML y DL ahora se siguen principalmente en todas partes. Incluso en RF, las personas están aplicando el aprendizaje profundo que está muy lejos de la informática. Pero dado cualquier antecedente, al menos debería ser bueno en programación y diferenciación. He escrito una respuesta para aprender redes neuronales, aprendizaje profundo e inteligencia artificial junto con los requisitos previos, ahora estoy copiando una de las respuestas a continuación y espero que los enlaces ayuden más.

Comenzaré con mi experiencia en el aprendizaje de IA y luego con el material del curso correspondiente.

——————————————————

Comencé a trabajar en IA después de que el beneficio de aprendizaje profundo ya comenzó. Aprendí conceptos de aprendizaje profundo e inteligencia artificial principalmente de los recursos en línea solamente. Hay muchos cursos en línea disponibles y puede decir que todos tienen algo que aprender, pero quería comprender los conceptos básicos para poder ver cómo se espera que la técnica se comporte con un conjunto particular de parámetros.

Estaba abrumado con el tema y quería aprender todo en un corto período de tiempo, pero el aprendizaje es un proceso gradual y diré que todavía estoy aprendiendo incluso después de usar DL en algunos de mis proyectos. Terminé viendo muchos cursos en línea, pero solo hay muy pocos enlaces que recomiendo, si alguien lo solicita.

En primer lugar, la IA es un campo muy vasto y, por lo tanto, sugeriría ser específico en su interés. Al igual que mis intereses están en el aprendizaje de refuerzo y el aprendizaje profundo para aplicaciones de vehículos inteligentes. Además, mi interés está en la práctica, no en el desarrollo teórico y, por lo tanto, mis recomendaciones pueden estar sesgadas hacia la práctica.

Según mi experiencia, puedo recomendar los siguientes recursos que deben seguirse en secuencia . Explicaré qué fuente es mejor para borrar los conceptos básicos y supongo que ya conoce la programación (se prefiere Python).

La IA es un campo hiperactivo y el nuevo material solo puede aprenderse siguiendo a los investigadores que publican activamente artículos en el campo. Aquí hay recomendaciones:

Prerrequisitos : Álgebra lineal, probabilidad y cálculo son los prerrequisitos de este campo y, por lo tanto, se requiere una mejor comprensión de los conceptos básicos. Para la probabilidad, seguí la probabilidad y los procesos estocásticos del profesor Roy d Yates. También he leído otros libros, pero me encanta este libro solo por la simplicidad y los ejemplos de la vida real. Los primeros cuatro capítulos son suficientes y fáciles de terminar en un fin de semana (pude terminarlo en un fin de semana de dos días). El descanso seguirá llegando. Para álgebra lineal, recomendaría conferencias del profesor Gilbert Strang. Esto llevará tiempo, o me tomó tiempo. 🙂

Aprendizaje automático : después del conocimiento básico de los requisitos previos. Yo recomendaría seguir. Para aprender cualquier nuevo algoritmo de ML, sigo los siguientes recursos:

  1. En primer lugar, leí el tema del aprendizaje automático de Stephen Marsland. Esto ha explicado claramente la perspectiva algorítmica de muchos algoritmos de ML sin mucha complejidad.
  2. En segundo lugar, leí el mismo concepto de otros recursos para tener la sensación de las matemáticas detrás. Principalmente estoy limitado a los siguientes recursos ya que estoy interesado en la formulación y la intuición del enfoque:
  1. Curso de aprendizaje automático de Nando de Freitas (el curso de pregrado tiene más detalles en profundidad en comparación con el curso de posgrado)
  2. Reconocimiento de patrones y aprendizaje automático de Bishop.
  • Necesitará redes neuronales más que otros algoritmos como PCA, MLE, EM, etc. He escrito una respuesta enfocando NNets aquí y, en resumen, sugeriría centrarse en la propagación hacia atrás porque esto es lo que le preocupa en un nivel superior, si no se borra en detalle. Este libro de Michael Nielson tiene una muy buena explicación de las matemáticas detrás de las redes neuronales.
  • Verifique el impresionante repositorio de machine learning para verificar varias bibliotecas y documentos en el campo.
  • Aprendizaje profundo : al centrarme en lo básico, recomendaría el siguiente material:

    1. Capítulo 6 sobre aprendizaje profundo del libro de Michael (cap. 1–4 son para redes neuronales superficiales)
    2. Curso de aprendizaje profundo por Nando de freitas
    3. Libro de aprendizaje profundo de Goodfellow. No necesita mucho si comienza a sentir los conceptos de este libro, pero de alguna manera no podría mantener el ritmo ya que contiene muchos detalles.
    4. Andreas karpathy curso sobre aprendizaje profundo
    5. Curso de aprendizaje de refuerzo profundo por David Silver (es autónomo pero muy matemático, por lo que también puede seguir esto). Otros recursos útiles se pueden encontrar aquí.
    6. RNN y LSTM se explican aquí por el blog de Karpathy y Colah (única teoría).
    7. Nueve modelos de aprendizaje profundo que debes conocer (aquí).

    En resumen, los enlaces anteriores son buenos en lo básico, cómo ajustar parámetros e hiperparámetros. El aprendizaje profundo se encuentra actualmente en un ritmo frenético y será difícil rastrearlo mediante cursos en línea, sugeriría seguir a los investigadores en su campo de interés. Puede encontrar una lista curada de tutoriales de aprendizaje profundo, proyectos y documentos en este repositorio.

    Una vez más, como he dicho antes, la IA es un campo hiperactivo y el nuevo material solo se puede aprender siguiendo a los investigadores que publican activamente artículos en el campo. Sugeriría seguir las conferencias de IA como AAAI, NIPS, ICLR, ICML, etc.

    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.

    Yay, la mejor pregunta eva!


    Necesitarás un plan de ataque bien trazado. Lo siguiente debería ocuparse de la mayoría de las actividades.

    • Familiarícese con Python, (C / C ++) y estructuras de datos
    • Obtenga un conocimiento básico de lo que está a punto de profundizar leyendo AI: un enfoque moderno de Russell y Norvig. Esto elimina cualquier dependencia de frameworks / bibliotecas, pero en cambio le brinda un mejor conocimiento de las diferentes técnicas utilizadas para crear dichos sistemas.
    • También digiera el curso MIT OCW sobre IA de Patrick Winston, es gratis y absolutamente fantástico.
    • Una vez que haya terminado con lo anterior, puede elegir un marco y usarlo / implementarlo para clasificaciones básicas y volver a mezclar modelos populares. Elegir un marco puede ser una tarea desalentadora porque todos están construidos con diferentes propósitos en mente, por ejemplo. Caffe utiliza un enfoque declarativo para definir modelos en él, mientras que con TensorFlow puede crear y utilizar modelos mediante programación. También puede visualizar gráficos e implementarlos con facilidad en todas las plataformas, lo cual es excelente y reduce la reinvención de la rueda en gran medida.
    • Tendría que comprar una GPU de la serie Pascal (1060 6GB o más poderosa), i5 / i7, 8 / 16GB RAM y un SSD para obtener un equipo mínimo para tales actividades, con el fin de aprovechar los numerosos núcleos CUDA que aceleran drásticamente hasta entrenamiento.
    • También manténgase al día con numerosos documentos, videos de YouTube de las personas detrás de dichos marcos, investigadores / laboratorios, openAI y otros involucrados.

    Luego le sugerimos que primero visite udacity y haga una introducción al curso de estadística, que es totalmente gratuito seguido de otros cursos de estadística. Es una excelente forma de aprender.

    1. Después de hacer eso, comience con la introducción al aprendizaje automático en udacity y luego los cursos segundo y tercero de aprendizaje automático
    2. También debe hacer andrew Ng cousre en COURSERA, que es mejor para comprender los conceptos básicos del aprendizaje automático, pero requiere que sepa un poco sobre el cálculo.
    3. Hay muchos libros con los que puede aprender de forma automática, como el aprendizaje automático con sklearn y tenserflow.
    4. Has aprendido el lenguaje de programación de forma paralela y, según yo, deberías elegir python 3.x, que es más fácil de aprender. Descargue cs50 semana 8 de youtube CS50 2016 – Semana 8 – Python

    Debería practicar python para principiantes. Recomiendo el byte de pythonhttps: //python.swaroopch.com. A partir de aquí, obtendrá una idea básica sobre cómo escribir código python.

    Por último, necesita persistencia porque, dado que no tiene experiencia en matemáticas y no conoce ningún lenguaje de programación, le tomará tiempo aprender. Solo la dedicación y el trabajo duro lo ayudarán a lograr su objetivo en el aprendizaje automático. Te recomiendo que le des 3 a 4 horas diarias y practiques todo eso.

    Siento que el último recurso agregado al campo recientemente es bastante robusto. Aqui esta el link-

    Aprendizaje profundo con aplicaciones que usan Python: Chatbots y reconocimiento de rostro, objetos y voz con TensorFlow y Keras: Navin Kumar Manaswi: 9781484235157: Amazon.com: Libros

    Un extracto aquí:

    “Dado que el mundo se está enfocando en la Inteligencia Artificial de una forma u otra, el Aprendizaje Profundo como el mejor componente de la Inteligencia Artificial tomará el centro del escenario. Deep Learning hace un trabajo maravilloso en el reconocimiento de patrones, especialmente en el contexto de imágenes, sonido, habla, lenguaje y datos de series de tiempo.

    Cuando hablamos de Deep Learning, es probable que discutamos los mejores marcos para el desarrollo de Deep Learning. Afortunadamente, en noviembre de 2015, Google lanzó Tensorflow, marco de aprendizaje profundo, que se ha utilizado en la mayoría de los productos de Google, como la búsqueda de Google, la detección de spam, el reconocimiento de voz, Google Allo, Google Now y Google Photos.

    Tensorflow permite el paralelismo de modelos y el paralelismo de datos. TensorFlow proporciona múltiples API. El API de nivel más bajo, TensorFlow Core, le proporciona un control de programación completo ”.

    Uno de los mejores cursos de aprendizaje automático / IA que he encontrado. La mejor parte es que no tiene requisitos previos. Explica todos los conceptos de la manera más simple posible de diferentes maneras para abordarlo ( tanto geométrica como matemáticamente) y los obtendrá intuitivamente. Me encanta la forma en que cubren muy bien tanto la teoría como los aspectos prácticos. Cubrió Data Science, Machine Learning y Deep Learning desde cero.

    Si desea aprender Machine Learning, esta podría ser la mejor fuente.

    Curso de aplicación

    ¡Felicitaciones por querer aprender! Pero voy a tener que darte un consejo que puede ser un poco difícil de tragar. Asumiré que no eres un genio. Y si esa suposición es cierta, entonces sigue leyendo. De lo contrario, el curso de Andrew Ng sobre Coursera es un lugar divertido para comenzar o si desea un enfoque más matemático, sugeriría CS231n en Github.

    Ahora, si no eres un genio, te recomiendo encarecidamente que necesites algunos conocimientos matemáticos. No quiero desanimarte, eso es lo último que quiero hacer. Pero debe comprender que el aprendizaje automático como disciplina es mucho más complejo que la ingeniería de software ordinaria. La manera en que lo veo,

    Álgebra: Cálculo :: Desarrollo de software: MachineLearning

    En pocas palabras, no puedes correr a menos que primero aprendas a caminar. Entonces, creo que deberías aprender algo de cálculo y complementarlo con estructuras de datos y habilidades básicas de codificación antes de saltar al aprendizaje automático. ¡Buena suerte!

    Le sugiero el libro electrónico “La guía de aplicaciones inteligentes: cómo comenzar a usar aplicaciones inteligentes y aprendizaje automático”.

    En este libro electrónico encontrará información sobre qué son las aplicaciones inteligentes, los beneficios que ofrecen e información sobre las tecnologías de vanguardia de Machine Learning.

    También descubrirá cómo combinar enfoques clásicos como las técnicas de los Sistemas de recuperación de información (IRS) con los Sistemas de recomendación (RS) y cómo utilizar las buenas prácticas en el diseño de la interfaz de usuario y la experiencia del usuario (UX) para transformar los sistemas de información tradicionales en sistemas inteligentes.

    ¡Disfrutar!

    Hemos escrito un blog detallado para esta pregunta en particular, siga el enlace a continuación, ¿Para quién es adecuado el aprendizaje automático y cómo aprenderlo? El | El | Aprendizaje automático

    Espero que esto te ayudará.

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

    More Interesting

    ¿Cómo juegan los conceptos de POO (en Python) un papel crucial en la resolución de problemas de aprendizaje automático?

    Ray Kurzweil siente que es probable que la IA poderosa sea buena para la humanidad, mientras que Bill Joy siente lo contrario. ¿Quién es correcto y por qué?

    Visión por computadora: ¿Cuál es el estado actual del arte en el reconocimiento de edificios / estructuras?

    ¿Cómo diferencia una computadora entre un automóvil estacionado y un automóvil parado?

    Cómo usar la cámara de un teléfono Android para detectar objetos en movimiento y encontrar la distancia entre esos objetos y el usuario

    ¿Cuántos años hasta que los programadores sean reemplazados por IA?

    ¿Puede AI crear su propio lenguaje de programación como lo hace Facebook?

    ¿Cuáles son algunos maestros de aprendizaje automático / IA que toleran un GPA bajo de pregrado para la admisión?

    ¿Puede una computadora usar inteligencia artificial para vencer al 'mejor' jugador de póker siempre?

    ¿No es demasiado pronto para dar el ranking de Go 'divino' AlphaGo de Google?

    Cómo obtener una inteligencia artificial para ejecutar mi startup

    ¿Cuál es su proceso de pensamiento al elegir una arquitectura de red neuronal?

    ¿Cuándo avanzará la composición musical algorítmica hasta el punto de desplazar una importante cuota de mercado de la música creada por humanos?

    ¿Qué es el "aprendizaje de refuerzo disperso"?

    ¿Es una mala señal estar más interesado en las máquinas que en los humanos?