INTELIGENCIA ARTIFICIAL Todo método o técnica que sea “ingenieril” debe estar basado en la Física, la Matemática y la Química. Pirámide de la Información 1. Datos(nivel Sintáctico): Percepción del hecho. 2. Noticias(nivel Semántico): Designa un significado específico a los signos del mensaje en un determinado contexto para un determinado individuo. Dato con sentido. 3. Conocimiento(nivel Pragmático): Es el conjunto de Noticias que posibilitan resolver problemas. Análisis, síntesis y elaboración. 4. Sabiduría(nivel Juicio Moral): Permite aplicar los Conocimientos según un juicio de valor (moral, ético, correcto). Introducción a la Inteligencia Artificial El concepto de IA surge en 1956, en la conferencia de Dartmouth. Tomando la definición de inteligente a alguien que: ● Resuelve problemas que pocas personas pueden resolver ● Los resuelve de la mejor manera La mente del ser humano está formada por: ● Conocimiento: a través de la razón, inducción, deducción ● Experiencia: lo que me queda de reflexión después de haber hecho algo muchas veces ● Creatividad Se considera que para generar IA hay que: ● Generar algoritmos basados en lógica y heurísticas ● Construir artefactos capaces de pensar emulando el comportamiento de los seres humanos. IA fuerte vs IA débil.Se dan cuenta que no iban a poder emular el cerebro + mente como hw + sw, sino como un modelo limitado de la mente. ● Por eso, la IA necesita averiguar qué sucede en los procesos internos del individuo reconocido como inteligente. Si puedo modelar lo que pasa por la mente del individuo, puedo generar algo inteligente. Primer invierno de la IA Luego surgen los modelos actuales de IA: Sistemas basados en conocimientos y expertos. Experto: Persona que tiene saberes sobre un dominio y que resuelve problemas que el resto no puede resolver o lo hace siempre de mejor manera. Un sistema inteligente, reconocemos que tiene un comportamiento atribuido a una conducta inteligente.A diferencia de una tecnología tradicional, funciona bien en un principio, y con el tiempo aprende, incorpora nuevos conocimientos y mejora. Cosas a tener en cuenta de la IA: ● Implica cambios en la vida de los individuos, hay que tener reglamentaciones. ● no se va a extinguir la raza humana. La IA carece de emociones ● IA y los humanos deben trabajar en equipo. IA ayuda a resolver problemas complejos, reducir tiempo y costo, tomar decisiones, realizar predicciones, 1 automatizar tareas. La IA funciona muy bien para trabajos estandarizados y/o rutinarios. ● modifica el trabajo de los individuos, pero se genera también nuevos puestos de trabajo. ● existe una guía ética para el uso de la IA: debe ser usada para el beneficio del hombre, hay que prestar atención a grupos vulnerables (puestos de trabajo), hay que trabajar con transparencia, etc Enseñanzas del primer verano de la IA: - La IA usa HW tradicional y no especializado (menores costos) - Los algoritmos deben ser programados en lenguajes flexibles. - Los nuevos desarrollos deben reaccionar a datos erróneos, ya que el mundo real tiene muchas imperfecciones. 1990 - Segundo Invierno de la IA (mas breve) 1996 - Deep Blue le gano a Kasparov utilizando modelos de busqueda por fuerza bruta, a partir de Deep Blue comenzaron a surgir necesidades mas complejas. Sistemas inteligentes Rama de las Ciencias Computacionales encargada de estudiar modelos de cómputo capaces de realizar actividades propias de los seres humanos en base a sus características primordiales: el razonamiento, la conducta, y el aprendizaje. De esta manera, se busca construir máquinas inteligentes, especialmente los sistemas software inteligentes. Aplicación de IA ● ● ● ● el problema no se entiende completamente. no se pueden anticipar todas las posibles situaciones ni los cambios futuros del ambiente. la cantidad posibles de soluciones es tan grande que no es viable llevar a cabo búsquedas exhaustivas. generar modelo tradicional que lo resuelva debe ser simplificado tanto que la solución deja de ser útil. Características del comportamiento inteligente ● ● ● ● ● pueden tomar decisiones consistentes con su Objetivo ( son Racionales ) no poseen todos los conocimientos ni todos los datos ( no son Omniscientes ) no siempre son Exitosos ( no son Infalibles ) pueden mejorar durante su uso ( pueden Aprender ) soportan a cambios del dominio ( pueden ser flexibles y robustos ) Tipos de IA ● ● IA Tradicional Inteligencia computacional y Machine learning 2 Tipos de Sistemas inteligentes: Sistema Basado en Conocimiento Sistema, cuyas prestaciones dependen más de la presencia explícita de un cuerpo de conocimientos que de la posesión de ingeniosos procedimientos computacionales. Fuentes de conocimiento público. Los conocimientos se almacenan en forma de decisiones descriptivas de términos específicos del dominio, descripciones de objetos individuales del dominio y sus relaciones con otros objetos, criterios para tomar decisiones y algunos conocimientos procedimentales como descripciones de comportamientos o procesos que constituyen el saber cómo. Usan Base de Conocimiento (reglas y hechos) construida a partir de fuentes de conocimiento público (libros, manuales, web,etc). Se suele implementar aplicando lógica de primer orden. Elementos: ● Base de conocimientos (reglas y hechos) ● Motor de inferencias: conjunto de instrucciones que saben cómo transaccionar con los hechos y reglas (independiente del problema). Suele implementarse utilizando métodos de búsqueda. Debe seleccionar los hechos y reglas de la base de conocimientos que se deben aplicar. ● Interface de entrada/salida Sistema Experto Sistema cuyas prestaciones intentan emular parte del comportamiento de un experto humano para resolver ciertas tareas en un dominio específico. Fuentes de conocimiento público y privado. Debe ser capaz de aprender lo que los expertos humanos saben, mantener y actualizar sus conocimientos; y presentar sus conclusiones: justificar, clarificar y explicar su modo de razonamiento. 3 Sistema experto con BC (visión tradicional de la INCO) Elementos: ● Base de conocimientos: reglas y hechos ● Motor de inferencia ● Base de datos: los datos del problema a resolver en un momento determinado. El usuario los ingresó y se almacenan en una BD aparte porque es solo para un problema particular. ● Trazador de consultas: permite hacerle preguntas al usuario por datos que no tenga y necesite ● Memoria de trabajo: registra los pasos que hace el motor de inferencia, para luego justificar la solución ● Trazador de explicaciones: con la MT genera la justificación ● Manejador de comunicaciones. Sistema experto sin Base de Conocimiento (visión de la inteligencia computacional y machine learning) El conocimiento se almacena de forma implícita de forma que no puede ser comprendido por un humano. 4 Inteligencia Computacional Es un término que engloba numerosas tecnologías de la IA, mayoritariamente de inspiración biológica, y presentadas en contraposición a aquellas basadas en el razonamiento simbólico clásico. Incluye diferentes arquitecturas, tales como: Redes Neuronales Artificiales, Computación Evolutiva, Inteligencia de Enjambre, Sistemas Inmunológicos Artificiales Machine Learning O Aprendizaje Automático, es un subcampo de la Informática que busca definir y estudiar algoritmos capaces de generalizar comportamientos a partir de información no estructurada suministrada en forma de ejemplos. Por lo tanto, está estrechamente relacionado con las estadísticas y tiene fuertes lazos con la optimización matemática. Pero, se diferencia de éstas en que se centra más en el estudio de la complejidad computacional de los problemas y sus soluciones. Para ello, realiza una búsqueda de patrones en datos, e implementa estos patrones en un modelo software para que el sistema lo pueda utilizar. Se suministra al algoritmo de muchos datos, a partir de los cuales éste es capaz de generar un modelo, que implementado de comporta de forma inteligente. Este software es automáticamente capaz de adquirir capacidades y adaptarse a su entorno. Estos datos deben ser representativos, y no hay que darle datos de más. Tipos de Machine Learning ● Supervisado: se le da información adicional para que sea capaz de generar un patrón, por ejemplo, una salida deseada. En el supervisado, se le puede indicar al sistema las posibles respuestas. El sistema se encarga de encontrar las relaciones y clasificar las entradas. ● No supervisado:solo se entrena a partir de ejemplos. Útil cuando se quiere hacer clusters entre diferentes datos de entrada. El algoritmo encuentra la relación y patrones entre los datos. Ejemplo: empresas que quieren encontrar patrones en las ventas a sus clientes. 5 Tipos de entrenamiento ● ● Offline: el algoritmo aprende durante la fase de entrenamiento y una vez instalado deja de aprender. Online: el algoritmo aprende durante la fase de entrenamiento y sigue aprendiendo en la fase de operación. Este aprendizaje tiene que ser monitoreado para que no falle/se olvide de algo que ya aprendió. Algoritmos de inducción (ML) Implementan aprendizaje supervisado y entrenamiento offline. Los datos que se le proporcionan son conjuntos de datos en una tabla. La tabla posee varias atributos con sus respectivos valores, y una columna con el valor objetivo/clase, que será el resultado de aplicar el algoritmo para los valores de entrada. Aplica un algoritmo Top-DownInduction-Decision-Tree Top-Down-Induction-Decision-Tree Se genera un árbol de decisión donde en cada rama tengo los valores de los atributos de entrada y en la hoja el valor del atributo objetivo. Este algoritmo forma a partir de casos particulares, un modelo general. El árbol se genera de arriba hacia abajo. PROCESO PARA GENERACIÓN DEL ÁRBOL DE REGLAS: A partir de un conjunto de datos T: • Si T está vacío Finalizar • Si T tiene un único valor en el atributo objetivo: Generar Hoja (no tengo que evaluar los valores de los demás atributos) • Sino a. Seleccionar atributo de entrada con mayor ganancia en T (aplicando fórmula de Shannon) b. Particionar T por cada valor del atributo de entrada seleccionado (por cada valor de ese atributo con mayor ganancia, armo grupos, y vuelvo a aplicar la fórmula de Shannon) c. Para cada partición de T, aplicar el PROCESO. 6 Si tuviera las mismas reglas, con valor objetivo diferente, esa regla tendría 50% de seguridad y sería una regla poco confiable. Métodos de búsqueda para la solución de problemas Dado un problema determinado: 1. Representación del problema: modelar al problema de una manera formal y manipulable a partir de una descripción informal 2. Estrategia de control: definir al mismo como una búsqueda en los diferentes espacios de estados. Técnicas que nos permiten elegir las reglas o estados a partir de los métodos de búsqueda. Espacio de estados: dominio que contiene todos los posibles estados, puede ser finito o infinito. Allí se hallan los estados iniciales, los estados intermedios y los estados objetivos. Estado: representación que contiene toda la información del problema en un momento determinado. Operador/regla: vincula estado padre con estado hijo. Proceso solución del problema: mecanismo mediante el cual partiendo de un estado inicial, se llega a un estado solución, utilizando una estructura de control. Ésta nos permite aplicar las reglas que producen las transiciones entre los estados pertenecientes al conjunto de estados del problema. 7 Tipos de métodos de búsqueda: ● ● Sin información de dominio (búsqueda ciega): no tienen información para saber si un estado intermedio es mejor que otro. Ejemplo: ○ Primero en amplitud: recorre todos los nodos por niveles, si el espacio de búsqueda es finito y existe solución, la encuentra. es útil cuando existen pocos nodos finales y son cercanos al nodo raíz. Utiliza mucha memoria. Va de izquierda a derecha nivel por nivel. ○ Primero en profundidad: No requiere mucha memoria ya que analiza de a una rama por vez. Útil cuando existen muchos nodos solución alejados del nodo raíz. No recorre todo el espacio de búsqueda por lo que no garantiza encontrar la solución más óptima. Para cuando encuentra una solución. ○ Generación y prueba: recorre todos los nodos rama por rama, permite encontrar todos los nodos solución. Un problema complejo puede consumir mucho tiempo. ○ Primero en profundidad iterativa ○ Bidireccional: dos búsqueda simultáneas: top-bottom y bottom-up. una de estas búsqueda en amplitud. Complejidad igual a dos búsquedas unidireccionales para un grafo con la mitad de los nodos del original. Con información de dominio (búsqueda heurística): tenemos información propia del dominio para analizar qué tan bueno es un estado de acuerdo si están cerca o no de la solución. Aumenta el proceso de búsqueda, posiblemente sacrificando exhaustividad. Tardo menos tiempo, aunque capaz no encuentre el camino más óptimo. ○ escalada simple: busca un valor heurístico mayor. De izquierda a derecha. No requiere mucho almacenamiento. No pasa por todos los nodos. Si existe un sucesor mayor en otro sentido que por el que estoy yendo, no lo genero, entonces lo pierdo. No contempla retroceso. Me puedo quedar atrapado en un máximo local. Puede no hallar solución si uno no tiene valor heurístico mayor. ○ escalada máxima pendiente: Genera todos los hijos y se queda con el de mayor valor. No necesita mucha memoria. Sacrifica exhaustividad. No asegura encontrar el nodo óptimo. No contempla retroceso. Si no encuentra uno mejor que el actual, se estanca. ○ el primero mejor: Tengo dos listas de nodos: abiertos (los que voy generando, todavía no los recorrí ni elegí como nodo actual) y cerrados (ya generé y visité). Puede haber retroceso. Puede encontrar el mejor estado disponible aún cuando 8 el valor heurístico es menor que el actual. SIEMPRE que haya un nodo solución, lo encuentra. ○ Beam Search: es primero el mejor con la limitación de memoria de que solo permite n nodo en la lista de abiertos a la vez. No siempre encuentra solución, puede estancarse dependiendo del valor de n. ○ A*: con penalización en las transiciones. ○ Dijktra Formas de agregar información: ● Función heurística asociada al estado ● Costo de caminos aplicables Algoritmos genéticos - AG Algoritmos matemáticos de optimización que simulan la evolución de una población de individuos mediante un proceso iterativo aplicado sobre un conjunto de estructuras. Se utilizan cuando los otros métodos no funcionan, se busca una solución pero no necesariamente la 9 mejor, se conoce la solución pero no se sabe bien cómo llegar. Su principal ventaja es que no necesita analizar todas las posibles soluciones al problema. Un individuo representa una solución posible a un problema dado. La aptitud del mismo es una medida de cuán buena es la solución para dicho problema. La solución al problema se encuentra en el mejor individuo de la población final. No pueden aprender a resolver el problema. Diferentes corridas (aún con los mismos parámetros) pueden obtener diferentes soluciones (buenas y malas). No se asegura llegar a la solución más óptima, hacen buenas aproximaciones. La mejor solución puede aparecer en cualquier ciclo de la corrida. Si el AG después de muchas corridas diera individuos con poca aptitud, se podrá analizar y modificar la función de aptitud, cambiar los parámetros aplicados en los operadores genéticos, cambiar los métodos aplicados en los operadores genéticos. Teoría Evolución Algoritmos Genéticos Ecosistema Problema Individuo Posible Solución Genotipo / Cromosoma (patrón) Descripción de la solución Gen Característica o Atributo Fenotipo (valores) Función de Aptitud El conocimiento está en la función de aptitud. Configuración del AG 1. Definición del cromosoma: Se identifican las características del problema y se define el gen principal y genes auxiliares. Se hacen todas las combinaciones posibles y se le asigna un número binario a cada una de ellas. 2. Definición de la función de aptitud: interpretar la estructura del cromosoma y calcular el valor de aptitud. Es la mayor complejidad de implementar el AG. Todos los conocimientos del dominio se formalizan en la función de aptitud. 1. Analizar pistas: Condiciones que debe cumplir la solución aumentan el valor de aptitud, las que no debe cumplir lo disminuyen. 2. Analizar estructura del cromosoma: Condiciones inválidas en los genes penalizan valor de aptitud. 10 Cada vez que ciclo: vuelta/ciclo Cada vez que cumplo la condición y salgo: corrida Generar población inicial (Po): La convergencia del algoritmo no depende de Po. Métodos: al azar o ad-hoc (yo genero los valores válidos). Población: cantidad de individuos y varianza (constante o variable) Selección: Elige a los mejores individuos de la población actual. El mismo individuo puede ser elegido varias veces. Es conveniente considerar la función de aptitud al elegir el operador. En conveniente que la población inicial sea homogénea. Porque sino al aplicar los algoritmos podría quedarme atascado en un conjunto de soluciones. Métodos: ● Torneo: Hace competir a los individuos entre de a pares sí y los ganadores son elegidos para cruzarse. Gana el individuo que tiene mayor función de aptitud. Los pares pueden seguir un patrón o ir tomándose random. Ventajas: si hago pelear el mejor, el mejor va a quedar siempre seleccionado. Desventajas: si hago pelear al mejor contra el segundo mejor, entonces pierdo al segundo mejor que tampoco era tan malo. Preserva a los mejores n individuos de la generación actual. Mejora la búsqueda local a expensas de la perspectiva global. Provoca que la aptitud del mejor individuo de la población mejore o a lo sumo se mantenga constante. A veces se pierden algunos buenos y aparecen algunos malos. 11 ● Ranking: Elige al mejor individuo de cada vuelta del algoritmo. La población se ordena descendente por aptitud de cada individuo en una tabla de posiciones y solo los n primeros reciben copias. Entre ellos el total de copias se distribuye lineal. Nunca selecciona usando el azar. Ventaja: me quedo siempre con los buenos. Desventaja: me sectoriza mucho la búsqueda, podemos quedar atrapados en un máximo local. Puede generar convergencia prematura. ● Ruleta: Arma una tabla donde a cada individuo le pone su función de aptitud. Se suman todas las funciones de aptitud y se llega al valor total entre todos los individuos. Luego, a cada uno se le define la proporción de cuánto del total se lo está llevando él. Luego, para cada proporción se calcula la probabilidad acumulada. Una vez que se tienen todas las probabilidades, se “grafican” en la ruleta y se tiran números al azar, teniendo más probabilidades de salir aquellos que son más favorables. Ventaja: me permite darle posibilidad a los malos de salir también, aunque prioriza a los mejores. Desventaja: pueden salir todos malos. Aplica el azar pero prioriza la selección de los mejores individuos mediante una tabla de probabilidades. El número obtenido de copias para un individuo puede ser distinto del esperado. Reduce la probabilidad de convergencia prematura porque heterogeneiza la población. ● Control sobre número esperado: Primero hace una preselección de los mejores individuos. Suma todas las funciones fitness y calcula el promedio. Luego divide la función de cada uno por el promedio, esto nos da cuantas veces ese individuo supera al promedio. La parte entera del promedio es la cantidad que se selecciona de ese individuo para la población resultante. Luego con el resto se hace ruleta. De cada individuo se hace una función fitness prima considerada como la parte mantisa de su valor fitnes.x 12 13 Sobre estas nuevas funciones fitness es que se construye la nueva ruleta. Ventaja: me asegura que los buenos son elegidos, pero le da posibilidad a los malos. Podría elegir al “peor” individuo de la población. Convergencia prematura Super individuos dominan rápidamente la población antes de que se haya podido realizar una exploración suficientemente amplia del espacio de búsqueda. Cruzamiento Opera sobre pares de estructuras (padres) para producir nuevas estructuras (hijos) por el intercambio de segmentos entre padres. Es conveniente considerar la estructura del cromosoma al elegir el operador. Elimina los padres. Métodos (en simple, multipunto y binomial máscara complemento siempre se hacen dos hijos y lo que no va de un padre para un hijo, va al otro): ● Simple: Se intercambian los segmentos de cromosoma separados por el punto elegido. ● Multipunto: Se eligen n puntos de cruza de forma aleatoria. ● Binomial: se identifica un patrón. ○ Máscara: Se elige de qué padre tomar cada gen del cromosoma. ■ Complemento: máscara del segundo hijo toma los genes complemento del primero. ■ Doble: se pueden repetir características de un mismo padre en ambos hijos. ○ Azar Mutación Puede modificar en forma aleatoria una característica de un individuo de la población, generando un valor no previsto. Permite mantener la diversidad de la población disminuyendo el riesgo de convergencia prematura. El operador de mutación se activa siempre pero no se ejecuta siempre. Se define una probabilidad de mutación. Métodos de mutación ● ● Simple: La probabilidad de mutar se mantiene constante, generalmente baja. Adaptativa por convergencia: La probabilidad de mutar varía en base a información de la búsqueda genética, dada por el grado de convergencia de la población. 14 ● Aumenta la mutación cuando la población se hace muy homogénea y la disminuye cuando hay demasiada diversidad. Adaptativa por temperatura: No usa información genética de la población. La probabilidad de mutar depende del tiempo o cantidad de generaciones. Ascendente aumenta la probabilidad con la cantidad de ciclos, Descendente la disminuye. Criterio de Paro Puede ser luego de cierta cantidad de ciclos, tiempo transcurrido, que la Función de Aptitud supere un mínimo preestablecido, que se alcance un promedio de función de aptitud. Población Final Conjunto de individuos que pueden ser solución. Para obtener la solución se deberá determinar el individuo que tenga mejor Función de Aptitud de la población final. Redes Neuronales Artificiales - RNA Basado en modelo biológico: Elementos simples de proceso interconectados que operan en forma paralela para cumplir un objetivo. Ventajas ● ● ● ● ● Aprendizaje adaptativo: puede aprender casi cualquier tipo de problema. Tiene un período de entrenamiento. Con ejemplos encuentra un patrón. Auto-organización: durante el entrenamiento aprenden a modificar las conexiones entre las neuronas. Tolerancia a fallos: resolver con resultados aceptables. Aunque no se haya entrenados con esos ejemplos, puede resolver problemas similares. Opera en tiempo real Fácil inserción en tecnología existente Neuronas ● ● Dendritas: interfaz de entrada Axón: interfaz de salida ○ Botones o pies: distribuyen/multiplexan ● Sinapsis: conexión entre neuronas ○ + Excitadoras: lo que recibe la 2da neurona la hace activarse ○ - Inhibidoras: lo que recibe la 2da neurona la hace volver a reposo ○ X Neutra: no afecta a la 2da neurona (receptora) Aprendizaje: está asociado a la sinapsis. 15 Neuronas artificiales ● ● ● ● Valores de entrada Xj = números Valor de salida Yi = número Conexiones tienen peso de conexión Wji = números Umbral de activación: la salida de una neurona se activa solo cuando la entrada neta es mayor o igual que cierto valor de umbral. Funciones ● Entrada neta: Net i = Σ ( Wji . Xj), i = neurona ● Función de activación: A. A(Net i) y el umbral de activación. Puede ser la función identidad, escalón, ReLu ● Función de salida o transferencia: S S(A(Net i)] = Yi. Escalón, mixta, sigmoidal, Gauss. En la práctica se utiliza una única función que combina ambas F(Net i) = S(A(Net i)] = Yi El conocimiento está en la sinapsis, representado en los pesos de las conexiones. De forma implícita en la red. Se aprende modificando los valores de los pesos de la red. Toda RNA debe tener al menos una neurona de entrada y una de salida (puede ser la misma). Se usa el umbral y la entrada neta para saber si se activa la neurona. Componentes RNA ● Unidad de proceso - neurona ○ Capa entrada: recibe info del exterior ○ Capas ocultas: de procesamiento, no tienen contacto con el exterior. ○ Capa salida: envía resultado al exterior La cantidad de neuronas de entrada y salida se relacionan a cuantos datos me llegan y cuántas salidas tengo que generar. ● Conexión - sinapsis ■ > 0 excitadora ■ = 0 neutra ■ <0 inhibidora ● Topología ■ Nº de capas: monocapa, multicapa. ■ Nº de neuronas por capa ■ Tipo y grado de conectividad 16 ■ Formas de conexión: ➢ Propagación hacia delante: ninguna salida de las neuronas es entrada de neuronas del mismo nivel o niveles precedentes. ➢ Hacia atrás: las salidas pueden ser conectadas como entradas de niveles previos o el mismo nivel, incluyéndose ellas mismas. Las que tienen lazos cerrados son sistemas recurrentes. Una RNA con conexiones laterales siempre itera durante su operación en producción. Una RNA con conexiones hacia atrás o laterales debe ciclar durante su funcionamiento para estabilizarse. ● Tipo de asociación de información de E/S: heteroasociativas (tengo que aplicar aprendizaje supervisado porque tiene que asociar datos de entrada con datos de salida deseada para aprender) y asociativas (o autoasociativas). ● Representación de información de E/S: directa-binarios y continua-reales ● Estado de activación: continuos o discretos, limitados o ilimitados. Entrenamiento Las RNA necesitan ser entrenadas antes de su utilización. Para ello se establecen y ajustan los distintos pesos y se somete a la red a los casos de prueba. Para cada caso de prueba se deben conocer las respuestas esperadas a fin de determinar si la red funciona de manera correcta o no. Previo al entrenamiento se deben definir, formalizar y seleccionar los patrones. Durante el entrenamiento, la RNA debe aprender a solucionar el problema (mayor complejidad). Métodos de aprendizaje: Proceso por el cual una neurona modifica sus pesos en respuesta a una información de entrada. Una red ha aprendido cuando los valores de los pesos permanecen estables. ● Supervisado: entrenamiento controlado por un agente externo On-line: Adquiere conocimientos aún en fase de operación ○ Por refuerzo: El supervisor es un crítico. Dice si está bien o mal la respuesta pero no dice cuál sería la deseada. Indica con una señal de refuerzo (éxito o fracaso) y en base a eso se ajustan los pesos. Off-line: Sólo adquiere conocimientos en fase de entrenamiento. El agente externo determina la respuesta que debería generar la red a partir de una entrada determinada. Si la salida no coincide con la deseada, modificará los pesos de las conexiones. ○ Por corrección de error: Ajuste de los pesos de las conexiones según la diferencia entre valores deseados y obtenidos en la salida. ○ Estocástico: Hace cambios aleatorios en los pesos y evalúa su efecto a partir del objetivo deseado y de distribución de probabilidades. ● No Supervisado: no requiere de agente externo para ajustar los pesos de las conexiones. La red no recibe ninguna info del entorno que le indique si la salida para una entrada es correcta o no. Son capaces de autoorganizarse. La salida podría representar el grado de familiaridad entre la info de entrada y la que se le habían mostrado hasta el momento. O pueden ser categorías o clusterización. On-line/Off-line: 17 ○ ○ Hebbiano: Ajuste de los pesos según correlación de los valores de activación de las neuronas conectadas, sin tener en cuenta si deseaba o no obtener esos estados de activación. Cooperativo/competitivo: Suele orientarse a clusterización o clasificación de datos de entrada. Las categorías las crea la propia red. Las neuronas compiten y cooperan entre sí con el fin de llevar a cabo una tarea. Se pretende que ante una cierta entrada, sólo se active una neurona de salida o una por cierto grupo. El aprendizaje afecta sólo a las neuronas ganadoras (activas), redistribuyendo este peso total entre sus conexiones, sustrayendo una porción a los pesos de todas las conexiones que llegan a la neurona vencedora y repartiendo esa cantidad entre las conexiones procedentes de unidades activas. Tipos de RNA Perceptrón Heteroasociativa. Aprendizaje supervisado off-line por corrección de error (necesita conocer los valores de salida de cada patrón entrenado). Monocapa. Conexiones hacia adelante. Resuelve problemas de orden 1: linealmente separables. Puede aprender a aproximar funciones lineales pero no puede aprender funciones no-lineales. Se varían los pesos de las entradas en base al valor final deseado. Por cada ejemplo del entrenamiento. Alfa se recomienda pequeño (entre 0,05 y 0,3), el valor del umbral se suele mantener constante. Se entrena con un número representativo de patrones y no con la totalidad de ellos. Se suele trabajar con valores binarios, normalizando los valores de entrada y salida en el rango 0;1. Valores iniciales entre 0 y 0,5. Tolerancia a fallas. Back Propagation Heteroasociativa. Aprendizaje supervisado off-line por corrección de error. Multicapa. Dado que no se conoce la salida deseada para las neuronas ocultas, se propaga el error hacia atrás teniendo en cuenta el aporte del error de cada neurona. Se puede usar para clasificación de datos y estimación o predicción de resultados, también para traducción de texto en lenguaje hablado y reconocimiento óptico de caracteres (OCR). El gradiente se propaga hacia atrás. Se utiliza para determinar el error de cada neurona. Se utiliza para poder propagar el error desde las neuronas de salida hacia las ocultas y de entrada. Las conexiones son hacia adelante. Se van ajustando los w muchas veces, ya que no se sabe de antemano cuál es el error que aporta cada neurona. Para que una RNA BP tenga buena precisión en los resultados generados en producción se debe utilizar patrones de entrenamiento representativos y completos. Se suele aplicar para problemas de predicción. Debe ciclar varias veces durante el entrenamiento. Recomendable normalizar los datos utilizando promedio y varianza. Diferentes promedios y varianzas si los tipos de datos son diferentes (ej: presión, temperatura). Cuando agregue nuevos ejemplos debo recordar normalizarlos de igual forma. Si ciclo demasiadas veces podría aprender muy bien los ejemplos y fallar al generalizar. Conviene alfa de 0,05 y 0,3. más grande puede general parálisis o inestabilidad, y más pequeño demasiada lentitud en el aprendizaje. Pesos iniciales aleatorios acotados entre 0 y 0,5. 18 Una capa oculta suele ser suficiente para la mayoría de los problemas, dos niveles de capas ocultas hacen que la red aprenda más rápido. Conviene iniciar con pocas neuronas y hacerla crecer. Para determinar el número de neuronas se pueden utilizar métodos manuales o algoritmos genéticos. Hopfield Autoasociativa. Aprendizaje no supervisado off-line de tipo Hebbiano (solo se conocen los valores de entrada). Monocapa. Conexiones laterales: cada neurona está conectada hacia todas las demás pero no consigo misma. Se conectan hacia atrás. Se entrena con todos los posibles patrones que se quieran reconocer y se ingresa un patrón como valor de entrada. 19 Como salida (si se estabiliza, es decir devuelve el mismo valor en dos iteraciones seguidas) devolverá el patrón entrenado más similar al ingresado. Se usa para completar los valores faltantes en patrones de entrada a partir de patrones ya aprendidos. Los patrones deben ser ortogonales. Se usan para reconocimiento de imágenes y para resolver problemas de optimización complejos y para problemas donde se necesitan completar datos faltantes de un patrón. Requiere que los patrones de entrenamiento difieran en más de la mitad de sus valores. Cicla en la etapa de operación. Se utiliza en problemas de clasificación ya que la RNA devolverá el patrón entrenado más similar al ingresado en el entrenamiento. La red itera en producción pero no durante su entrenamiento. Análisis de protocolos Se busca capturar y estudiar todo lo que dice el experto en el momento en que trata un problema. Útil para extraer información sobre algunas reglas de razonamiento que el experto usa pero no puede explicar. Etapas 1) Grabación del protocolo a) IC explica lo que espera del experto b) Puesta en situación: ejercicios para dar confianza al experto c) Registro del protocolo: realizar la grabación 2) Transcripción: IC escucha grabación y transcribe el protocolo segmentándolo en líneas. Se anota en la transcripción todo lo que se observa durante la misma. Que se quede callado por ejemplo. 20 3) Codificación: línea a línea, lo más objetivo posible. a) Identificación de: Conceptos, Características, Valores y Relaciones y Operadores. Se obtiene tabla de concepto-característica-valor. Conceptos: entidad Característica: atributos Valor: valores de los atributos Operadores: para pasar de un estado a otro más cercano a la solución. Relaciones: entre conceptos, conceptos con carac, carac con valores. b) Identificación de la Búsqueda: de los estados posibles. c) Identificación de sinónimos, metacomentarios e incertidumbres. Sinónimos: no pueden haber relaciones entre sinónimos Metacomentarios: comentarios que no aportan al razonamiento Incertidumbre: duda, no se sabe si el estado se da en el 100% de los casos 4) Interpretación: Identificar las reglas de razonamiento del experto. Escribir el pseudocódigo. Es útil para extraer información sobre procedimientos que el experto utiliza en la solución de problemas pero que no puede explicar. Limitaciones: el costo de utilización (mucho trabajo del IC) y la incompletud del método (ciertos procesos no son reportados por el experto). Emparrillado Método de educción para obtener conocimiento privado de un experto. Pretende obtener un mapa del dominio que ve la persona. Test de clasificación complejo en el cual se decide una lista de elementos en base a un conjunto bipolar de características. Los datos generados se introducen en una matriz (“parrilla”) en la cual hay una columna por cada elemento y una fila por cada característica. Cada intersección contiene un valor indicando cómo se aplica la característica al elemento. Permite obtener información sobre cómo piensa el experto, sus prioridades y factores importantes. Hace que el experto piense dos veces acerca del problema y ayuda a clarificar sus conclusiones. Es intrusiva y debe ser interpretada con mucho cuidado, puede dar resultados subjetivos. Ventajas Emparrillado ● ● ● ● Reflexión tema Representación gráfica Asociaciones entre elementos y características a través de la matriz. Refina problema y mejora el conocimiento. Formaliza el conocimiento. Desventajas Emparrillado ● ● ● ● Valores subjetivos: los valores son de acuerdo a la percepción del experto. Captura conocimiento superficial Complejo en gran cantidad de elementos y/o características Solo no es útil para BdC 21 Etapas Emparrillado 1. Identificación de los elementos (homogéneos y representativos, separables y no solapables) 2. Identificación de las características (cualidad atribuida a un elemento o concepto. Deben ser bipolares) 3. Diseño de la parrilla 1. Dicotómica (valores binarios) 2. Clasificatoria (ordenar elementos de 1 a n por cada característica, no repite) 3. Evaluativa (rango de valores elegido por el experto, se puede repetir, no se relaciona con la cantidad de elementos) 4. Formalización 1. Clasificación de los elementos: matriz diagonal superior de distancias entre elementos. Cada intersección contiene la distancia entre los dos elementos, calculada como la sumatoria de las diferencias absolutas entre sus características en la parrilla. Luego se construye el árbol ordenado de elementos de mínimas distancias. 2. Clasificación de las características: Se calculan 2 distancias, d1 por encima de la diagonal y d2 por debajo. a. d1(Ci, Cj) b. d2(Ci, Cj) = d1(Ci, C’j), siendo C’j la opuesta a Cj Se construye una matriz diagonal superior donde el valor ij es el más chico de los valores entre Mij y Mji. Luego se construye el árbol ordenado de características de mínimas distancias. 5. Interpretación / Análisis de Resultados a. Análisis y discusión de árboles ordenados: agrupamientos, similitudes. Ej: “E1 y E2 son más similares porque se juntan en el nivel 2, versus E3 y E4 que se juntan en el nivel 3”. b. Red de relaciones entre características: se arman en base al árbol y las relaciones se ponen en base al texto, se estudian de a dos. Tienen que estar en el mismo grupo para analizarse. Si el experto dijera que se relacionan dos características que no están en un mismo grupo: la relación no es válida. Ejemplo: 22 Lógica de primer orden Utilizamos la lógica en IA para representar el conocimiento de expertos, después de la educción. ● Operadores lógicos: relacionan hechos/conocimientos ● Variables: x, y, z. Objetos indeterminados dentro de un dominio ● Constantes: a, b, c, d. Objetos determinados dentro de un dominio. ● Funciones de verdad: establecen una cualidad respecto de un objeto. ● Cuantificadores: definen el dominio de las propiedades de los objetos. Cuando se inicia una nueva frase, las variables se resetean. 23 Deducción natural ● ● ● Cuando se elimina el Existe, a deja de ser genérica y pasa a ser restringida. Si hay tesis con implicación: tengo que hacer una suposición en el antecedente. Puedo hacer solo una suposición. Si logro el antecedente a una regla puedo obtener la consecuencia. Cuando no hay tesis con implicación: tengo que hacer alguna deducción con alguna hipótesis. Lógica Difusa Razonamiento aproximado Modelos que tratan de imitar la manera en que las personas toman decisiones. Para ello, aplican métodos para representar, combinar y propagar información imprecisa y/o incierta la cual es utilizada en inferencias que tienen asociado un grado de certeza. Permite accionar con información con poca certeza para tomar decisiones con ella. Incertidumbre Falta de seguridad, de confianza o de certeza sobre algo, especialmente cuando crea inquietud. ● Estado de duda en el que predomina el límite de la confianza o la creencia en la verdad de un determinado conocimiento. ● La imperfección en el conocimiento sobre el estado o los procesos de la naturaleza. Imprecisión ● ● ● Vaguedad o desconocimiento del valor concreto de una variable. Cualidad generalmente asociada a la incertidumbre aunque puede ser independiente. Falta de precisión (que no es lo mismo que exactitud) 24 La fuente de la imprecisión y de la incertidumbre puede ser: el mundo real (que tiene aleatoriedad, es complejo), deficiencias en la información (incompleta, errónea), deficiencias del lenguaje o de los modelos. Los métodos cualitativos no pueden considerar los grados de certeza de las hipótesis ni manejar muchas combinaciones. Los métodos cuantitativos tampoco son eficientes. LÓGICA DIFUSA: Mecanismo del Razonamiento Aproximado que proporciona una manera simple y elegante de obtener una conclusión a partir de datos de entrada vagos, ambiguos, imprecisos, con ruido o incompletos. La lógica tradicional posee dos valores: verdadero o falso. En cambio, la lógica polivalente: ● Posee tres o más posibles valores: verdadero, medio verdadero, falso. ● Define una función de pertenencia de un valor al conjunto que puede poseer valores en el rango: [0,0; 1,0] donde 0,0 es falsedad absoluta y 1,0 es verdad absoluta. ● se define el grado de pertenencia de un elemento mediante la función de pertenencia mA(x) mA(x) = 0,00 : no pertenencia o 0,00 < mA(x) < 1,00 : grados intermedios de pertenencia o mA(x) = 1,00 : pertenencia total ● No existe una transición abrupta entre pertenencia y no pertenencia. ● La función de pertenencia no tiene un sentido probabilístico. Operadores Negación: ¬ A = A’ μA’ (x) = | 1 - μA(x) | Disyunción: A B = A B μA μB (x) = max[ μA(x); μB(x) ] Conjunción: A B = A ∩ B μA ∩ μB (x) = min[ μA(x); μB(x) ] 25 Implicación a) Determinar las Entradas Difusas del Antecedente A: Definir el valor de pertenencia de cada función del Antecedente. b) Aplicar los Operadores Difusos del Antecedente A: Resolver todos los operadores para obtener un único grado de pertenencia en el Antecedente. c) Propagar el valor al Consecuente B: Aplicar el mismo grado de pertenencia del Antecedente al Consecuente. Sistemas Difusos ● ● Se utilizan para modelar comportamiento de un sistema real. Existen diferentes tipos de modelos para combinar las reglas y generar el resultado correspondiente. Mamdani 1) Identificar todas las reglas que pueden ser aplicadas. 2) Calcular el valor de pertenencia correspondiente al consecuente de cada regla mediante la aplicación de los operadores de Lógica Difusa. 3) Combinar los valores obtenidos en cada regla para obtener el valor final usando el criterio de: Tagaki Sugeno 1) Identificar todas las reglas que pueden ser aplicadas 2) Calcular el valor de pertenencia correspondiente al consecuente de cada regla aplicando una función lineal 3) Combinar los valores obtenidos en cada regla utilizando una media ponderada 26 Sistemas difusos con algoritmos de inducción Si no tengo un experto que me provea de las reglas, puedo generarlas mediante algoritmos de inducción. Crítica a los sistemas difusos ● ● ● Su capacidad de aprendizaje es limitada. Lógica Difusa tiende a funcionar peor que un modelo matemático (pero si no existe es una buena alternativa). Al combinar las reglas, no se refuerzan unas a otras (al aplicar más reglas, la credibilidad de los resultados no se ve reforzada). Sistemas neuro-difusos En lugar de proporcionarle reglas a mi sistema, le doy ejemplos a mi red neuronal para que aprenda. Es más preciso que dándole yo las reglas. 27 Ingeniería para la construcción de sistemas inteligentes 28 Para la implementación de Sistemas Inteligentes, el ingeniero recopila datos, objetivos, requerimientos, con los que construye modelo del sistema inteligente que se implementa en la organización para resolver el problema, y que luego se retroalimenta con información de la organización. El mantenimiento perfectivo incluye la adquisición de nuevos conocimientos del Sistema Inteligente. Pasos para la implementación de sist. inteligentes Definición del problema Definir el qué: se deben definir metas, expectativas, contexto, necesidades, restricciones. Surgen problemáticas a partir de: información informal, funcionalidades implícitas o no establecidas.... Elicitar los requerimientos Cuando existe un buen proceso de elicitación de requerimientos, se ayuda a los usuarios a entender qué es lo que quieren, qué es lo que necesitan, cuáles son las restricciones y alternativas, ventajas y desventajas de cada una. a. Identificar las fuentes de información: recursos (internos o externos a la organización) y stakeholders (grupos de interés). b. Recolectar los hechos y necesidades: mediante extracción (análisis de documentos y de datos) y educción (entrevistas, cuestionarios, emparrillado…). La recolección de información debe ser completa para poder responder todas las preguntas necesarias. 29 Comprender el problema c. Abstraer: ignorar diferencias entre conceptos similares y así poder agruparlos. Permite obtener un panorama general del problema e identificar características esenciales. d. Descomponer: dividir al problema en partes más simples de entender. e. Proyectar: identificar y describir diferentes visiones de los mismos elementos. Permite reconocer conflictos entre stakeholders. f. Modularizar: combinar elementos identificados y entendidos en porciones. Organizar las tareas. Modelo: un modelo es en este caso la reconstitución simplificada de un proceso que pretende representar un proceso del mundo sensible. Un modelo dinámico implica, pues, un desarrollo, desde los datos de entrada hasta los resultados del funcionamiento del modelo. Un modelo es necesariamente simplificado, si no sería la realidad misma y no contribuiría en nada a la construcción del conocimiento. Es de este modo una representación abstracta, lo cual significa que la aproximación -e incluso el errores inherente al modelo. Sirve para: entender mejor los requerimientos, detectar problemas en los requerimientos, comunicar los requerimientos. Se usan tablas de decisión, árboles de decisión, modelos UML. Articular los requerimientos se delimitan expectativas, deseos, restricciones y suposiciones para poder definir el alcance del proyecto: objetivos, criterios de éxito y riesgos. Definir si es viable aplicar IA. Si es posible y si es la mejor alternativa. Formalizar la propuesta solución Se determina la mejor arquitectura a implementar. A veces el problema se puede resolver con un único módulo, pero otras hay que combinar varios módulos. Las tareas pueden tener acciones de: Optimización, Clasificación (decir a qué categoría pertenecen elementos), Predicción, Regresión (identificar función matemática que represente el comportamiento de distintos valores numéricos), Clustering (definir cómo conviene agrupar elementos), Reglas de Asociación (identifican asociaciones entre ciertas características), Detección de Anomalías (elementos que tiene comportamientos diferentes al resto) 30 Identificación y transformación de los datos (solo se puede hacer este paso cuando hay datos disponibles) ■ Recolección: Puedo usar datos de fuentes internas o externas. ■ Estudio: se pueden utilizar técnicas visuales. Ver como un atributo afecta otros. Podría pasar que los datos no sean representativos de mi problema. ■ Preparación: integrar los datos. Juntarlos todos en un mismo repositorio. Formatearlos. Limpieza (lidiar con datos nulos o con errores). Selección de la tecnología Predicción: red neuronal, sistema IA tradicional Clustering: un tipo de red neuronal Detección valores anómalos: red neuronal 31 Construcción del modelo ○ ○ ○ Machine learning: datos de entrenamiento, datos de validación, datos de prueba. Puedo ver que funciona bien o que funciona mal. Puedo tener que cambiar datos. Busco encontrar los pesos para entrenar mi red. IA Tradicional: identificar reglas y conceptos. Definir un conjunto de clases: cada clase tiene atributos, y hay reglas que definen cómo se combinan los atributos. Inteligencia computacional: algoritmos genéticos son genéricos. Puede resolver problemas diferentes. Pongo el conocimiento en la estructura del cromosoma y la función de aptitud. 32 Aplicación del sistema inteligente Implica la integración de los módulos entre sí y con otro software en la organización y otro software para que se comunique con el usuario. Incluye una etapa de monitoreo y mantenimiento. Hay que chequear que se integre bien y que los sistemas existentes no lo perjudiquen. 33 34