Tengo un plan de 400 días para aprender sobre el aprendizaje automático. Espero construir mi propio bot de juegos que pueda jugar al menos 2 juegos. ¿Qué tan plausible es esto?

Divulgación completa: no estoy trabajando en el campo del aprendizaje automático en este momento. He leído bastante sobre AI y ML, pero no me aventuraría a llamarme experto en esta etapa (especialmente cuando se trata de implementación). Sin embargo , el aprendizaje humano es algo que conozco bastante bien y creo que esta pregunta merece una respuesta desde una perspectiva de aprendizaje humano.

La pregunta en sí es interesante porque demuestra una creencia común entre las personas que desean aprender cosas nuevas: que un plan trazado y una línea de tiempo concreta son suficientes para lograr los objetivos de aprendizaje.

Primero, me gustaría presentarles a su nuevo archienemigo: la falacia de planificación. Este sesgo, del que todos son culpables, implica ser demasiado optimista con las estimaciones de tiempo para los proyectos que asumimos. Casi siempre hay retrasos imprevistos que vienen con los proyectos de fondo (y definitivamente clasificaría esto como uno de esos proyectos).

Entonces, de inmediato, voy a decir que va a perder su fecha límite únicamente debido a complicaciones imprevistas en su plan. Estos cambios podrían provenir de motivaciones / deseos personales cambiantes, dificultades técnicas y eventos inesperados de la vida.

En segundo lugar, al darte este plazo tan ajustado, tendrás un incentivo para avanzar incluso cuando no entiendas los conceptos en los que estás trabajando. Esto es absolutamente crítico, y es lo que hace que la mayoría de las personas terminen con conocimientos y habilidades subóptimos cuando aprenden por su cuenta. Cuando esté mirando su calendario, enfocándose en esa fecha de finalización, no se tomará su tiempo para comprender lo que está aprendiendo.

Aún más importante, no le está dando tiempo a su cerebro para construir conexiones significativas y contextuales entre los conceptos. El aprendizaje es en gran medida un proceso de construcción de una biblioteca de conceptos, luego de encontrar formas en que esos conceptos se relacionan entre sí (un proceso conocido como fragmentación ). Se necesita tiempo para que esto ocurra, y cuando estás tratando de explotar todos tus materiales de aprendizaje, es mucho menos probable que suceda. El apresurarse también ignora los aspectos críticos del aprendizaje, como la práctica distribuida , la consolidación de la memoria y la incubación , aunque cada uno de ellos podría merecer su propia respuesta, por lo que me desviaré por ahora.

Tercero, tu intención de aprender realmente importa mucho menos de lo que imaginas. A pesar de lo que dicen los gurús de la autoayuda, querer aprender algo importa mucho menos de cómo lo haces. Lo que importa es el proceso que establezca para garantizar que tenga una codificación, almacenamiento y recuperación efectivos, junto con procesos elaborados que garanticen la conexión entre lo que ya sabe y lo que está aprendiendo. Puedes odiar lo que estás haciendo y aún así aprender eficientemente, y también puedes tener las mejores intenciones del mundo y aprender muy poco. Todo se reduce a cómo maneja la información.

La retención es un aspecto particularmente pasado por alto en planes como el suyo. Es impactante para mí, pero lo veo todo el tiempo: todos quieren aprender, pero casi nadie reconoce la importancia de la retención. Nuevamente, si no comprende cómo su cerebro almacena las cosas, siempre terminará desperdiciando su tiempo simplemente porque no recordará la mayor parte de lo que ingiere.

Permítame sugerirle una alternativa a su plan actual: en lugar de centrarse en lo que va a aprender, comience con cómo lo va a aprender. Tómese un tiempo para descubrir cómo funciona realmente el aprendizaje, luego salte a lo básico y construya desde allí. De esa manera, incluso si cambia de opinión acerca de querer ingresar a ML, tendrá todas las herramientas que necesita para aprender cualquier otra cosa que le interese. ¡Además, aún recordarás lo que te llevaste en tu viaje de ML!

Creer que una hoja de ruta elaborada para su aprendizaje es clave es simplemente prepararse para el fracaso. Concéntrese en su sistema de aprendizaje y sus resultados, aunque tal vez no como lo predijo, siempre será mejor.

Puedo ayudarlo: escribí un libro sobre este mismo tema llamado The Learning Factory, y contiene un conjunto completo de instrucciones para configurar un sistema como el que describí. Mi blog también contiene bastante información sobre aprendizaje y memoria, y es gratis.

400 días es mucho tiempo para una persona motivada y dedicada que puede lograr mucho en ese período, pero está viendo todo mal en términos de ‘áreas que necesito cubrir’.

El hecho de que la educación superior contemporánea esté estructurada en torno a cursos, asignaturas y áreas no significa que solo seguirlos ofrezca una garantía de éxito eventual. Por cierto, su plan es MUY amplio, por ejemplo, solo Linear Aglebra solo, sin mencionar Deep Learning y otros que usted menciona, pueden ocupar todo el tiempo y más.

NO se concentre en ‘cubrir’ áreas solo por decirlo. En lugar de eso, déjate guiar por los resultados yendo primero a un juego muy simple y creando una versión en ejecución. Eso te enseñará cosas reales que necesitarás, por ejemplo , construir una representación de red real de tu tablero de juego. Una vez que construya eso, probar diferentes tipos, profundidades y configuraciones de redes profundas será mucho más fácil.

En cuanto a Python, no necesitará mucho para hacer algunas cosas serias. Se utiliza principalmente para estructuras y códigos auxiliares diversos. Lo mismo para las matemáticas y el álgebra lineal, concéntrese en comprender la idea básica detrás del descenso de gradiente, que debería ser sencilla.

Continúe construyendo sobre sus lecciones iniciales de este prototipo inicial muy simple. Recoja en el camino todo lo que necesite o pueda interesarle en el camino, en lugar de atascarse en ‘áreas para cubrir’ demasiado amplias sin resultados que mostrar.

De esta manera irás (muy) lejos, en (mucho) menos de 400 días. ¡Buena suerte!

A2A.

Muchos buenos consejos aquí ya. Estos son los puntos clave que me gustaría transmitir:

  • Si tu objetivo es crear un juego, no pases demasiado tiempo cubriendo lo básico. Estudie rápidamente los conceptos básicos de ML y cómo usar ML en un juego, y comience a construir. Para analizar los conceptos más fundamentales en ML, compilé una lista: la respuesta de Prasoon Goyal a ¿Cómo aprendo Machine Learning en 10 días? Algunas sugerencias más para comenzar con ML: la respuesta de Prasoon Goyal a ¿Cómo aprendo el aprendizaje automático? El aprendizaje automático es un dominio bastante vasto, y un subconjunto muy pequeño de todas las técnicas en ML terminará siendo útil para su juego. Por lo tanto, obtenga una comprensión de alto nivel de las técnicas, luego comience a buscar recursos que expliquen cómo construir un juego con ML y aprenda las matemáticas y ML necesarias en el camino. Luego, busque de manera iterativa cómo puede mejorar el rendimiento de su bot y lea más ML y matemáticas cuando lo necesite.
  • Por otro lado, si su objetivo es aprender ML, y construir el juego es secundario, entonces debe adoptar un enfoque ligeramente diferente. Puedes aplazar el inicio de la programación del juego hasta al menos la primera mitad del tiempo total. Nuevamente, recomendaría comenzar de manera simple, tal vez el curso de Andrew Ng sobre Coursera, para obtener una comprensión de alto nivel de ML y sus aplicaciones. El curso también tiene secciones sobre cómo escribir programas de ML en Octave. Luego, pase a las áreas más prominentes de ML – SVMs, redes neuronales (consulte las respuestas vinculadas más arriba para obtener una lista más completa) – y pase tiempo entendiendo las matemáticas detrás de ellas. Puede usar cualquier recurso para estos. En este punto, creo que tiene sentido elegir un libro de ML y leer capítulos importantes de él, para llenar los vacíos en su comprensión. Incluso para esta línea de acción, no necesita pasar mucho tiempo estudiando las matemáticas: repase los conceptos básicos en matemáticas y luego estudie más matemáticas cuando sea necesario. En algún momento durante su estudio de ML, puede buscar recursos para construir juegos usando ML y comenzar a formalizar las técnicas que utilizará en el juego.

(Además, no estoy seguro de lo que representa el gráfico: ¿por qué el aprendizaje profundo y las redes neuronales están separadas de ML, y las matemáticas y Python son parte de ML?)

Esto es muy bueno y bien planeado. Todos los requisitos previos se cumplen.

Si me dejas sugerir algunas cosas:
Tome las redes neuronales para el aprendizaje automático de Coursera. El profesor Geoffrey Hinton, el (re) descubrimiento de Deep Learning, explica todo lo que necesita y el curso es bastante fácil y rápido.
Además, mira algunos videos de Siraj, como estos dos:

Y obtuve algunas inspiraciones.
¡Buena suerte!

Actualización :
Tome el curso de Habilidades matemáticas de ciencia de datos :
“Los cursos de ciencias de datos contienen matemáticas, ¡no hay que evitar eso! Este curso está diseñado para enseñar a los estudiantes las matemáticas básicas que necesitará para tener éxito en casi cualquier curso de matemáticas de ciencias de datos y fue creado para estudiantes que tienen habilidades matemáticas básicas pero que pueden no haber tomado álgebra o cálculo previo. Data Science Math Skills presenta las matemáticas básicas sobre las que se basa la ciencia de datos, sin ninguna complejidad adicional, presentando ideas y símbolos matemáticos desconocidos uno por uno. Los alumnos que completen este curso dominarán el vocabulario, la notación, los conceptos y las reglas de álgebra que todos los científicos de datos deben conocer antes de pasar a un material más avanzado ”.

Data Science Math Skills – Universidad de Duke | Coursera

Bastante suficiente si eres bueno en álgebra lineal o teoría de control o teoría de la información o estadísticas o análisis funcional.

Bastante difícil si solo sabes codificar programas simples.

Imposible si no tienes antecedentes relacionados.

Pero, después de 400 días de aprendizaje (si puede mantener el impulso), está en buen camino para dominarlo con el tiempo.

Hacer la IA en este período de tiempo es muy plausible. Depende de cuán sofisticado y cuánto control y comprensión quieras sobre tu IA del juego, pero creo que es posible que puedas hacerlo en la mitad del tiempo si priorizas tu material de aprendizaje.

Personalmente, he adquirido el conocimiento práctico de hacer una IA de juego simple en un período de 3 a 4 meses, aunque ya conocía Python. Me salté muchas matemáticas y aprendí los conceptos básicos del conocimiento matemático necesario. En mi opinión, las matemáticas son el mayor asesino del tiempo y puedes aprender los algoritmos de ML prácticamente sin él.

Mi método de aprendizaje fue hacer proyectos que cubrieran las áreas en las que quería aprender más. Este método es similar a la “técnica de Feynman”, que es una forma muy efectiva de aprender cosas rápida y profundamente.

Con respecto a un juego de IA, OpenAI tiene una biblioteca llamada gym and universe. Aprenda Python primero y luego vea qué hay ahí fuera si se enfoca en hacer que el juego sea AI. El marco de tiempo de 400 días es relativamente largo para el rápido desarrollo en Deep Learning / AI específicamente en este momento, tal vez algo nuevo haya aparecido para entonces.

¡Espero que esto ayude!

El aprendizaje automático es un vasto dominio o campo. Es un proceso interminable.

Para lograr sub cursos de aprendizaje automático como el aprendizaje profundo y las redes neuronales, debe preferir pasar el programa completo de 400 días en los conceptos básicos del aprendizaje automático

Una vez que tenga la confianza suficiente sobre el conocimiento para el aprendizaje automático, puede comenzar a biulding Game bot con varias herramientas de máquina disponibles en Internet 🙂

Muchas “incógnitas” en esta ecuación. 🙂

  1. ¿Estás aprendiendo esas hojas desde cero o “repasando” las matemáticas que ya conoces?
  2. ¿Estás haciendo esto como un trabajo a tiempo completo o además de un trabajo a tiempo completo?
  3. Dices que quieres construir un robot de IA que realmente funcione. Mucho dependerá de la complejidad del juego.
  4. Dado que la ruta indica que está utilizando ML para esto (a diferencia de la programación en la heurística a mano), necesita ejemplos para entrenar su sistema. En términos generales, cuanto más complejo sea el juego, más ejemplos necesitarás (¿recolectar?) Y más tiempo llevará entrenar.

Es plausible Quizás el siguiente horario pueda funcionar.

  • El aprendizaje automático de Ng de Coursera
  • El aprendizaje automático de Udacity (incluido el aprendizaje reforzado)
  • Redes neuronales (tal vez Coursera)
  • Visión por computador
  • Aprendizaje profundo (tal vez Udacity)

Python, matemática, estadística y álgebra lineal pueden estudiarse mientras se estudia lo anterior.

Esto es bastante factible.

Aunque sugeriré seguir algunas guías probadas para tomar lo siguiente:

ZuzooVn / machine-learning-for-software-ingenieros

Esto lo ayudará a mantenerse enfocado y completar una cantidad razonable de material en el tiempo. Adquirirás suficientes habilidades para que tu juego AI bot funcione. Estoy seguro de que recogerás más recursos y habilidades en el camino.

¡Todo lo mejor para este esfuerzo!

Depende de lo ocupado que esté, de lo que sepa hasta ahora y de su ética de trabajo. Por ejemplo, si ya no eres tan malo en matemáticas y al menos entiendes la lógica básica, no sería difícil para ti aprender Python si practicas un poco todos los días.

En este sentido, si integra el aprendizaje de Python con el aprendizaje simultáneo de todo en la parte inferior del gráfico. Es probable que aprenda muy rápido y pueda lograr su objetivo en mucho menos de 400 días.

Síguelo. Sigue fallando hasta que hagas algo bien y buena suerte, amigo.

More Interesting

Si el universo es abierto / plano y sufre una muerte fría en expansión, ¿la cantidad total de cómputo que se puede realizar es finita?

¿Qué opinas sobre la tecnología blockchain y su uso futuro?

¿Qué sucede cuando uso código en Java?

¿Los usuarios de Quora usarían Dice.com para encontrar un trabajo tecnológico?

¿Qué reglas debo seguir para seleccionar todas las rutas que son válidas de un vértice a otro vértice?

¿Qué hace que ML en Biología Computacional sea especialmente difícil?

¿Por qué RTCP es un protocolo "hermano" de RTP?

¿Qué aspectos del aprendizaje automático son en realidad desarrollos recientes?

Neo4j dice que es ACID, pero en modo HA, ¿es eventualmente consistente? ¿Sigue siendo válido ACID?

Cómo escribir una gran cantidad de archivos a la vez, sin obstruir los recursos de la máquina

¿Pueden los estudiantes de ciencias de la computación, a partir del conocimiento adquirido durante la universidad, hacer algo bueno para los agricultores o el medio ambiente?

En la programación de ensamblaje (todos los tipos), ¿es útil / necesaria la instrucción de salto a desplazamiento (PC + x) si ya hay una instrucción de salto que apunta a un registro o valor absoluto? Estoy pidiendo una PC que estoy diseñando actualmente.

¿Hasta qué punto pueden los políticos ser reemplazados por modelos de computadora?

¿Cuáles son algunos proyectos relacionados con la visión por computadora o la robótica que podría asumir por mi cuenta que mejorarían una o más de mis habilidades y agregarían valor a mi perfil?

¿Qué libros / tutoriales recomendaría a alguien que tenga curiosidad por la seguridad cibernética y el cifrado y que tampoco sepa absolutamente nada?