Lección 1, Tema 3
En Progreso

La importancia de los datos en IA

Progreso Lección
0% Completado

En el tema anterior te hemos hecho una primera presentación de por qué los datos son tan importantes para crear sistemas de IA. Pero, ¿qué son los datos en realidad?
Lo veremos con ejemplo. Más abajo verás una “tabla de datos”, o “conjunto de datos”, aunque muchas veces encontrarás el original inglés “dataset“. Imagina que estás tratando de calcular cómo poner precio a casas que quieres comprar o vender. Para ello, podrías reunir un conjunto de datos como éste, que puede ser simplemente una hoja de cálculo en la que una columna contiene el tamaño de la casa, en metros cuadrados, y otra columna tiene el precio.

Si estás tratando de crear un sistema de IA o sistema de aprendizaje automático que te ayude a fijar los precios de las casas, o determinar si una casa está adecuadamente valorada, entonces para ti el tamaño de la casa es A y el precio de la casa es B, y tienes que organizar un sistema de IA que aprenda esta asignación de entradas y salidas o asignación de A a B.

Ahora bien, además de valorar una casa según su tamaño, también podrías decir: “Bien, vamos a tener en cuenta también la cantidad de dormitorios”. En ese caso, A sería las dos primeras columnas y B, solo el precio de la casa. O sea que, dada la tabla de datos, dado el conjunto de datos, puedes decidir, según sea tu caso o tu actividad, qué es A y qué es B. Esta elección de datos es específica de cada aplicación de IA y puede ser lo que determine si tu proyecto de IA es viable y útil.

En otro ejemplo, si tienes un determinado presupuesto y quieres decidir qué tamaño de casa puedes comprar, podrías determinar que la entrada A es lo que puede gastar cada uno y B es el tamaño de la casa en metros cuadrados, y esa sería una elección totalmente diferente de A y B que te diría, dado un cierto presupuesto, qué tamaño de casa puedes comprar. Es decir, con el mismo conjunto de datos puedes construir varios sistemas de IA diferentes.

Veamos otro ejemplo, totalmente distinto, de un conjunto de datos. Supongamos que quieres crear un sistema de IA para reconocer gatos en fotografías. No parece una aplicación especialmente decisiva para el futuro de la humanidad, pero nunca se sabe. Para llevar adelante tu proyecto tendrías que recopilar un conjunto de datos en el que la entrada A sería una serie de diferentes imágenes y la salida B son etiquetas aplicadas a cada foto que dirían: “Esta foto es de un gato”, “Ésta no es de un gato”, “Ésta sí es”, etc, … Por lo tanto la entrada A es una foto, y la salida B es una etiqueta del tipo “es de gatos” o “no de gatos”.

Por cierto, en la historia del aprendizaje automático se han usado mucho los gatos. Parece que comenzó con uno de los primeros proyectos de IA en el equipo Google Brain (que es parte de Google, claro) y uno de los primeros experimentos exitodos que hicieron fue relativo a un sistema de IA que aprendió a detectar gatos al ver vídeos de YouTube. Desde entonces, existe la tradición de usar gatos como ejemplo habitual cuando se habla de aprendizaje automático.

Así que los datos son importantes. Pero, ¿cómo conseguimos los datos? ¿Cómo recogemos datos? Una forma de obtener datos es mediante el etiquetado manual. Por ejemplo, podrías reunir un conjunto de fotografías como éstas de aquí, y, o bien personalmente o encargándolo a tu cuñado (los cuñados y cuñadas suelen ser gente lista) u otra persona, revisar las fotos y etiquetar cada una. Así en la figura anterior, la primera es un gato, la segunda no es un gato, la tercera es un gato, la cuarta no es un gato. Tras etiquetar manualmente cada imagen, dispones de un conjunto de datos para crear un detector de gatos. Para hacer eso, se necesitan más de cuatro fotos. Podrías necesitar cientos de miles de fotos, o millones, pero el etiquetado manual es una forma probada y segura de conseguir un conjunto de datos válido para construir un sistema de I.A. donde dispones de A y B.

Construcción de conjunto de datos por etiqueta manual. Laborioso pero seguro.

Otra forma de obtener ese conjunto es mediante la observación de la conducta de usuarios, u otro tipo de conducta. Por ejemplo, supongamos que eres el administrador de una tienda online que vende un tipo de producto, el que sea. Es decir, un sitio web de comercio electrónico en el que ofreces artículos a los clientes a distintos precios, y puedes observar si compran tus productos o no. Por el simple hecho de que compren o no tus productos, puedes recoger un conjunto de datos como este, en el que almacenas la identificación del usuario, la hora en que visitó el sitio web, el precio que ofreciste a los clientes y si lo compró o no. Así que mediante el uso del sitio web, los usuarios pueden generar estos datos para ti. Esto es un ejemplo de observación del comportamiento de los usuarios.

Datos recogidos de una tienda online

También podemos observar el comportamiento de otros objetos, como las máquinas. Si usas una gran máquina en una fábrica y quieres predecir si la máquina va a tener un fallo o una avería, observando el comportamiento de la máquina, puedes registrar un conjunto de datos como el de la figura de abajo. Tienes la identificación de la máquina, la temperatura de la máquina, la presión de la máquina, y si la máquina ha fallado o no. Si tu aplicación es para mantenimiento preventivo, digamos que quieres valorar si la máquina va a fallar, podrías, por ejemplo, elegir máquina-temperatura-presión como entrada A, y si se avería, o no, como salida B para intentar predecir si una máquina esta a punto de fallar, en cuyo caso podrías hacer un mantenimiento preventivo de la máquina.

El tercer modo, uno muy común, de conseguir datos es descargarlos de algún sitio u obtenerlos de una tercera empresa especializada en recogida de datos. En este mundo internet-globalizado que vivimos, hay publicados muchos conjuntos de datos que se pueden descargar libre y gratuitamente, y abarcando campos desde la visión artificial a los conjuntos de imágenes, o datos sobre vehículos autónomos, conjuntos de datos de reconocimiento del habla, o datos de imágenes médicas y muchos más.

Por lo tanto, si alguno de vosotros quiere ser pionero de la I.A. y desarrollar una aplicación que necesite un tipo de datos, puede descargarlos de la web (teniendo en cuenta licencias y derechos de autor, no seamos piratillas), y es una magnífica forma de empezar a desarrollar.

Finalmente, si trabajas con un socio o con un cliente, por ejemplo con una fábrica, quizá ellos ya hayan recogido un conjunto de datos grande sobre máquinas, temperaturas, presiones internas, y sobre cuando fallan, o no, las maquinas.

Los datos son importantes, pero también están un poco sobrevalorados, y a veces se usan mal. Voy a describirte dos de los usos incorrectos más comunes o modos erróneos de pensar sobre los datos.

Primer error frecuente. Al hablar con ejecutivos de grandes empresas, algunos dicen: “Dame tres años para montar mi equipo de IA, estamos recogiendo muchos datos, y dentro de tres años tendré un conjunto de datos perfecto e implementaremos la IA”. Esta estrategia es realmente mala. Lo recomendable para todas las empresas, una vez que hayan comenzado a recoger datos, es que los vayan analizando un equipo de IA para que ellos evalúen el tipo de datos que se debe recoger y el tipo de infraestructura técnica que se debe crear. Por ejemplo, quizá un equipo de IA puede ver los datos de tu fábrica y decir: “Si puedes recoger datos de esta gran máquina de fabricación no solo cada diez minutos sino cada minuto, podríamos crear un sistema de mantenimiento preventivo mucho mejor”. Con frecuencia se da esta interacción entre los equipos de informática y los de IA, y el consejo claro es tener en cuenta las valoraciones del equipo de IA cuanto antes, porque te puede ayudar a guiar el desarrollo del resto de tu infraestructura técnica.

Segundo uso erróneo de datos. Con frecuencia los directivos de empresa leen en la prensa sobre la importancia de los datos, y dicen: “Tengo muchos datos. Seguro que un equipo de IA puede sacar utilidad y rentabilidad de ellos”. Desafortunadamente, esto no siempre funciona. Suele ser mejor tener muchos datos que pocos, pero no se puede dar por sentado que solo por tener muchos terabytes o gigabytes de datos, un equipo de IA les puede dar valor mágicamente. Mi consejo es: “No des datos a un equipo de IA y des por sentado que serán útiles”. De hecho, sin dar nombres que luego todo se sabe, hay una gran empresa norteamericana que adquirió una cadena entera de empresas farmacéuticas, pensando que sus datos serían muy valiosos. Un par de años más tarde los ingenieros IA aún no han conseguido descubrir cómo sacar valor de todos estos datos. A veces funciona y a veces no.

Por eso las empresas no deben invertir en exceso en adquirir datos solo por tenerlos hasta que por lo menos dispongas de un equipo de IA que les eche un vistazo, porque ellos pueden ayudar y guiar sobre qué datos son los más valiosos. Finalmente, los datos pueden estar corrompidos. En inglés tienen un dicho que reza “si entra basura, sale basura”… y si tienes datos malos, la IA aprenderá cosas erróneas.

En la figura siguiente puedes ver un ejemplo de problemas con los datos. Son datos de tamaño de casas, cantidad de dormitorios y precios. Podemos tener etiquetas equivocadas o simplemente datos incorrectos. Por ejemplo, parece difícil que una casa se venda por 1 € (0’001 miles de €). O bien, puede que falten los valores de algunos datos. Tenemos aquí un montón de valores desconocidos. Así que tu equipo de IA tendrá que resolver cómo depurar los datos o cómo manejar estas etiquetas incorrectas y los valores que faltan.

También hay varios tipos de datos. Por ejemplo en nuestra vida diaria son muy frecuentes las imágenes, audio y texto. Estos son tipos de datos que para nosotros, los humanos, son muy fáciles de interpretar., pero no tanto para los ordenadores. Se denominación técnica es datos no estructurados, y hay ciertas técnicas de IA que pueden trabajar con imágenes para reconocer gatos o con audios para reconocer voz o textos, o entender qué correos son basura.

También hay conjuntos de datos como el de más arrriba, el de las casas. Es un ejemplo de datos estructurados. Básicamente son datos que están en una gran hoja de cálculo, y las técnicas para tratar datos no estructurados son distintas de las técnicas para tratar datos estructurados. Pero el resultado final, es que la IA pueden funcionar bastante bien con ambos tipos de datos, estructurados o no estructurados.

Curso Discussion