¿La IA y el aprendizaje automático implican mucha codificación?

Las aplicaciones comerciales típicas del aprendizaje automático, como el modelado predictivo y la agrupación, dependen menos que nunca de la producción de código original.

La primera razón es el surgimiento de MLaaS (Machine Learning as a Service). La razón para ello proviene del hecho de que: el 20 por ciento de las herramientas en una caja de herramientas se utilizan en el 80 por ciento de las tareas (Principio de Pareto). El 20 por ciento restante de las tareas probablemente requiera un código personalizado.

La segunda razón es la escasez de profesionales que combinan habilidades analíticas, de codificación y automatización con un nivel razonable de conciencia empresarial. Para comprender, interpretar y evaluar adecuadamente el resultado de estas recetas “preparadas previamente”, necesitará un conocimiento razonable de IA. Además, debe tener algunas otras habilidades digitales como la lucha de datos, las API y la automatización.

Tome el ejemplo de Dataiku DSS . Es un estudio de ciencia de datos que permite el despliegue de los principales tipos de aprendizaje supervisado (por ejemplo, XGBoost, red neuronal, regresión de lazo, regresión de cresta) y aprendizaje no supervisado (KMeans), entre otros. Además, permite la producción de código personalizado directamente (Python, R, Jupyter notebook). Cada uno de los íconos en el siguiente flujo representa un conjunto de datos, una receta o un modelo implementado que se ha estimado y probado. No se requiere un código personalizado la mayor parte del tiempo.

Otro ejemplo es Microsoft Azure ML Studio. Los sistemas de almacenamiento de datos, algoritmos y modelos implementados también están conectados en un flujo.

Finalmente, me gustaría hacer referencia a uno de mis favoritos: Orange Data Mining. Es un estudio de código abierto de aprendizaje automático y visualización de datos para principiantes y expertos. Tiene una gran caja de herramientas que incluye minería de texto (modelado de temas) y reconocimiento de imágenes.

En resumen, AI y ML requieren menos código personalizado que hace unos años. Este es un hecho extremadamente importante para guiarlo a través de su elección de carrera. Creo que el aspecto más importante de la capacitación en ciencia de datos es aprender a hacer las preguntas correctas para resolver un problema. Luego, podrá hacer coincidir el problema con los datos disponibles para producir la mejor solución (algoritmo o experimento). Recuerde esta cita extrema pero útil: las computadoras son inútiles. Solo pueden darte respuestas (Pablo Picasso).

Ai y Machine Learning (para el propósito de esta respuesta, me enfocaré en Machine Learning, ya que es la técnica de programación de Ai más prominente en la actualidad) implican un poco de codificación, pero no tanto como pueda pensar.

ML se trata principalmente de crear modelos que puedan extraer e inferir información de sus datos. Esto requiere un poco de conocimiento matemático, pero usted prueba sus modelos en computadoras. El análisis de sus datos de antemano solo puede ayudarlo a elegir el modelo correcto. (tenga en cuenta que los investigadores están tratando de encontrar una manera de hacer mejores predicciones basadas en el análisis inicial de un conjunto de datos).

En otras palabras, ML no se trata tanto de codificar como de crear modelos creativos, lo que implica más matemática que programación.

Si está más interesado en el lado de la programación de ML, considere centrarse en implementar versiones de alto rendimiento de algoritmos de uso común y participar en el mantenimiento y desarrollo de marcos y bibliotecas de ML.

Por último, si solo está interesado en la programación y no desea familiarizarse con los conceptos matemáticos detrás de los algoritmos (que solo pueden llevarlo hasta ahora), debe reconsiderar si ML es el campo adecuado para usted.

PD: Escribo más sobre aprendizaje automático en mi blog Kasperfred | Blog

Como he explicado en esta otra respuesta, la inteligencia artificial y el aprendizaje automático son bastante amplios e implican modelado, desarrollo de algoritmos, análisis de algoritmos matemáticos y escritura de mucho código.

Por lo tanto, definitivamente escribirá bastante código en prácticamente cualquier subdominio de IA o aprendizaje automático. Y con la reciente ola de aprendizaje profundo, hay aún más énfasis en el éxito empírico, y se dedica poco tiempo al análisis matemático de tales problemas.

La naturaleza de su trabajo dependerá, por supuesto, de su posición exacta: se espera que los “ingenieros de aprendizaje automático” escriban más código que los modelos desarrollados, mientras que los “científicos de investigación” trabajan principalmente en el modelado y análisis de diferentes modelos.

Sin embargo, también debe sentirse cómodo y dispuesto a trabajar desde el punto de vista teórico, porque incluso si su trabajo consiste principalmente en escribir código, deberá comprender la maquinaria matemática detrás de los modelos.

Depende Supongo que la mayoría del trabajo en ML se divide en tres tipos de categorías:

  1. Conceptual … tratando de encontrar mejores modelos de representación (estas son algunas de las partes más importantes) y codificación para probarlos (Investigación)
  2. Crear modelos usando modelos representativos existentes y codificación para entrenar y ajustar y resolver un rompecabezas usando piezas existentes (Data Sciencey)
  3. Creación de sistemas escalables reales a partir de modelos conocidos / planificados (Ingeniería)

Por lo tanto, se utiliza mucha codificación para probar ideas y unir ideas para crear modelos, pero ese no es el tipo de material SWE más riguroso y normal. Eso es principalmente cuando se trata de implementar sistemas robustos.

Creo que la mayoría de los trabajos en el espacio se superponen, pero sesgan más de una forma u otra.

No, la IA y el aprendizaje automático son mucho más que “simplemente analizar datos y hacer modelos predictivos utilizando algoritmos prefabricados”.

Ciertamente hay codificación involucrada, y en realidad depende de usted cuánto desea involucrarse con ella. Pero en general, el nivel de codificación no es tan grande en comparación con cosas como la programación de sistemas, por ejemplo, escribir un núcleo del sistema operativo, un sistema de archivos, un compilador u otras herramientas.

En esencia, AI y ML tratan sobre algoritmos y el alcance de la codificación se basa principalmente en implementarlos, con algún código de soporte adicional. No debe esperar resultados extraordinarios con ‘algoritmos prefabricados’.

Asegúrese de calibrar sus expectativas y razones por las cuales desea involucrarse. En caso de que solo desee familiarizarse con algo básico y repetir algunos resultados bien conocidos, entonces no servirá mucha codificación con algoritmos prefabricados. Pero si apuntas más alto, para descubrir nuevos resultados interesantes, entonces debes esperar arremangarte más.

Manteniéndolo corto y actualizado, Machine Leaning y AI requieren menos código. Si usa Python, el código no excedería las 10 líneas. Pero eso no es importante si te diriges a ML. Este enfoque no es nuevo. Ha existido durante décadas, pero recientemente se ha vuelto inmensamente más popular. Todo lo que es importante en el aprendizaje automático es el conjunto de datos / conjunto de entrenamiento y el algoritmo.

El aprendizaje automático no es fácil. Hacer que una máquina funcione como un humano es un trabajo difícil. Esta dificultad a menudo no se debe a las matemáticas. Una parte de esta dificultad implica construir una intuición sobre qué herramienta se debe utilizar para resolver un problema. Esto requiere conocer los algoritmos y modelos disponibles y las ventajas y desventajas de cada uno.

Bueno eso depende. Piense en ello como la diferencia entre la física aplicada y la física teórica. Si desea realizar una gran cantidad de codificación y programación, debe estar en el brazo teórico, tratando de desarrollar nuevos algoritmos de Machine Learning y nuevos enfoques para la Inteligencia Artificial. Hay poca necesidad de volver a codificar los algoritmos existentes (excepto si la versión de código abierto puede mejorar). El brazo aplicado de AI está principalmente ‘aplicando’ algoritmos y técnicas conocidas a los datos. Se requiere mucha más preparación de datos, así como iteraciones para ajustar los modelos.

Quizás haya un nivel intermedio que aplique y modifique la IA a los nuevos dominios problemáticos. Considere la posibilidad de aplicar Random Forest o vecinos más cercanos a K a un nuevo dominio (sonetos, rayos X, escáneres cerebrales, ADN, …). La definición de la métrica de ‘distancia’ o incluso la definición de una característica puede requerir cierta codificación. Una vez hecho esto, los algoritmos son en gran medida independientes de los datos subyacentes.

La IA aplicada tiene más demanda, porque hay una gran variedad de problemas que pueden beneficiarse al aplicar lo que se ha desarrollado hasta la fecha. AI y Machine Learning están redefiniendo trabajos en todas las industrias.

Más que codificación, AI y ML consisten en muchas matemáticas.

  • A veces solo tienes que convertir la ecuación matemática en código python.
  • Debe pensar estadísticamente y hablar el idioma de sus datos. Y para el idioma, necesitas codificación.
  • En el campo de ML, generalmente adquieres datos y los obtienes en una forma con la que puedes trabajar, pero al final finalmente quieres aclarar y debes sacar conclusiones de ellos. Estos pasos se basan en los principios de inferencia estadística.

Para hablar estadísticamente con la computadora, necesitamos un lenguaje, llega Codificación.

  • Pero técnicamente hablando Machine Learning trata con el algoritmo predefinido en el que debe codificar junto con los códigos de soporte adicionales.
  • ML no necesita codificación tan necesaria como para escribir el núcleo del sistema operativo o como otras herramientas.

Los proyectos de aprendizaje automático no terminan con solo la codificación, hay muchos más pasos para lograr resultados como Visualizar los datos, aplicar el algoritmo ML adecuado, ajustar el modelo, preprocesar y crear tuberías.

Entonces, sí, también se requiere codificación y otras habilidades.

Bueno, la respuesta a esto es sí y no, la cantidad de codificación dependerá de la pregunta que esté tratando de responder usando ML, ya que algunos análisis se pueden hacer con los códigos existentes, entonces podría salirse con menos codificación, sin embargo, si su modelo necesita algunos cambian los supuestos básicos del modelo que está utilizando como parte de la codificación previa, entonces es posible que deba realizar una gran cantidad de codificación, ya que entonces podría tener que escribir muchos códigos que de lo contrario podrían haberse evitado.

En general, la complejidad y el éxito de ML dependen de la pregunta que se haga y, a veces, obtendrá mucha información de Internet, a veces muy poca. Pero esta es la mejor parte para estar en esto, ya que le permitirá explorar su conocimiento y desafío, la codificación es solo un aspecto de ML, su parte principal es la matemática detrás de un modelo que es la fuerza real y preocupante, pero incluso ver esto Matemáticas en acción necesita hacer algo de programación, las dos se completan entre sí.

No lo creo. La mayor parte del código más profundo que he visto en los proyectos tiene que ver con la traducción de entrada / salida legible por humanos a una forma legible por máquina. La otra área que he visto es un código más complejo debido a los requisitos de presentación y descubrimiento. Una parte final de la complejidad recae en la seguridad de los datos y los problemas de seguridad. Todo lo cual es parte de una tubería de aprendizaje automático, pero no exclusivo del aprendizaje automático.

De hecho, depende de su uso exacto. Si desea escribir todo el código con algoritmos usted mismo, entonces requiere mucha codificación. Pero, por otro lado, si solo va a usar las bibliotecas listas para usar disponibles, serán solo algunas líneas de codificación.

Respuesta corta y dulce.

¿Los poetas escriben mucho?

Piensan mucho y solo escriben algunas líneas y luego piensan escribir algunas líneas más.

Por lo tanto, es un trabajo de investigación que requiere una comprensión profunda de la programación de computadoras con excelentes habilidades de aplicación.

Sí, si eres un maldito idiota.

Todo es difícil si eres un maldito idiota.

De lo contrario, sea una bestia y use Watson de IBM.

Y deja de ser una perra.

More Interesting

Procesamiento del lenguaje natural: ¿De qué maneras puedo probar el error de aplicar un modelo de tema a los tweets, dado que no hay un corpus conocido de etiquetas de temas?

¿Cuál es mejor LMS o descenso más empinado?

¿Qué computadora necesito para trabajar en aprendizaje profundo y redes neuronales?

¿Qué es un gran blog para el aprendizaje automático?

¿Cuáles son los mejores algoritmos para construir sistemas de recomendación?

¿Hay ejemplos de organizaciones de ciencias de la vida que logren resultados en el descubrimiento de drogas a través del aprendizaje automático que no serían posibles sin el aprendizaje automático?

Cómo obtener una posición de RA en el Grupo de Aprendizaje Automático de Microsoft Research India

¿Por qué los investigadores de IA se centran solo en problemas de regresión y clasificación?

¿Es posible darle a una computadora millones de imágenes de varios objetos, y se da cuenta de que hay cosas como animales, platos de cocina, montañas, etc. sin que nosotros lo digamos, y cómo se hace esto exactamente?

¿Qué es la optimización de colonias de hormigas y cómo funciona en términos simples?

¿Qué debo hacer para aprender el aprendizaje profundo, especialmente usarlo para resolver problemas?

¿Qué opinas sobre la inteligencia artificial? ¿Vale la pena desarrollarla?

¿Qué significa una probabilidad gaussiana en el clasificador bayesiano ingenuo gaussiano?

En los algoritmos de aprendizaje automático, ¿por qué la función sigmoidea se usa principalmente y no funciones como tanh (x)? En tanhx por ej. parece dividir el eje y de manera uniforme y aplanarse rápidamente a medida que x se aproxima a +/- infinito. El rango es: sigmoide [0-1] y tanh (x) [-1,1].

Cómo elegir el modelo correcto con la distribución correcta