Inteligencia artificial Introducción: ¿Qué es? 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. En el fondo la IA son tomas de decisiones: Un sumatorio de muchos función signoide asociadas a variable de entrada que cuanto más datos, más empinada y por lo tanto más certera es su decisión (salida). Por ejemplo, le pedimos a un robot con IA  que tomando de muestra la temperatura corporal, nos diga si estamos enfermos o no. Salida eje Y  0=no estamos enfermos 1= estamos enfermos. Entrada: eje X La temperatura Los puntos son las muestras que le pasamos para que aprenda Los puntos son dada una temperatura, % de gente que esta enferma a esa temperatura Estadísticamente cuanto más temperatura hay más probabilidad de que estés enfermo Cuanto más datos, más empinada es la función y con más acierto puede predecir. Nosotros sabemos ya la respuesta que el valor crítico es 37ºC pero... ¿y si tiene 36.9ºC?¿Cuánta probabilidad tiene? las máquinas nos ayudan a cuantificar. Introducción: Tipos 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/   ML: MACHINE LEARNING FOR KIDS  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. Introducción: Y en plan que se entienda.... MÁQUINAS “YA EDUCADAS” o "pre-trained ML/AI models" Reconocimiento de imágenes con mBlock Programa de reconocimiento imágenes Programa reconocimiento edad Reconocimiento de voz Traductor Con mBlock y Cybperpi Reconocimiento de órdenes Con mBot1 t mBot2 SOFTWARE EDUCABLES o "No pre-trained ML/AI models" Máquina educable Teachable Learning y mBlock Máquina educable con CODE.ORG Máquina educable con Machine Learning for kids y Scratch HARDWARE EDUCABLES o sea, que tienen "Smart gadgets" SMARTCAM y mBot1 Seguir pelota color Sigue líneas Photo by Kenny Eliason on Unsplash Introducción: Video Sensing, esto no es IA El siguiente programa  no interpreta las imágenes, simplemente estamos utilizando la webcam como sensor de vídeo https://planet.mblock.cc/project/3730511 Extensión Video Sensing + info de esta extensión en https://barclayscodeplayground.co.uk/content/dam/barclayscodeplayground-co-uk/documents/scratch/SC_Using_Video_sensing_teachers_guide.pdf Máquinas educadas Cognitive Services Servicios cognitivos Esta extensión pertenece al conjunto de extensiones de inteligencia artificial de mBlock Instala un montón de instrucciones como Reconocimiento de voz (en diferentes idiomas) Reconocimiento de texto impreso (en diferentes idiomas) Reconocimiento de imagen (marca, famoso, monumento...) Reconocimiento de emociones Reconoce rasgos como gafas, nivel de sonrisa, cabeceo de la cabeza, color del pelo ... RECONOCIMIENTO DE EDAD Para ver un vistazo rápido, vamos a utilizar un programa ya predeterminado, ir a Programas de ejemplo - AI - Age Analyzer  (el del pulpo) OJO, SI NO ESTAS LOGUEADO entonces NO FUNCIONA La verdad es que acierta bastante bien Otro ejemplo de uso, reconocimiento de edad y traducción : Máquinas educadas: Traductor En este programa, además de usar la extensión Servicios Cognitivos, instalaremos las extensiones : Text to Speech - Texto a voz Translate - Traductor El programa es muy sencillo, lo tienes aquí : https://planet.mblock.cc/project/3733312 Máquinas educadas: Traductor con Cyberpi Esta tarjeta controladora es un ESP32 por lo tanto permite conexión a Internet y lo podemos usar para realizar el mismo script de traducción El programa lo tienes aquí  https://planet.mblock.cc/project/3587357 Lo primero es conectarse a la Wifi : Y para traducir OJO: HASTA QUE NO ESTES 1.-LOGUEADO con tu usuario en mBlock 2.-CONECTADO CON CYBERPI  (las dos condiciones y en ese orden)  NO SE VISUALIZAN LAS INSTRUCCIONES DE INTELIGENCIA ARTIFICIAL Máquinas educadas: Reconocimiento de voz- órdenes a mBot2 Aquí no trabajaremos en vivo SINO EN CARGA pues CibyerPi tiene conexión a Internet La primera parte es el script de conexión de Wifi La siguiente orden es reconocer la voz, y según el resultado, que ejecuta. Como puedes observar, la orden de reconocimiento de voz, añade un . al final que hay que tener en cuenta El programa lo tienes aquí https://planet.mblock.cc/project/3733278 Software educable Machine Learning for kids y Scratch REGISTRO Entramos en  https://machinelearningforkids.co.uk/ Tenemos varias opciones: Registrarnos  y tenemos dos opciones como Un profesor o responsable de un club de programación  en este caso tenemos otras dos opcioens Clase  No administrada tienes que rellenar un formulario típico y creas la clase Clase  administrada donde tienes opciones de incorporar alumnos a tu clase, este registro es por correo electrónico y tienen que verificar que perteneces a un centro educativo. como  Estudiante en ese caso es el profesor de una  clase administrada el que te tiene que crear la cuenta Iniciar sesión pues nos hemos registrado con alguna de las opciones anteriores Probar sin registrarse Vamos a probar " sin registrarnos " pues estamos aprendiendo. Si luego esta herramienta te convence, Te registras CREAMOS UN PROYECTO Empezamos un proyecto Empezamos un proyecto, como puedes ver hay diferentes formas de reconocer, y permite hacer un almacenamiento local, o en la nube. Como es algo de pruebas puedes hacerlo local. Pero si luego estas registrado es interesante hacerlo en la nube para tener acceso en cualquier sitio. Ojo al cerrar el navegador se borra todo el modelo con la opción In your web browser Ya lo tenemos ENTRENAR Primero vamos a entrenar la máquina Creamos dos etiquetas y vamos escribiendo situaciones (o añadir un fichero txt) donde nos apetece un refresco o no (pueden ser más de dos situaciones) Volvemos al proyecto.. ENTRENAR Si ves que has puesto suficientes ejemplos, pide a la máquina que entrene Empieza el entrenamiento... y para que no te aburras, te pone unas preguntas !!! Una vez acabado puedes probarlo fíjate que  bochorno no lo hemos puesto en el entrenamiento y ha acertado bastante bien Volvemos al proyecto CREAR Y vamos a CREAR y nos ofrece varias herramientas de programación, elegimos SCRATCH Le damos a Abrir en Scratch 3 Elegimos un nuevo objeto (quitamos el gato) y elegimos glass water Y ponemos el siguiente programa, no es perfecto... pero acierta bastante bien ¿Sabías que ....? .. hay un curso en Aularagón de INTELIGENCIA ARTIFICIAL CON SCRATCH máquina educable con Maching Learning for KitsVes  https://libros.catedu.es/books/inteligencia-artificial-con-scratch con diferentes vídeos del INTEF verás paso a paso esta herramienta desde 2019 Software educable: Máquina Educable Teachable Machine Esta extensión sí que pertenece al conjunto de inteligencia artificial En la extensión nos muestra la posibilidad de crear un nuevo modelo de entrenamiento Al crear un nuevo modelo, Build a new model hay que definir las categorías mínimo son tres 2 - 3 - 4 .- Poner nombres a la categorías 5.- Poner la imagen (en mi caso pantallazos del móvil) 6.- Clicar a qué categoría pertenece, para que aprenda, darle click cuando la barra verde suba Repetir pasos 5 y 6 tantas veces cuanto se desee, cuanto más, mejor 7.-Usar el modelo de aprendizaje Una vez creado el modelo, nos pone unas instrucciones que podemos usar en nuestra programación Otro ejemplo parecido usando playmovil   Software educable: CODE.ORG Una manera muy didáctica de enseñar los conceptos de Inteligencia Artificial es con CODE.ORG tiene cursos y el funcionamiento es parecido a la Máquina Educable de mBlock El resultado es  Software educable Playground, Teachable Machine Google y Microbit Playground es como Scratch pero puedes utilizar las Teachable Machines de Google en tu programación Entramos en https://playground.raise.mit.edu/httyr/ Y podemos usar una máquina educable de Google en (1) y luego utilizarlo en (2) Podemos conectar nuestro robot MICROBIT CUTEBOT Este vídeo por ejemplo nos enseña cómo utilizar una máquina que reconozca que tocamos la cara o no O reconocer textos Por ejemplo este programa muestra si tienes puesto un sombrero o no Ulrich Pedersen Dah & Ture Reimer-Mattesen Center for Underisningsmidler CPU Maquinas educables: SmartCamera Estamos ensañando este accesorio, pero en mBot2 no va muy fino, no obstante aquí tienes el enlace a mbot1  perfectamente se puede aplicar a mbot2 https://libros.catedu.es/books/robotica-educativa-con-mbot/chapter/7-ia-hardware-educable SmartCamera - Qué es Esta cámara se vende como accesorio de los robots de Makeblock por unos 140€ , ATENCIÓN, ESTE ... SmartCamera - conexión con mBot Hardware Para conectarlo con mBot1 hace falta la batería que se suministra en el pack, con su ca... Smart camera - seguimiento color - sencillo Configuración reconocimiento de color Método por software (recomendado) Una forma de configurar... Smart camera seguimiento color avanzado Kp, velocidad diferencial del motor.... ¿Eso qué es? En la extensión CAMARA INTELIGENTE ESPECÍFI... Smart camera Piximon INSTALACIÓN DE PYXMON V2 No es un software obligatorio, pero viene muy bien qué está pasando y q... Smart Camera Código de barras En el modo de detección de código de barras, puede detectar 15 códigos de barras ya definidas. ... SmartCamera - sigue líneas mBot ya tiene un sigue-lineas https://libros.catedu.es/books/robotica-educativa-con-mbot/page/sig...