Mucha gente me pregunta, ¿qué es Data Science?
Si hace esta pregunta a diferentes data science, probablemente obtendrá una variedad de respuestas diferentes.
No solo el campo es interdisciplinario, sino que el mercado de trabajo también exige diferentes conjuntos de habilidades del data science en diferentes roles laborales.
Dependiendo de la naturaleza de su trabajo, podría encontrar un data science cuya mayor parte del tiempo se dedica a investigar y crear nuevas teorías para las tareas existentes, o incluso a aquellos que podrían presentar una teoría completamente nueva (redes neuronales convolucionales / recurrentes).
Estoy seguro de que alguien por ahí probablemente esté trabajando para crear X Neural Net que algún día podría destruir estos modelos existentes).
Por otro lado, podría encontrar data science que trabajen con archivos CSV a diario, hagan limpieza y visualización de datos, y elaboren informes perspicaces que podrían ayudar a impulsar decisiones de gran interés.
En otras ciencias como la biología, la física y la química, las definiciones son bastante claras en cuanto a lo que las personas están haciendo en el campo.
Entonces, ¿qué es exactamente ciencia de datos?
Los datos son para Ciencia de datos, como los elementos son para química. Cuando se trata de química, identifica los bloques de construcción más básicos, sus propiedades y crea modelos más complejos a partir de ella, para comprender y predecir lo que sucedería en un escenario diferente.
Si el modelo es correcto y generalizable, entonces el modelo es válido. De lo contrario, construyen nuevos modelos. Lo mismo es para Data Science.
Lo más básico que puede tener en Data Science es un punto de datos. A partir de los datos, los científicos de datos pueden construir un modelo para explicar qué está sucediendo en el escenario que enfrentamos, validarlo y probarlo.
Pero para hacer todo esto, necesitamos un poco de Informática, Matemáticas y Estadística, y Dominios / Experiencia Comercial.
Informática
La mayoría de los algoritmos relacionados con el reconocimiento de patrones no solo tienen soluciones de forma cerrada.
Si piensas en la Regresión lineal, puedes simplemente usar la agradable propiedad geométrica de linealidad para derivar las Ecuaciones Normales, que te permiten obtener una fórmula para obtener la solución directamente de todas tus entradas.
Ahora que está limpio. Pero cuando hace algoritmos avanzados de Machine Learning como Kernelized SVM, Decision Trees y Neural Networks, su mejor opción es utilizar la optimización numérica (es decir, el algoritmo de gradiente de descenso) para encontrar un óptimo.
Machine Learning a gran escala requiere un fuerte experiencia en programación como paralelismo de datos, computación distribuida y administración de memoria.
Por ejemplo, cuando observa un ejemplo de juguete de entrenamiento de un clasificador de imágenes en datos MNIST, puede ajustar todo el conjunto de datos en la memoria.
Digamos que tienes 1 TB de datos de imagen. Simplemente asignando todas las imágenes como X en tu código python se bloquearía tu programa.
Otro ejemplo sería la vectorización de datos. Un método ingenuo para entrenar una red neuronal sería escribir un grupo anidado de ciclos for para actualizar elementos individuales en la matriz de ponderación.
En el mundo platónico de las matemáticas, eso sería en teoría suficiente para obtener un clasificador sólido de aprendizaje automático, pero en la práctica, eso podría tomar meses o años en completarse … (sin mencionar los errores que descubrirás dentro de 2 meses) !!!
En mi empresa ( Datawow, una plataforma de micro tareas donde los moderadores humanos etiquetan grandes volúmenes de datos para entrenar modelos Machine Learning para la automatización de tareas ), entrenamos clasificadores de imágenes con terabytes de datos, y el paralelismo de datos en múltiples GPU es muy esencial.
Estos son solo algunos ejemplos para empezar, y nunca se sabe a qué problemas se enfrentará como Data Scientist. Por lo tanto, una gran habilidad / experiencia en programación ayudaría mucho en Data Science.
Matemáticas y estadísticas
Machine Learning en sí es un concepto donde los agentes aprenden de su entorno / datos para un mejor desempeño en una tarea dada.
¿Cómo aprende el algoritmo? Es bastante estadístico. Algunos algoritmos de Machine Learning (por ejemplo, análisis discriminante lineal / cuadrático) son básicamente modelos bayesianos, donde asumimos cierta estructura de distribución paramétrica de los datos y actualizamos los parámetros de forma algorítmica.
Otros clasificadores como Neural Networks mapean vectores de valores reales en un espacio de probabilidad (un número entre 0 y 1) mediante una serie de adiciones, multiplicaciones y activaciones de salida.
La actualización de los pesos se calcula mediante el descenso de gradiente, donde los cálculos requieren que la regla de la cadena modele el flujo de información desde la salida a las partes internas de la red.
Después de todo, estamos modelando números. Por lo tanto, cuanto mejor sea tu base de matemáticas y estadísticas, mejor será tu vida.
Dominios / Conocimiento comercial
Las personas pueden imaginar AI de la manera en que lo vemos en las películas: robots independientes que pueden establecer sus propios objetivos. -reparar, y eventualmente dominar el mundo.
Eso puede algún día ser cierto, pero no ahora (como el momento de la escritura). Estamos viviendo en la era de la Inteligencia Artificial vertical. Los robots que creamos están entrenados para una tarea específica, y solo es bueno en esa tarea.
Por ejemplo, si entrenaste un clasificador de imágenes para decir si una imagen es un perro o un gato, y usas ese clasificador entrenado para predecir una imagen de un automóvil, se emitirá un perro o un gato con una probabilidad muy alta (asumiendo que usó softmax para la activación de su capa final).
El modelo encontraría algunas características en la imagen del automóvil, ya sean bordes, colores, borrosidad, etc. y las relacione con las imágenes que se ven en las imágenes entrenadas de perros frente a gatos.
¿Qué implica esto? Los robots son verticalmente inteligentes, ¡pero son estúpidos horizontalmente!
Para una tarea diferente en el mismo dominio (por ejemplo, clasificación de imágenes), se puede aprovechar el aprendizaje de transferencia, que analizo en detalle aquí .
Eso significa que todavía necesitamos experiencia en el dominio para cualquier IA que estemos construyendo.
Por ejemplo, si está en el campo de la medicina, entonces el modelo de Machine Learning que está construyendo tendría que responder a las imágenes médicas (son muy diferentes de las imágenes de ImageNet).
Si está entrenando un clasificador de texto para wikipedia, entonces word2vec puede ser un buen punto de partida. Pero si trabajas con tweets, donde las personas cometen errores de ortografía todo el tiempo, entonces probablemente deberías considerar el modelado a nivel de personaje.
Informática + Matemáticas y estadísticas + Dominio especializado
Cuando combinas los tres elementos descritos anteriormente, usted tiene una persona que se siente muy cómoda identificando cuál es el problema, qué está en juego, qué datos se deben usar, qué modelos son adecuados, cómo entrenarlo y finalmente cómo ponerlo en producción. Con estas habilidades, es incuestionable si está listo para convertir datos en valor.