TEMA 1.
Introducción a la IA e INCO
Charles BABBAGE (inventor y matemático inglés)
Invento The difference engine en 1830 aparato para calculo automático, en
1832 termino el prototipo
Diseño Analytical engine máquina que podía ser programada mediante tarjetas
perforadas
no pudo construir esta máquina en la práctica por la limitación de la tecnología
y la falta de presupuesto. Esta máquina tenia la estructura habitual de una
computadora moderna ya que contaba con dispositivo de entrada, memoria de
almacenamiento, unidad de procesamiento y salida mediante impresora. La
máquina estaría alimentada por un motor de vapor.
1960 – aparecen las tarjetas magnéticas fueron el medio habitual para el
ingreso y almacenamiento de datos en las computadoras.
Ada Lovelace (matemática inglesa hija de Lord Byron, que fue amiga de Babbage.)
Imaginó que la máquina analítica de Babbage podia manipular “símbolos” y no
solo números.
Vislumbró el concepto de “algoritmo” o “lenguaje de programación” al plantear
el uso de las tarjetas perforadas para introducir datos en la máquina con
diferentes propósitos (como componer música o poemas).
De las computadoras mecánicas a las eléctricas
El desarrollo de los circuitos eléctricos y electrónicos con válvulas de vacío, así
como las aportaciones de Boole con su álgebra de ceros y unos junto con las
ideas de Claude Shannon relacionando esos ceros y unos a los circuitos
eléctricos conmutados permitieron la aparición de las primeras computadoras
eléctricas
Las primeras computadoras
la Mark-I creada en 1944 por el equipo de Howard Aiken en colaboración con
IBM, combinaban componentes mecánicos y eléctricos y se inspiraron en los
trabajos de Babbage. Inicialmente, se dedicaron a cálculos numéricos, como
trayectorias balísticas, con gran velocidad. Posteriormente, se planteó su uso en
el procesamiento simbólico y en la implementación de procesos de
razonamiento humano, lo que llevó al desarrollo del concepto de Inteligencia
Artificial.
Orígenes de la IA
La idea de maquinas inteligentes termino anterior al de inteligencia artificial fue
estudiada y teorizada por ALAN TURING en 1950
Creo una prueba El test de Turing servía para comprobar si una maquina se
comportaba de forma inteligente, si el juez humano no distingue entre el
humano y el computador, ESTA HABRA SUPERADO EL TEST.
Junio 2022 LamDa (Language Model for Dialogue Applications)
La IA ha evolucionado desde la idea de replicar el razonamiento humano en
máquinas. En junio de 2022, un ingeniero de Google fue suspendido tras
afirmar que el chatbot LaMDA había desarrollado conciencia, publicando
conversaciones para apoyar su afirmación. Este evento destaca el debate sobre
la posible sensibilidad de las máquinas.
Alan Turing, pionero en la IA, propuso en su prueba preguntas para discernir si
un interlocutor era una máquina o una persona, como pedirle que escribiera un
soneto. En marzo de 2023, un ejemplo de este ejercicio fue un poema sobre el
puente Forth, mostrando la capacidad de la IA para crear expresiones artísticas.
IA fuerte e IA débil
La IA fuerte pretende que la máquina sea un cerebro similar al humano y,
por tanto, pueda reproducir los procesos que éste es capaz de llevar a cabo.
La máquina “entiende” su actividad y tiene estados cognitivos iguales a los
de un cerebro. Realizaría cualquier tarea de razonamiento sin importar su
naturaleza.
La IA débil tiene como objetivo simular las actividades que un cerebro
humano es capaz de realizar, pero sin “entender” la actividad que realiza.
Las IA débiles están especializadas en una tarea o conjunto de tareas, pero
no son generalistas.
Orígenes de la IA
La inteligencia artificial se originó en 1956 dentro de una conferencia de
investigadores en Darmouth (Dartmouth Summer Research Project on Artificial
Intelligence)
Claude Shannon 1940 propuso la creación de una computadora que pudiera
jugar al ajedrez
Herbert Simon y Alan Newell Desarrollo el programa el “Logic Theorist” que
podía resolver problemas matemáticos
John McArthy postulo una máquina que podía obtener conclusiones de sentido
común y realizar deducciones de lógica matemática.
Hipotesis simbolista
Construcción de Inteligencia artificial mediante el manejo de símbolos con
razonamiento basado en formalismos lógicos
Hipotesis conexionista
La Inteligencia Artificial, según esta visión, podría lograrse al reproducir la
estructura neuronal interconectada del cerebro humano en una computadora
Santiago Ramon y Cajal en el siglo XIX 1894 descubrió que el tejido
nervioso no es continuo sino que está formado por neuronas conectadas
entre si
Walter y Warren McCulloch Crearon el primer modelo matemático de
neurona artificial en 1943
Frank Robenblatt construyo el perceptrón en 1958 un modelo de neurona
artificial
Simbolista vs Conexionista
En 1956 Marvin y Seymour Papert probaron matemáticamente que el
perceptrón no era capaz de implementar ciertas funciones.
Crisis de la IA
Las críticas al perceptrón detuvieron la investigación en redes
neuronales, impulsando la hipótesis simbolista en IA y el desarrollo de
Sistemas Expertos (SSEE), que tuvieron éxito inicial pero luego
enfrentaron dificultades en construcción y mantenimiento.
A finales de los 80, el término "Inteligencia Artificial" entró en crisis,
aunque las técnicas continuaron aplicándose en diversos softwares
Resurgimiento de la IA
A partir de mediados de los 90, resurge la investigación en IA.
En el ámbito simbolista, se desarrollan sistemas inteligentes basados en
modelado de conocimiento.
En el conexionista surgen nuevas técnicas de redes neuronales más
eficientes.
La digitalización, la expansión de Internet y el auge de dispositivos
personales impulsan el procesamiento de datos.
El aprendizaje profundo (deep learning), evolución de la hipótesis
conexionista, ha sido clave en revitalizar el término "Inteligencia
Artificial" desde mediados de la década de 2010, superando las
limitaciones del perceptrón de Rosenblatt.
TEMA 2. Introducción a la IA e INCO
¿Qué es la ingeniería del conocimiento?
Es el conjunto de técnicas y metodologías utilizadas para diseñar y
construir sistemas expertos y/o sistemas basados en el conocimiento.
Sistemas expertos aplicaciones infromaticas capaces de
resolver problemas por un ser humano experto (ej diagnostico
medico). Los sistemas expertos se pueden considerar, pues, un
subconjunto de los sistemas basados en el conocimiento.
Los sistemas basados en el conocimiento son aplicaciones
informáticas capaces de resolver problemas complejos, con
información insuficiente o sujetos a incertidumbre. Por ejemplo,
si se concede o no un préstamo a una persona.
Problemas con los que trata INCO:
obtener el conocimiento
Representación
Razonamiento
Verificar y validar un SSEE/SSBBCC
Orígenes de la INCO
En los años 1960s , la rama simbolista busca mecanismos universales
de razonamiento que puedan ser aplicados a cualquier tipo de
problema .
Newell y Simon desarrollan el GPS ( General Problem sotuer) , un
sistema capaz de resolver automáticamente teoremas matemáticos
y lógicos . Para programarlo , crearon el lenguaje IPL C Informacion
Processing Language ) . Este lenguaje dio lugar a LISP ( List
Processor ), el lenguaje + usado para IA durante 1960 , 1970 y 1980 .
1960 - mecanismos universales de razonamiento> GPS > LISP
A principios de los 1970s se pasó a estudiar como la IA podría
resolver problemas reales en entornos muy acotados (micro
mundos) . Uno de estos primeros desarrollos fue el SHRDLU ( Terry
Winograd , 1972 ) una aplicación capaz de manejar una serie de
objetos virtuales apoyados sobre una superficie, describir la situación
de todos los objetos de su micromundo, recibir órdenes en lenguaje
natural para mover los objetos
SHRDLU
Los objetos que conocía de su micromundo eran
Prismas cuadrangulares
Pirámides
Una caja que podría albergar a estos objetos
Los objetos podían ser movidos, apilados o metidos y sacados de la
caja (siempre que estos movimientos fuesen físicamente posibles)
SHRDLU podía:
Describir la situación de todos los objetos de su micromundo.
Recibir órdenes en lenguaje natural para mover los objetos,
apilarlos o sacarlos/meterlos en la caja.
es uno de los primeros ejemplos de procesamiento de lenguaje
natural.
La extracción del conocimiento
Experiencias como la de SHRDLU confirmaron la idea de que la
investigación debía orientarse a sistemas que resolviesen problemas
muy concretos que habitualmente son resueltos por humanos
expertos en esos problemas.
Estos sistemas (que se llamaron sistemas expertos) debían ser
programados implementando en la computadora los métodos
utilizados por el experto en la resolución del problema en cuestión.
La mayor dificultad consistía en extraer el conocimiento sobre la
resolución del problema desde el cerebro del experto e implementarlo
en el ordenador
Los Sistemas Expertos
eXpert Configurer (XCON)/R1 – 2500
o Permitía seleccionar los componentes hardware y
software para configurar computadoras VAX.
o El primer sistema recomendador implementado.
o Evito la necesidad de numerosos expertos humanos . En
1986 el ahorro era de unos 40 millones de dólares.
MYCIN
o Se desarrolló para el diagnóstico y la recomendación de
terapias en relación a enfermedades infeccionsas de la
sangre.
o Necesitó de 20 años-hombre para ser desarrollado.
o Se pensó en que fuese una ayuda para los médicos
especialistas, y que pudiese interactuar con ellos en
pseudo-lenguaje natural.
o Utiliza reglas y meta-reglas (reglas que sirven para
controlar la ejecución de otras reglas).
o Separó el conocimiento del control: la ejecución de las
diferentes reglas era independiente del contenido de las
mismas.
o Introdujo el concepto de incertidumbre. Existía un
coeficiente de certeza sobre las conclusiones de
determinadas reglas:
o Realiza razonamiento por encadenamiento hacia adelante
(dirigido por los datos) y hacia atrás (dirigido por los
objetivos)
o Explica el cómo (HOW) y el por qué (WHY) se llega a
determinadas conclusiones
o Obtenía resultados similares a los obtenidos por expertos
en este tipo de enfermedades con unos pocos años de
experiencia, pero no llegó a utilizarse en escenarios
reales. I
o introduce por primera vez muchas de las características
útiles de los sistemas expertos desarrollados
posteriormente.
Separación entre el control y el conocimiento.
Uso del razonamiento por encadenamiento hacia
adelante y hacia atrás.
Interfaz con el usuario.
Explicaciones sobre su funcionamiento.
Manejo de la incertidumbre
La experiencia con MYCIN sirvió para generalizar la estructura
de los sistemas expertos, que consistía en:
o Una base de conocimiento que contenía las reglas que
reflejan la resolución de problemas del experto.
o Una interfaz de usuario
o Una base de hechos o memoria de trabajo para reflejar
los datos iniciales del problema, así como los datos
intermedios generados durante el proceso de resolución.
o Un motor de inferencia, que ejecuta las reglas para,
dados unos datos de un problema, obtener la conclusión
correspondiente mediante la aplicación de las reglas de
acuerdo a los datos existentes en la base de hechos.
o Un componente explicativo.
Deep Blue (IBM) 1997
o Sistema experto de IBM derrotó al campeón mundial del
ajedrez
o Kasparov ganó el primer juego, perdió el segundo, hizo
tablas en los tres siguiente y perdió el sexto.
o Estaba programado con reglas extraídas de grandes
maestros de ajedrez.
o Era capaz de procesar cientos de millones de
movimientos por segundo. Tenía almacenadas una base
de partidas anteriores que podía consultar.
o Kasparov pidió ver los logs de Deep Blue porque sus
movimientos eran “demasiado humanos”.
Shell de sistemas expertos
sistema experto permite reutilizar la estructura básica de un sistema
experto y un motor de inferencias genérico.
Para crear un sistema experto a partir de una shell “solamente” hay
que introducir las reglas adecuadas y los datos del problema.
EMYCIN fue la primera Shell de sistema experto, se creó
extrayendo los datos y reglas sobre medicina del sistema
experto MYCIN.
CLIPS es la Shell de sistema experto más ampliamente utilizada
por su distribución open source.
JESS es una versión de CLIPS en lenguaje Java
Modelado del conocimiento
La investigación realizada en el campo de la Ingeniería del
Conocimiento durante los años 1990s dio lugar a una nueva
orientación a la hora de crear sistemas expertos.
Se abandona el paradigma de la “extracción del
conocimiento” y se pasa al de “modelado del conocimiento”
o Se realiza una aproximación metodológicamente más
robusta a la creación de estos sistemas, con el fin de
mejorar su implementación, mantenimiento,
verificación, validación y reutilización.
El concepto de “sistema experto” se sustituye por el más
genérico de “sistema basado en el conocimiento”
o Son sistemas que resuelven problemas complejos que
involucran gran cantidad de conocimiento, no siempre
proveniente de expertos humanos.
Los SSBBCC
Construidos mediante técnicas de modelado de conocimiento se
basan en la creación de modelos conceptuales del dominio de
aplicación.
A estos modelos conceptuales se les denomina ontologías
Una ontología recoge los conceptos pertenecientes a un
determinado dominio, así como las relaciones que existen entre
estos conceptos.
Una ontología se parece a un diccionario, pero conteniendo
también las relaciones entre conceptos.
Las ontologías en Ingeniería del Conocimiento están pensadas
para ser manejadas por una computadora, por lo que cuentan
con un modelo formal bien definido mediante algún tipo de
lenguaje o formalismo.
Ejemplo de ontología para construir SSBBCC que puedan tratar de
aspectos relacionados con el coronavirus:
CIDO - Coronavirus Infectious Disease Ontology - Es una
representación en forma de grafo de la ontología, adecuada
para el ser humano
Para que la ontología sea procesable por el ordenador debe estar
formalizada en algún lenguaje:
CIDO - formalización en OWL (Ontology Web Language)
Las ventajas de crear modelos de conocimiento son numerosas:
Los sistemas basados en el conocimiento construidos son
más sencillos de modificar y mantener.
Un modelo de conocimiento (ontología) puede ser reutilizado
para construir diferentes SSBBCC
Una ontología se puede visualizar y los expertos pueden
ponerse de acuerdo en cual es el mejor modelo posible.
La ontología recoge los conceptos y relaciones que se
encuentran en el dominio, pero para resolver problemas (crear
un SSBBCC fundional) se necesitan también mecanismos de
razonamiento que utilicen esos conceptos.
IAs Modernas
Watson (IBM) 2011 - Es un Sistema Basado en el Conocimiento.
Jeopardy! es un concurso de conocimientos en el que se
plantean preguntas de forma indirecta:
Hard times, indeed! A giant quake struck New Madrid,
Mo., on Feb. 7, 1812, the day this author struck England.
Watson batió a los mejores concursantes de la historia en
el programa Jeopardy.
Utilizó un potente sistema de procesamiento de lenguaje
natural junto con una gran base de conocimiento
altamente estructurado (usando modelos de
conocimiento).
AlphaGo (Google) 2016-2017
El Go es un juego de tablero más complejo que el ajedrez
Utiliza técnicas de aprendizaje automático
Aprende técnicas de juego observando partidas humanas
En 2016 en un programa de Google vence al campeón mundial
del ajedrez por 1era vez
AlphaGo Zero (Google) 2017
AlphaGo Zero fué un paso más allá de Alphago
Aprende por si solo mediante técnicas de aprendizaje profundo
AlphaZero (Google)
Programa ideado para poder jugar cualquier tipo de juego de tablero,
incluyendo el Go, el ajedrez y el ajedrez japonés (shogi).
MuZero (Google) 2020
Es capaz de aprender la forma de juego y las estrategias necesarias
para ganar sin tener ningún tipo de conocimiento previo del entorno
Tema 3. Búsqueda- La hipótesis simbolista
Hipótesis simbolista
Manejar símbolos a partir de la representación de las señales binarias
0 y 1,
La IA puede representar los problemas como símbolos
Representación mediante símbolos
Estado inicial: oi (lo, ca, co) od ( )
o Orilla izquierda (lobo, abra,col) Orilla derecha()
Estado final deseado: oi ( ) od->od (lo, ca, co)
o Orilla izquierda(nadie) orilla derecha -> orilla
derecha(lobo,cabra,col)
Búsqueda en espacio de estados
es un mecanismo para representar el conocimiento en IA
La secuencia de estados y sus transiciones se pueden
representar en forma de grafo o árbol.
Existen diferentes estrategias y algoritmos para buscar el mejor
recorrido en este árbol que nos lleve a la solución requerida
Un grafo de espacio de estados es la representación gráfica de
los posibles estados intermedios (nodos) por los que puede pasar
un problema hasta llegar al estado objetivo.
Para pasar de un estado intermedio a otro se utilizan operadores
que producen transiciones en el estado
El coste de una solución es el número de operadores que se han
utilizado para llegar del estado inicial al estado objetivo
Una solución al problema será un camino (path) dentro del grafo
que lleva desde el estado inicial al estado objetivo. Puede haber
diferentes soluciones al problema.
En ocasiones interesa encontrar cualquier solución que
exista.
En ocasiones queremos optimizar el mecanismo de
resolución, ya sea en tiempo empleado o en recursos
utilizados..
En ocasiones queremos optimizar el coste asociado a la
solución.
Para evitar la enumeración exhaustiva se puede utilizar una técnica
informada que combina la generación de soluciones parciales con la
técnica del backtracking.
El uso de soluciones parciales permite comprobar, antes de tener la
posible solución completa, si se van cumpliendo las restricciones,
para así ahorrar tiempo:
Si al crear una solución parcial se ve que ya no se cumplen las
restricciones el generador volverá a un estado parcial anterior que sí
las cumpliera para seguir generando desde ese momento la posible
siguiente solución. Técnica de backtracking
Medidas del rendimiento de los algoritmos de búsqueda
Completitud
Optimalidad
Complejidad en el tiempo
Complejidad en el espacio
Tema 4. Búsqueda No Informada
Búsqueda no informada vs informada
La representación en árbol de los estados y sus transiciones puede
dar lugar a árboles con muchas ramas y niveles.
Al número de estados que se pueden generar a partir de uno dado se
le denomina “branch factor” (factor de ramificación)
El factor de ramificación no tiene por qué ser igual para todos
los estados en un mismo árbol, puede variar.
La profundidad (depth) de un nodo (estado) del árbol es la longitud
del camino (path) desde el nodoraiz (estado inicial) hasta ese nodo.
Dicho de otro modo: el número de acciones llevadas a cabo desde el
nodo raíz hasta llegar a ese estado.
Búsqueda no informada
Repasando los conceptos vistos:
Estado: es la situación del problema en un determinado
instante. Se representa por una matriz de 3x3 con números del
1 al 8 (no repetidos) y un hueco.
Estado inicial: es el estado del que parte el problema, en este
caso es arbitrario.
Estado objetivo: es el estado que consideramos como objetivo
para que el problema esté resuelto. Es arbitrario, normalmente
es una ordenación dada de los números.
Transición/Acción: es el movimiento del cuadrado que
representa al hueco hacia una posición permitida.
Función de coste: define el coste asociado a cada movimiento.
En este ejemplo todo movimiento tiene igual coste.
Espacio de estados: es el conjunto de todos los estados posible
Breadth-First Search
Inicialmente se introduce el nodo raíz en la denominada “lista de
nodos”. Si el nodo raíz no es el objetivo, se generan todos sus estados
hijo, introduciéndolos en la lista de nodos y se hace la misma
comprobación, y así sucesivamente nivel por nivel.
El algoritmo es completo si el factor de ramificación b es finito.
El tiempo de computación y el uso de memoria crecen
exponencialmente al aumentar la profundidad alcanzada
Si todos los costes son iguales, el algoritmo encontrará la solución
óptima porque parará cuando encuentre la primera solución, pero
habrá revisado todos los niveles anteriores
El algoritmo avanzaría en anchura, tal como se muestra en la
imagen
Depth-First Search
Trata de solucionar el problema de la memoria almacenando menos
nodos en la misma.
Después de expandir un nodo (generar todos sus sucesores) se
comprueba el primer sucesor y, si no es una solución, se expanden
sus sucesores, siguiendo profundizando de esta forma.
Si se llega a un estado hoja sin encontrar la solución, se va hacia
arriba mediante el mecanismo de backtracking para seguir buscando
a partir de ahí
Aumenta con la profundidad de forma exponencial
Para evitar que se profundice indefinidamente, se suele poner un
límite a la profundidad máxima alcanzada.
Esta técnica se combina con la estrategia iterative deepening:
Se comienza con un límite de profundidad de 1. Si no se encuentra
solución se aumenta en uno ese límite y se vuelve a empezar la
búsqueda desde el inicio, y así sucesivamente.
Con esta técnica conseguimos un algoritmo completo y que puede
encontrar la solución óptima si el coste es igual para todas las
acciones
Tema 5. Web Semántica
Qué es la web semántica: Introducción
A finales de los 80 Tim- Berners Lee hizo un avance en este ámbito :
www. La web semántica proporciona una infraestructura de
hipertexto que vincula a través de internet . Conecta documentos q
no están en la misma máquina . A partir de este momento , se
produce el nacimiento de la web .
Para la noción de web , es esencial la idea de comunidad abierta
( cualquiera puede aportar sus ideas )
Motivación
Compartir datos : el mayor interés q tienen las entidades es dar a
conocer los datos a posibles consumidores y ponerlos a su disposición
a través de diferentes canales . Los datos pueden ser complejos y
demasiado detallados , por lo q a veces no pueden publicarse con una
simple descripción .
Un caso especial de querer compartir datos son las redes sociales .
Redes sociales
El servicio donde publicamos los datos es el propietario de los datos .
Pueden usarse los datos para fines lucrativos ( como anuncios
publicitarios) o para fines menos inofensivos . Por ello, se hace
necesario un equilibrio de control , donde el usuario quiere el control
de sus datos → Esto genera un problema de datos distribuidos .
Aprendizaje a partir de los datos ( Machine Learning)
La ciencia de datos se ha convertido en una de las formas más
productivas de realizar predicciones empresariales :
Aplicación al marketing .
Deportes .
Medicina : ejemplo exitoso de datos distribuidos . Los
diagnósticos provienen de hospitales de todo el mundo.
Datos distribuidos
Los datos distribuidos comparten informacion , intercambiando datos
entre máquinas.
Red de datos distribuidos
La web semántica lleva esta idea un paso + allá . La arquitectura web
con la q estamos familiarizados admite una red distribuida de páginas
de hipertexto q pueden hacer referencias entre sí con enlaces
globales URL
La arquitectura web generaliza esta noción a un identificador
uniforme de recursos ( URL ) que permite su uso en contextos + allá
del hipertexto.
Concepto : unir un elemento de una página con otro , en vez de unir
página con página .
Características de la web semántica
Cualquiera puede añadir información ( AAA: AnyOne can soy
Anytning about Any topic)
a. Gran parte de la info q compone la web semántica
comenzó en la web de hipertexto.
Puede haber muchas discrepancias
o Por un tema concreto.
o Engaño voluntario .
o Alguien puede equivocarse
o Información desactualizada.
La web semántica no se trata de q todos estén de acuerdo en una
ontología Única . Se trata de obtener interoperabilidad. Una de las
características de la web , por la q es tan exitosa , es q desde el ppio ,
siempre se ha permitido q coexistan muchos y distintos puntos de
vista
Nonunique naming assumption
o NO podemos asumir q solo pq 2 URL sean diferentes , se
refieren a recursos diferentes .
No se puede concluir q conocemos todo
o Puede haber datos vinculados a otros aún sin conocer .
o Pueden aparecer nuevos datos vinculados a otros en
cualquier momento
La web semántica tiene muchos otros nombres y cada nombre
insiste en una faceta diferente
o Web Of Data
o Linked Data .
o Linked Open Data
o Knowledge Graph
o Semantic web
Web semántica. Modelo Semántico
Los modelos son abstracciones q permiten a la gente entender los
conceptos a los que se refieren . cómo pueden ayudar a comprender
el conocimiento ?
Comunicación .
Explicabilidad y predicción .
Mediación entre múltiples pts de vista .
Variaciones
Un modelo puede proporcionar un marco para describir qúe tipo de
cosas podemos decir sobre algo.
EXPRESIVIDAD EN EL MODELADO
Que un modelo sea más expresivo ( dé + info) q otro no quiere decir
q sea mejor. Un modelo menos expresivo puede ser más concreto y
fácil y por ello ser el q se use más habitualmente.
Lenguajes
RDF : marco básico.
SHACL : datos con determinada forma (mundo cerrado) NO lo
vamos a usar .
RDFS : notaciones básicas de similitud , variabilidad , clase ,
subclase, propiedades.
RDFS - PLUS : subconjunto de OWL . + expresividad q RDF pero
sin la complejidad de OWL . Propiedades y relaciones .
OWL : trae la expresividad de la lógica a la web semántica .
Permite restricciones
TEMA 3