Está en la página 1de 128

Introducción:

Comienzos:
Primera máquina analítica de propósitos generales: Babbage.
Ada Lovelace escribió el primer algoritmo en esa máquina

Término de inteligencia artificial → primera vez en 1956

“Tan pronto como funciona ya nadie lo llama IA”: Resolución de problemas que no son
habituales

Persona inteligente:
Poder hacer cosas que el común denominador no puede o las hace de mejor manera. La
actividad donde se demuestra la inteligencia tiene que ver con el razonamiento, el
pensamiento, la síntesis, análisis y abstracción.
Se es inteligente en un dominio en particular.

Comportamiento inteligente:
Se reconoce a partir del entorno. Relacionado con la teoría general de sistemas (una entidad
se reconoce a partir de sus características/atributos y a de su comportamiento con su
entorno).
Para estudiar el comportamiento hay que adentrarse en el individuo.

- Pueden tomar decisiones consistentes con un objetivo (son racionales)


- No poseen todos los conocimientos ni todos los datos (no son omisiones)
- No siempre son exitosos (no son infalibles)
- Pueden mejorar durante su uso (pueden aprender).
- Soportan a cambios del dominio (pueden ser flexibles y robustos)

Iceberg como el comportamiento de un individuo: es lo que se ve (la conducta) y no se ve


(procesos internos que suceden en la mente del individuo para que resulten en una
determinada conducta).

Comportamiento es:
1. Conducta
2. Procesos internos

Concepto:
Rama de las ciencias computacionales encargada de estudiar modelos de cómputo
(tecnologías, arquitectura) capaces de realizar actividades propias de los seres humanos en
base a de sus características primordiales: razonamiento, conducta y aprendizaje.

Resuelve problemas donde no se entiende cuál es completamente, donde no se pueden


anticipar todas las posibles situaciones ni los cambios futuros del ambiente, la cantidad de
soluciones es tan grande que no se pueden hacer búsquedas exhaustivas, si se genera un
modelo tradicional que lo resuelva debe ser simplificado tanto que ya no es útil. (Capaz podés
resolver casi todo en software normal y un pedazo con IA).
Está dividida en distintas disciplinas:

Características de la IA:
1. Generar algoritmos basados en lógica y heurística
2. Requiere equipamiento convencional y no HW especializado vinculado a costos.
3. Requieren saber cómo reaccionar ante datos erróneos porque la realidad es
imperfecta.
4. Los algoritmos deben ser programados en lenguajes flexibles.
5. Mejora de forma independiente a lo largo del tiempo: Funciona de cierta forma al
empezar y mejora la performance a más tiempo trabaje, inverso a otros SW.
6. Modifica su comportamiento, tiene aprendizaje y se adapta.

Dos ramas:
- IA tradicional:
- Sistemas desarrollados por la ingeniería del conocimiento, basados en reglas,
métodos heurísticos y lógicas.
- Inteligencia computacional y machine learning
- Sistemas inteligentes basados en tecnologías mayoritariamente de inspiración
biológica.
- Algoritmos capaces de generalizar comportamientos a partir de información
suministrada en forma de ejemplos.

Se relaciona con SET, y relación entre SBC y SE.

Evolución de IA:
altos y bajos, esperanzas/expectativas utópicas con inviernos.

Supuestos iniciales:

El punto 2 no se cumplió del todo ya que HW+SW no equipara al cerebro y la mente.


Primer invierno: Con predicciones que nunca se cumplieron y dejaron a la IA en una mecesa
durante un tiempo por falta de inversiones a la falta de cumplimiento cercano.

Al finalizar surge la ingeniería del conocimiento (1980) y tiene otro empujón.


Llega el segundo invierno más corto que el primero que deja enseñanzas (2-4 características
de IA más arriba). Y surge también el concepto de machine learning.
Luego de deep blue (ajedrez) surgen necesidades complejas que se traducen en posibles
aplicaciones

Al surgir IBM Watson también generó otro salto (sirve para debatir sobre un tema en
específico, computación cognitiva).
El alpha Go, juego complejo y tiene sucesores.
IBM project debater que debate sobre cosas generales y no específicas y tiene que tener un
alto repertorio de cosas.

¿Es posible automatizar inteligencia?


Elementos a tomar en cuenta:
1. Mente
a. Conocimientos
b. Experiencia
c. Creatividad
2. Cerebro
3. Conciencia

Cerebro:
- Parte hardware.
- Órgano
- físico.

Mente:
- Parte software.
- No es tangible (lo que modelamos nosotros como meta sistemas/modelos)
- Conjunto de capacidades cognitivas que permiten razonar, analizar, conceptualizar,
deducir, etc (hacer algo con el cerebro).
- Manifestación del pensamiento, percepción, emoción, determinación, memoria e
imaginación.

Conocimientos:
- Facultad del ser humano de comprender a través de la razón la naturaleza, cualidades
y relaciones de las cosas.
- Relacionado con la pirámide de información: dato - noticia - conocimiento - sabiduría.
Dato era percepción del hecho, noticia era el dato con significado, conocimiento era
todo lo que se podía hacer con grandes volúmenes de noticias (razón, inducción,
deducción, todas las reglas del individuo que interpretaba las noticias).

Experiencia:
- Conocimiento adquirido por haber hecho algo un número significativo de veces.
- La reflexión y lo que aprendí de hacerlo muchas veces.

Al aprender modifico mi comportamiento para futuras acciones en la medida que genero


nuevos conocimientos a través de la experiencia.

Clasificación IA:
1. IA fuerte: HW y SW podrían equiparar a la mente.
2. IA débil: Se sabía o presupone que HW y SW eran un modelo de la mente y eran de
menor capacidad.

Ingeniería del conocimiento:


- Responsable de construir sistemas basados en conocimiento
- Aparece como el proceso ingenieril, buenas prácticas ingenieriles, utilizar metodología
al construir, pensar en mantenimiento, adaptabilidad, etc.
- Es una actividad ingenieril que permite construir a través de buenas prácticas estos
sistemas (como la ing. en software para nosotros pero con otra metodología de
desarrollo, otro tipo de sistema y grado de definición de la tarea).

1. Sistema inteligente
2. Sistema basado en conocimiento
3. Sistema experto

1.Sistemas basados en conocimiento:


Un sistema de este tipo es cuando tiene una base de conocimientos explícita.
Tiene distintas tecnologías que resuelven la problemática.

Su ciclo de vida: En cada fase se finaliza con el desarrollo de un prototipo, que sí está bien
construído daría pie a la siguiente fase. Tiene en cuenta el mantenimiento perfectivo por ello
tiene una estructura cónica para la adición de nuevos conocimientos. El eje que indica la
calidad de la adquisición de conocimientos va de mayor a menor diámetro (de más a menos
conocimientos) y de abajo a arriba (menor calidad a mayor calidad). Al principio podés tener
mucha información de distinta calidad pero cuando pasa el tiempo se refina y se obtienen
menos pero de una gran calidad.

1a.base de conocimientos explícita:


Contiene hechos y reglas de determinado dominio del problema que se quiere resolver y es
llamada después por otros componentes de los sistemas basados en conocimiento y de ahí
adquiere las reglas y premisas para poder construir su razonamiento.

2.Sistema inteligente:
En la medida que reconocemos que tiene un comportamiento vinculado con una conducta
inteligente.
La IA se toma como ingeniería entonces a través de sus técnicas y metodologías se
construyen sistemas inteligentes.

3.Sistema experto:
Una persona es experta cuando tiene saberes en un dominio que tiene comportamiento
inteligente, lo puede desarrollar y resuelve problemas que no puede resolver el resto o de
mejor manera que el resto.

RNA - Redes neuronales artificiales:


En particular las arquitecturas backpropagation que permiten resolver problemas de relativa
complejidad.

Machine learning:
Identifica patrones complejos en millones de datos, predice comportamientos a través de un
algoritmo. Mejora de forma independiente a lo largo del tiempo.
Da como característica a la IA el mejoramiento de forma independiente a lo largo del tiempo,
en contraposición con otros SW que por entropía mueren.
Aprende a partir de ejemplos. Son algoritmos basados en cosas matemáticas muy complejas
pero son fáciles de automatizar.
Genera comportamientos generales a partir de comportamientos puntuales.

Un algoritmo de ML recibe un conjunto de datos y da un modelo que podemos utilizar dentro


de un sistema inteligente.

Tipos de algoritmos:
Los podemos clasificar según:
1. Estrategias de aprendizaje que se aplican para distintos tipos.
2. Tipos de entrenamientos

1.
- Supervisado:
Le damos ejemplos de entrada y le damos info adicional para que pueda encontrar el
patrón. Un agente externo EJ: una salida deseada o algo que permita valorar la salida
si es buena o mala.

- No supervisado:
Damos solo ejemplos de entrada, y el algoritmo trata de determinar un modelo que lo
representa.

2.
- Entrenamiento offline o estático
Tienen fase de entrenamiento donde el algoritmo aprende para generar el modelo y
luego de la instalación no aprenden más.
- Entrenamiento online o dinámico
Luego de la fase de instalación pueden seguir aprendiendo pero debe ser
monitoreado para no romper lo anterior.

Algoritmo de inducción:
Estrategia de aprendizaje supervisada porque le das una salida y entrenamiento estático.
Tiene muchos subtipos.
Algoritmo TDIDT:
Top-down-induction-decision-tree, generan un árbol de decisión donde en cada rama tenemos
los valores de los atributos de entrada y en el nodo hoja tenemos el valor del atributo objetivo.
Va de casos particulares a generales.

Trabaja en forma recursiva.

Ej:
La columna de objetivos tiene más de un valor, calculo la ganancia (Shannon) por cada
atributo de entrada, como entendimiento tiene mayor valor hago un subconjunto de él.
Generamos un árbol de decisión
por cada valor que toma entendimiento analizo qué pasa con el objetivo, si tiene más de un
valor vuelvo a calcular la ganancia de los datos de entrada pero sólo para los ejemplos del
valor “bajo” que toma entendimiento y tomo el de mayor valor y así sucesivamente.

Si tenes dos o más líneas con todos los datos de entrada iguales y un objetivo distinto (ej:
todas las cualidades iguales pero uno aprueba y el otro no) entonces asigno un nodo hoja
también pero indicando que la regla tiene un 50% de error.

Lo represento así o escrito:


Computación cognitiva:
Busca “humanizar” los sistemas inteligentes a través de muchas tecnologías como
procesamiento de lenguaje natural, minería de datos, reconocimiento de patrones, etc.
Tiene que ver con la usabilidad de estos sistemas, sí o sí tiene que ser muy usable.
Ejemplos de IA:
Filtros de email, gps, videojuegos, traductores, aspiradores de hogar, netflix, música, soporte
de compras, celulares, detección de fraude, administración de batería, en cámara para
mejorar las fotos, para cerrar aplicaciones que no se use, unlock de celular con cara,
reconocimiento facial, de voz, e imagen.

Lo que era IA antes hoy es capacidad de procesamiento común y lo que es IA ahora es lo


que en un futuro será capacidad de procesamiento común.

06/04

Apuntes mandados a leer:

Sistemas expertos - SE:


Clase de programas que son capaces de aconsejar, categorizar, analizar, comunicar,
consultar, diseñar, diagnosticar, explicar, explorar, formar conceptos, interpretar, justificar,
planificar.
Programas capaces de manejar problemas que normalmente requieren para su resolución la
intervención humana especializada.
Tienen interacción con el humano, preguntan y obtienen respuestas.
Sirven de consultores o ayudantes de los expertos en algún área (están limitados al
conocimiento cargado, no se adaptan a nueva información, si no la cargaste no la puede
responder).
Tienen dificultad de reconocer los límites de su capacidad, comportamiento frágil en sus
límites. (Cuanto más novedosa, imprevisible e inflexible sea la prueba más fracasan las
soluciones).
Intervinientes:
- Experto de campo: Revelan información acerca de aquellos procesos mentales que le
permiten solucionar los distintos problemas.

Ejecutan tareas genéricas que definen el grado de competencia en su especialidad. Y


pueden ser divididas en dos grandes grupos:
- De diagnóstico

- De diseño
- Ingeniero de Conocimiento: Da forma simbólica y automáticamente manipulable al
conocimiento proporcionado por el experto de campo.

Personas expertas:
Resuelven problemas mal definidos y desestructurados que requieren diagnóstico o
planificación para solucionarlos, usan heurísticas (métodos que determinan que parte de su
experiencia son aplicables).

Características:
- Tener conocimientos de los conceptos relevantes en el dominio y sus relaciones
- Tener riqueza de situaciones específicas y respuestas inmediatas o parciales que
acortan el proceso de solución del problema.
- Capacidad de reconocer la oportunidad de usar tales atajos.

Ingeniero de conocimiento:
debe descubrir las heurísticas y programarlas en el sistema experto.

Características:
Son deseables y no siempre obtenibles.
1. Aplican su experiencia eficientemente, pudiendo realizar inferencias a partir de datos
incompletos o inciertos.
2. Explican y justifican lo que hacen.
3. Se comunican con otros expertos y adquieren nuevos conocimientos.
4. Reestructuran y reorganizan el conocimiento.
5. Pueden quebrantar reglas, interpretan simultáneamente el espíritu y la letra de las
mismas. (aprendizaje offline y online, esa regla se puede reevaluar o ajustar, no es
estático y mejora.)
6. Determinan cuándo un problema está en el dominio de su experiencia.
Tareas del experto:
- Clasificación:
Seleccionar una respuesta a partir de un conjunto fijado antes de alternativas.
- Jerarquizada (reducir a clases, combinar y luego individual)
- Interpretación: Explica los datos asignándoles significados simbólicos

- Diagnosis:
Además se buscan datos adicionales cuando se necesitan para ayudar a verificar o
rechazar la línea de razonamiento emprendida.
Se infieren malfuncionamientos de sistemas a partir de datos observables.
Encontrar fallos en un sistema.

- Depuración, tratamiento o reparación:


Tomar medidas o recomendar acciones que corrijan un tipo de situación adversa que
ha sido diagnosticada.

- Predicción, pronóstico y prospección:


Tratar de prever lo que sucederá en el futuro a partir de un modelo del pasado y del
presente. Inferir consecuencias verosímiles a partir de situaciones dadas con
experiencias y fórmulas y modelos, también puede usarse simulación.

- Diseño y síntesis:
Capacidad de configurar un sist. sobre la base de un conjunto de posibles alternativas.
Efectuar especificaciones para crear objetos que satisfagan requisitos particulares.

- Planificación y catalogación:
Ordenar en el tiempo un conjunto dado de tareas para que puedan realizarse con los
recursos utilizables y sin interferir entre sí.

- Monitorización:
Observar la situación en curso cuando se va desarrollando según lo previsto e intentar
reconducirla si se desvía.

- Consejo al usuario
- Instrucción
- Control
- Ayudante inteligente.

Arquitectura:
Hay varias pero todas tienen:

1. Base de Conocimientos - BC:


Tiene el conocimiento que el SE maneja.
Tiene las formulaciones simbólicas y automáticamente manipulables del área de
conocimiento sobre el cual el sistema es experto.
Se puede definir como la unión del conjunto de aserciones y el conjunto de reglas.
Lo carga el ingeniero de conocimiento. (Una aserción A es la formulación simbólica de un
hecho. Una regla R es una relación explícita entre aserciones, generalmente esta
relación es de causalidad).
Tiene el conocimiento sobre cómo se resuelve el problema.
Suministra info al motor de inferencia.

Reglas:
Tienen restricciones (nadie lo va a preguntar en la clase).
- Aciclidad: No deben ocurrir que una o más causas estén en el consecuente. o que una
serie de reglas terminen en su comienzo.
- n,m >= 1. Al menos cada regla tendrá un antecedente y un consecuente.

2. Base de datos BD:

3. Motor de inferencia MI
Activa las reglas en función de la info de la base de datos y la memoria de trabajo.
Pone la nueva info en la memoria de trabajo.
Da al trazador de explicaciones las reglas que motivaron una determinada consulta al
usuario (la explicación).
Usa métodos de búsqueda. (A*..)

Trabaja bajo dos principios:


- Universo Cerrado:
Toda la info necesaria está dentro del sistema, lo que no puede demostrar como
verdadero lo asume falso. (no necesitas trazador de consultas porque no hay
feedback, y el trazador de explicaciones solo justifica conclusiones y no justificaciones
a dudas ya que no existen.
La base de datos no puede estar vacía.

- Universo abierto:
La info necesaria no está en el sistema sino afuera. Se comunica con el usuario.
La base de datos puede estar vacía.

4. Trazador de Explicaciones TE
Interpreta requerimientos del usuario sobre el porqué de determinadas preguntas por parte
del sistema, trazando la justificación de las mismas.
La justificación usa información que le da el motor de inferencias.

5. Trazados de Consultas TC:


Organiza y presenta en una forma semántica y sintácticamente aceptable para el usuario
los requerimientos de información del sistema. Lo que responda el usuario se guarda en la
memoria de trabajo.

6. Memoria de trabajo MT:


Base de datos temporal.
El motor de inferencia deja información deducida a partir de la base de conocimientos y la
de la misma memoria.

7. Manejador de Comunicación MC
- Deriva info inicial que suministra el usuario hacia la memoria de trabajo.
- Interpreta los mensajes del usuario que pueden ser respuestas de él hacia preguntas
que hizo el sistema o solicitudes de explicación a partir de una consulta del sistema.

Estrategias del motor de inferencia:


Son dos que comparten:
- Datos iniciales
- Objetivo a verificar
Impacta en qué reglas después yo active.

1. Orientada al objetivo:
Búsqueda hacia atrás (backward chaining).
Va desde el objetivo y construye un árbol hacia los datos conocidos.

2. Orientada por los datos


Conocida como búsqueda hacia adelante (forward chaining)
Tiene como origen la inducción a los datos, y a partir de estos intenta construir un
conjunto que contenga como elemento el objetivo.
Usa las reglas como operadores de pertenencia al conjunto Memoria de trabajo.

Dificultades de la experiencia del experto:


- Los conocimientos son caros
- No están en ningún libro
- Se adquieren gradualmente (tarda en construirse el SE).
- Suelen estar distribuidos (confiar en un solo experto trae puntos oscuros en la base de
conocimientos o producir un sistema que no tendrá usuarios).
- Tiene conocimientos declarativos
- Aplica efectiva y eficientemente lo que sabe.

Ventajas experiencia artificial:


- La experiencia permanece
- Es fácil de transferir o reproducir
- Genera resultados reproducibles más consistentes y completos
- Es fácil de documentar.
- Coste relativamente reducido.

Ventajas experiencia humana:


- Son creativos
- Aprenden y se adaptan a condiciones cambiantes.
- Examinan todos los aspectos de un problema.
- Tienen sentido común ( cuando el SE no puede resolver algo no tiene el sentido
común de abandonarlas).
Métodos de búsqueda:
Al iniciar a desarrollar un sistemas inteligente necesitamos:
- Modelar el problema (características propias)
- Definimos al mismo en términos de una búsqueda en espacio de estados:
- iniciales
- intermedios
- finales o solución

Estado:
Representaciones que contienen el conjunto de toda la info que describe la situación del
sistema en un momento determinado. Una foto.

Espacio de estados:
Estados del problema, dominio que contiene todos los posibles estados del sistema.
Puede ser un espacio finito o infinito.
Contiene el estado inicial (describe la situación actual u original del problema), el conjunto de
estados finales (donde encontras las distintas soluciones) e intermedios (por los cuales se
transita en pos de ir a los finales).

Operadores o reglas:
Vincula dos estados posibles:
- estado origen o padre
- estado destino o hijo

Representar un problema:
a través de un árbol

Proceso de búsqueda para solución de problemas:


¿Cómo representamos esta búsqueda? A través de:
- Representación del problema (con todos sus componentes).
- Definición de la estrategia de control
Mecanismo mediante el cual partimos de un estado inicial llegamos a un estado solución,
utilizando una estructura de control, esta estructura nos permite seleccionar y aplicar las
reglas que producen las transiciones entre los estados pertenecientes al conjunto de estados
del problema.

Estrategia de control:
Es el conjunto de técnicas que nos permiten elegir las distintas reglas o estados a través de
los distintos métodos de búsqueda.

Funcionamiento interno de una estructura de control:


A partir de un estado de entrada se analizan las reglas aplicables, casos:
1. No hay reglas para aplicar el estado nuevo salida quedaría idéntico a la entrada
porque no se modificó
2. Hay 1 sola regla y se aplica.
3. Hay + de 1 regla, existe un proceso de selección previo a la aplicación.
Clasificación métodos de búsqueda:
1. Sin información del dominio o búsqueda ciega:
No tienen información complementaria del dominio que diga si un estado intermedio
sea mejor que otro, sólo tiene la descripción propia de los estados y la identificación
de los estados solución. No tienen info a priori del mejor camino posible.

a. Primero en amplitud
b. primero en profundidad
c. Generación y prueba
d. Primero en profundidad iterativa
e. bidireccional
f. etc.

2. Con información del dominio o búsqueda heurística:


Tenemos información propia del dominio donde podemos ir analizando los estados
intermedios cuan candidatos buenos o no tan buenos (en pos de estar más o menos
cerca de la solución) son a través de una definición de su heurística.

Aumenta la eficiencia en un proceso de búsqueda sacrificando exhaustividad. Se usa


cuando los árboles ocupan mucha memoria, crece exponencialmente en cada nivel y
consume también mucho tiempo.
Como desventaja, dependiendo el tipo de problema me conviene o no usarlo,
conseguís suficientemente buenas soluciones pero no siempre las óptimas porque no
lo recorres exhaustivamente.

La info adicional está en:


- Los nodos: Con función heurística asociada al estado. Ej: definir una función
que reciba un nodo y devuelva un número que es la deseabilidad de un estado
en particular. Más grande o más chico depende como lo represente yo.
- Las aristas: Dentro de las transiciones, representa el costo de los caminos
aplicables (cuánto me cuesta pasar de un estado a otro). Siempre penaliza
(suma si necesitas un número más chico, y restas si necesitas el número más
grande).

a. Escalada simple
b. Escalada máxima pendiente
c. El primero mejor
d. Beam Search
e. A*
f. Dijkstra
g. etc.

Comparación de métodos:
1. Sin información del dominio o búsqueda ciega:

Primero en amplitud:
Comienza por estado inicial/raíz aplicando todas las reglas posibles y obtenemos un conjunto
de nuevos nodos, a cada uno se le aplican todas las reglas de vuelta y así sucesivamente.
Se crean niveles de nodos, todos los nodos de un nivel se crean antes de pasar al otro nivel.

Características:
- Aplica FIFO, el primero que ingresa es el primero que sale (el primero en generarse es
el primero en analizar).
- Si existe solución la va a encontrar porque recorre todos los estados en forma
ordenada.
- Encuentra todas las soluciones si existe más de una y te permite identificar la mejor.
Solución óptima
- Es buena si existen pocos nodos finales y están cerca de la raíz para no ocupar
mucha memoria.
- Usa mucha memoria porque recorre todo el árbol.
Recorrido de izquierda a derecha: (puede ser al revés también)

No verlo tan visual sino mecánico, a cuanto de distancia está (M por un camino está a 3
de A y por el otro está a 4).

Primero en profundidad:
Se realiza por rama y no por niveles. Por cada nodo se generan todos sus nodos sucesores
hasta que se llega a un nodo hoja o sin descendientes (si no es solución vuelvo para atrás
hasta encontrar una hoja solución), uno ya alcanzado o si la ruta se alarga más de lo que se
especifica.

Características:
- Encuentra la primera solución y no todas.
- No garantiza encontrar la solución óptima.
- Aplica LIFO, el último que se genera es el primero que se analiza.
- No requiere mucha memoria porque se expande de a una rama por vez.
- Es útil cuando los nodos solución son muchos y están lejos de la raíz.

Recorrido (puede ser de izquierda o de derecha).


Generación y prueba:
Híbrido de los dos anteriores. Es igual a primero en profundidad porque recorre de a una
rama por vez, pero luego de encontrar esa rama repite lo mismo para todas las ramas del
árbol como en amplitud. (vuelve del último nodo de una rama subiendo hasta el próximo nodo
con descendientes sin recorrer para arrancar con la próxima rama).

Características:
- Adecuado para problemas sencillos, para complejos puede consumir mucho tiempo.
- Recorre todos los nodos, encuentras todas las soluciones.

Vos te movés por las transiciones de forma continua y vas consiguiendo las soluciones a
medida que pasa por cada rama.

- podés saber como llegaste versus el primero en amplitud que se ve al final.

Recorrido (puede ser de izquierda a derecha o al revés):


Bidireccional:
Tenés que conocer el estado inicial y final para realizar dos búsquedas en simultáneo. Del
inicial al final y del final al inicial.

Características:
- Dos búsquedas simultáneas top-bottom y bottom-up
- Al menos una búsqueda debe ser en amplitud.
- Si existe un camino solución, las dos búsquedas pasan por el mismo estado para
recrearlo.
- Complejidad igual a dos búsquedas unidireccionales para un grafo con la mitad de los
nodos del original.
- Encuentra una solución, tal vez no la óptima.

Capaz no me interesa la solución (porque ya la se) sino el cómo llego a esa solución.

Recorrido (desde izquierda o desde derecha): En por ramas sería por amplitud en la tabla.
2. Con información del dominio o búsqueda heurística:

Escalada simple:
Primero definir el sentido del recorrido (de izquierda a derecha) y el valor heurístico (cuanto
mayor o menor valor es más deseable).

Me pregunto si desde un nodo actual (genero los hijos en el orden indicado de izquierda o
derecha) si el estado del nodo hijo tiene un valor heurístico mayor/menor. Si lo tiene ese nodo
pasa a ser el actual y sino se continúa con los siguientes hijos hasta buscar uno que cumpla,
si no cumple ninguno detengo ahí el algoritmo.

Características:
- No requiere mucha memoria porque no recorro todo el árbol.
- Si existe un sucesor (hijo desde el nodo actual) mejor que por el que yo estoy
escalando y que aún no generé, se pierde. Ej: el nodo C tiene mayor valor que el B
pero no me fui por ahí y lo perdí).
- No contempla retrocesos en la búsqueda. Me puedo quedar atrapado en un
mínimo/máximo local. (La función debería ser monótonamente creciente para que
crezca a cada paso por hijo, pero no siempre pasa). Conviene utilizarlo cuando
sabemos que la función se comporta así.
- No siempre encuentra solución (por caso anterior en cuanto a la función).

Ejemplo:
de derecha a izquierda no encontré solución porque los hijos de D ninguno es mayor al padre.

Escalada máxima pendiente:


Una vez que yo tengo un nodo actual, genero todos sus hijos y se queda con el mejor
(mayor/menor), ese pasa a ser mi nodo actual y vuelvo a generar todos los hijos.

Características:
- Puedo no encontrar solución igual que escalada simple si los hijos del nodo actual no
son mejores que el padre.
- Puede no encontrar la solución óptima.
- No requiere tanta memoria de almacenamiento (pero más que escalada simple).
- No contempla retrocesos en la búsqueda y puede trabarse en un máximo y mínimo
local.
El primero mejor:
Mejora los métodos de escalada, porque permite cambiar de camino cuando aparece uno
mejor o más prometedor.

Usa 2 listas de nodos:


- Abiertos: Los que genero pero no recorrí ni elegí como actuales.
- Cerrados: Los que generé y por los que fui recorriendo el árbol.

Comparación con escalada máxima pendiente:


- Al elegir un nodo en escalada todos los demás se descartan y acá se guardan en la
lista de nodos abiertos y eso permite retroceder y no es necesaria una función
monótonamente creciente.
- En este método puede elegir el mejor estado disponible aunque su valor heurístico no
es mejor al nodo actual. Es decir, no compara el valor del padre con el hijo, sólo elige
el mejor entre los hijos.
- No queda atrapado en un máximo/mínimo local.
- Siempre se puede encontrar una solución si existe. (dependiendo de la N que se elija,
a mayor te permite ir por más opciones)

Ordeno la lista de nodos abiertos del mejor al peor.


Genero la lista de nodos hijos del nodo actual mientras éste no sea solución.
Si hay nodos abiertos con igual valor, depende del problema y lo definido con cual me quedo.
Beam Search:
Variante del primero mejor con limitación de memoria. N = m con m siendo el límite/tamaño
máximo de nodos que se van a poner en la lista abierta a la vez.

Características:
- No necesita evaluar el estado del hijo con el nodo actual/padre.
- Te permite retroceder.
- Puede no encontrar solución dependiendo el N
A*:
Incluye valores heurísticos en las transiciones/aristas.

Características:
- Utiliza penalizaciones porque tiene valores en las aristas/transiciones.
- Tiene listas de nodos abiertos y cerrados. El valor heurístico del nodo se calcula como
su valor y el costo de la transición.
- Es similar al primero mejor.

El costo de la transición: Se calcula desde el nodo raíz hasta el nodo evaluado.


El valor heurístico: Después de aplicar el costo puede quedar negativo.
Tipos de sistemas inteligentes:

Fuentes de conocimientos:
- Públicas: Libros, manuales, documentos procedurales, videos, audios, etc.
Extraer el conocimiento

- Privadas: Conocimientos y experiencias de las personas en sus mentes.


Educir el conocimiento.
Sistema basado en conocimientos:

- Base de conocimientos: Todos los conocimientos de forma explícita representada


como reglas y hechos.
- Motor de inferencias: Conjunto de instrucciones que saben como transaccionar con los
conocimientos.
Es independiente del problema que se quiere resolver
- Interface de entrada y salida: Permite al usuario interactuar.

3 principios para la construcción:


1. Separación del mecanismo de inferencia de la base de conocimientos.
2. Uniformidad en la representación
3. Conservar simple el motor de inferencias. Necesita menos trabajo para producir
explicaciones comprensibles y la adquisición de conocimientos es más fácil.
Sistema experto:

El conocimiento puede venir de la base de conocimiento o de conocimientos privados de los


expertos humanos.

- Base de datos:
Se guardan datos del problema que queremos que resuelva en un momento determinado
el SE. Son hechos puntuales para resolver un caso puntual.

- Memoria de trabajo:
Registro o logs de todos los conocimientos que va aplicando el motor de inferencia a su
vez accediendo a la base de datos.

- Trazador de explicaciones:
Lee lo que está en la memoria de trabajo y presentarla a través del manejador de
comunicaciones lo que hizo la máquina al humano.

- Trazador de consultas:
Permite al motor de inferencias hacerle preguntas al humano

Pueden o no tener base de conocimientos explícita (implícita es que se crean a partir de las
reglas).
Diferencias:
- Sistemas basados en conocimientos tienen base de conocimientos y provienen sólo
de fuentes públicas
- los sistemas expertos tradicionales tienen base de conocimientos vienen de fuentes
públicas (algun conocimiento público) y privadas (estas son obligatorias y las
principales)
- Los sistemas expertos pueden o no tener base de conocimientos y en ambos casos
vienen de fuentes públicas y privadas (estas son obligatorias). (SET + RNA + AG)

Dificultades de la IA:
- Los humanos no saben realmente cómo realizan la mayoría de sus actividades
intelectuales.
- Las máquinas no se enfrentan a esas tareas de la misma forma que los humanos.

Ingeniería del conocimiento: Actividad de construir sistemas inteligentes. Busca adquirir,


formalizar, representar y usar grandes cantidades de conocimientos de la más alta calidad y
específicos de una tarea.
Tipos de conocimientos:
se pueden clasificar en PRIVACIDAD:
1. públicos:
Publicado y al alcance de toda la comunidad, lo podes sacar de un libro, mail, videos,
revistas, etc. Ej: receta de cocina, libros y manuales, documentación formal
(procedimientos estándares de resolución, normas a cumplir).
Ya están en forma explícita, representable y utilizable inmediata o mediatamente en y
por la computadora.
Las notas informales son semipúblicas porque acarrean experiencia de la gente.

2. privados:
Propio de una persona experta o conjunto de personas, está interiorizado y se
adquiere con el ejercicio de sus actividades. Se utilizan implícitamente.
Para hacerlo explícito se necesitan usar técnicas y herramientas de educción.
El experto lo puede verbalizar porque es consciente de sus acciones para resolver el
problema. Ej: diagnosticar una enfermedad.

3. metaconocimientos:
Propio de una persona experta o conjunto de personas, está interiorizado y se
adquiere con el ejercicio de sus actividades. Se utilizan implícitamente.
No se puede verbalizar porque no es consciente de sus acciones. Ej: correr antes de
chocar el auto.

A su vez estos se pueden clasificar en OPERATIVIDAD:

1. Declarativos:
Qué son las cosas, describen el dominio de aplicación.
En términos de conceptos, objetos, atributos, valores y relaciones entre las entidades
anteriores, sin que importe cómo se usen esos conocimientos.

- Derivados: se aprenden y aprehenden bien a través de la experiencia. (subclases


compilados, heurísticos, abstracciones, generalizaciones)

- Modelizados: Descripción de los conocimientos fundamentales ya refinados.


Conocimientos de primeros principios. (leyes naturales, modelos causales y
temporales, fórmulas lógico-matemáticas, modelos físicos, etc).

2. Procedimentales:
Para controlar el proceso de solución de un problema. Centrándose en el uso de los
conocimientos y esquemas de razonamiento usados para alcanzar una solución.
Cómo funcionan las cosas.
- Secuencial e iterativo: Ejecución un número de veces o en cierto orden.
- Metaconocimientos o condiciones de metanivel: Para tomar decisiones acerca de
cómo otros conocimientos pueden emplearse en el proceso de razonamiento.
- Verosimilitud: Cubre el uso de medidas de certidumbre en el proceso de
razonamiento.
A su vez estos se pueden clasificar en DEFINICIÓN DEL PROBLEMA:

1. Estructurantes
Vienen expresados de manera declarativa, se identifican con conocimientos públicos.
Detectan los conceptos relevantes estableciendo relaciones y estructuras conceptuales.
Definen mecanismos que dan origen a la certeza
Objetos del dominio, relaciones básicas, situaciones iniciales, posibles soluciones.

2. Heurísticos:
Se expresan en forma de reglas, son atajos que conducen a la solución en grandes
espacios de búsqueda en tiempo limitado.
Es la experiencia que está bien organizada e indexada en la memoria a largo plazo, su
poder procede de toda la experiencia que sumarizan.
La que más suelen usar los expertos (Experiencial e incierta).

3. Epistemológicos:
Incertidumbre no estructurada (los estados del sistema son desconocidos en todo
instante), incertidumbre estructurada (los estados del sistema son conocidos pero no se
sabe cuál será el estado del sistema en todo instante). Probabilidad (en todo instante los
estados así como las leyes de la probabilidad de los mismos son conocidos). Para pasar
de incertidumbre a probabilidad hay que aumentar la información, estadística.
Certidumbre cuando todos los estados del sistema son conocidos y saber cuál estado va
en cualquier momento.

4. Cognoscitivos o de modelización conceptual

Información:
- Dato:
Percepción del hecho.
Signos que se emplean en la comunicación.
Interesa el número de símbolos posibles, duraciones, restricciones, etc.
Es irrelevante que tengan o no significado o relevancia práctica.
áreas de aplicación: compresión de datos, códigos de corrección y verificación de
errores, muestreo, etc.
Sintáctico o técnico.

- Noticia:
El dato con significado
Relaciones entre los signos y las entidades que soportan, de significación del
significado de los signos.
Dependencia del receptor.
El contexto y la asociación de palabras.
Resultan de la clasificación de los datos a través del análisis.
Se usan durante un tiempo limitado, y con un alcance limitado.
Semántico

- Conocimiento:
Todo lo que se podía hacer con grandes volúmenes de noticias (razón, inducción,
deducción, todas las reglas del individuo que interpretaba las noticias).
Relaciones entre los signos y sus usos. Se estudia lo relativo al valor o utilidad (si se
pueden tomar decisiones correctas a tiempo).
Son dependientes del receptor.
Pragmática / de influencia.
Adquisición de conocimientos:
Proceso de recolección de información (dato, noticia y conocimientos) a partir de cualquier
fuente necesaria para construir un sistema basado en conocimiento.

No es un paso concreto sino es una tarea que se produce en paralelo a todas las etapas de
construcción de estos sistemas (identificación, conceptualización, formalización, validación,
mantenimiento, etc).

No es aislado, forma parte de cada fase, al principio es muy importante, en las últimas partes
el tiempo dedicado varía en 20% del tiempo total.

Formas:

1. Extracción de conocimientos (de forma escrita)


2. Educción de conocimientos (humanos)

Hasta el momento no existe ningún método de AC completamente automático (se graba /


escribe a mano). Por ahora es una labor de artesanía, hecha a medida para cada caso.
Ardua.

Es el cuello de botella en el diseño de sistemas expertos.


Proceso de adquisición:

1. Primeras reuniones y evaluación de viabilidad


Determinar requisitos funcionales del SE, introducir al IC en el dominio. Se buscan
conocimientos generales.

2. Extracción de conocimientos
Estudio de documentación existente. No debe bajar a detalle.

3. Educción de conocimientos
Se obtienen los datos genuinamente privados del experto.
a. interrogatorio inicial: Visión de alto nivel del dominio, comprender el alcance, las
tareas del experto, etc.
b. Investigación profunda: Se realiza según un ciclo de educación predefinido.
Extracción de conocimientos:
1. Estudio de documentación:
Libros básicos e introductorios, manuales, catálogos, etc. Se suele requerir asistencia
externa para entender.

2. Análisis estructural de textos:


Búsqueda a través de documentación de determinados términos. Tipos:
a. Los términos son determinados por el IC en tiempo de ejecución (al analizar el texto
el IC establece una serie de términos que deben ser buscados automáticamente).
Los términos están extraídos a priori.
b. Los términos a buscar están preestablecidos por la técnica y son dependientes del
dominio. Los términos están extraídos a priori.
c. Los términos a buscar están preestablecidos pero son independientes del dominio.
Se denominan análisis estructural de textos.

Hay más info en K52-03

Educción de conocimiento:
Los expertos más competentes son incapaces de describir los conocimientos que usan para
resolver los problemas.
Existen 2 órdenes de conocimientos:
1. Primer orden: Los poseen y manipulan los expertos y normalmente se entiende
cuando se habla de ellos.
2. Segundo orden: Los que el IC busca, son conocimientos sobre los conocimientos del
experto, cómo efectúa su tarea el experto.

Problemas:
- Eliminación de datos clave en un proceso de razonamiento (se le pasa al experto)
- Palabras con referencias no especificadas.
- Referencias hechas con comparativos.
- Condensación con palabras de procesos complejos
- Implicación de conexión causal entre eventos.
- Palabras que definen necesidades y probabilidades causales.
- Palabras absolutas.

Técnicas:
1. Directas:
Se pregunta al E directamente lo que sabe. Ej: Entrevistas, cuestionarios.

2. Indirectas:
No se le pregunta al experto lo que sabe si no que se le dan otras tareas que pueda
hablar, que contemple objetos, similaridad de los mismos, etc Y el IC infiere los
conocimientos a partir de los resultados. Ej: Análisis de protocolos, emparrillado,
observación de tareas habituales, etc.

Entrevista:
- Más común y familiar para educir.
- Mucha o poca estructuración.
- Abierta: se debe evitar interrumpir al experto. Las de este tipo deben ser las primeras.
Permite educir información imprevista.
- Estructurada: Planificar más, se usa en la segunda parte del proceso, la investigación
profunda. Si aparecen cosas imprevistas se debe volver a una entrevista abierta.
- Consumen mucho tiempo.

Observación de tareas habituales:


- Observar al E trabajar en un problema real habitual.
- El IC es observador pasivo, poco práctico por el tiempo que demora.
- No sirve si hay problemas de privacidad.
- Tiene variaciones: poner un novato que haga lo del experto bajo sus órdenes, y sino
que el E puede hacer solo 20 preguntas al IC.

Incidentes críticos:
- Se pide al E que describa casos especialmente interesantes o difíciles que se le hayan
presentado. Y debe contar cómo lo resolvió.
- Variación: plantear casos imaginarios. Sirve si estás re trabado con la educción.

Clasificación de conceptos:
- Obtener a partir de un glosario o texto un conjunto de conceptos que cubren
ampliamente el dominio. Se pasa cada concepto a una ficha y el E debe clasificarlo y
describiendo lo que comparten.
- El E puede introducir nuevos términos, se debe redefinir y combinar conceptos.

Cuestionarios:
- Entrevista estructurada pero indirecta.

Análisis de protocolos

13/04

Técnica de análisis de protocolos:


- Técnica de educción
- Protocolos verbales. Proceso cognitivo de una persona.
- Cuando una persona realiza una tarea, verbaliza o “piensa en voz alta” todo lo que le
pasa por su cabeza, obteniéndose un protocolo verbal grabado.
- En IA se usa para revelar lo que saben los expertos en un determinado dominio donde
se le pide al experto que piense en voz alta mientras efectúa la tarea.
- Se usa para obtener información sobre procedimientos que el experto utiliza en la
resolución de problemas pero no puede verbalizar en forma consciente. Se obtienen
conocimientos acerca del razonamiento del experto.
- Diferencia con observación de tareas ya que no hay un intervalo entre el acto de
pensar del experto y el acto de reportarlo.
- Variación: Análisis retrospectivo (más info en k52-04)
- Es la más útil para identificar el conocimiento procedimental usado por un experto en
una tarea

Etapas

1. Grabación del protocolo:


Vamos a realizar el protocolo con el experto.
a. El ing. en conocimientos explica lo que espera del experto
Le explica cual es el objetivo de la técnica. También se le dice cuál es el
comportamiento que debe tener (si él se queda callado lo interrumpimos porque
queremos que lo gabe). Esto sólo para nuevos expertos, si ya lo hizo no es necesario
repetirlo.
El experto no debe ser analítico e intentar describir su manera de proceder sino debe
tratar como habitualmente, como si estuviera solo.

b. Puesta en situación
Proponer al experto pequeños ejercicios (anagramas, multiplicaciones, divisiones) que
el experto pueda practicar resolviéndolo en voz alta, practicando la técnica que luego
va a realizar.
Objetivo: Darle confianza al experto.

c. Registro del protocolo


Grabación del protocolo.
Es importante saber cuál es el objetivo.
Si el experto tiene un relato espontáneamente regular y sabe comportarse para la
prueba no es necesario que esté el IC.

2. Transcripción:
- Escuchar esa grabación y transcribirla.
- Al transcribirlo se debe fragmentar/segmentar en líneas numeradas.
- No hay mejor segmentación que otra mientras no quede una frase muy larga o una
sola palabra. Se puede separar entre sujeto y predicado.
- Suelen transcribirlo más de un IC. Para tener más de una visión
- Luego de transcribir anotamos todo lo que nosotros vimos al momento de la grabación
(tal vez el experto se queda callado más de 3 segundos, busca en un libro o cosas así
que no se manifiestan en el texto) y lo anotamos. (lo que es color rojo).

3. Codificación:
- Analizar la transcripción.
- Es la etapa más importante (luego de terminar tengo todo el protocolo analizado).
- Debe ser lo más objetiva posible, recomendado que haga el protocolo más de una
persona y después unificar resultados.

a. Identificación de conceptos, características, valores, relaciones y operadores.


Son elementos del protocolo.
Analogía con un diagrama de entidad relación: Una entidad puede ser un concepto, el
concepto puede tener características o sea atributos propios, y esos atributos tienen
valores (uno, un rango, más de uno).
Las relaciones pueden ser entre conceptos, entre conceptos y características o
características y valores.
Los operadores son medios que el experto usa para pasar de un estado del problema
a un estado más próximo a la solución.Me lleva a cada uno de los estados del
protocolo.

Cada característica tiene que tener un concepto y un valor asociado.


Los conceptos considerados como estados o como sinónimos no pueden tener
características.

Ejemplo:
El COVID es un estado que puede ser concepto o valor. Depende que elija cambia la creación
de la tabla que ordeno.

Mareo no es solo una característica sino un concepto ya que tiene características propias

Una vez definidos tengo que ordenarlos, para eso hago la tabla de
conceptos-características-valores. Esta no puede tener huecos (Caract. sueltas, valores
sueltos)

Si considero los estados como concepto:

No puedo tener un valor sin una característica explícita (tipo repentino) lo tenemos que crear
para que conecte el concepto con el valor. y va entre (). El experto lo puede llamar de otra
forma, lo denotamos para saber que fuimos nosotros quien lo pusimos y luego hay que
consultar.
Cada característica tiene que tener un concepto y un valor asociado.
Los conceptos considerados como estados o como sinónimos no pueden tener
características.

Importante: Puede decir “tiene mareo” sin adjetivo o descripción, entonces en la tabla
pongo que el paciente tiene una característica “mareo” y el valor es un “SÍ”

Estados como valores:

Tengo que asociarlos a una característica implícita.

Para terminar tengo que analizar las relaciones implícitas (aquellas que se dan entre
conceptos)

No existen relaciones entre sinónimos. Para el experto son lo mismo.


b. Identificación de la búsqueda
No hacemos árbol de búsqueda sino identificamos:
- Los estados por los cuales el experto pasó en su razonamiento
- cuáles fueron los operadores que usó
- cuáles fueron las condiciones que tuvo en cuenta para llegar.

Se hacen a través de:


- Gráficos

Queda igual que la transcripción en la primera vuelta pero al volver a ejecutar el protocolo
puede surgir otro estado o características nuevas en el estado asique se va actualizando.

c. Identificación de sinónimos, metacomentarios e incertidumbres


Formalizo los sinónimos que encuentro.

Metacomentarios:
Son todos aquellos comentarios que el experto hace que no aporta información directa
a su razonamiento. Pueden haber metacomentario de subetapas (como el de la línea
13 en la imagen).
Los identifico por las líneas en las que están, su texto y su significado.
Si quiero dar sugerencias con el sistema puedo usar el metacomentario (Ej: estar
aislado).

Incertidumbres:
Aquellas nociones donde el experto le asigna una duda respecto al cambio de estado
(no sabe si se da en el 100% de los casos o en una menor proporción)
No todas las incertidumbres en la transcripción se identifican, sólo se identifican
aquellas relacionadas a un cambio de estado.

4. Interpretación:
Vemos cuál es el razonamiento del experto.
Identifico las reglas de razonamiento del experto a partir de un pseudo código:

Si se dan estas condiciones entonces hay una acción en particular que tiene que ver con la
generación de un estado.

Condiciones: Siempre son concepto.caracteristica = valor


En el ejemplo, tenemos 2 estados a los que llegó el experto, entonces tenemos 2 reglas de
razonamiento del experto, las condiciones las conseguimos en la identificación de la
búsqueda:

Las reglas siempre se consideran de forma atómica, una regla no se relaciona con otra regla.
(La gripe clase A no tiene los otros síntomas del paciente).

Se relacionan más adelante cuando tenga mucho conocimiento.

El razonamiento del experto incluye más de un protocolo.

Valor del protocolo:


- Obtener conocimiento, tipos:
- Privado: El del experto

- Declarativo: El conocimiento del qué, me dice los objetos que tiene, sus características,
relaciones y valores, me dice los sinónimos, metacomentarios e incertidumbres.

- Procedimental: Es el cómo del conocimiento, surge de la etapa identificación de la


búsqueda (incluidos los operadores) y la etapa de interpretación.

- Va más allá de lo que el experto puede explícitamente contar en una situación de solución
de un problema (permite inferencias sobre sus conocimientos).
- útil para atraer información sobre procedimiento que el experto usa pero no puede explicar.
- Cierta información salida de esta técnica es directamente utilizable en la actualización del
documento donde se registran los conocimientos educidos.
- La info que primero era lenguaje natural puede representarse en forma de algoritmo o
metarreglas.
- Es complementaria con otras.
Desventajas del protocolo:
1. Costo de utilización:
Exige gran cantidad de trabajo del IC. La transcripción requiere 10 veces más de
tiempo que la grabación, lo mismo para codificación e interpretación con otro x10.
Los protocolos siguientes son más rápidos de interpretar según el grado de similitud
del problema con los precedentes ya tratados.

2. Incompletitud del método:


Ciertos procesos no son reportados por el experto (percepción sensorial, movimientos,
reconocimiento de objetos de forma visual, buscar en la memoria, etc).
El IC puede localizar su utilización en el momento de la resolución del problema y
puede aplicar nuevas herramientas para intentar formalizarlos.

3. No es apto para todo tipo de tareas:


Es bueno para aquellas donde la verbalización es una parte natural del pensamiento
pero no lo es para aquellas que por ejemplo usan en el proceso un lenguaje especial
para las partes de la pieza que están describiendo o la sección que actualmente están
instanciando y por consiguiente el verbalizar puede ser distorsionante o erróneo. O
para aquellas donde no existe directamente como las tareas perceptivo motoras.

Otros datos:
- Si llegaste a un estado final, el resto de texto (posibles nuevas características del concepto)
no son relevantes, serían metacomentarios.
- “es de x forma, lo que indica que es bueno” → metacomentario porque es consecuencia de
una característica y no característica en sí.

20/04
Algoritmos genéticos:
- Sistemas expertos sin base de conocimientos explícita.

- Algoritmos matemáticos de optimización de propósito general (aplican a cualquier tipo de


problemas) basados en mecanismos naturales de selección y genética, proporcionando
excelentes soluciones (no necesariamente las mejores) en problemas complejos con
gran número de parámetros (cuando podemos manejar el número de parámetros existen
muchos métodos matemáticos que garantizan las mejores soluciones, cuando estos no
sirven usamos AG).
- Relacionado a algoritmos computacionales

- No es complejo en su arquitectura

- Va saltando de un lugar a otro (gracias a sus operadores) para tener distintos valores, y
después de muchas corridas encontrar el mejor valor. (no necesariamente el mejor del
universo, éste puede ser infinito).

- No busca exhaustivamente todo el dominio.

- Si mantenemos un poco de heterogeneidad salvamos la problemática de convergencia


prematura.

- Se comporta de forma logarítmica.

Surge de:
Teoría de la evolución de Darwin:
- Selección natural
- Ecosistema: Ambiente dónde queremos sobrevivir, debemos adaptarnos.
- Población: Conjunto de individuos.
- Individuo: Con sus características y capacidad de adaptación.
- Herencia: Que damos a nuestra descendencia (rasgos físicos o psicológicos, genes
dentro de cromosomas y describen todas las características unívocas del individuo en
una cadena, viajan por el ADN).
- Genotipo: Composición genética
- Fenotipo: Manifestación física de un rasgo distintivo. (El valor que tiene en un
individuo), la instanciación en distintas opciones que puede tener.
-
Postulados:
- Las formas de vida no son estáticas sino que evolucionan
- El cambio es gradual, lento y contínuo.
- Los individuos parecidos se emparentan y descienden de un antepasado común.
- Selección natural explica todo el sistema.

Selección natural:
- Producción de variabilidad: Generación de modificaciones espontáneas en los
individuos. 2 individuos que se reproducen generan descendencia y en la siguiente no
va a ser igual, ejemplo hijos distintos entre sí.

- Supervivencia del más fuerte/apto: Los que están en mejores condiciones sobreviven.
Esto vamos a usar en la materia.

Estructura del algoritmo:

Vuelta - Ciclo: Cada vez que ciclo, que paso por el no en el criterio de paro. Una generación
es un ciclo.
Corrida: Si el criterio de paro se cumple (sí) y salgo. Tiene uno o más ciclos. Se hacen varias
corridas del algoritmo.
Cosas que debemos identificar en el algoritmo:

1. Genotipo - cromosoma:
- Identificar el cromosoma (cadena de bits)
- Identificar qué porción de la cadena identifica al gen. No todos los genes tienen la
misma longitud (Asociados a la cantidad de valores que puede tomar esa
característica).
- A cada gen le atribuímos una característica

2. Fenotipo - función de aptitud:


Me permite instanciar y me dice cuán apto es un individuo para un problema
Es una función que se aplica al cromosoma y da un número real. (debe estar definida
la estructura del cromosoma primero ya que se relaciona mucho con eso.)
Generalmente son funciones complejas (de definir).
Ejemplo:
Pasos:
1. Definir el cromosoma
a. Conceptos y relaciones

b. Variables y valores asociados

Cromosoma compuesto:
La solución es la combinación de distintos dueños y debemos ver dónde está la casa, el color,
el tipo de bebida, cigarrillos y tipo de mascotas.
Tenemos un gen principal y dentro de éste genes auxiliares, es decir, las distintas
combinatorias de las demás características.
La cantidad de bits para cada característica dependen de la cantidad de valores que tengo.

Creamos una definición y validamos si es viable viendo si se cumplen las pistas.


2. Definición de la función Aptitud
a. Analizar pistas

i. Determinar las condiciones que debe cumplir la solución → aumentan el valor de


la aptitud
ii. Determinar restricciones que no pueden cumplir la solución → Disminuyen el valor
de la aptitud.

b. Analizar estructura del cromosoma definido


i. Determinar combinaciones inválidas en los genes → penalizan el valor de aptitud.
Ej: que en ubicación de la casa tenga 111 o 110 (nro que no existe)
ii. Determinar la operatoria para:
- Interpretar la estructura del cromosoma (saber el 1101.. qué significa)
- Calcular el valor de aptitud (poder aplicar la función).

Operadores de un algoritmo genético:


Como mínimo:
1. Selección
2. Cruzamiento
3. Mutación

Adicionales:
1. Generar población inicial
2. Paro

A. Generar población inicial:


Distintos métodos:
- Al azar:
Definir un random y tirar diversos números.
Si cae un número inválido la función de aptitud lo penaliza.

- Ad-Hoc:
Generar una cantidad de individuos válidos

Población:
- Cantidad de individuos
- Varianza
- Constante (con esta trabajamos).
- Variable.

B. Selección:
Del conjunto de individuos arma un subconjunto para poder permitirle a ese subconjunto
entrar a la próxima etapa (selección natural).
Toma de la población inicial o de la población del ciclo/vuelta en la que se encuentre

Métodos:
- Torneo
- Ranking
- Ruleta
- Control sobre número esperando

Torneo:
Justas medievales
Juntamos de a pares y hacerlos pelear con la función fitness.
Se pueden tomar parejas random o por un patrón.
En el ejemplo a mayor función de aptitud el individuo es más apto,se puede repetir el
individuo.
Toman la cantidad de individuos que consideren.
La nueva población es la que pasa al operador de cruzamiento.
No podría elegir el “peor” individuo porque siempre competiría con otro mejor.

Desventajas:
- Se pierden algunos individuos buenos y aparecen algunos malos (Si hago pelear al mejor
el mejor queda, pero si hago pelear al mejor y al segundo mejor y si el segundo no
participa en otra pelea lo pierdo de mi nuevo subconjunto)
Ranking:
Tomo la población inicial con los valores de la función que teníamos.
La ordeno y a partir de ella deciso cómo evaluar (tomo 2 veces el primero, una vez el
segundo, etc).

Ventaja:
- Garantizo quedarme con los mejores.

Desventaja:
- Convergencia prematura: No hago participar nunca a los malos y a veces eso me
sectoriza mucho la búsqueda y me puedo quedar en un máximo local, pierdo
soluciones.

Ruleta:
Más completo que los otros.
Se suma el valor de la función de aptitud y calculamos cuál es la proporción/porcentaje de
pertenencia de cada individuo.
Calculamos la probabilidad acumulada, para el primer caso es el mismo que su probabilidad
individual para el resto es el anterior + el porcentaje del siguiente individuo.
Se tira un par de randoms y ese es el subconjunto.

Ventajas:
- No le quito la probabilidad de ocurrencia a los malos, no desaparecen, solo le doy
mayor a los buenos. Da más heterogeneidad.

Desventaja:
- Depende del random pueden salir todos números malos. No garantiza que salgan
buenos.

Control sobre número esperado:


Se hace pre selección de los mejores en base a la función:
- Se calcula la f(x), se suma el total y se calcula el promedio
- Se calcula la relación entre la función que tienen y el promedio, eso me dice en cuanto
supera o no el promedio
- El número entero de esa relación es la cantidad de veces que seleccionó ese individuo

Con el resto hago ruleta:


- Tomo la mantisa de todas las relaciones y es mi f’(x).
- A esa mantisa le hago ruleta:
- Sumo todos los valores de f’
- Calculo el porcentaje del total a cada uno
- Calculo la probabilidad acumulada.

Armo una nueva ruleta/paño:


Y tiro los randoms de los números que me faltan. (Tantos como vos definas que quieras dejar
para tu operador)
Ventajas:
- Garantiza que salen los números buenos y después tira probabilidades.

Desventajas:
- Complejo de implementar

C. Cruzamiento:
Realizar alguna actividad de pares y generar descendencia, se eliminan los padres.
Siempre se generan 2 hijos.
Deberíamos conocer la estructura del cromosoma para implementarla.
Pueden ser hijos distintos o iguales (esto por VOF no porque sea útil).

Métodos:
- Simple
- Multipunto
- Binomial
- Máscara
- Complemento
- Doble
- Azar

Simple:
Se toma un único punto de corte donde se frena el cromosoma (cantidad de bits, posición), se
intercambian los segmentos del cromosoma separados por este punto.
De un padre se toma desde su inicio hasta el punto de corte y el resto va con la información
del otro padre. Y con otro hijo va lo que resta del primer padre y el inicio hasta el corte del
segundo.
La característica que va para un hijo no va para el otro hijo.

Para no tener valores erróneos: Los puntos de corte deben ser donde sean cambios de
atributo, no cortar un gen al medio.

Multipunto:
Tenemos más de un punto de corte.
La característica que va para un hijo no va para el otro hijo.
Los puntos no necesitan tener la misma distancia.
Cruza binomial - máscara complemento:
Se define una máscara. Ej: la primera posición es del padre x, la segunda del y, etc.
Como es complemento, las otras posiciones que no fueron ocupadas por los papas van para
el otro hijo.
No se pueden repetir características entre papas.

Es igual a una cruza multipunto, los lugares que cambio en la máscara son como si fueran
puntos de corte. Podría dar los mismos resultados que el multipunto.

Cruza binomial - máscara doble:


Se pueden repetir características.
Tenemos dos máscaras distintas, independientes entre sí.
Cruza binomial - Azar:
Definimos un valor random donde dice que papá toma.
Tiramos la cantidad de randoms necesarios para cada posición del hijo y evaluamos respecto
al primer número que definimos que papá se toma.

Eso es para definir el primer hijo, para el segundo, el otro, hay 2 posibilidades:

- Tomamos el complemento (lo que no entró para el primero entra para este)
- Tirar al azar 10 posibilidades de vuelta.

Se pueden repetir o no características (si tiras devuelta al azar se pueden repetir y si usas
complemento no).

D. Mutación:

Conceptualmente: Alterar el cromosoma a partir de agentes exógenos (no tiene que ver con
el problema o el individuo que se está tratando).
Permite mantener la diversidad en la población disminuyendo el riesgo de convergencia
prematura.

En el algoritmo: Cuando cambia 1 posición del cromosoma del gen de un individuo, a veces,
no siempre.
Siempre que se pase por un ciclo, el operador mutación se activa pero no necesariamente se
ejecuta.

A partir de la población cruzada se pregunta si se ejecuta, si no se ejecuta la población


mutada es igual a la población cruzada. Si se ejecuta, se aplica una función de mutar que
altera un gen de un individuo, quedando una población nueva.
Implementación de validación de ejecución de mutación:
Ver si se ejecuta o no definiendo una probabilidad de mutación, se tira un random por cada
ciclo, si el random es mayor que la probabilidad de mutación no se ejecuta, si es menor sí.

Si se muta:
- Genero otro random de posición (cuál de toda la cadena de población voy a alterar)
Si se pasa de la cantidad de bits, se vuelve a comenzar desde el principio, es cíclico
- A esa posición le aplico el complemento, si es 0 va 1, si es 1 va 0.

- Cuando elevas mucho la probabilidad de mutación se recorre casi todo el gráfico, con
menos probabilidad de mutación se va a los puntos máximos y mínimos
- Siempre se cambia 1 solo bit.

Métodos:
- Simple
- Adaptativa por convergencia
- Adaptativa por temperatura
- ascendente
- descendente

Definir la probabilidad de mutación:


Según el método

- Simple: Probabilidad m = constante.


En todos los ciclos la probabilidad es constante.

- Adaptativa por convergencia


Probabilidad m = G { Promedio [f(Ix)]}
La probabilidad es una función relacionado al promedio de la función adaptativa

- Adaptativa por temperatura


Probabilidad m = G(Cantidad Vueltas)
Ascendente: Probabilidad baja y empieza a aumentar.
Descendente: Probabilidad alta y empieza a bajar.

D. Paro:

Criterios:
1. Cantidad de vueltas = ciclos
2. Tiempo transcurrido: Lo dejo corriendo x tiempo y luego paro
3. f(Ix) > Valor = Se ejecuta hasta que la función fitness de un individuo sea mayor que
un determinado valor.
4. Promedio f(Ix) ≃ valor: La función fitness de una población da un valor aproximado
5. Etc

A veces puede quedarse iterando eternamente (con las relacionadas a la función), muchas
veces se combina o se corta directamente manual.

Si no se cumple el criterio de paro:


- Población ingresa = Población mutada

Si se cumple:
- Población final = población mutada

Población final:
En teoría: Se corre la función fitness y se selecciona al mejor individuo del conjunto.
En práctica: Tener los logs de distintas corridas, y de todos ellos buscamos el mejor individuo.

Lo interesante es buscar en los logs el mejor y no la población final per se.

27/04

Redes neuronales artificiales:


Son sistemas expertos sin base de conocimiento

Una red que interconecta neuronas artificiales, solo vemos las que todas tienen el mismo tipo
funciones para calcular la entrada neta, la función de activación y de salida.

Evolución de un sistema de cómputos basado en un modelo biológico. Formado por


combinación de elementos simples de proceso interconectados que operan en forma paralela
para cumplir un objetivo.

Se relaciona con:
- Inteligencia computacional (inspiración biológica)
- Machine learning (aprenden de forma automática).

Se resuelven problemas que cuestan con un enfoque algorítmico tradicional y permite


manejar la imprecisión e incertidumbre (la maneja el sistema automáticamente).

Una red neuronal es muy rápida una vez entrenada, pero entrenarla demora tiempo.

Se modifican los pesos de las conexiones para ajustarse al problema.

Suelen estar encapsuladas en otro software que sirve de interfaz para el usuario (se suelen
usar en librerías, web services, etc).

Ventajas:
- Aprende, recolectando información de los ejemplos que le damos, buscando patrón.
Es un aprendizaje adaptativo porque puede aprender casi cualquier problema.
(Siempre aprende el problema)

- Autoorganización: Cambia la forma en que se interconectan las neuronas entre sí.

- Tolerancia a fallos: Da resultados aceptables aunque no la hayamos entrenado con


ciertos datos o situaciones, aunque tiene un límite. Tiene la capacidad de generalizar,
aplicar sus conocimientos en otros datos.

- Operación en tiempo real: Tarda poco tiempo en ejecutar. Ej: agregar subtítulos,
traducir.

- Fácil inserción en tecnología existente. No se ata a ningún lenguaje ni hardware.


Sinapsis:
- Neutra: no afecta la neurona que recibe
- Inhibidora: produce que la neurona se descargue
- Excitadora: la que lo recibe aumenta su estado, se carga.

Umbral de activación: Hace algo, emite algo que se multiplexa y llega a otras neuronas.

Neurona artificial:
- Cuerpo
- Dendritas o conexiones de entrada (valores de entrada)
- Axón, que sale al exterior.

Valores de entrada:
números de rangos delimitados o de menos a más infinito.

Pesos de las conexiones:


- Afectan a los valores de entrada
- Son numéricos
- Representan el tipo de sinapsis que tiene cada conexión de la neurona

Entrada neta:
Sumatoria de la multiplicación de los pesos por los valores de entrada.

Regla de activación o función:


Función matemática que utiliza la entrada neta y umbral de activación para determinar si la
neurona se activa o no.
Afecta el resultado de la entrada neta
Es un valor numérico fijo o que se va a ir modificando.

Función de salida o transferencia:


Determina el valor de salida que es numérico a partir de la regla de activación.
Sólo tiene una salida pero se puede multiplexar en muchas conexiones.

Componentes:
Unidad de proceso
Neuronas artificiales, por niveles o capas:
- Entrada: La que recibe información del exterior
- Ocultas o de procesamiento: Capas entre entrada y salida.
Puedo tener varias capas, una capa o ninguna. Pueden ser opcionales u obligatorias
depende el modelo.
La cantidad depende de la complejidad de datos y del problema a resolver.
- Salida: envía información al exterior.

En toda topología debe haber una neurona de entrada y de salida.

Conexión:
Los pesos son excitadores si son mayores de cero, neutros si son iguales e inhibidoras si son
menores a ceros.

Durante el aprendizaje o entrenamiento se modifican los pesos para que la red aprenda. No
se modifican el tipo de función de activación o salida o la ubicación de la neurona, sino la
forma que se conecta esa neurona con otra.
Características que determinan una red:

1. Tipo de información de entrada y salida


- Pueden manejar valores binarios, discretos de 0 y 1. (Uso función escalón o sinusoidal
por ejemplo)
- Pueden manejar cualquier valor continuo, reales entre algún rango de - infinito a +
infinito, -1 1 o 0 y 1. (Uso tangente hiperbólica por ejemplo).

Afecta cómo yo proceso la re información, modifica el tipo de función de activación o salida


que vamos a usar.

En la práctica se suele usar una única función que combina activación y salida. En vez de
aplicar una detrás de la otra, para que sea más fácil de analizar.
No conviene perder tiempo analizando el tipo de función ya que depende del modelo hay
algunas por defecto que se pueden usar.

Tipo de asociación de información de e/s:


- Heteroasociativa
Necesito aplicar un aprendizaje supervisado.
Doy patrones de entrada y una salida deseada y espero que la red aprenda a asociar
la entrada con la salida.
- Autoasociativa
Aprendizaje no supervisado porque solo doy la entrada y la red identifica sola la salida
correcta.

2. Topología de la red
Muchas veces está restringida por el modelo. Lo que cambia:
- Cantidad de capas
- Multicapa (3 capas tiene 1 sola oculta, con 2 capas no hay oculta). Se usan en
reconocimiento o clasificación de patrones.
- Monocapa: Solo dos neuronas o más. Se usan para autoasociación, por
ejemplo regenerar informaciones de entrada que se presentan a la red
incompletas o distorsionadas
- Cantidad de neuronas por cada capa.
- La cantidad de neuronas de entrada depende de la cantidad de datos de entrada
que necesito.
- La cantidad de neuronas de salida son la cantidad de posibles valores de salida
que necesito
- La cantidad de neuronas ocultas depende de la complejidad.

- Tipo y grado de conectividad


- Total: cada neurona del nivel anterior se conecta con todas las del nivel posterior. Se
hace cuando el hardware es suficiente.
- Parcial: Se hace por si hay muchas neuronas, la cantidad de memoria ram excede a
la disponible en la computadora. La red es más limitada pero funciona igual.

- Formas de conexión
- Hacia adelante: De la capa de entrada a la de salida
- Hacías atrás:
- Entre neuronas de misma capa (como en monocapa)
- recursivas la salida de una neurona es entrada de ella misma
- Una neurona de una capa le manda su salida como entrada a una neurona
de la capa anterior. Se hace un ciclo que se cumple según un criterio dado.

3. Estrategia de entrenamiento
- Supervisado
Se le brinda información adicional desde un supervisor para que pueda aprender.
Se usa para redes heteroasociativos (quiero una salida determinada).
Ej: clasificar datos o predecir.

- No supervisado
Se usan redes autoasociativas
Ej: Clustering, clasificación automática, segmentación, completar patrones
incompletos.
- Off-line:
Fase de entrenamiento previo a estar en producción.

- On-line
Aprende antes de estar en producción, y una vez que está puede seguir aprendiendo.

Competitivo: Cooperan entre sí las neuronas. Se usa para clustering de datos. Las neuronas
compiten para activarse, queda una o una por grupo como ganadora anulando las otras,
forzadas al valor de respuesta mínimo. El aprendizaje afecta solo a las neuronas ganadoras,
reparte el peso total entre sus conexiones, les saca a las perdedoras.

Estocástico: No se usa mucho, es preferible usar una función.

Hebbiano: Gusto, olfato y oído. Se ajustan los pesos de acuerdo con la correlación de los
valores de activación de las dos neuronas conectadas, si ambas son activas (positivas), se
produce un refuerzo de la conexión

Por corrección de error: Encontrar unos pesos para las conexiones de la red que minimicen
esta función de error. Otra forma es de backpropagation. También se usan redes monocapa
con conexiones laterales y autor recurrentes.

Aprendizaje por refuerzo: Más lento que por corrección de error. No indicar exactamente la
salida que se desea, no disponer de un ejemplo completo del comportamiento para una
entrada.
El supervisor solo indica por señal de refuerzo si la salida se ajusta a la deseada (éxito o
fracaso). Es más un crítico que maestro.
Modelos:
Tipos de redes neuronales
Perceptrón:
- Red heteroasociativa
- Usa aprendizaje supervisado off line
- Usa la estrategia por corrección de errores
- Es monocapa, tiene una sola neurona que aprende.
- Es simple, en hardware porque es vieja
- Tiene desventajas que mejoraron las otras formas
- Quedó limitado en el primer invierno de la IA.

Aprendizaje por corrección de error:


Aprendizaje por repetición.
Se le manda una secuencia de datos y una salida deseada que la red va a comparar para
reducir el error.
(Relacionado con la materia de control del año pasado).

Patrones de entrenamiento:
- Datos de entrada
- Salida deseada

Combinación de pesos con relaciones:


Se puede usar una función lineal representada por la función de salida.

El proceso va a ciclar tantas veces hasta que los errores sean cero o consideremos aceptable
por cada valor.

Si yo modifiqué los pesos debo evaluar los patrones anteriores por si el sistema se olvidó del
resultado correcto.

Sólo puede resolver problemas de orden 1 porque usa un separador lineal como célula de
decisión.
Alpha - coeficiente de entrenamiento:
Sirve para que no se olvide la red fácilmente de los patrones anteriores aprendidos
Cada vez que se aprende un nuevo patrón perceptrón modifica muy poco los pesos de las
conexiones.
Tarda más en aprender algo nuevo pero no me olvido tán fácilmente lo viejo.
Debe ser pequeño, entre 0,1 y 0,3.

Aclaraciones:
- El umbral se puede cambiar y no ser constante, se usa la misma fórmula para que la
red aprenda más rápido
- Trabaja con valores binarios o entre 0 y 1.
- Los valores iniciales de los pesos es recomendable usar entre 0 y 0,5
- Funciones que no pueden ser representadas por una función lineal no pueden ser
aprendidas por perceptrón. (Ubicas una recta que te separa los resultados de cero y
de uno.
- Resuelve problemas cuyas salidas están clasificadas en dos categorías diferentes y
que permitan separarse en dos en el plano.

Multi-perceptrón con regla delta generalizada:


- O de aprendizaje por retropropagación del error.
- “Back propagation”
- Relacionadas a las redes anteriores porque tienen muchas neuronas de tipo
perceptrón.
- Resuelven funciones lineales y no lineales (aproximar)
- Es una red heteroasociativa
- Aprenden usando gradiente decreciente: Pertenece al mismo tipo de correción de
error
- Aprendizaje supervisado offline
- Multicapa (varias capas ocultas o ninguna y solo entrada y salida).
- Corrige el error de una forma distinta al anterior.
- Se puede aplicar para redes de más de dos capas de neuronas.
- Se debe ciclar procesando varias veces cada patrón durante el entrenamiento

Aplicaciones:
- Clasificar datos: De acuerdo a ejemplos que di
- Estimación o predicción de resultados

Corrección de errores:
Cada vez que necesita ajustar los pesos de las conexiones se aplica el gradiente del error
para propagar el error hacia atrás.

Para un peso determinado W y quiero calcular su valor para obtener el valor mínimo.

Para un W inicial tenemos un valor de error y en el entrenamiento no sabemos si lo que


tenemos que aumentar o disminuir porque no sabemos en qué dirección está el óptimo.

Gradiente negativo: Para saber en qué dirección o de qué manera ajustar el W para obtener
el óptimo. Se realiza por cada peso de la red (cada W), se encuentra un error aceptable por la
combinación de Wn.

También existe el alpha, controla la velocidad de convergencia (entrenamiento), entre 0,05 y


0,25 para asegurar convergencia y evitar oscilaciones
- Necesita una función derivable para la función de activación ( calcular el gradiente)
- La función de salida si necesitas un valor discreto se usa para asignar 0 o 1.
- El umbral de clasificación se usa si quiero un valor discreto.

Cada neurona de una capa recibe entrada de todas las neuronas de la capa anterior y genera
salidas para todas las del siguiente. No hay conexiones hacía atrás ni laterales o autorrentes.

Aclaraciones:
- Se suele usar función sigmoidal más que nada en valores de entrada y salida binarios.
- Si se usan valores reales se usan función gausiana o tangente hiperbólica.

- Puede aprender cualquier función lineal o no-lineal mientras que le des una cantidad y
representativa de valores.

- A pesar de tener ejemplos válidos y representativos puede ser que la red no aprenda,
“queda en un mínimo local” valores que no pueden ajustar, para esto conviene:

- Normalizar los datos de entrada-salida


- Calcular promedio y varianza general si son valores parecidos y por cada tipo si
no lo son.
- Si entreno con datos normalizados en producción también deben serlo.

- Modificar los parámetros de aprendizaje (el alpha, cantidad de ciclos aceptable)

- Utilizar otros pesos iniciales


- Modificar el orden en que se ingresan los patrones.
- Añadir neuronas ocultas y/o capas. (Hay que probar cantidades de neuronas ocultas
para ver si conviene o falta, si es por SW mantener el mínimo por capa porque tiene
costo de procesamiento).

En cuanto a neuronas:
- Salida y entrada definidas por el problema
- Las ocultas no tienen regla general, con una capa oculta está bien pero si esa
cantidad la separás en dos capas funciona más rápido.

Validación en producción:
Usar datos similares en producción y comparar la salida con el resultado esperado.
Acá no cambian los pesos de las conexiones
Sí o sí hay que usar datos similares sino de cualquier cosa, y sí o sí tenemos que usar
métricas para evaluar si funciona bien.

Matriz de confusión:
Muestra la cantidad de casos donde se generan casos verdaderos y casos que no.

A más valores de salida (devolver entre 0 y 9) la matriz es compleja y difícil de evaluar sola,
se usan métricas:
- Fórmula de exactitud: Cantidad de verdaderos pos y neg / cantidad total. La proporción
de modificaciones correctamente hechas.

- Precisión: Permite ver la proporción de clases identificadas como positivas que son
correctas. Calcular la cantidad de verdaderos positivos del total

- Recuperación o exhaustividad o recall: Indica la proporción de clases positivas reales


identificadas correctamente.
Hopfield:
- Es autoasociativa
- Aprendizaje no supervisado y offline
- Aprendizaje de tipo Hebbiano
- La red es monocapa: las neuronas son de entrada y salida y no hay ocultas y se
comunican lateralmente pero no son recursivas.
- Necesita ciclar más de una vez para estabilizarse durante su funcionamiento
(operativo y no entrenamiento)
- En el entrenamiento cicla una sola vez.
- La cantidad de neuronas depende del problema

Postulado biológico:
Neuronas A y B cercanas, el valor de excitación entre la neurona A y B es cada vez mayor,
cada vez tiende más a activarse.
Asociado a el recuerdo sensorial

Entrenamiento de la red:

Matriz:
- La diagonal se tacha porque no son recursivos. (igual a 0)
- Son los pesos correspondientes a patrones
- Cada patrón es independiente del otro
- La sumatoria de todos los patrones da el peso de la red (matriz de pesos de la red)
-

Para identificar un patrón:


Multiplicar la matriz de pesos (del entrenamiento) por el patrón
Me dio pero tengo que ver si se estabilizó

Hay ejemplos donde nunca se estabiliza en un valor porque no se encuentra

Desventaja:
- Todos los patrones que nosotros le vamos a enseñar tienen que ser ortogonales, diferir
por lo menos en más de la mitad de los componentes sino la red no se va a estabilizar.
N/2 componentes. No son elementos, en este caso es 4.
- Hay que considerar un valor de neuronas para evitar el error. Sino puede converger a
valores de salida diferentes a los aprendidos.

Aplicaciones:
- Sirve para completar datos faltantes o clasificar (devuelve el patrón entrenado más
similar al ingresado durante el entrenamiento)
- Identificación de caracteres.
- Reconocimiento de imágenes.
Resumen de tipos de RNA

04/05

Lógica:
Para sistemas con base de conocimientos explícita, el formalismo de la representación de la
información es la lógica, así se escribe para representar la información del experto que
obtenemos.
Las deducciones que se realizan en el motor de inferencias usan lógica también.

Lógica proposicional:
Es limitada para la utilización de sistemas expertos.
- Proposiciones
Representan hechos y conocimientos, tienen valor de verdad (V o F). p, q, r, s
- Operadores lógicos: Relacionan proposiciones. ^ →

Lógica de primer orden:


Se usa para sistemas expertos, es más compleja, tiene más elementos.
- Operadores lógicos: Relaciona hechos y conceptos.

- Variables: x,y,z. Objetos indeterminados dentro de un dominio. Ej: x es una persona


- Constantes: a,b,c,d. Objetos determinados dentro de un dominio. Ej: d es diego y
representa a una persona del conjunto de personas.

- Funciones de verdad o predicados: Establecen una cualidad respecto a un objeto. Van


siempre con letras mayúsculas.

- Cuantificadores: Definen el dominio de las propiedades de los objetos. ∀∃

Ejemplos:
Tips:
- Cuando existe un existe no hay implicación.

- Cuando tengo un para todo ∀


Existe implicación

Deducción Natural:
Necesitamos
1. Hipótesis
2. Tesis

Para trabajar usamos un método:


1. Utiliza reglas de inferencia para razonar
2. Son fórmulas escritas en columnas
3. Las fórmulas están numeradas, una de las columnas es la numeración
4. La fórmula puede ser una hipótesis o una conclusión de aplicar reglas anteriores.
5. En cada paso hay que justificar la regla aplicada

Reglas:
Introducir o eliminar operadores lógicos. Y además eliminar o agregar el para todo y él existe.

1. Introducción de la implicación:
Solo se puede aplicar una vez en todo el método de deducción natural.

2. Eliminación de la implicación (EI) o modus ponens (MP):

3. Introducción de la conjunción:
4. Eliminación de la conjunción:
El y es verdadero cuando ambas partes son verdaderas, entonces por separado
ambas también lo son.

5. Introducción de la disyunción
Agrego la fórmula que me sirve.
Si una fórmula es verdadera todo es verdadero.

6. Eliminación de la disyunción
Podes tomar dos caminos y ver si llegás a lo mismo, son cálculos adicionales
No se pueden usar en el resto del método.

7. Introducción de la negación:

8. Eliminación de la negación
Se busca eliminar para todo y existe para llegar a lógica proposicional y luego reducido
volverlo a pasar a primer orden.

9. Introducción para el todo:


Funciona si mi a es genérica, si no está en ningún otro supuesto previo que la
restrinja.
P se puede aplicar a cualquier otra constante que esté en las mismas circunstancias
de a.

10. Eliminación del para todo:


Si asumimos que para todos cumple algo, entonces en uno puntual también lo cumple.

11. Introducción del existe


Si para un a existe entonces existe uno en el conjunto.
Puede ser una variable genérica o restringida.

12. Eliminación del existe

Tipos de ejercicios:
1. Implicación:
Se arranca suponiendo el antecedente de la tesis. Y la justificación es que lo estoy
suponiendo. Sólo se supone al inicio.
2. Sin implicación

Tipo 1:

Tipo 2:

Aclaraciones
- Hipótesis con existe tiene que tener tésis con existe, y no para todo, porque está
restringido.
- Si en la tesis yo tengo una implicación, la tengo que introducir en algún momento de
mi método. Si vos empezas de A y llegas a B entonces podés asumir A → B (A implica
B).
- Se tienen que usar todas las hipótesis, si no se usan todas tenemos algún problema
de resolución

Tips de parciales:
- Chequear que en la tesis no haya una letra que nunca apareció en las hipótesis en un
y (si está en un o, la podés inventar con una regla).
- Chequear los existe y para todo.
- Si te pide un hipótesis teniendo otras y la tesis fijate si te falta una letra de la tesis (si
tiene una y, si tiene una o no pasa nada se puede inventar).

Emparrillado:
- Técnica que me permite obtener información de un experto
- Técnica de educción dentro de las herramientas de adquisición de conocimiento.
- Modelo de pensamiento humano, cómo lo ve el humano.
- Trabaja sobre un área de interés.
- El método es objetivo (tiene pasos, números siempre igual) pero los valores de
entrada son subjetivos (los valores que asigna el experto).
- Se busca obtener una imagen.
- Es una técnica potente porque simula el pensamiento humano.
- Identifica prioridades y factores importantes que el observador tiene.
- Es intrusiva, hay que tener cuidado al mostrárselo al experto.

Cada persona ve al mundo de una forma.

Definición:
Test de clasificación en el cual se vincula una lista de elementos homogéneos y
representativos sobre la base de un conjunto bipolar de características. Esta bipolaridad
estará dada por un conjunto de valores, y a partir de aplicar esta técnica sobre todos estos
componentes lograremos extraer la similitud de un conjunto de elementos y la diferencia de
éste conjunto con otros.

Esos datos del experto no se pueden volcar directamente a la base (como en análisis de
protocolos).

Etapas:
1. Diálogo inicial:
Se identifica el dominio y primera aproximación de dominios y permite reflexión
2. Sesión de valoración:
Obtener los valores anteriores y hacer la parrilla.
3. Análisis de los resultados.
Validación o análisis a partir de los árboles generados.

El emparrillado
- Describe elementos del dominio
- Los ubica en su imaginario (experto se puede sentir un poco incómodo, invadido)
- Tiene en cuenta aspectos importantes (A veces se la ve como incompleta porque sólo
se habla de lo que el experto considera más importante).

Ventajas:
- Reflexión del tema: Del experto a partir del diálogo con el ingeniero en conocimiento y
feedback en análisis de resultados.
- Representación gráfica: Permite simplificar el marco de la realidad.
- Asociaciones entre elementos y características
- Refina problema y mejora el conocimiento

Desventajas:
- Valores subjetivos: Los valores que se obtienen en la matriz dependen del experto que
se esté estudiando
- Captura conocimiento superficial: Elementos y características más representativas.
- Complejo en gran cantidad de elementos y/o características: Árboles complejos.
- Sólo no es útil para la base de conocimiento

Etapas:

1. 1 Identificación de los elementos

Elementos representativos y homogéneos. Separables y no solapados (no podes tener el


elemento 1 y 2 a la vez, deben ser ortogonales).

2. 2 Identificación de las características

Cualidad atribuída a un elemento o concepto de pensamiento.


Deben ser valores bipolares.

Debo reconocer esos dos valores. Ej: color como característica no porque tiene infinitos
valores pero decir obscuro o claro sí.

3. 3 Diseño de la parrilla

Identifica la relación entre los elementos y las características, cuándo posee o no una
determinada característica.

Debe ser una matriz bidimensional de tipo:

- Dicotómica:
Valores binarios, 0 o 1, elemento tiene o no esa característica.

- Clasificatoria:
Escala de 1 a n con n número de elementos. [1,n]. No necesariamente son igual
cantidad de elementos y características.
El valor M indica qué posición ocupa el elemento dentro del rango total (orden, cómo
si fuera un ranking, no empate) a como poseen esa característica los elementos, cuál
tiene más y cuál menos.

- Evaluativa:
Con escala de uno a n, y n no necesariamente tiene relación con la cantidad de
elementos sino una escala que indica el experto.
Acá sí se pueden repetir valores para cada elemento.
Cada relación (elemento, característica) va a tener un valor y va a dar el grado de
satisfacción con que el elemento cubre una característica.

Escala [1,4]

Es evaluativa (no podría ser clasificatoria porque para C1 se repite el grado 2 en E1 y E4).

4. 4 Formalización

Tiene dos subetapas:

a. 4.1 Clasificación de elementos


Se construye otra matriz de “distancia entre elementos”.
Tomamos la mínima distancia.

Distancia entre elementos: Es la sumatoria de las diferencias absolutas entre dos elementos
Ei y Eii en cada característica.

La diagonal queda vacía porque no es reflexivo y lo de abajo es espejo / simétrico de lo de


arriba así que también se deja en blanco.
Una vez calculadas todas las distancias busco el mínimo valor y fusionamos estos dos
elementos.

Se forma una nueva matriz con el elemento producto de la conjunción

Y la distancia de los combinados se calcula como el elemento suelto y la distancia para cada
elemento del conjunto (ejemplo e2 calculas distancia separada de e1 y luego e4 y de esas
dos te quedás con la mínima).

Una vez completada se vuelve a buscar el mínimo valor


Y vuelves a completar la nueva tablita (las distancias a calcular se sacan de la tabla anterior,
ejemplo e1e4 con e2 y e1e4 con e3)

Si fuera máxima distancia invertis los niveles.

Si tengo más de una mínima distancia: Según como está es como tiene que seguir el
ejercicio. Tienes que elegirlas a la par, no una después de la otra

Ver producto cartesiano de los dos grupos, (Ej. e1 con e2 y e3 con e4)

b. 4.2 Clasificación de características

Armo la matriz opuesta producto de invertir la escala de valores.


Cuando son números pares se invierten, cuando es impar el del medio queda igual.

Para la original construyo una matriz que relacione características con dos pasos:

- Llenar la matriz triangular superior, calculando como el punto anterior. (igual que
elementos pero barres por cada columna para dos filas).

- Calculamos la triangular inferior, tomando un elemento de cada parrilla (original y opuesta)


Una vez completada toda la matriz creamos otra triangular superior, tomando para los
opuestos (C1 y c2 y c2 y c1) de elementos el mínimo valor

Tomamos el mínimo valor y así sucesivamente.


5. 5 Interpretación o análisis de resultados
Tiene dos subetapas:

5.1 Análisis y discusión de árboles ordenadas


Análisis del árbol de los elementos atento a las mínimas distancias y el árbol de
características.

Obtenemos:
- Cardinalidad de grupos (cuántos son)
- Conformación de grupos
- Similitudes (cuál es más similar).

Del primero:

Puedo decir que hay dos grupos (e1e4 y luego e2e3)


Son muy similares entre sí ya que tienen una distancia de 2 y de 3.
Tengo 3 grupos. (No puedo decir a c1 y c2, después a c1,c2, c4 y así.)
- c1,c2
- c4
- c3.

C1 y c2 son las más similares entre sí, se agruparon hasta el principio, entonces en el
problema puede ser que surjan siempre juntas ( par de características)

A distintos grupos de elementos, a más alto más características comparten.

5.2 Red de relaciones entre características:


Posibles relaciones entre las características. A partir de un texto que nos dan en el enunciado
ver si las características que se relacionan se encuentran en las relaciones tipificadas:

- Paralela: Tiene relación de ida o de vuelta.

- Recíproca: Tiene relación ida y vuelta.

- Ortogonal (Siempre uno o 2 de los valores no se relaciona con los otros, dos valores
de una característica van al mismo de la otra)
- Ambigua (desde un valor de una característica A voy a los dos valores del B)

Pueden haber otros tipos de relaciones, si existe ponemos “no tipificada”.

Existen:
- Relaciones tipificadas
- Relaciones no tipificadas
- Relaciones sin información para tipificar. (vacía)

Solamente se pueden relacionar características que armen un grupo. (Ejemplo c1 y c2, pero
si se quiere relacionar c4 y c3 no se puede porque son dos grupos distintos.)

Se relacionan de a pares. (C1,c2,c3 sería c1c2 c1c3 c2c3)


Entonces existe una relación paralela

01/06

Ingeniería para la construcción de SI


Qué respuestas damos los ingenieros

Puntos en común sist. soft tradicionales y SI:


- Resuelven problemas
- Deben satisfacer deseos y necesidades de los stakeholders (interesados)
- SI implican en algún momento y una instancia un software particular.
*Requerimientos: características que tiene que tener como tal para ser. En SI además de lo
tradicional tiene los otros dos.
*Mantenimiento: SI tiene además de los dos, el perfectivo que tiene relación con la
performance, agregar funcionalidad de mejor manera.
Un sistema tradicional tiene entropía, se desgasta con el tiempo en cambio un SI aumenta la
performance (empieza con una calidad medio baja).

Implementación de un sistema inteligente:


Perspectivas - miradas:
De la IA
- Ciencia: Estudiando el comportamiento de los sistemas inteligentes. Desarrollo de
nuevo conocimiento bajo método científico.
- Ingeniería: Proveyendo las herramientas, procesos, métodos y tecnologías para
construir ese sistema. Nos da herramientas y buenas prácticas

Construcción a nivel conceptual usando principios ingenieriles con un fin práctico

Proceso para construcción, desarrollo e implementación de IA.


Fases

1. Problema
Identificar el qué, y determinar el cómo que se plasma en el sistema inteligente.

Desde otro lado la organización es la fuente de información en relación a los datos que
maneja y las tecnologías posibles para aplicar en el sistema.

En el qué Identificamos:
- Metas
- Expectativas
- Contexto
- Necesidades
- Deseos
- Restricciones
- etc.

Dónde pueden haber conflictos:


- Información de la estructura informal de la organización
- Funcionalidades implícitas o no establecidas
- Suposiciones no fundamentadas o no comunicadas (Expertos o decisiones muy
difíciles.)
- Mala documentación
- Etc.

Identificar el problema y poder traducirlo al dominio de la solución.


Gestión de requerimientos:
Identificar estas cuestiones, documentarlas y formalizarse para poder traducir el problema de
negocio y llevarlo a otro dominio.

Actividades de esta fase:

a. Elicitar los requerimientos:


Características y condiciones para que algo sea considerado como tal.
Hay unos propios del proyecto y otros que se van redefiniendo.

Fuentes formales y usuarios (Expertos) son fuentes de información.


Debe incluir:
- Identificar las fuentes de información
- Recursos propios de la organización, manuales, formularios, bases de datos,
políticas, acta de reunión etc.
- Recursos externos: datos públicos, formularios externos, estándares y leyes, etc.
- Stakeholders: Dentro y fuera. Los encontramos en las normas y reglas pero
también en la estructura informal.

- Recolectar los hechos y necesidades


distintas técnicas según la fuente (está más arriba).
Tenemos que ver la información suficiente bajo ciertas preguntas (contexto, nuevos
stakeholders, metas y expectativas, escenarios, restricciones y elementos del
problema).

- Extracción
- Análisis de documentación, análisis de datos

- Educación (o educción?)
- Entrevistas, cuestionarios, prototipado, observación y análisis de tareas,
emparrillado, análisis de protocolos, reuniones JAD, etc.

El conocimiento no suele estar todo disponible de forma explícita, está distribuído en muchas
fuentes, pueden haber conflictos entre fuentes y está expresado en lenguaje natural.

El elicitador puede cambiar el contexto o dominio en su participación.

b. Comprender los requerimientos:


Construir para generar modelos conceptuales.
Poder entender los requerimientos a través de un proceso: Necesito abstraer, descomponer,
proyectar y modularizar

- Abstraer:
ignorar las diferencias entre los conceptos similares y así poder agruparlos
Permite obtener un panorama general del problema (lo simple del problema) e identificar las
características esenciales del problema.

- Descomponer:
Dividir el problema en partes más simples de entender. Nos permite entender cada elemento
principal del problema y sus detalles.

- Proyectar:
Identificar y describir diferentes visiones de los mismos elementos.
Permite reconocer patrones entre distintos puntos de vista e identificar conflictos entre
stakeholders.

- Modularizar:
Ir agrupando, clusterizar, combinar los elementos identificados y entendidos en porciones
(módulos).
Permite delimitar estructuras estables y fáciles de reutilizar, y organizar las tareas y grupos
de trabajo. Una vez que se llega a algo consistente se modularizar

Modelos conceptuales:
Idea simplificada de la realidad. Sirve para entender mejor los requerimientos y detectar
problemas no definidos, mal definidos, inconsistencias, confusiones de terminología, etc. Y
comunican los requerimientos.
Ayudar a entender el problema, detectar las metas principales que deben ser alcanzadas por
el proyecto, determinar si se han adquirido todos los conocimientos necesarios para resolver
el problema.
Tipos:
- UML

- Árbol de descomposición funcional. (metas y objetivos)

- Tablas de decisión y árboles de decisión

- Fórmulas
- Pseudo reglas.

c. Articular los requerimientos


i. Qué se busca resolver
ii. es viable aplicar ia.

i. Qué se busca resolver:


Definimos:
Nos permiten definir el alcance del proyecto (todo lo que es parte).
- Objetivos
- Criterios de éxito
- Riesgos

Un ejemplo:
ii. ¿Es viable aplicar IA?
Si es posible para cumplir los objetivos. o si existen mejores alternativas (no solo usarlo por
moda). Requiere un tiempo de aprendizaje.

d. Formalizar la propuesta de solución


De todos los componentes de los pasos anteriores. A través del gráfico.
Una vez definido el alcance en la articulación

Definimos:
- Propósito
- Entradas
- Acciones
- Optimización: Maximizar o minimizar una función matemática.
- Clasificación: Determinar la clase de un elemento
- Predicción: Determinar comportamiento posible futuro
- Regresión: Encontrar una función que represente el comportamiento.
- Clustering: Cómo conviene agrupar algo e identificar los grupos.
- Reglas de asociación: Inferir condiciones que representen la relación existente
entre componentes.
- Detección de anomalías: Tenemos comportamientos comunes e identificamos
un comportamiento distinto
- Salida

Ejemplo:
2. Datos
Identificación y transformación de los datos. (si los hay, es opcional)
Datos: toda información que se asocia al problema del paso anterior y se encuentra
estructurada como una tabla formada por:

- Columnas o atributos:
Una propiedad o característica de una instancia utilizada para resolver el problema.
Pueden ser atributos de entrada, atributo de clase, objetivo o etiqueta

- Fila o tupla o ejemplo:


Una instancia con sus atributos y valores.

A partir del alcance:


a. Recolectar los datos disponibles:
Teniendo en cuenta el contexto de la organización
Principales fuentes de datos:

Tenemos que evaluar si son confiables, si se modifican y quién, si son viejos o no, si es caro
acceder y si es útil.
Tomo en cuenta:
- Privacidad
- operativas
- técnicas.

b. Estudiar los datos disponibles


Cuántos necesito, si uso todos los atributos o sólo relevantes, si tienen errores, nulos,
duplicados. Y si son representativos para el objetivo.

Cómo prepararlos y estudiarlos:


- Técnicas estadísticas tradicionales
- Algoritmos de minería de datos
- Métodos ad-hoc

Método basado en el emparrillado:


Dos etapas:
- Confección de las parrillas
- Formalización y análisis de las parrillas
Sirve para ver si los datos que voy a utilizar después no tienen algún sesgo que haga que no
den resultados correctos.

c. Preparación de los datos:


Puede consumir mucho tiempo, hay que planificarla

- Integrar: Buscar unificar los datos en una sola tabla.

- Formatear: Atributos continuos o discretos

Puedo cambiar tipos de valor


- Limpiar: Corregir los valores, nulos, incompletos o ruido en columnas o filas.

3. Tecnología
1
Se va a determinar cuál tecnología de IA se va a usar.

Consideramos información generada en pasos anteriores:


- Módulos del SI.
- Alcance del proyecto
- Datos para el sistema: O no, porque pueden no ser suficientes o representativos.

Pueden ser:
- IA tradicional (motor de inferencia)
- Inteligencia computacional y machine learning

https://www.youtube.com/watch?v=sRPV6ciKqq0&list=PLliFKT3EY0k0U98ZEQHovegeNvAr-txli&index
=7&ab_channel=GrupoGEMISUTNFRBA
Por cada módulo definimos qué tecnología usar:

- Si se desea aprender automáticamente de datos disponibles (representativos)

- Si no hay datos disponibles pero sí reglas representativas:


- A partir de las reglas, si son representativas, genero datos y puedo aplicar
machine learning.
- Si No uso sistema con base de conocimientos y pongo de forma explícita las
reglas.
- Puedo construir algún algoritmo con las reglas (inteligencia computacional).

- Si no hay datos ni reglas pero existen heurísticas.

Si no hay ni datos ni reglas ni heurísticas no puedo construir el sistema.


Una vez preseleccionada la tecnología debo ver qué tarea quiero realizar con el módulo:

*Optimización: Queremos obtener la mejor solución, con una función para maximizar y
queremos obtener el valor combinatorio o reducir la longitud de un camino.

*Regresión: tengo ciertos valores y quiero obtener una función que represente el
comportamiento.

*Clasificación: Encontrar cómo definir con un criterio predefinido como se comportan ciertos
valores. Ej: ver si es bueno o malo un cliente para pagar un crédito:
- Algoritmos de inducción supervisados (id3, c4.5)
- Redes neuronales artificiales (red multi perceptrón back propagation)
- SBC y SET

*Predicción: Puedo usar SBC SET si tengo reglas, y sino redes neuronales como multi
perceptrón back propagation.

4. modelo
A partir de la info anterior:
- Módulos del sistema (lista de módulos, cada uno tiene tareas y acciones, datos de
entrada y salida, etc).
- Tecnologías a utilizar
- Datos para el sistema (datos, heurísticas o reglas).

Desarrollamos modelos por cada módulo.


Puedo elegir como software para el modelo:
- De manera automática: Machine learning, necesitamos enseñar
- Manual: IA tradicional e inteligencia computacional.

Machine learning:
Tengo datos, se los doy a un algoritmo y me da un modelo.
Automático.
El modelo es fácil de conseguir, pero es más difícil que cumpla los objetivos que queremos.

Necesitamos entrenarlo.
Tiene como dificultad que tengan muchos parámetros, tengo que ver si uso los parámetros
mejores (el alpha o tasa de aprendizaje que hace que sea estable o no y cantidad de ciclos
que puede hacer que aprenda o se sobre entrene).

Nos aseguramos el punto anterior con prototipado y experimentación

Una vez que lo prototype tengo que experimentar:


- Analizarlo con otros datos
- Analizar los resultados
- Encontrar nuevos parámetros o acciones para avanzar.

Validar: Ver los resultados de distintos parámetros para tratar de optimizar.


Entreno a mi modelo con unos datos, veo los resultados y luego al mismo modelo lo pruebo
con otros datos y tengo mayor precisión

Una dificultad: ¿El modelo es capaz de generalizar? Puede ser que lo sobreentrenemos
cuando iteramos al entrenar y validar. Tiene un mal aprendizaje, aprende demasiado bien con
los datos dados pero para otra combinación de datos da incorrecto.
Para arreglar eso necesitamos otros datos de prueba y ahora tenemos:
Tomamos muestras para cada tipo
- Datos de prueba
- datos de entrenamiento
- datos de validación.

Etapas del modelo de machine learning:


- Probar: Evalúa si el sistema construido tiene una buena capacidad de generalizar.
- validar
- entrenar.

Ej: redes neuronales artificiales


IA Tradicional:
Manual porque tengo que codificar clases o cosas dependiendo la herramienta que use.
- Identificar reglas y conceptos que se vuelquen en la base de conocimientos
- Tengo motor de inferencias que maneja los hechos y reglas, este suele ser genérico
en forma de métodos de búsqueda (algoritmos de búsqueda como A*, primero el
mejor, etc).
- Podemos usar lógica de primer orden, prolog o o formalismo particular para
representar los conocimientos

Inteligencia computacional:

1. Algoritmos genéticos:
No tienen capacidad de aprender sino que está dada por el cromosoma y función de aptitud
- Modelo simplificado, no tiene que ser perfecto.
- Se debe definir con mucho cuidado porque son la fuente de conocimiento.
- Los operadores de población inicial, selección, cruzamiento, mutación, criterio de paro
y análisis o evaluación de la población final son genéricos
- El conocimiento sólo va el cromosoma y función de aptitud.

Características deseadas del cromosoma:


No son obligatorias y a veces pueden ser conflictivas o contradictorias entre sí (ver a cuál
más le doy bola).

- Tamaño fijo y longitud mínima posible con poca redundancia (conciso)


- Todas las posibles soluciones deben estar representadas (completitud).

- evitar representar soluciones inválidas (coherencia).


No siempre se puede evitar
Intentar que la probabilidad de una sol. inválida sea muy baja.

Se puede usar redundancia, si tengo 3 soluciones posibles necesito 4 bits, y me queda


una combinación de bits vacía (inválida) entonces la combinación faltante se la asigno a
un valor posible. Ejemplo A,B,C 00 para A, 01 para B, 10 para C y Devuelta 11 para A. A
tiene doble de chances de aparecer y si se que A se asocia a una mejor solución mejor y
sino no pasa nada.
O sino ver cómo penalizar a las inválidas.

- Todas las soluciones deben tener la misma posibilidad de ser generadas (uniformidad).
Tiene conflicto con el punto anterior de probabilidad.

- Fácil de interpretar.

Características deseadas de la Función de aptitud:


- Utilizar de la mejor manera posible el conocimiento del problema (aplicación de la
heurística).
- Ser consistente con el cromosoma:
Deberían evaluarse las caract. del cromosoma y no otra cosa.

- Reducir la influencia del ruido y las perturbaciones (robustez)


- Pequeños cambios en características deben generar pequeños cambios en la valoración
(causalidad fuerte o adyacencia):
A valores similares la función debería ser parecida. Ej: cambios en un bit.

- Manejar correctamente la ‘penalización’ de soluciones inválidas:

- Pena de muerte:
Si veo un individuo con un valor inválido le pongo un valor muy bajo/malo pero el
algoritmo no ve cual es peor de varios. (un inválido, dos inválidos, etc). Conviene usar lo
siguiente.

- niveles de penas:
Depende de qué tan mal están, un inválido es menos penoso que dos inválidos en un
individuo. Pueden ser constantes o adaptativas.

- penas adaptativas en el tiempo:


A más ciclos la pena es más fuerte.

- penas adaptativas por la actitud de la población:


Si toda la población es medio mala tenes una pena relativamente baja si son todos
buenos y es uno inválido le pongo peor pena.

5. Sistema inteligente
Se tiene que realizar:
- Integración de los modelos de cada módulo para que generen un SI integrado
- Tenemos en cuenta el alcance (objetivos, criterios de ética y riesgos) definido en la
primera fase.
- Integramos con otro software tradicional que estén disponibles en la organización
- Si se necesita implementar todas las interfaces SW para interactuar con el usuario
1. Integrar modelos construidos:
A través de canalizaciones o pipelines (conexiones o interfaces)
Consiste en determinar cómo se ejecutarán en producción todas las acciones relacionadas
con el SI en forma integrada:
- Recolección de datos
- Preparación de datos
- Ejecución del modelo
- Ajuste de resultados.
- etc

Considerar la golden rule o regla dorada: Siempre hacer las mismas acciones en producción
de recolección y preparación de datos que la construcción. Ejemplo: si normalice datos
cuando entrené el sistema, tengo que usar datos normalizados de igual forma en producción.

2. Integrar con SW externo y usuarios:

Modelo de “pan de pasas”: Puedo tener varios SW tradicionales en la organización, para que
realicen tareas más complejas o datos más complicados los puedo integrar con módulos de
inteligencia artificial. Ej: en inventario puedo agregar módulo de predicción de materias primas
y necesidades. Segmentación o clustering de clientes, análisis de riesgo en un banco, etc.
Reduzco chance de rechazos del nuevos sistema inteligente.
3. Instalar:
Ponerla en producción, similar a un SW tradicional, testeando con el usuario

4. Monitorear:
En los primeros momentos tenemos que hacer un monitoreo más exhaustivo para ver que no
falle.

5. Mantenimiento:
Si se quiere cambio o hay un error. A veces implica construir de cero si cambiamos la
tecnología.

Parcial:
- Emparrillado si se hace pero ver que parte, si pide características sólo eso.
- Análisis de protocolo no, marcar enunciado y no hacer todo.
- Traducción para el parcial no, nos dan las frases traducidas de una y vemos de
reducirlo.
- Siempre me va a dar el resultado en deducción, y con todas las hipótesis.
Ejercicios de parcial:

La 2 no es porque el ^Lx no se puede formar, la 4 no es porque no podes superponer y las


hipótesis no se pueden simplificar. Está entre la 1 y 3, analizar.

- La 4 no es porque no tenés manera de arrancar para conseguir la T sola


- La 3 no es porque desde esa suposición tampoco podés partir ni arrancar
- Entre la 1 y 2, resolviendo ves que no podés llegar al ^Lx al lado de la T, en cambio en
la primera podés inventar la K al final
1. Me fijo si desde las hipótesis dadas consigo algo de la tesis
2. Consigo Tx + Px y ya usé todas las hipótesis
3. Necesito Dx
4. De la opción d no va porque tiene un existe
5. De la b no va porque no consigo el ^Ax de ningún lado, no está esa letra en las otras
hipótesis
6. De la a & c, la a tiene una K que no voy a poder sacar en ese o
7. Entonces es la C.

1. Supongo el antecedente, y me fijo si puedo llegar a algo del consecuente solo con lo
que tengo de hipótesis
2. Por resolución llego a M, me fijo en las opciones y hay una que llega directo al
consecuente desde esa M.
1. La 1 no va porque tiene para todo
2. Trato de ver si llego a algo suponiendo el antecedente de la tercera pero no llego a
nada
3. veo entre la 2 y 4, trato de resolver las hipótesis y llegué a Ba, como no puedo
agregarle el ^Aa pero si inventar una F es la primera.

También podría gustarte