Como principiante, ¿debo invertir mi tiempo en escribir mi propio algoritmo de aprendizaje automático desde cero?

La respuesta probablemente no sea, pero depende. Desarrollar su propio algoritmo puede ser una excelente manera de obtener una comprensión realmente profunda de los problemas que deben superarse al crear algoritmos de aprendizaje automático, y obviamente conocimiento experto sobre el algoritmo que usted crea.

Sin embargo, encontrar un algoritmo original de buena calidad, luego pasar por el proceso de probarlo y refinarlo para que sea utilizable, será extremadamente difícil y requerirá mucho tiempo y esfuerzo. Desarrollar un nuevo algoritmo de aprendizaje automático es, literalmente, lo que la gente hace por su doctorado. E incluso entonces, la mayoría de los doctorados no comienzan desde cero, sino que modifican / mejoran un algoritmo existente.

Algunas otras cosas a considerar:

  1. ¿Que problema estas tratando de resolver?
  2. ¿Existen algoritmos existentes para ese tipo de problema?
  3. ¿Puedo usar o modificar algo que ya existe para abordar ese problema?
  4. ¿Cuánto tiempo y esfuerzo estoy dispuesto a invertir en este proyecto?
  5. ¿Sería más productivo utilizar ese tiempo y energía para obtener una comprensión profunda de muchos algoritmos de aprendizaje automático existentes y el proceso de aprendizaje automático en general?

Como mínimo, sugeriría pasar el tiempo para comprender cómo funciona el aprendizaje automático y qué algoritmos ya existen, luego decidir si desea pasar al siguiente nivel y desarrollar su propio algoritmo.

PODRÍAS comenzar allí. Soy de la opinión, sin embargo, que obtener una visión holística de ML es de mayor valor al principio; Esto no es práctico si pasa por la molestia de implementar todo lo que aprende a mano.

Específicamente porque eres un principiante, tendrá mucho sentido elegir un algoritmo de ML e implementarlo desde cero. Eso obligará a comprender el algoritmo en profundidad y a tener una buena idea de las dificultades técnicas (de codificación) asociadas con él.

Cuando se convierta en un experto, puede ignorar los detalles de manera segura y usar alguna biblioteca existente por una simple razón: sabe que, si es necesario, ¡puede hacer todo desde cero!

Si implementa algoritmos desde cero, en el futuro no tendrá que depender de una biblioteca o idioma en particular. Será fácil para usted implementar ese algoritmo en otro idioma según lo exija el proyecto.