Actualizado el 21 de Marzo del 2018 (Publicado el 30 de Septiembre del 2017)
1.469 visualizaciones desde el 30 de Septiembre del 2017
1,8 MB
220 paginas
Creado hace 10a (14/05/2014)
UNIVERSIDAD POLIT´ECNICA DE MADRID
ESCUELA T´ECNICA SUPERIOR DE INGENIER´IA DE
SISTEMAS INFORM´ATICOS
M´aster Universitario en Ciencias y Tecnolog´ıas de la
Computaci´on
Proyecto Fin de M´aster
Inteligencia Artificial y Soft Computing
Teor´ıa y Aplicaciones
Autor:
Tutor:
Alberto D´ıaz ´Alvarez
Fracisco Serradilla Garc´ıa
Marzo de 2014
Resumen
El Soft Computing es la rama incluida dentro del campo de la Inteligencia
Artificial que estudia la aproximaci´on subsimb´olica del conocimiento. En
´esta, los esfuerzos se centran en la simulaci´on de los elementos de bajo
nivel de los comportamientos inteligentes, esperando que ´estos surjan de
forma espont´anea.
En ella se hace uso de un conjunto en constante evoluci´on de t´ecnicas que
modelan las soluciones partiendo de la base de que la ambig¨uedad, la in-
certidumbre y/o la complejidad son parte inherente al problema y se ha de
trabajar con ella, a diferencia de otros procesos resolutivos donde se mode-
lan las soluciones abstrayendo del problema el n´ucleo informativo esencial
y obviando toda imperfecci´on.
La bibliograf´ıa existente sobre el Soft Computing es amplia, incluso abruma-
dora para los noveles en la rama, como por ejemplo estudiantes interesados
en el tema. Adem´as, el conjunto de herramientas existentes, tanto acad´emi-
cas como profesionales no est´an demasiado extendidas, o si lo est´an, son
demasiado gen´ericas y requieren un alto grado de conocimiento acerca del
tema para su funcionamiento.
El presente trabajo pretende dar una introducci´on al Soft Computing que
sirva de plataforma para aquellos que pretendan conocer m´as acerca de
sus t´ecnicas y ofrecer una implementaci´on base de ´estas tanto para el uso
dentro del mundo acad´emico como en el mundo profesional.
Abstract
Soft Computing is a branch of Artificial Intelligence field. It studies the sub
symbolic representation of knowledge, namely, the simulation of known
low level elements of intelligent behaviors. These behaviors are hoping to
arise spontaneously.
Besides, Soft Computing uses a set of ever evolving techniques for problem
solving. The assumption that ambiguity, uncertainty and/or complexity are
an inherent part of the problem and they must be taken into account. Unli-
ke other processes, they are modelled reducing the problem to a minimum,
discarding any imperfections.
The existing literature about Soft Computing is vast, even overwhelming
for the novice in the field, such as students interested in the subject. Mo-
reover, the set of existing tools, both academic and professional are not
widespread. In addition, they are too generic and require a high knowled-
ge about the subject for operation.
The present work aims to provide an introduction to Soft Computing. It fos-
ters a platform for those who intend to learn more about its techniques.
Furthermore, it provides an implementation base for using both, the aca-
demic and the professional world.
Agradecimientos
Me gustar´ıa agradecer a mi tutor, Francisco Serradilla su ayuda dedicada
para completar el proyecto y a abrir mi mente. Mil gracias por tu apoyo, por
tus continuos “¡C´entrate Alberto!” y sobre todo por tus recomendaciones de
libros de ciencia ficci´on.
Tambi´en quiero agradec´ertelo a ti, Davi. Sabes que sin ti este trabajo no
existir´ıa. No s´e qu´e m´as a˜nadir m´as que gracias por tu ayuda y por estar
conmigo para lo bueno y para lo malo. Te quiero.
Mam´a, Beatriz, si est´ais leyendo esto quiere decir que ahora me ver´eis m´as
a menudo :). Os quiero un mont´on chicas, gracias por aguantarme lo in-
aguantable y quererme tanto.
A mis abuelos les quiero agradecer que me hayan malcriado tan bien y
que me hayan querido de forma incondicional a lo largo de los a˜nos. Es
imposible devolverles tanto cari˜no, pero hago lo que puedo. ¡Os quiero
mucho abuelitos!
Hay una persona que siempre tengo en mente cuando hago algo relacio-
nado con los estudios. Francisco Bouzas fue una persona que no s´olo me
aguant´o en mi ´epoca preuniversitaria, sino que, entre otras muchas cosas,
me inst´o a estudiar “lo que me diese la gana” mientras fuese buena persona.
Bueno, no s´e si lo soy pero procuro acordarme siempre de esa frase.
Tambi´en quiero agradecer a mis compa˜neros de Dojo el buen tiempo que
pasamos juntos: Miguel, Fer, Ismael y Buena, David y Sara, Esteban, Luis,
Petro, Pablo, Ra´ul, Aurelio, Abril, Adri y Camilo. Domo Arigato!
Y por supuesto tengo que nombrar tambi´en a V´ıctor del Rey, ya que me dijo
una vez: “con lo que cuesta quedar contigo, encima me haces le´ermelo.
Como luego no me pongas en el libro ´este de cosas que est´as escribiendo,
ver´as”. V´ıctor, ya he terminado el libro este de cosas, ya podemos quedar.
Gracias por hacerme el favor de le´ertelo y ya que estamos, por ser tan buen
amigo.
Por ´ultimo, en estos ´ultimos dos a˜nos he conocido a mucha gente nueva
y en su inmensa mayor´ıa para bien. A mis compa˜neros y amigos tanto de
dentro como de fuera de la universidad: Octavio, Txelu, Alber, Marian y
Ovi (the Moldovan Brothers), Dani (fan´atico de las revisiones al detalle :D,
gracias!), Adri´an, V´ıctor, Jorge, Sergio, Denis, Aurora, Antonio, Garri, me
alegro mucho de haberos conocido. ¡Gracias chicos!
Y a todos los que no he puesto, por despiste o por despiste, ¡gracias *!
´Indice general
1. Introducci´on
1.1. ¿Qu´e es el Soft Computing? . . . . . . . . . . . . . . . . . .
1.1.1. T´erminos relacionados . . . . . . . . . . . . . . . . .
1.2. Objetivos
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Estructura de la memoria . . . . . . . . . . . . . . . . . . .
1.4. Sobre el c´odigo fuente . . . . . . . . . . . . . . . . . . . . .
2. Redes Neuronales Artificiales
2.1. Neurona artificial . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Arquitecturas . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Feed-Forward . . . . . . . . . . . . . . . . . . . . . .
2.3.2. Recurrentes . . . . . . . . . . . . . . . . . . . . . . .
3. Computaci´on Evolutiva
3.1. Algoritmos gen´eticos . . . . . . . . . . . . . . . . . . . . . .
3.1.1. Terminolog´ıa . . . . . . . . . . . . . . . . . . . . . .
3.1.2. Representaci´on de los individuos . . . . . . . . . . .
3.1.3. Arquitectura de un algoritmo gen´etico . . . . . . . .
3.1.4. Programaci´on Gen´etica . . . . . . . . . . . . . . . .
3.1.5. Swarm Intelligence . . . . . . . . . . . . . . . . . . .
23
23
25
26
27
28
29
30
32
35
37
52
57
58
59
61
62
69
77
4. L´ogica Difusa
4.1. Variables ling¨u´ısticas y universo de discurso . . . . . . . . .
4.2. Conjuntos cl´asicos y conjuntos difusos
. . . . . . . . . . . .
4.2.1. Notaci´on . . . . . . . . . . . . . . . . . . . . . . . .
4.3. Funciones de pertenencia . . . . . . . . . . . . . . . . . . .
4.3.1. Definiciones y caracter´ısticas
. . . . . . . . . . . . .
4.3.2. Tipos de funciones de pertenencia . . . . . . . . . .
4.3.3. Operadores Difusos . . . . . . . . . . . . . . . . . . .
85
86
87
89
90
91
92
96
4.3.4. Razonamiento difuso . . . . . . . . . . . . . . . . . . 101
4.3.5. Proceso de Inferencia (Modus Ponens Generalizado)
102
4.4. Sistemas de Control Difuso . . . . . . . . . . . . . . . . . . 104
4.4.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . 105
4.4.2. Tipos de Sistemas de Control Difuso . . . . . . . . . 109
5. Razonamiento probabil´ıstico
113
5.1. Clasificador Na¨ıve-Bayes . . . . . . . . . . . . . . . . . . . . 114
5.1.1. Teorema de Bayes
. . . . . . . . . . . . . . . . . . . 114
5.1.2. Clasificador Na¨ıve-Bayes . . . . . . . . . . . . . . . . 115
5.2. Modelos Ocultos de Markov . . . . . . . . . . . . . . . . . . 118
6. Sinergias Entre T´ecnicas
121
7. Librer´ıas desarrolladas
127
7.1. Estructura Global . . . . . . . . . . . . . . . . . . . . . . . . 127
7.2. ann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.3. bayes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1. data models.py . . . . . . . . . . . . . . . . . . . . 131
7.3.2. feature extractor.py . . . . . . . . . . . . . . . . 133
7.3.3. bayes.py . . . . . . . . . . . . . . . . . . . . . . . . 134
7.4. fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.4.1. controller.py . . . . . . . . . . . . . . . . . . . . . 138
7.4.2. defuzz.py . . . . . . . . . . . . . . . . . . . . . . . . 139
7.4.3. lvars.py . . . . . . . . . . . . . . . . . . . . . . . . 140
7.4.4. mfs.py . . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.4.5. operators.py . . . . . . . . . . . . . . . . . . . . . . 144
7.4.6. rules.py . . . . . . . . . . . . . . . . . . . . . . . . 146
7.5. genetics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.5.1. chromosomes.py . . . . . . . . . . . . . . . . . . . . 149
7.5.2. crossover.py . . . . . . . . . . . . . . . . . . . . . . 151
7.5.3. generations.py . . . . . . . . . . . . . . . . . . . . 152
7.5.4. algorithm.py . . . . . . . . . . . . . . . . . . . . . . 154
7.5.5. mutators.py . . . . . . . . . . . . . . . . . . . . . . 155
7.6. markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.7. som . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
7.7.1. adjust function.py . . . . . . . . . . . . . . . . . 159
7.7.2. algorithm.py . . . . . . . . . . . . . . . . . . . . . . 160
7.7.3. neighborhood.py . . . . . . . . . . . . . . . . . . . . 161
7.7.4. network.py . . . . . . . . . . . . . . . . . . . . . . . 162
7.7.5. gui . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.8. common . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
7.8.1. pubsub.py . . . . . . . . . . . . . . . . . . . . . . . . 165
7.8.2. stop criterias.py . . . . . . . . . . . . . . . . . . 166
7.8.3. vector.py . . . . . . . . . . . . . . . . . . . . . . . . 167
8. Pruebas Efectuadas
169
8.1. Generaci´on Musical . . . . . .
Comentarios de: Inteligencia Artificial y Soft Computing Teoría y Aplicaciones (0)
No hay comentarios