¿Cómo escribirías un programa de aprendizaje automático desde cero?

Idealmente sentado detrás de una PC con una taza de bebida caliente y buena música en mis oídos 😉

Tengo la sensación de que no es lo que querías escuchar, así que déjame tratar de hacerlo desde un ángulo diferente.

Cosas para comenzar (y mi recomendación entre paréntesis):

  1. Elegir idioma (C #)
  2. Elija marco (.net, WPF)
  3. Elija un problema que resuelva el algoritmo (reconozca letras)
  4. Tenga en cuenta que necesita algún tipo de interpretación visual de los resultados y las entradas para depurar visualmente lo que está sucediendo (GDI +)
  5. Cree una buena estructura para la aplicación (algoritmo ML separado de la interfaz de usuario y la manipulación de datos)
  6. Elija el algoritmo ML (ANN haría para este problema)
  7. Obtenga el conjunto de capacitación en la base de datos de dígitos manuscritos MNIST, Yann LeCun, Corinna Cortes y Chris Burges
  8. Comience a escribir código para
    1. Lectura de datos
    2. Mostrar datos
    3. ANA
    4. Algoritmo de aprendizaje (propagación hacia atrás)
    5. Visualizar resultados
  9. Probar, depurar y mejorar

Espero que te diviertas y no dudes en pedir más detalles en los comentarios. Creo que este sería un buen comienzo para ti.

Con suficientes antecedentes matemáticos (al menos un nivel superior de matemáticas de pregrado), puede comenzar a diseñar nuevos algoritmos a partir de piezas existentes o de nuevos tipos de algoritmos derivados de las matemáticas. Estos pueden implementarse utilizando solucionadores existentes y código personalizado en R o Python. Vea mi perfil de Google Académico para ver algunos ejemplos de esto.

Puede , pero pasará un tiempo antes de que llegue a la parte de aprendizaje automático real.

Una mejor solución es utilizar uno de los muchos paquetes de aprendizaje automático de código abierto. De los 8 paquetes impares compatibles con los chips de aprendizaje automático de Apple, ¡solo 1 NO es de código abierto! El Caffe Deep Learning Framework de UC Berkeley es un punto de partida decente de la OMI, bien documentado y con licencia BSD.

Hay muchas fuentes que pueden informarle sobre cómo escribir un programa de aprendizaje automático desde cero. Uno de ellos es Kaggle.

El enlace anterior está orientado principalmente a escribir en scikit-learn en python. Puede comenzar allí y explorar otros paquetes de python o paquetes R (según el idioma que esté utilizando) para escribir algoritmos de aprendizaje automático.

Ahora, ¿por qué querrías hacer eso?

Necesitaría habilidades de programación de primer nivel, un profundo conocimiento de la inteligencia artificial y una gran cantidad de tiempo.

El enfoque sensato sería utilizar una de las muchas bibliotecas o marcos desarrollados para este propósito. Le ahorrará miles de horas hombre de trabajo y le dará un mejor resultado.

Realmente no hay necesidad de reinventar la rueda para cada proyecto.

Aprende lenguaje máquina. No se puede hacer. Obtenga un buen programa para programar en lenguaje de máquina para usted. Obtenga un programa para programar ese programa en un idioma más fácil. Repita hasta que la simplicidad le permita programar exactamente lo que quiere hablando correctamente en su idioma nativo.

More Interesting

¿Qué tan útiles son los límites de convergencia en la aplicación práctica del aprendizaje automático?

¿Qué lenguajes de programación son adecuados para el procesamiento del lenguaje natural?

El límite de decisión de los árboles de decisión es el eje paralelo. Random Forests es un conjunto de árboles. ¿Cuál es el límite de decisión de los bosques aleatorios?

¿Cuál es una explicación intuitiva de las redes residuales profundas?

¿Cuál es el mejor lenguaje para el procesamiento del lenguaje natural?

Cómo comenzar a implementar un sistema de recomendación para juegos

¿Cuál es la relación entre el modelo Log Linear, el modelo MaxEnt y la regresión logística?

¿Cuál es la diferencia de enfoque para resolver un desafío de Kaggle y trabajar en un problema de investigación de LA bien definido?

Antes de elegir y aplicar incluso el modelo de aprendizaje automático lineal más simple, ¿qué aspectos estadísticos de los datos debo considerar?

¿Existe un equivalente de imagen (lenguaje de programación probabilístico del MIT para la percepción de la escena) para PNL?

Cómo interpretar el resultado de una red totalmente convolucional

¿Qué debe saber un profesional de aprendizaje profundo para un hackathon?

Cómo usar el método probabilístico para probar el problema de Ramsey multicolor

¿Puede el aprendizaje profundo predecir los dígitos de Pi?

Cómo pensar que el 'problema de aprendizaje One Shot' se resolverá con Deep Neural Network