Descargo de responsabilidad: tengo una experiencia limitada en aplicaciones de aprendizaje automático porque todavía soy un estudiante universitario y no estoy trabajando en ninguna gran empresa que aplique el aprendizaje automático ni sé mucho sobre el aprendizaje automático. Entonces mi experiencia es limitada. Será editado en el futuro a medida que gane más experiencia en este tema específico.
Por supuesto, es diferente, pero no siempre es tan diferente. Realmente depende de para qué estás usando el aprendizaje automático. En general, el aprendizaje automático utiliza una interpretación probabilística (matemática) de los datos disponibles para crear un modelo útil. Muchas veces, necesita usar este modelo en un sistema a gran escala porque es útil para su aplicación y aquí es donde el aprendizaje automático está más cerca de la programación de sistemas, porque utiliza técnicas de programación para desarrollar dicho sistema. O necesita construir un sistema que analice sus datos.
Si desea crear una aplicación que utilice el aprendizaje automático, hay dos etapas para que esto suceda. Primero, debe conocer los algoritmos de aprendizaje automático que serán útiles para esa aplicación en particular y luego debe incorporarlos en la aplicación. En la primera etapa, el aprendizaje automático es diferente a la programación de sistemas, excepto si está construyendo sistemas a gran escala que pueden analizar datos (como Mahout). Después de eso, debe implementar (o usar una biblioteca específica) esos algoritmos en su sistema. Este es el paso donde el aprendizaje automático y la programación de sistemas están más cerca uno del otro. Explicaré más lo que ya he dicho para aclarar mi punto.
- ¿La gran tecnología dominará los datos y el aprendizaje automático?
- Si uno está tratando de construir un codificador automático para el conjunto de datos MNIST, ¿debería normalizar los datos sin procesar?
- ¿Cuál es la mejor manera de combinar filtrado colaborativo y recomendaciones basadas en contenido?
- ¿Cuáles son los métodos actuales o estándar de combinación de datos estructurados y no estructurados en redes neuronales convolucionales?
- Cómo predecir las ventas del próximo año, nivel de día, dada la información de ventas de años anteriores, también a nivel de día, y mediante el uso de Kalman Filtering
PASO 1
Si tiene algunos datos y desea encontrar alguna estructura interesante en ellos, por ejemplo, tiene clientes y luego desea encontrar grupos significativos, deberá seguir los siguientes pasos (no en este orden en particular):
- Explore sus datos para tener una idea de lo que quiere hacer. Si tiene un archivo .csv, es posible que desee abrir el archivo e imprimir (o ver) algunos valores.
- Preprocese sus datos. Esta es una forma de extraer nuevas características o tratar con valores atípicos (es decir, puntos de datos que no son útiles o son las excepciones a la regla)
- Aprenda un clasificador / regresor / etc. (para tareas supervisadas) o encuentre una estructura útil en los datos (para tareas no supervisadas).
- Itere hasta que encuentre un modelo útil que pueda generalizar efectivamente a nuevos datos.
Esta es una visión general simplista pero ayudará a entender. Además, tenga en cuenta que para realizar este tipo de procesamiento, es posible que desee utilizar una parte de los datos disponibles porque no tiene los recursos para hacerlo en todos sus datos y, en la mayoría de los casos, está utilizando un lenguaje de secuencias de comandos (R, MATLAB, Python), que no es tan rápido como otros idiomas.
PASO 2
Después de tener el modelo, debe aplicarlo en su sistema. Por lo tanto, necesita encontrar una manera de implementar el modelo en su sistema y este es el lugar donde necesita encontrar una forma de “sistemas” para implementar los algoritmos de aprendizaje automático que desea.
En la mayoría de los casos, será necesario que sea un sistema escalable porque no sabe cuántos datos más estarán disponibles en el futuro. Como ejemplo, cuando desee crear una aplicación móvil que reconozca los alimentos para proporcionarle información sobre sus nutrientes (calorías, etc.), debe crear un sistema que tome fotos y luego las envíe a su servidor, luego el El servidor utiliza un algoritmo de visión por computadora para tomar algunas decisiones y devuelve el resultado. Sin embargo, su algoritmo de visión por computadora debe ser escalable y también puede necesitar aprender en línea para mejorar para futuras solicitudes. Y debes hacerlo lo suficientemente rápido porque nadie quiere esperar. Por lo tanto, implementa dicho sistema en un lenguaje de programación inferior como C ++,