5. Inteligencia Artificial
Qué es la IA
Con EchidnaScratch podemos integrar fácilmente la inteligencia artificial definiendo previamente los modelos en Learning ML
CC-BY-SA Fuente https://echidna.es/a-programar/echidnaml/
La inteligencia artificial se refiere al conjunto de algoritmos realizan tareas complejas, que son capaces de realizar procedimientos que imitan el funcionamiento de la mente, como son aprender y tomar decisiones.
De https://timoelliott.com/blog/cartoons/artificial-intelligence-cartoons en https://timoelliott.com/
Tipos IA
Viendo esta clasificación ¿Cuál es el tipo de IA que se usa en EchidnaScratch ?
Muy fácil: ML Aprendizaje automático supervisado
ML : APRENDIZAJE AUTOMATICO O MACHINE LEARNING
Aquí los algoritmos aprenden a partir de datos, y ellos buscan patrones para identificar. Cuanto más datos, mejores resultados.
El principio es básico. Queremos diferenciar silla mesa: Analiza datos, localiza patrones (cuatro patas, algo común, el tamaño y forma, patrones que diferencian como el respaldo....) con esas características, puede realizar un entrenamiento, y por lo tanto esta preparado para realizar predicciones.
Hay varios tipos de ML:
- ML Aprendizaje automático supervisado Donde los datos se les da ya etiquetados
- ML Aprendizaje automático no supervisado: Aquí es el propio algoritmo que tiene que encontrar relaciones en el proceso de identificación de patrones y por lo tanto etiquetar categorías.
- ML Aprendizaje semisupervisado. El modelo se entrena con datos etiquetados y no etiquetados. Lo normal es primero los etiquetados (pues son los que implican mayor coste y dinero) y si el modelo ya empieza a funcionar bien, ya procesa no etiquetados para su optimización.
RL : APRENDIZAJE REFORZADO O REINFORCEMENT LEARNING
Es un modelo que busca la optimización. Utiliza resultados anteriores e intenta mejorarlos. Para buscar esto, se definen estados con unos parámetros que implican premio o penalización. La máquina busca soluciones y acciones para buscar los premios y huir de las penalizaciones.
DL : APRENDIZAJE PROFUNDO O DEEP LEARNING
Es un subconjunto del ML no supervisado, Se crea una red neuronal organizadas en capas, cada capa especializada, por ejemplo la primera de entrada recoge los datos, las intermedias, ya ocultas, identifican patrones y la última, la salida que recoge la información procesada anteriores, la que toma las decisiones.
PLN : PROCESAMIENTO DE LENGUAJE NATURAL
Utiliza conceptos de DL y ML para comprender el lenguaje humano. Una aplicación son los chatbots. Que pueden ser:
- dirigidos, es decir va tomando decisiones por etapas tipo árbol y da respuestas automáticas
- no dirigido: produce respuestas en función del contexto y las decisiones del usuario.
- hibridas que intenta producir una conversación fluida.
EJEMPLOS
LEARNING ML
https://web.learningml.org/en/home/
https://machinelearningforkids.co.uk/#!/welcome
Ver nuestro tutorial en https://libros.catedu.es/books/robotica-educativa-con-mbot/page/maquina-educable-con-machine-learning-for-kids-y-scratch
DL REDES NEURONALES : QUICKDRAW
https://quickdraw.withgoogle.com/ Es un videojuego donde se ve claramente como se va perfilando las decisiones en forma de árbol y como la etapa final va reconociendo tu dibujo. En esta red, la primera etapa de la red neuronal son trazos que dibujas, y las neuronas intermedias son fruto de una extensa base de datos de dibujos. La última etapa es la decisión basada en las anteriores neuronas.
PRUEBALO ES SUPERDIVERTIDO, INCLUSO EN UN MÓVIL
PLN: CHATGPT COMO FUNCIONA
DL CREA TU PEQUEÑA RED NEURONAL CON PYTHON
DL: GOOGLE DEEPMIND
Google deepmind desarrolló una red neuronal para aprender a jugar videojuegos, y ganó a varios campeones humanos en videojuegos complejos (de los que inicialmente la máquina desconocía las reglas). Puedes ver en https://deepmind.google/ los diferentes proyectos actuales.
MONTAJE 13 Reconocimiento de texto
Vamos a encender y apagar un objeto de luz usando texto predictivo con IA
Al arrancar EchidnaScratch nos vamos a LEARNING ML, nos vamos a entrenar y que entrene con la clase APAGA las palabras que se nos ocurra:
Y con la clase ENCIENDE otras tantas palabras
Pulsamos que entrene (tarda un poco) y cuando nos diga que esta listo para usar el modelo, vamos a comprobarlo, como vemos, la palabra MUCHA LUZ no aparece en las entrenadas, pero detecta que tiene más posibilidades que lo que queremos es apagar la luz
Acuerdate de grabarlo lo voy a grabar como enciende-apaga.json, se graba LOS DATOS DE ENTRENAMIENTO luego al volverlo a abrir, tienes que volver a crear el modelo
Ahora si !! vamos a EchidnaScratch y creamos este programa usando las instrucciones de Learning ML que se basan en el modelo aprendido anteriormente
Aquí lo tienes todos los procesos en vídeo :
CC-BY SA Fuente https://echidna.es/a-programar/echidnaml/como-empezar-con-machine-learning-y-echidna/
El programa en este repositorio: https://github.com/JavierQuintana/Echidna
El sprite lámpara lo he obtenido de https://scratch.mit.edu/projects/198689957/editor/
MONTAJE 14 Reconocimiento de imágenes
El proceso es similar, en este caso he utilizado el móvil y he mostrado a la cámara web las búsquedas de caras para que aprenda la diferencia entre niños, hombres y mujeres
😁 como veis, para probar el modelo he utilizado mi cara y me reconoce un 99% de hombre😁😁😁
Grabar y abrir una máquina de IA
OJO hay que grabar el la máquina de inteligencia artificial que has creado !!! si cierras el programa se pierden todos los datos. No advierte que no lo has grabado
Voy a crear otra máqina IA con los objetos Gafas - Taza- móvil y lo grabo
Al grabar lo hace con un nombre de archivo .JSON lo voy a hacer con el nombre taza-gafas-movil.json que lo tienes en https://github.com/JavierQuintana/Echidna
Este archivo tiene los datos de entrada NO LA MÁQUINA luego si cerramos el programa y queremos abrirlo tenemos que volver a entrenarla:
Programa en EchidnaScratch
Resultado
Sin Echidna se puede hacer simplemente con un Arduino y tres leds, verde al D11 amarillo al D12 y el rojo al D13 ver https://libros.catedu.es/books/echidna/page/tengo-arduino-puedo-hacer-los-programas-sin-echidna
Recomendamos...
Ver todo el proceso en este vídeo
Fuente https://echidna.es/a-programar/echidnaml/como-empezar-con-machine-learning-y-echidna/
También recomendamos...
Usar variables para tener el control de lo que sucede de esta manera podemos controlar qué márgenes de confianza y cual es el resultado de la clasificación. Si el resultado no es el esperado:
- ajustar los valores de confianza en la imagen he puesto 0.9
- darle más fotos a la máquina de IA para que lo haga mejor.
Reto : Igual que los porteros automáticos, que se encienda la cámara si se aprieta el botón (por ejemplo SL)
Solución: En este caso es recomendable usar un pequeño retardo de 1segundo para que le de tiempo a capturar la imagen
Se puede mejorar el programa añadiendo un retardo antes de que se cierre la puerta, etc...