• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
[Code Camp 2009] Inteligencia Artificial con C# (Marcelo A. Quevedo)
 

[Code Camp 2009] Inteligencia Artificial con C# (Marcelo A. Quevedo)

on

  • 3,493 views

[Code Camp 2009] Inteligencia Artificial con C# (Marcelo A. Quevedo)

[Code Camp 2009] Inteligencia Artificial con C# (Marcelo A. Quevedo)

Statistics

Views

Total Views
3,493
Views on SlideShare
3,479
Embed Views
14

Actions

Likes
0
Downloads
46
Comments
0

1 Embed 14

http://www.slideshare.net 14

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    [Code Camp 2009] Inteligencia Artificial con C# (Marcelo A. Quevedo) [Code Camp 2009] Inteligencia Artificial con C# (Marcelo A. Quevedo) Presentation Transcript

    • Agenda
      ¿Quees la Inteligencia Artificial (IA) ?
      Un poco de historia
      Susaplicaciones
      Metodologías
      1. Maquinas de estadofinito
      2. Algoritmosgenéticos
      3. Redesneuronales
      4. Sistemasexpertos
      5. Lógicadifusa
      DEMO
    • ¿Quees 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.
      validación
      teoría
      software
    • 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 (themovie)
    • 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 en
      1950 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
    • Aplicaciones
    • Maquinas de estadosfinitos
      • 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
    • Algoritmosgenéticos part 1
      Inspirados en la forma en teoría de la evolución. (explicar)
      Estado estable
      Ruleta
      Torneo
      Punto sencillo
      Dos puntos
      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.
      Cálculo de adaptación
      Selección de padres
      Cruce y mutación
    • Algoritmosgenéticos part 2
      Funciones 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.
    • Redesneuronales 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í.
      entrada
      proceso
      salida
      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
      comer
      proteínas
      NO comer
      minerales
      comer poco
      vitaminas
      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.
    • Redesneuronales part 2
      Procesamiento de la información:
      Funcion de paso
      Donde la funcion es 0 para x < 0 y es 1 para x > 0
      Función lineal
      Donde la funcion es = x
      Función logística
      Funcion = 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.
      Calculo de error
      Actualización de datos
    • Sistemasexpertos
      • 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
      SISTEMAEXPERTO
      Base de conocimiento
      Motor de inferencia
      Interfaz de usuario
    • LogicaDifusa part 1
      Logica estricta
      Nos 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 Difusa
      Grado 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.
    • LogicaDifusa part 2
      Para crear una aplicacion necesitamos de 3 pasos fundamentales:
      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
      Reglas difusas: mediante reglas determinadas obtenemos el grado de membrecía de la entrada con relación a la salida del programa.
      Desfuzzificacion: a veces es necesario convertir el valor de membrecía en un numero real
    • Demo
    • ¿Preguntas?