INGENIERIA INFORMATICA ÁREA: CIENCIAS DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL MODELOS DE COMPUTACION II Presentación del profesor y de la asignatura JUAN LUIS CASTRO PEÑA 2010-11 Información: http://decsai.ugr.es/~castro/MCII ¿Dónde encuentro al profesor? • Departamento: Ciencias de la Computación e Inteligencia Artificial. Despacho: D-39 ¿Cuando puedo encontrarlo? • Horario de Tutorias: L: 9-11, Mi 11-14 y 17-18 (Pedir cita) ¿Y quién es este tío? • Página Web: http://decsai.ugr.es/~castro/ Experiencia como Profesor Experiencia Profesional Universidad de Granada. Departamento de Ciencias de la Computación e I.A. 01/10/1988 a 29/04/1991 Titular interino de E.U. 30/04/1991 a 28/05/1992 Titular de E.U. 29/05/1992 a 20/08/2003 Universidad Profesor Titular de Desde el 21/08/2003 Catedrático de Universidad Curriculum Vitae Experiencia Actividad Docente como Profesor Publicaciones de carácter docente o divulgativo DOCUMENTOS EN LA WEB - J.L. Castro. Sobre la teoría de la computabilidad. http://decsai.ugr.es/~castro/MCII/Computability.html. - J.L. Castro. Sobre la complejidad algorítmica. http://decsai.ugr.es/~castro/CA/default.html. -J.L. Castro. Curso on-line de "NEURO-COMPUTACION“ http://decsai.ugr.es/~castro/Neuro/default.htm -J.L. Castro. Curso on-line de “Redes Neuronales y Sistemas Neurodifusos“ http://decsai.ugr.es/~castro/Neuro-Fuzzy/Curso/nfs2.html ¿Y qué es eso que nos va a dar? ¿Modelos de Computación II? Web: http://decsai.ugr.es/~castro/MCII/ Proyecto docente Perfil PERFIL: MODELOS DE COMPUTACION, NEUROCOMPUTACION • Ciencias de la Computación A) ¿Qué problemas se pueden resolver mediante un ordenador?. B) ¿Cómo puede construirse un programa para resolver un problema?. C) ¿Resuelve realmente nuestro programa el problema?. D) ¿Cuanto tiempo y espacio consume nuestro problema?. Modelos de computación Neurocomputación Proyecto docente Perfil MODELOS DE COMPUTACION Computabilidad ¿Qué problemas se pueden resolver mediante un procedimiento automático? 1)¿Qué pueden hacer los ordenadores (sin restricciones de ningún tipo )? 2) ¿Cuales son las limitaciones inherentes a los métodos automáticos de cálculo?. Proyecto docente Perfil MODELOS DE COMPUTACION Computabilidad • Aparición de la noción de calculabilidad efectiva - Church: Lambda Cálculo Turing: Máquinas de Turing Kleene: Funciones recursivas de Herbrand-Gödel Post: Sistemas de Post Problemas no computables (problema de la parada) Tesis de Church-Turing Proyecto docente Perfil MODELOS DE COMPUTACION Computabilidad • Resultados de computabilidad y no computabilidad (Codificación de programas como números): - Máquinas y programas universales Teorema del parámetro Teorema de recursión Teorema de Rice Técnica de reducción Proyecto docente Perfil NEUROCOMPUTACION • El concepto de red neuronal artificial Una red neuronal es un procesador distribuido y masivamente paralelo compuesto por unidades de procesamiento simples y que, de forma natural, tiende a almacenar conocimiento experimental y a disponerlo de forma adecuada para su explotación. Se asemeja al cerebro en dos aspectos: 1. El conocimiento es adquirido por la red de su entorno a través de un proceso de aprendizaje. 2. Las fuerzas de las interconexiones entre las neuronas, llamadas pesos sinápticos, se utilizan para almacenar el conocimiento adquirido. Proyecto docente Perfil NEUROCOMPUTACION • Desarrollo histórico - 1943 Modelo de McCulloch y Pitts (Lógica de umbral) - 1949 Organization of Behavior de Hebb (Ley de Hebb) - 1959 Adaline y Madaline de Widrow (funciones de activación) - 1962 Perceptron de Rosemblatt (aprendizaje adaptativo) - 1969 Minsky y Papert (la decepción) - 1982 Redes de Hopfield (Memorias asociativas) - 1984 Mapas auto-organizativos de Kohonen (aprendizaje no supervisado) - 1986 Algoritmo de backpropagation (aprendizaje basado en derivadas) - Otros modelos: Máquina de Boltzman, modelos BAM, ART, red de Jordan, … Proyecto docente NEUROCOMPUTACION La situación actual • Gran variedad de modelos: – Estructura - Redes de propagación hacia delante - Redes con realimentación – Aprendizaje - Supervisado y no supervisado • Herramienta de ingeniería (técnica de I.A): - Aproximadores Universales - ¿Cajas Negras? - Paquetes de aplicación - Aplicaciones en la industria Perfil Proyecto docente Recomendaciones curriculares Directrices Consejo de Universidades (RD 1459,1460,1461/1990) Ingeniería en Informática, e Ingeniería Técnica en Informática de Sistemas Troncalidad Máquinas secuenciales y autómatas finitos. Máquinas de Turing. Funciones recursivas. Gramáticas y lenguajes formales. Redes neuronales. Proyecto docente Programa Objetivos docentes - Los principales resultados de la computabilidad, entendida como la forma de obtener funciones calculables mediante algún algoritmo. - Que se puede hacer y que no se puede hacer de forma automática. - Conocer los distintos modelos de cómputo - Dejar clara la equivalencia de los distintos modelos de cómputo. - El concepto y ámbito de uso de las redes neuronales de propagación hacia adelante Tema 1. Introducción a la computabilidad •Planteamiento del problema •Breve historia de la computabilidad Tema 2. Programas y Func. Calculables •Un lenguaje de programación (S) •Ejemplos de programas •Sintaxis •Funciones Computables •Macros Tema 3: Funciones Recursivas •Composición •Recursividad •Clases PRC (cerradas por recursividad primitiva) •Algunas funciones recursivas primitivas •Predicados primitivos recursivos •Operaciones iteradas y cuantificadores acotados •Minimización Tema 4. Codif. de Programas. Programa Universal Números de código de Gödel Codificación de programas mediante números El problema de la parada Universalidad Conjuntos recursivamente enumerables El teorema del parámetro El segundo teorema de recursión El teorema de Rice Tema 5. Cálculo con cadenas Representación de cadenas usando números Un lenguaje para el cálculo con cadenas (Sn) Equivalencia entre S y Sn Programas de Post-Turing (el lenguaje T) Simulaciones entre Sn y T, y entre T y S. Tesis de Church-Turing Tema 6. Máquinas de Turing Máquinas de Turing. MT Universales Leng. recursivos y recursivamente enumerables El problema de la parada para MT Máquinas de Turing no determinísticas Máquinas de Turing modificadas Tema 7. Introducción a la Complejidad Algorítmica Planteamiento del problema. Complejidad en tiempo y en espacio. Equivalencia polinomial de modelos de cómputo P versus NP: NP-completitud Tema 8. Introducción a las redes neuronales Procesadores elementales. Redes Neuronales Artificiales. Fundamentos de RNA. Métodos de entrenamiento. Modelos de Redes Neuronales. Proyecto docente Programa Bibliografía Modelos de Computación II N.J. CUTLAND: Computability An introduction to recursive function theory. Cambridge University Press (1980). M.D. DAVIS y E.J. WEYUKER: Computability, Complexity, and Languages. Academic Press (1983). H.R. LEWIS y C.H. PAPADIMITRIOU: Elements of the Theory of Computation. Prentice-Hall (1981). M. R. GAREY y D.S. JOHNSON: Computers and Intractability A Guide to the theory of NP-Completeness. Freeman (1979). B. MULLER y J. BEINHARDT. Neural Network an Introduction. SpringerVerlag, 1990. - Objetivos docentes • Teora de la computabilidad: Que se puede hacer y que no se puede hacer de forma automtica. -Funciones primitivas recursivas -Calculabilidad de la función universal -Teorema del parámetro -Teorema de recursión -Teorema del punto fijo -Teorema de Rice -Equivalencia de distintos modelos de cmputo • Introducción a las Redes Neuronales: Modelos básicos y sus algoritmos de aprendizaje. - Perceptron - Perceptron multicapa - Redes Neuronales Feedforward Multicapa Línea argumental Teoría de la computabilidad: seguiremos como hilo argumental el libro de Davis-Weyuker. (OJO: Cambiaremos alguna notación y ampliaremos en algunos temas). 1.- Abstracción del problema. 2.- Introducción de un modelo de computo simple pero potente. 3.- Comprobación de lo que se puede se puede calcular en ese modelo. 4.- Principales resultados (para el concepto de computabilidad en ese modelo). 5.- Comprobación de la equivalencia entre todos los modelos de cómputo suficientemente potentes. • Introducción a las Redes Neuronales: Introducción básica 1.- Abstracción del modelo clásico de neurona: Perceptron. 2.- Límites del perceptron: perceptron multicapa. 3.- Límites del perceptron multicapa: redes neuronales feedforward. Metodología Teoría: -Clases: -1ª hora: Conceptos e ideas del tema, remarcando lo importante. -2ª hora: Estudio tutorizado del tema por los alumnos -3ª hora: Ejercicios y Actividades -Para cada tema hay que conocer: -- Objetivos del tema -- Conceptos -- Resultados -- Ejercicios y cuestiones típicas -- Fallos típicos • Prácticas: - 3 sesiones de prácticas para entender como funciona el perceptron y el perceptron multicapa (entrega voluntaria) - 1 sesión para explicar el software JavaNNS - 1 sesión sobre la metodolgía de uso de RRNN para resolver un problema - Resto de sesiones para realizar una aplicación de las redes neuronales, siguiendo un guión y utilizando JavaNNS. (entrega obligatoria) Forma de evaluación • Examen: - Teoría: 10 preguntas de 1 punto cada una. Para relacionar y razonar sobre la materia. - Problemas: 4 problemas valorados en 2.5 puntos cada uno. • Prácticas: Se entregará una práctica obligatoria, valorada en 10 puntos. Puntos adicionales: Se pueden obtener hasta 2 puntos adicionales por las actividades que se irán proponiendo • Calificación: - N1 = “media entre la teoría y los problemas” - N2 = nota de la práctica. - Notafinal = “N1*(N2*0.08+0.6)+puntos adicionales, truncado por 10”.