Post on 15-Jun-2015
description
Marcelo Andrés Quevedo /Microsoft Student Partner
Inteligencia Artificial con C#
Marcelo Andrés Quevedo /Microsoft Student Partner
Agenda
¿Que es la Inteligencia Artificial (IA) ? Un poco de historiaSus aplicacionesMetodologías
1. Maquinas de estado finito2. Algoritmos genéticos3. Redes neuronales4. Sistemas expertos5. Lógica difusa
DEMO
Marcelo Andrés Quevedo /Microsoft Student Partner
¿Que es la IA?
Ciencia que intenta crear un programa o una máquina que
imite el comportamiento y el pensamiento humano.
Según, ganador de un premio Pulitzer, Douglas Hofstadter, una entidad inteligente
debe cumplir con los siguientes requisitos:
• Responder a situaciones de forma flexible• Darle sentido a los mensajes ambiguos o contradictorios• Reconocer la importancia de diferentes elementos en una situación• Encontrar similitudes entre situaciones a pesar de las diferencias que
las separan• Encontrar diferencias entre situaciones a pesar de las similitudes que
las ligan.teoría software validación
Marcelo Andrés Quevedo /Microsoft Student Partner
Un poco de historia part 1
La idea de inteligencias artificiales siempre ha despertado
interés en la raza humana. Hablando de mitos, leyendas y
Hollywood podríamos mencionar a:
• Galatea: escultura de marfil que representa el ideal de mujer creada por un rey Pygmalión y despertada por Afrodita.
• Frankestein: necesita explicación ¿?• Pinocho• I robot (the movie)
Marcelo Andrés Quevedo /Microsoft Student Partner
Un poco de historia part 2
Volviendo a la realidad…Surge a partir de trabajos publicados en la década de 1940, a partir del
trabajo en1950 de Alan Turing, matemático británico, se abre una nueva disciplina
de las ciencias de la información.
Si bien las ideas fundamentales se remontan a la lógica y algoritmos de los griegos,
a las matemáticas de los árabes, varios siglos antes de Cristo, el concepto de
obtener razonamiento artificial aparece en el siglo XIV. A finales del siglo XIX se
obtienen lógicas formales suficientemente poderosas y a mediados del siglo XX, se
obtienen máquinas capaces de hacer uso de tales lógicas y algoritmos de solución.
Diagrama de Turing
Marcelo Andrés Quevedo /Microsoft Student Partner
Aplicaciones
Marcelo Andrés Quevedo /Microsoft Student Partner
Maquinas de estados finitos• Aparecen en sistemas de control • Sencillos• Cantidad finita de posibles estados• Cambiará de estado dependiendo de si se cumple o no la condición de
transición• La salida entre un estado y otro puede ser o no binaria
Do {If (calentador.estado == false) {
If (temperatura < 50) {calentador.estado = true}
}Elseif (calentador.estado == true) {
If (temperatura > 100) {calentador.estado = false}
} } while (dispositivo.estado == true)
ON
OFF
Marcelo Andrés Quevedo /Microsoft Student Partner
Algoritmos genéticos part 1Inspirados en la forma en teoría de la evolución. (explicar)
Cálculo de
adaptación
Selección de padres
Cruce y mutación
1. Estado estable2. Ruleta3. Torneo
1. Punto sencillo2. Dos puntos3. Múltiples puntos
Mutacion: calculamos la relación de mutación. Este valor nos va a indicar la posibilidad que determinado cromosoma mute. Para la mutación se invierte el valor que debería ir en dicho cromosoma.
Marcelo Andrés Quevedo /Microsoft Student Partner
Algoritmos genéticos part 2Funciones elementales
CalcularAdaptacion() Primero obtenemos los factores (altura, fuerza, etc) que van a determinar los valores que prevalecen sobre el
resto. Segundo evaluamos la aptación de cada individuo de la población respecto a dichos valores.Con dichos valores conformamos un valor general de adaptación.
SeleccionarPadres()Recorriendo la población y comparando sus valores de adaptación seleccionamos los padres que tengan los
valores mas altos. Es decir, los mas adaptados
Cruce()Iniciamos la creación de la segunda generación. Cargamos los padres seleccionados. Y por último mediante la función random determino cuantos cromosomas serán heredados por cada iteración en la creación de la
generación. Ya con esto, analizo nuevamente mediante una función aleatoria si el gen que se pasa a dicho cromosoma en particular, es
de la madre o del padre.
Mutación() para ella damos la probabilidad deseada a un if con un random cargado para indicarle al sistema en que casos
plicaría la mutación de mas esta decir, randomizada.
Marcelo Andrés Quevedo /Microsoft Student Partner
Redes neuronales part 1
• Imitan la forma en que el cerebro procesa la información y pueden aprender.
• Contamos con varias capas. Cada capa esta formada por un conjunto de neuronas. Las diferentes neuronas de las diferentes capas se conectan entre sí.
proteínas
minerales
vitaminas
comer
NO comer
comer poco
en
trad
a
pro
ceso
salid
a
Datos necesarios para el procesamiento, se recomienda usar una nuerona para cada tipo de dato representativo.
Para cada entrada se usará una escala para graduar los valores
Cada neurona tendrá un valor de bias, que nos permitirá manejar los valores de tendencia en la salida
El valor de entrada se calculará como la sumatoria de todas (las neuronas * el peso que les corresponde) + (el bias de la neurona * su peso) Para procesar dicha información usamos funciones de activación.
Marcelo Andrés Quevedo /Microsoft Student Partner
Redes neuronales part 2Procesamiento de la información:
Funcion de pasoDonde la funcion es 0 para x < 0 y es 1 para x > 0
Función linealDonde la funcion es = x
Función logísticaFuncion = 1 / (1 + e(-x))
Aprendizaje supervisado: se analiza un problema ya resuelto, ingreso los valores de entrada y observo sus resultados. En base a los datos obtenido modifico los valores de tendencia hasta obtener el resultado teórico.
1. Calculo de error2. Actualización de datos
Marcelo Andrés Quevedo /Microsoft Student Partner
Sistemas expertos
• Trabajan como si fuera un experto en algún área en particular • Utiliza el tipo de reglas que el experto usaría para solucionar el problema (costos).• Existen reglas que nos permiten utilizar esos conocimientos importantes. • Conocimiento declarativo (informacion especifica) y procesal (requiere procsamiento).• Reglas y meta-reglas• Memoria de reglas y memoria de trabajo.
Base de conocimiento
Base de conocimient
o
Motor de inferencia
Interfaz de usuario
SISTEMA EXPERTO
Marcelo Andrés Quevedo /Microsoft Student Partner
Logica Difusa part 1Logica estrictaNos dice si algo es verdadero o falso. Por ejemplo, “estamos en CodeCamp" Pese
a El hombre trabaja con una lógica no tan estricta (vehículo) Procesamos información sin valores exactos
Logica DifusaGrado de membrecía, para el ejemplo, "que tanto doblo a la derecha”. Por
definicion, que grado de pertenencia tiene una proposición sobre un conjunto. Toma valores
entre 0 y 1.
Marcelo Andrés Quevedo /Microsoft Student Partner
Logica Difusa part 2Para crear una aplicacion necesitamos de 3 pasos fundamentales:
1. Fuzzificacion: consiste en tomar un valor de entrada y convertirlo en un dato difuso, averiguando su grado de membrecía en los conjuntos correspondientes
Funciones de membrecía (ifs)• de GradoInverso
• Triangulares : toma 3 valores siendo los puntos del triangulo y mas los datos de entrada que necesitemos, según entre que puntos este el valor de entrada será el grado devuelto.
• de Trapezoide
2. Reglas difusas: mediante reglas determinadas obtenemos el grado de membrecía de la entrada con relación a la salida del programa.
3. Desfuzzificacion: a veces es necesario convertir el valor de membrecía en un numero real
Marcelo Andrés Quevedo /Microsoft Student Partner
Demo
Marcelo Andrés Quevedo /Microsoft Student Partner
¿Preguntas?
Marcelo Andrés Quevedo /Microsoft Student Partner