Cada vez nos topamos con más aplicaciones que están solucionando problemas haciendo uso uso de Inteligencia Artificial y esta racha continuará, seguiremos encontrando un gran número startups que están basadas en algoritmos que usan la Inteligencia artificial, ya sea automatizando flujos, procesando imágenes, en el sector de atención a clientes y más. Por otro lado, las empresas grandes han estado invirtiendo millones en desarrollo de I.A. para eficientar procesos y usos específicos de su giro de negocio.

Screen Shot 2018-10-29 at 6.08.10 AM

Esto obviamente causa que la demanda por gente con conocimientos en esta área esté incrementando y dado el pequeño número de personas que se dedican a la inteligencia artificial la paga para este tipo de personas es sumamente alta así que mencionaré cuáles son las habilidades y conocimientos que se requieren para poder desarrollar una carrera en Inteligencia Artificial.

 

Conocimientos matemáticos

Como algunos ya sabrán para poder desarrollar carrera en I.A. necesitamos un buen set de habilidades y conocimientos matemáticos, si quieres desarrollar una carrera en el ámbito académico o de investigación estos conocimientos deben de ser mucho más robustos que si quieres dedicarte a ser un programador de I.A, si quieres dedicarte a programar soluciones de I.A. no requieres estar haciendo fórmulas matemáticas todos los días, pero sí es importante que tengas una buena noción de los cálculos que están corriendo detrás de los algoritmos que usas, ya que esto te será sumamente útil para que puedas optimizarlos y lidiar con varios problemas.

Screen Shot 2018-10-29 at 6.07.43 AM

Probabilidad y estadística

Muchos algoritmos que se usan en Inteligencia Artificial hacen uso de la probabilidad y estadística, por eso es sumamente importante tener los conceptos básicos muy bien aterrizados, cosas como regresiones, teorema de Bayes, exclusividad mutua y eventos independientes para nombrar algunos . También es sumamente útil durante el proceso de limpieza de nuestros datos, ya que viendo estadísticas de la data que se tiene podemos inferir cosas muy importantes y limpiar/transformar los datos de una mejor manera.

Álgebra lineal

Álgebra lineal es uno de los fundamentos más importantes para las redes neuronales, esto se debe a que constantemente estarás haciendo operaciones con matrices y vectores y es muy importante que te sientas cómodo con las operaciones matriciales, entendiendo las sumas, multiplicaciones, transpuestas e inversas como mínimo.

Cálculo

Tener un buen conocimiento de cómo funcionan las derivadas,  las integrales, entender la notación de Leibnitz es importante para que entiendas cómo funcionan algunos de los algoritmos, sin duda alguna puedes desarrollar varios algoritmos de I.A. sin programar explícitamente una integral o derivada, pero tener este conocimiento te ayudará a entender que pasa tras bambalinas de tus programas y teniendo esta noción es muy útil para poder optimizar modelos.

 

Programación

Conocimientos en programación son esperados de alguien que trabaje en Inteligencia Artificial, hay varias herramientas y lenguajes que se usan, aquí mencionaré lo que tiene una mayor demanda en el mercado en general.

Python

Como lenguaje de programación sin duda alguna ahorita el que mayor mercado tiene en I.A. es Python, es un lenguaje sumamente versátil, muy bien documentado y que cuenta con varios frameworks y paquetes dedicados al desarrollo de inteligencia artificial. La mayoría de los tutoriales y guías que encontrarás en internet para desarrollar algoritmos será en Python.

 

Para no inventar el hilo negro, necesitarás paqueterias que te faciliten el desarrollo de tus algoritmos en Python, las paqueterias más importantes y relevantes son las siguientes:

Tensorflow

Librería específica para el desarrollo de redes neuronales, desarrollada por Google, tiene documentación muy completa en internet y es la paqueteria que cuenta mayor y mejor integración para plataformas en línea como Google Cloud platform o Amazon Web Services.

Keras

Es una librería la cual está construida encima de Tensorflow, te permite armar la estructura de una red neuronal de manera más sencilla que con Tensorflow, muchos hiperparametros ya vienen predefinidos por lo cual no tienes que estarlos configurando tu, ganas velocidad de desarrollo pero pierdes flexibilidad en comparación con Tensorflow, las últimas versiones de Tensorflow ya tienen integrada la paqueteria de Keras, por lo que a veces no es necesario tener que instalar como una paquetería extra.

Numpy

Esta paqueteria es muy útil ya que permite el manejo de arreglos dentro de python, esto nos ayuda a eficientar el procesamiento de grandes volúmenes de datos, lo cual es crucial en algoritmos de I.A.

Open CV

Si vas a estar desarrollando algoritmos para procesamiento de imágenes, Open CV es una grandiosa herramienta a tener en tu repertorio, aunque no lo estarás usando para crear redes neuronales, lo estarás usando para el procesamiento y manejo de la imágenes.

Servicios y soluciones en la nube

cloud

Servicios en la nube tales como los que ofrece Amazon Web Services, Google Cloud platform o Azure de microsoft son bastante importantes para los desarrolladores en inteligencia artificial, cada plataforma ofrece servicios muy valiosos para distintas etapas del desarrollo de algoritmos, pero algunos de los beneficios que podemos obtener de estas plataformas son los siguientes:

Computación en la nube

Muchos algoritmos que estaremos entrenando requieren de máquinas sumamente potentes, por suerte estas plataformas tienen servicios los cuales nos brindan acceso a máquinas con hardware especializado. Alguna son:

 

Soluciones sin código

Por suerte también algunas de las grandes plataformas nos ofrecen modelos de I.A. pre entrenados los cuales nos permiten entrenar algoritmos sin siquiera tener que hacer una línea de código. Obviamente pierdes mucha libertad en el sentido que no puedes hacer modificaciones a la estructura del modelo, pero a veces una solución de este estilo es más que suficiente.

 

Tips finales

Lo mencionado aquí no es una guía absoluta, siendo I.A. una rama que está teniendo tanto crecimiento por el momento, constantemente están saliendo nuevas herramientas, algoritmos, lenguajes de programación y plataformas así que estar investigando constantemente, tomar cursos en línea, seguir a las grandes empresas  para ver su oferta de herramientas (AWS, Google cloud platform, Azure etc) es sumamente importante.