¿Cuál es la mejor manera de obtener un buen dominio del aprendizaje automático?

Muchas personas en Quora y en otros lugares dan respuestas a esta pregunta al aconsejarle que comience a codificar, que aprenda algoritmos populares como la propagación hacia atrás o que haga un curso. Por supuesto, todas estas son sugerencias razonables, pero me apartaré de esta sabiduría colectiva y sugeriré un enfoque alternativo. La mejor manera, en mi opinión, de entender un campo es entender la razón por la cual el campo existe en primer lugar, ¿por qué necesitamos un campo como el aprendizaje automático? En resumen, ¿qué problemas resuelve y por qué?

  1. Comencemos con una analogía, algo que haces prácticamente todas las mañanas: te levantas y te preparas para ir a trabajar. ¿Qué problemas necesitas resolver? Por un lado, debe ponerse algo de ropa para proteger su cuerpo del clima y sus pies contra las superficies rugosas que pueda encontrar. Quizás necesite cubrirse la cabeza con un sombrero o una bufanda y protegerse los ojos con gafas de sol contra los fuertes rayos del sol. Estos son los problemas que debemos resolver para vestirnos.
  2. Los algoritmos son como ropa y zapatos, sombreros, bufandas y gafas de sol, continuando la analogía desde arriba. Podrías usar zapatillas de deporte, zapatos de vestir o tacones altos. Podrías usar una camiseta, una camisa de vestir, una falda larga, etc. La ropa y los zapatos son formas de resolver el problema de vestirse para el trabajo. La ropa que usa y los zapatos que se pone pueden variar, dependiendo de la ocasión y el clima. Del mismo modo, el algoritmo de aprendizaje automático que utilice puede depender del problema, los datos, la distribución de instancias, etc. La lección de la industria de la moda es bastante adecuada y vale la pena recordarla. Los problemas nunca cambian (siempre necesita algo para cubrirse los pies), pero los algoritmos cambian con frecuencia (se crean nuevos estilos de ropa y zapatos cada semana o mes). No pierda el tiempo aprendiendo soluciones de moda cuando se conviertan en el periódico de ayer. ¡Los problemas duran, los algoritmos no!
  3. Desafortunadamente, existe la tendencia de recomendar soluciones universales para el aprendizaje automático en estos días (por ejemplo, aprenda TensorFlow y codifique cada algoritmo como descenso de gradiente estocástico usando una red neuronal profunda). Para mí, esto tiene tanto sentido como envolverse en sus sábanas para ir a trabajar. Claro, cubre la mayoría de las partes de su cuerpo, y probablemente podría hacer el trabajo, pero es un enfoque único para todos que no muestra ningún estilo o gusto, ni ninguna comprensión del problema de aprendizaje automático (o vestimenta).
  4. La comunidad de aprendizaje automático ha pasado más de cuatro décadas tratando de comprender cómo plantear el problema del aprendizaje automático. Comience por comprender algunas de estas formulaciones y resista la tentación de ver cada problema de aprendizaje automático a través de una lente simplificada (como el aprendizaje supervisado, una de las docenas de formas de plantear problemas de aprendizaje automático). Las categorías principales incluyen el aprendizaje no supervisado, el más importante, seguido por el aprendizaje de refuerzo (aprendizaje por ensayo y error, el más prevalente en niños después del aprendizaje no supervisado), y finalmente el aprendizaje supervisado (que ocurre bastante tarde, porque requiere etiquetas e idioma, que los niños pequeños carecen en su mayoría en los primeros años). El aprendizaje de transferencia está creciendo en importancia a medida que los datos etiquetados son caros y difíciles de recopilar para cada nuevo problema. Hay aprendizaje permanente, y aprendizaje en línea, y así sucesivamente. Una de las áreas más profundas e interesantes del aprendizaje automático es la teoría del aprendizaje probablemente aproximadamente correcto (o PAC). Esta es un área fascinante, que analiza el problema de cómo podemos dar garantías de que un algoritmo de aprendizaje automático funcionará de manera confiable o producirá una respuesta lo suficientemente precisa. Si entiendes el aprendizaje PAC o no, me dices si eres un científico de ML o un ingeniero de ML.
  5. La formulación más básica del aprendizaje automático, y la que tiene poca importancia en muchas exposiciones populares, es aprender una “representación”. ¿Qué significa esto? Tome el número “tres”. Podría escribirlo usando tres trazos III, o como 11, o como 3. Estos corresponden a las representaciones unarias, binarias y decimales. Este último fue inventado en India hace más de 2000 años. Sorprendentemente, los griegos, a pesar de su sabiduría, nunca descubrieron el uso de 0 (cero), y nunca inventaron números decimales. Claude Shannon, el famoso inventor de la teoría de la información, popularizó las representaciones binarias para computadoras en una famosa tesis de maestría en el MIT a principios del siglo XX.
  6. ¿Qué significa para una computadora “aprender” una representación? Tome una selfie e imagine escribir un programa para identificar su imagen (o su cónyuge o su mascota) a partir de la imagen. El teléfono usa una representación para la imagen (generalmente algo así como JPEG, que matemáticamente se llama la base de Fourier). Resulta que esta base es una representación terrible para el aprendizaje automático. Hay muchas mejores representaciones, y nuevas se inventan todo el tiempo. Una representación es como el material que compone tu vestido. Hay algodón y poliéster y lana y nylon. Cada uno de estos tiene sus fortalezas y debilidades. Del mismo modo, las diferentes representaciones de los datos de entrada tienen sus ventajas y desventajas. Resista la tentación de ver una representación como superior a todas las demás.
  7. Los humanos pasan la mayor parte del día resolviendo tareas secuenciales (conducir, comer, escribir, caminar, etc.). Todo esto requiere tomar una secuencia de decisiones, y aprender tales tareas implica el aprendizaje por refuerzo. Sin RL, no llegaríamos muy lejos. Lamentablemente, todos los libros de texto de ML ignoran esta área más básica e importante, para su descrédito. Afortunadamente, hay excelentes libros especializados que cubren esta área.
  8. Permítanme terminar con dos máximas famosas del legendario físico Richard Feynman sobre aprender un tema. Primero, dijo: “Lo que no puedo crear, no lo entiendo”. Lo que quiso decir es que a menos que pueda recrear una idea o un algoritmo usted mismo, probablemente no lo haya entendido lo suficientemente bien. En segundo lugar, dijo: “Sepa cómo resolver cada problema que ya se ha resuelto”. Esta segunda máxima es asegurarse de que comprende lo que se ha hecho anteriormente. Para la mayoría de nosotros, estos son principios difíciles de seguir, pero en la medida en que pueda seguirlos, encontrará la manera de completar el dominio sobre cualquier campo, incluido el aprendizaje automático. ¡Buena suerte!

La forma de aprender este tipo de cosas es ensuciarse las manos.

Primero elegiría un área, digamos, redes neuronales, y comenzaría desde allí construyendo sus propios algoritmos y aprendiendo el interior de su comportamiento.

Yo mismo compré el libro “Redes neuronales” de Symon Haykin y comencé desde allí. Mi primer algoritmo fue escrito en C y luego salté a C # y Octave (puedes usar Matlab).

Permítanme enfatizar esto: al comienzo de su estudio, le sugiero que comience programando sus propias soluciones en lugar de saltar a marcos, como los que proporciona Matlab o algo así como Encog (Encog Machine Learning Framework). Esos marcos son realmente útiles para avanzar en su investigación, pero un uso temprano de esas herramientas lo mantendrá alejado del tic-tac del reloj.

También seguiría un curso en línea como Machine Learning – Stanford University | Coursera, por Andrew Ng. Es bastante útil seguir un programa en línea, porque te ayuda a mantenerte al día.

Aprenda y resuelva problemas de aprendizaje automático y algoritmos de aprendizaje automático, comience con el trabajo de MATLAB con la caja de herramientas de lógica difusa, la caja de herramientas de red neuronal y escriba programas de computación evolutiva y programas de inteligencia de enjambre en MATLAB que se desarrollará con el tiempo. Tienes que hacerlo, no viene a través de la discusión. Mire Coursera para comenzar, hay algunos cursos excelentes que lo ayudarán a comenzar, hacer amigos en la comunidad de ML y trabajar juntos. Aliméntese de los problemas y no trabaje solo. Progrese a C ++ cuando se sienta cómodo con MATLAB, mejore sus habilidades en C ++ y obtenga un firme control del prólogo. Eso funcionó para mí. Serás un respetado profesional de la IA. Gracias por el A2A.

Fakrhul, la forma principal es la práctica y más práctica.

Un buen libro simple es “Introducción al aprendizaje automático de Ethem ALPAYDIN”.

Puede encontrar útiles los “Tutoriales de Andrew Moore” en Google.

Y casi todos los métodos de clasificación populares están disponibles en MATLAB (recomendado para escritores de guiones), Python scikit-learn (para programación de nivel medio) y Weka (GUI para usuarios finales).

Los mejores deseos.