¿Cómo pueden los desarrolladores incorporar inteligencia artificial o aprendizaje automático en su software hoy?

La mejor manera de incorporar IA o aprendizaje automático es siguiendo un proceso muy similar al siguiente.

Primero, ¿cuáles son las principales métricas o resultados que más le interesan mejorar? ¿Desea aumentar el compromiso, el uso, la jugabilidad (por ejemplo, para un juego donde el usuario compite contra una computadora), etc.?

Una vez que tenga algunas métricas que le gustaría optimizar, el siguiente paso es averiguar qué datos puede usar para ayudarlo a mejorar esas métricas. Por ejemplo, si desea aumentar la participación en una página de su aplicación, querrá buscar datos como porcentajes de clics en elementos de la página, que puede convertir en funciones que pueden predecir qué elementos debe mostrar a un usuario maximizar su tasa de clics (un proxy para el compromiso).

Finalmente, con los valores que desea optimizar, los datos y las características, puede aprovechar los algoritmos predictivos que pueden tomar las características que ha creado (en este caso, puede ser información del usuario y otra información contextual), optimice para hacer clic califica y predice la ubicación de cualquier elemento en la página para cualquier usuario dado.

Este proceso de 3 pasos es una forma general de pensar sobre el aprendizaje automático y ciertamente no cubre todos los casos de uso potenciales del aprendizaje automático. Si desea comenzar con cualquiera de estas soluciones, puede aprovechar la red de modelos creados por desarrolladores en sitios como Datmo [1]. Con la interfaz de línea de comandos puede clonar y entrenar modelos con sus propios datos para encontrar rápidamente soluciones que optimicen la métrica que más le interesa. Finalmente, una vez que tenga un modelo entrenado que funcione, puede implementarlo como una API RESTful para que pueda agregar el modelo predictivo a su aplicación y verlo funcionar en producción.

¡Espero que esto ayude!

Notas al pie

[1] Construir. Compartir. Colaborar. Todo en un lugar

No puedo hablar por el caso general, pero tengo una estrategia para hacer esto en un programa en el que estoy trabajando. Es para identificar ‘archivos de interés’ y clasificarlos inicialmente: tengo muchos millones de archivos en mis sistemas aquí y, debido a fallas de disco, están un poco confusos y no es fácil adivinar qué cosas van juntas, cuáles son redundante, donde pertenecen las cosas, etc.

El proceso que estoy usando es escanear discos y convertir aspectos de los archivos en métricas que pueden ser analizadas por una red neuronal artificial (ANN) (para la cual ya tengo código).

En términos generales, estoy construyendo una utilidad que procesa previamente los datos para facilitar el análisis de ANN y luego pasará por iteraciones para refinar qué métricas son las mejores.

Soy un poco vago en esto porque todavía no estoy 100% seguro de cómo haré esto en el código todavía, pero es mi intención que el ANN funcione en ‘capas’ de modo que una capa clasifique los archivos en categorías iniciales y capas adicionales funciona solo dentro de categorías ordenadas por capas subyacentes.

He examinado varias herramientas más complejas que deberían permitir una ventaja en cosas como esta, pero quiero poder tener una base de código pequeña y simple capaz de aprovechar la propagación hacia atrás y la capacidad de aprender y almacenar ese aprendizaje. sin quedar atrapado en todos los gastos generales de cosas como Apache Mahout o Google TensorFlow. TensorFlow tiene casi un millón de líneas de código en comparación con lo que espero que el mío llegue a menos de 5-10K o menos.

El aprendizaje automático se puede incorporar en varias cosas que puede pensar, como juegos, aplicaciones, sitios web, etc.

Podemos incorporar el aprendizaje automático en juegos como ajedrez en línea, damas, juegos de cartas, etc. Casi todo lo que implique que un usuario juegue contra una computadora puede implementar el aprendizaje automático para que la habilidad de las computadoras mejore con la cantidad de juegos jugados.

También podemos usar el aprendizaje automático en aplicaciones que impliquen predicción. Podemos hacer una aplicación que haga predicciones de puntaje que prediga el resultado de partidos / juegos jugados en tenis, cricket, fútbol, ​​rugby, béisbol, etc., en función de los registros de partidos anteriores y aplicando un algoritmo de aprendizaje automático.

Las posibilidades del aprendizaje automático son infinitas.

Ai es básicamente un concepto o un conjunto de técnicas que permiten que un software analice y procese datos por sí mismo. Una vez que sepa qué tipo de tareas inteligentes desea que realice su software, puede aplicar estos conceptos de forma manual (transformando el concepto en código) o utilizando un determinado servicio.