¿Son inteligentes las computadoras?
Sitio: | Campus Claves Académica |
Curso: | Pensamiento computacional - EnlaceUBA |
Libro: | ¿Son inteligentes las computadoras? |
Imprimido por: | Invitado |
Día: | jueves, 3 de abril de 2025, 02:00 |
Descripción
📌 ¿Podemos "entrenar" a una computadora para que aprenda a clasificar imágenes? En este bloque nos vamos a aproximar a la inteligencia artificial para resolver el problema de saber si una planta de frutillas está enferma o no 🍓
1. ¿Pueden las computadoras clasificar imágenes?
En los bloques anteriores vimos que las computadoras pueden ser de propósito general (como las computadoras de escritorio, los celulares o las tablets) y de propósito específico (el lector de tarjetas del colectivo, un reproductor de música, etc.) pero independientemente de esto, tienen la capacidad de seguir instrucciones de un programa al pie de la letra. Pero, ¿qué sucede cuando hablamos de Inteligencia Artificial? ¿Son inteligentes realmente las computadoras? ¿Pueden pensar las computadoras? ¿No era que solo siguen instrucciones y ya?
En este bloque nos vamos a preocupar por acercarnos a una solución en la que una computadora (en particular, nuestro celular) pueda aprender a clasificar imágenes automáticamente.
——————
Detectando plantas de frutillas enfermas
Un/a fruticultor/a es una persona que se dedica al cultivo de los frutales. Una parte importante de su tarea es que puedan identificar si las plantas que están cosechando están en buen estado o se han enfermado. En este problema vamos a construir una solución para identificar automáticamente el estado en que se encuentran las plantas de frutillas, siendo Argentina uno de los principales productores en Sudamérica. Para eso vamos a analizar varias muestras de hojas de frutillas:
Para este problema, los fruticultores cuentan con un dron que comandan manualmente para recolectar imágenes de las plantas y analizar en qué estado se encuentran. Sin embargo, como este trabajo lo realizan personas manualmente se preguntan si será posible programar al dron para que pueda reconocer automáticamente el estado de una planta para poder tomar alguna decisión, por ejemplo, fumigar la planta.
🧠 ¿Podemos programar a una computadora para que aprenda a reconocer si una planta está enferma? ¿Cómo?
Las personas somos muy buenas detectando patrones y clasificando información. Es decir, podríamos aprender a determinar si una planta está enferma o no, o si las frutillas están maduras o no. Pero, este atributo podemos pensar que está asociado al intelecto humano, a nuestra "inteligencia".
💻 Pero... ¿Podríamos llevar este comportamiento a una computadora? Para este problema vamos a recurrir a la inteligencia artificial, un área de las Ciencias de la Computación que se ocupa de combinar varias áreas para abordar problemas muy complejos mediante mecanismos que tienen aparentes similitudes con la cognición humana.
💡 Pero entonces... ¿Son inteligentes las computadoras? ¿Pueden aprender? A continuación nos embarcaremos en un recorrido para conocer, en sus aspectos más básicos, como puede hacer una computadora para aprender a reconocer si una planta está enferma o no.
2. Clasificador de imagenes
——————
Creando un clasificador de imágenes
Primer desafío
El objetivo de este desafío es crear un programa que aprenda a clasificar imágenes de plantas de frutilla según su estado. ¿Aprender? Pero si las computadoras no son inteligentes... Lo que vamos a crear es un modelo de inteligencia artificial. Podemos resumir el funcionamiento de un modelo tres pasos:
1. Recolección de datos y categorización
2. Entrenamiento del modelo.
3. Predicción de datos
En nuestro caso nos interesa recolectar imágenes de hojas de frutilla para cada uno de los estados posibles (sana o enferma), luego debemos entrenar el modelo utilizando un programa que se encargue de encontrar patrones que representen a cada una de las categorías y finalmente, predecir el estado de nuevas imágenes.
——————
Armamos el modelo
Vamos a utilizar la aplicación PocketAutoML disponible en la tienda de aplicaciones para celulares con Android. Con esta aplicación podemos entrenar un modelo de clasificación de imágenes directamente en nuestro celular. Luego las predicciones que hagamos con esta aplicación son las mismas que podría realizar el dron de los fruticultores.
2.1. Recolección de datos y categorización
Paso 1
Instalar la aplicación
Paso 2
Una vez instalada la aplicación, vamos a comenzar la preparación de nuestro modelo. Para crear un nuevo modelo (task) debemos ingresar al menú y seleccionar el botón ➕.
Paso 3
Debemos colocar el nombre de nuestro modelo. Lo llamaremos "Hojas de frutillas", reemplazando el nombre sugerido por la aplicación "Task 1". Para finalizar, presionamos sobre el ícono ✔ de la parte superior.
Paso 4
Creamos las categorías: en la pestaña "DATA" tenemos que crear las diferentes categorías (clases) de las imágenes que va a tener en cuenta cuando se realice la clasificación. Presionando sobre el botón ➕ de la parte inferior izquierda creamos una nueva categoría ("class"), por ejemplo, "hoja sana" y presionamos sobre el ícono ✔.
Aclaración: una vez creada la categoría, nos da la opción de agregar ejemplos de imágenes. Incluso la aplicación nos avisa que aún no tenemos imágenes cargadas. No se preocupen, esto lo realizaremos en los pasos siguientes, por ahora volvemos hacia atrás. Veremos que aparece la categoría que creamos.
Paso 5
Siguiendo los mismos pasos que antes, agregamos también la categoría "hoja enferma" y volvemos hacia atrás. Se visualizarán las dos categorías:
Paso 6
Agregamos imágenes de ejemplo en cada una de las categorías. A continuación les proveemos algunas imágenes que deberán descargarse por separado. Si están usando un dispositivo móvil, para descargar las imágenes deben mantener presionada cada una.
EJEMPLOS DE HOJAS SANAS
EJEMPLOS DE HOJAS ENFERMAS
IMÁGENES DE COMO DESCARGAR (DESDE CHROME O FIREFOX)
Paso 7
Luego de que las hayan descargado en sus celulares, para agregar imágenes a una categoría debemos seleccionar la categoría, por ejemplo, "hoja sana" y tenemos dos opciones: tomar fotos con la cámara o subir imágenes de nuestra galería. En este caso, utilizaremos la segunda. Seleccionen las 10 imágenes de hojas sanas. Luego hagan lo mismo con las imágenes de la categoría "hoja enferma".
2.2. Entrenamiento del modelo
El siguiente paso consiste en entrenar nuestro modelo a partir de las imágenes cargadas en cada categoría. En esta etapa, la aplicación procesará las imágenes de cada categoría aplicando estrategias para extraer patrones relevantes (como la gama de colores) que sirvan para predecir la categoría de una nueva imagen.
Para eso debemos ir a la pestaña "MODEL" y presionar sobre el botón inferior "TRAIN". Luego de unos segundos, como son pocas imágenes, obtendremos alguna información sobre el entrenamiento, por ejemplo, la cantidad de imágenes procesadas. El resto de la información, como el "feedback" o el "accuracy", son valores para medir la calidad de las predicciones realizadas por nuestro modelo.
2.3. Predicciones de datos
Una vez que hayamos entrenado nuestro modelo es momento de que lo pongamos a prueba realizando algunas predicciones. La idea es que estas predicciones las realicemos sobre imágenes nuevas.
Paso 1
Para realizar predicciones tenemos que ir a la pestaña "PREDICTION" y veremos que tenemos dos opciones posibles: tomar una foto con la cámara o subir imágenes.
Paso 2
Al igual que antes te proponemos descargar estas imágenes:
Paso 3
Luego de que hayan descargado las imágenes probemos que sucede cuando intentamos predecir algunas de las imágenes:
🔮 ¿Cómo les fue con las predicciones? ¿Fueron correctas? Lo que podemos observar es que nuestro celular (no olvidemos que es una computadora) "aprendió" a reconocer cuando una hoja de frutilla está sana y cuando no: primero le proporcionamos al modelo ejemplos de cada tipo de hoja para que pueda procesarlas y extraer información relevante que pueda utilizar para predecir el estado de una hoja.
——————
Conclusiones
En este capítulo pudimos crear y entrenar un modelo de inteligencia artificial muy sencillo que podríamos incorporar en el dron de nuestros amigos fruticultores para facilitarles la tarea de detectar plantas de frutilla enfermas. Pero... ¿podemos confiar siempre en programas basados en modelos de inteligencia artificial? ¿funcionan siempre? En el siguiente capítulo abordaremos estas pregunta. ¡Los esperamos!
3. ¿Podemos confiar en un modelo de inteligencia artificial?
En el capítulo anterior creamos nuestro primer clasificador de imágenes utilizando un modelo de inteligencia artificial, lo entrenamos a partir de un conjunto de ejemplos y luego lo utilizamos para predecir nuevos ejemplos.
En este capítulo vamos a probar el modelo con un nuevo conjunto de imágenes y veremos lo que sucede. Comencemos...
——————
Probando un nuevo conjunto de imágenes
Luego de crear y probar nuestro clasificador el equipo de fruticultores lo incorporó en los drones que exploran las plantaciones de frutillas utilizandolo con éxito. Sin embargo, se encontraron con las siguientes ejemplos de hojas enfermas:
Te proponemos evaluar las imágenes de las hojas enfermas con la aplicación y corroborar que clasificación hace.
🔮 ¿Predijo correctamente el tipo de hojas? ¿Cuál es el problema? Lo que debería suceder con los ejemplos que les propusimos es que el programa las clasifique como hojas sanas cuando en realidad debería suceder lo contrario.
🙉 Entonces... ¿Qué es lo que funciona mal? ¿Será que no aprendió lo suficiente nuestro celular? ¿Cómo podríamos solucionar esto? ¿Se puede? El problema de nuestro modelo se debe a los ejemplos que utilizamos para el entrenamiento. Si observan, todas las imágenes de las hojas sanas son todas hojas verdes (sin manchas) mientras que las imágenes de hojas enfermas tienen la misma gama de colores (color rojizo). Por lo tanto, las nuevas imágenes, para el programa, se asemejan mucho más a las hojas sanas.
Otro problema que tiene influencia también es la cantidad de imágenes que estamos utilizando para entrenar el modelo: solo 10 por tipo. En general es importante tomar una cantidad mucho mayor de ejemplos que sean diversos y representativos de cada tipo.
——————
Volvemos a entrenar el modelo
A continuación les proveemos un conjunto de imágenes más diversos que fue obtenido por el equipo de fruticultores para que puedan agregar a cada una de las categorías. Para este desafío les proponemos que seleccionen y agreguen a la categoría "hojas enfermas" cinco imágenes nuevas del conjunto que les mostramos a continuación, que les permitan representar más casos.
Una vez que terminen pongan a prueba el modelo con los siguientes ejemplos:
¿Qué imágenes eligieron? ¿Bajo que criterio? Cuando construimos un modelo basado en inteligencia artificial el rol de los datos que elegimos es muy importante... ¡porque los elegimos las personas!. Por eso es muy importante considerar, como mencionamos antes, ejemplos diversos y representativos de las categorías que nuestro modelo va a tener en cuenta para clasificar.
¿Podemos saber qué hace el modelo? ¿Cómo utiliza los datos de entrenamiento? ¿Podemos estar seguros de que siempre funcionará? Si bien existen muchas estrategias (también conocidas como "algoritmos") que implementadas en un programa, como el que utilizamos en este bloque, nos permiten construir y entrenar modelos, es imposible saber cómo está utilizando el modelo los datos. Por lo tanto, es difícil saber si funcionará correctamente o no más allá de las imágenes que usamos para probarlo.
Por lo tanto si quisiéramos implementar este modelo en el dron de nuestros amigos fruticultores es importante que primero podamos recolectar muchos ejemplos de hojas de frutillas junto con la categoría que le corresponde. Luego, podemos entrenar el modelo con estos datos para que el dron pueda clasificar las plantas y poder incorporarle nuevas funcionalidades que hagan uso de esta información, como obtener estadísticas de las plantas o incluso, fumigar las plantas que correspondan.
——————
Conclusiones
Los modelos de IA pueden conseguir algo muy poderoso: pueden hacer que una computadora (como vimos, una máquina muy simple que solo sigue instrucciones) resuelva problemas difíciles, que típicamente involucran inteligencia o intuición, algo propio (y exclusivo) de la inteligencia humana.
¿Qué significa que un modelo “aprenda”? Como las computadoras no entienden conceptos y solo procesan ejemplos, no podemos comunicarles qué patrón queremos que reconozcan de estos ejemplos. “Entrenar” un modelo es ejecutar un programa que busca estas regularidades en el conjunto de datos de entrenamiento, y cuando las encuentra es a lo que llamamos “aprendizaje”. Sin embargo, no siempre es claro qué es lo que estos modelos aprenden durante el entrenamiento.
En el siguiente capítulo trabajaremos sobre algunos casos de uso de modelos de IA en la vida real y analizaremos las consecuencias que pueden tener. ¡Los esperamos!
4. ¿Qué consecuencias pueden tener los sistemas de inteligencia artificial?
En los capítulos anteriores creamos y entrenamos un modelo de IA para predecir el estado de una planta de frutillas a partir de sus hojas. Además, vimos que no tenemos seguridad de que el modelo va a funcionar siempre.
Estos modelos nos pueden ayudar a resolver y automatizar problemas muy complejos. Es por eso que hoy en día se aplican en disciplinar muy diversas, por ejemplo, la medicina, el arte, la meteorología o la economía. Incluso, en muchos casos delegamos la responsabilidad y las decisiones a estos modelos.
A continuación les proponemos leer una selección de casos de uso de la IA y de esta manera aproximarnos hacia una mirada crítica de sus aplicaciones:
- Amazon ha dejado sin trabajo por sexista a la inteligencia artificial que le revisaba los currículums, según Reuters
- Usuarios chinos denunciaron problemas en el detector de sueño de autos: “Mis ojos son chicos, no estoy dormido”
- Sesgo en reconocimiento facial
🤔 ¿De quién es la responsabilidad de construir conjuntos de datos representativos? ¿Qué significa que los datos están "sesgados"? ¿Es bueno esto?
🤔 ¿Podemos delegar la responsabilidad de tomar decisiones a un modelo de IA? ¿Qué tan importante es el factor humano?
¿Qué nos aporta cómo ciudadanos y ciudadanas tener conocimiento de estos temas? Conocer algunas nociones de IA no solo nos habilita a analizar cómo funciona, sino que además nos permite participar crítica y activamente de las potenciales aplicaciones que se puedan realizar en el futuro (¡y en el presente!). Incluso estas aplicaciones podrían interpelarnos individual o colectivamente.
El factor humano es decisivo al momento de diseñar e implementar modelos de aprendizaje automática y, por lo tanto, es necesario que sean construidas por equipos diversos, para incorporar la mayor cantidad de miradas posible, y no solo desde la experiencia de vida de cada uno de sus integrantes, sino también desde otras disciplinas que hoy no vemos típicamente asociadas a la IA (las ciencias sociales, la filosofía, la ética).
Comprender por qué/cómo se relacionan los datos con el comportamiento del modelo y qué implicancias tiene esto en función del uso para el que se desarrolló (selección de currículums, por ejemplo), no solo no va a cambiar sino que va a ser cada vez más relevante para entender críticamente los artefactos con los que interactuamos (directa o indirectamente).
5. Si querés saber más...
A continuación te dejamos una selección de recursos para que puedan conocer más sobre inteligencia artificial:
- Teacheable machine: Es una aplicación online (no disponible para celulares) en la que podrán crear sus propios modelos de clasificación basados en IA. Además de imágenes, podrán clasificar audio y posturas corporales.
- Video de divulgación científica del canal "Derivando".
- Charla TED de Diego Fernández Slezak, doctor en Ciencias de la Computación (UBA), donde se pone en debate si la IA va a generar un mundo mejor o si su desarrollo va a impactar negativamente en nuestro entorno.