La mejor práctica para los algoritmos de aprendizaje automático es dejarlos para el backend.
Los algoritmos de aprendizaje automático difieren de otros solo en la cantidad de recursos que necesitan para trabajar. Cuando tiene una regresión logística simple o un pequeño clasificador de árboles de decisión, la mejor práctica es, bueno, codificarlos y ponerlos en la aplicación. No es gran cosa, al igual que algunos recorridos de gráficos o búsquedas de hashset.
Todo es diferente cuando se trata de cosas pesadas como las redes neuronales.
- ¿Por qué la mayoría de las entrevistas de empresas basadas en productos están obsesionadas con los algoritmos en lugar de las habilidades reales de resolución de problemas?
- ¿Cuáles son las aplicaciones prácticas / de la vida real / industriales de Dijkstra, Kruskal y Algortithm de Prim?
- ¿Cuál es la probabilidad de que 2 números sean iguales en una lista aleatoria de n números de m dígitos?
- ¿Cuáles son los algoritmos posibles que se pueden usar para ordenar cada cubo en el algoritmo de clasificación de cubo?
- ¿Es posible hackear usando el lenguaje de programación C?
Cuando desarrollo una arquitectura neuronal, necesito ejecutar algunas pruebas solo para asegurarme de que funciona. Entonces, incluso si la arquitectura era “profunda” desde el principio, la hago mucho, mucho más pequeña y la ejecuto en mi computadora portátil que tiene GTX 965M con 2 Gb de memoria.
No hay un teléfono inteligente en el mundo que pueda acercarse a un humilde GTX 965M en términos de rendimiento. Ni siquiera necesito mencionar que incluso si existiera, quemaría las manos de sus usuarios, tratando de disipar 50-70 vatios de calor en el proceso.
Entonces, en este momento no hay forma de ejecutar algo profundo en un teléfono inteligente, lo que deja a los desarrolladores con la única opción para hacer todo el trabajo pesado en el backend.