¿Cuáles son algunos proyectos de aprendizaje automático simples pero buenos que se pueden hacer fácilmente sin mucho esfuerzo?

La compresión de datos es una aplicación muy general y práctica del aprendizaje automático. La idea es considerar el archivo de entrada como una secuencia de símbolos (bits, bytes o palabras) y asignar códigos más cortos a los símbolos más probables. Específicamente, dado un símbolo con probabilidad p, desea codificarlo utilizando bits de registro (1 / p). Puede hacer esto casi exactamente (incluso permitiendo longitudes fraccionarias) utilizando codificación aritmética. Luego, para descodificar, se realiza la misma secuencia de predicciones (a partir de los datos descodificados previamente) y se usa el decodificador aritmético para convertir los códigos de nuevo en símbolos.

La parte interesante (difícil) del problema es el modelado o la predicción, el paso de asignar una probabilidad p a cada resultado posible para el siguiente símbolo. Aquí es donde aplicas tus algoritmos de aprendizaje automático. Cuanto mejor sea tu algoritmo, mejor será la compresión. Incluso puedes competir por los premios, por ejemplo, el Desafío de Compresión / SHA-1 de Calgary o el Premio Hutter de 50’000 € por Comprimir el Conocimiento Humano. Que te diviertas.

Si este problema le interesa y desea obtener más información sobre la compresión de datos, puedo recomendar mi libro en línea, Explicación de la compresión de datos.

Me he divertido con redes neuronales y algoritmos genéticos. Las redes neuronales de Feed-Forward en particular tienen muy buena documentación y tutoriales en la web. También he escrito una biblioteca de python ( http://github.com/williamg/neura… ) que implementa redes neuronales y facilita la capacitación de las suyas para aplicaciones prácticas. Las redes neuronales se pueden usar para toneladas de tareas divertidas como el reconocimiento óptico de caracteres, problemas de clasificación, IA de juegos de mesa, etc. Por lo tanto, si desea crear su propia biblioteca o usar una biblioteca existente y simplemente capacitarla en un conjunto de datos en particular, existe una curva de aprendizaje.

Los algoritmos genéticos también son interesantes, pero requieren un poco más de pensamiento / esfuerzo para implementar uno. Es decir, descubrir cómo traducir el “ADN” a valores prácticos y “fenotipos” puede ser complicado. Los algoritmos genéticos son geniales porque combinan la biología con la ciencia y logran resultados notables. Algunos proyectos de ejemplo incluyen obras de arte genéticas, simulaciones, búsqueda de raíces polinomiales, etc. Una vez más, si solo está interesado en usarlos para un proyecto como los que he enumerado, he escrito una biblioteca de Python que es fácil de usar. y empezar a usar ( http://github.com/williamg/genetic )