sistemas inteligentes -...
TRANSCRIPT
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
1
MANUAL DE PRÁCTICAS DE LA MATERIA
SISTEMAS INTELIGENTES CLAVE DE LA ASIGNATURA: CDE-0805
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
2
PRÁCTICA # 1
PÉNDULO INVERTIDO ROTATORIO o PÉNDULO DE FURUTA
OBJETIVO Implementar el control de un péndulo invertido usando Lógica Difusa
INTRODUCCIÓN
Los controladores con Lógica Difusa realizan la misma función que los controladores convencionales, pero son capaces de manejar problemas complejos de
control usando conocimiento experto y modelos matemáticos con Lógica Difusa en lugar de modelos matemáticos con ecuaciones diferenciales. Esta
característica es útil para controlar sistemas cuyos modelos matemáticos son no lineales o para los cuales no está disponible un modelo matemático.
La implementación de control difuso es, hasta cierto sentido, una imitación de las leyes de control que los humanos usamos. El crear máquinas que emulen
la habilidad humana en control nos da una nueva forma de diseñar controladores para plantas complejas cuyos modelos matemáticos no son fáciles de
especificar.
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
3
El Péndulo Invertido
El modelo del péndulo invertido es un ejemplo clásico en la literatura de control y tiene múltiples aplicaciones: desde el control de misiles hasta el análisis de
la biomecánica de la marcha, balance y postura humana.
El sistema a considerar consiste en un carro sobre el cual se encuentra un péndulo invertido sujetado mediante un pivote sin fricción (véase Figura 1). El
carro es movido por un motor que en el instante t ejerce una fuerza u(t) en sentido horizontal, que es la acción de control. Suponemos que todos los
movimientos ocurren en un plano, es decir que el carro se mueve a lo largo de una recta.
Mientras un péndulo normal es estable cuando cuelga hacia abajo, un
péndulo invertido es inherentemente inestable, y debe ser balanceado
para mantenerlo vertical, ya sea aplicando un torque en el punto de pivote
o moviendo el punto de pivote horizontalmente como parte de un sistema
realimentado.
El objetivo es mover el carrito a lo largo de la dirección x para mantener el
péndulo estable en posición vertical aun cuando se apliquen
perturbaciones externas.
El carrito es empujado por un motor de corriente directa, el cual es
controlado por un controlador Difuso. La posición x y el ángulo del péndulo
θ son sensadas y pueden servir de entradas al sistema de control, la
salida del sistema de control es una señal que moverá el carro a un lado o
al otro.
Figura 1. Péndulo Invertido
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
4
Es interesando notar que con práctica, los humanos pueden controlar un péndulo invertido basándose solamente en física básica y sentido común en
lugar de modelos matemáticos complicados. Balancear una escoba verticalmente en la mano involucra más grados de libertad y es inherentemente más
complicado que controlar un péndulo invertido. Sin embargo cuando balanceamos una escoba no estamos realizando cálculos con ecuaciones diferenciales
ni mediciones exactas del ángulo de la escoba y la velocidad angular. Por lo tanto es posible diseñar un controlador para un péndulo invertido sin saber o
usar la dinámica de la planta usando Lógica Difusa.
Para balancear un pendulo invertido, sabemos por física básica que la fuerza u(t) debe seleccionarse de acuerdo a las magnitudes de las variables de
entrada Angulo (θ) y Velocidad Angular (θ´). La relación entre estas variables es lingüística tal como lo procesa la mente humana de forma cualitativa. Los
humanos escogen u(t) por sentido común en la forma de reglas SI …. ENTONCES …. Por ejemplo: SI el Angulo es muy pequeño y la Velocidad Angular es
muy pequeña, entonces la Fuerza aplicada debe ser pequeña, o SI el Péndulo está balanceado, entonces mantenerlo estático, es decir no aplicar ninguna
fuerza.
PENDULO INVERTIDO ROTATORIO
Los péndulos invertidos presentan el inconveniente de que la carrera del carro se encuentra acotada, lo que puede limitar las maniobras de control. Para
salvar esta limitación se generó una modificación a dicho sistema el cual se suple la carrera lineal del carro por una trayectoria circular cerrada, creando así
al denominado sistema Péndulo de Furuta.
El sistema Péndulo de Furuta fue creado por el Dr. K. Furuta del Instituto de Tecnología de Tokio, el cual es un sistema subactuado de dos grados de libertad
ambos rotacionales llamados brazo y péndulo (véase Figura 2). El movimiento del brazo (primer grado de libertad) se realiza en un plano horizontal girando
alrededor de un eje perpendicular al plano, mientras que el péndulo se encuentra colocado en un extremo del brazo y su eje de giro es colineal al eje axial
del brazo y su movimiento se realiza en un plano perpendicular al de este último.
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
5
Lo interesante desde el punto de vista del control del Péndulo de Furuta está provocado por la configuración que tiene puesto que no se puede realizar una
linealización exacta de su modelo por retroalimentación de estados, lo cual limita la variedad de algoritmos de control que pueden serle aplicados. En este
sentido, el uso de Lógica Difusa para el control resulta una buena opción. El modelo simplificado del sistema se muestra en la Figura 2. En él se puede
apreciar la posición del brazo (θ) y la posición del péndulo (α), siendo r y l las longitudes de los elementos, m la masa del péndulo y J la inercia del actuador.
Figura 2
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
6
PROCEDIMIENTO
Tomando en consideración este tipo de reglas implemente un controlador con Lógica Difusa que permita controlar un péndulo Invertido.
1. Construya un mecanismo de Péndulo de Furuta.
2. Construya el circuito electrónico de control (Figura 4).
3. Diseñe un controlador con Lógica Difusa.
Por ejemplo si tenemos 3 variables lingüísticas: Entradas: Ángulo, Velocidad angular Salida: Potencia.
Para cada variable lingüística cada término lingüístico está definido por su función de membresía. Los términos lingüísticos podrían ser Negative big
(NB), Negative medium (NM), Negative small (NS), Positive small (PS), Positive medium (PM) y Positive Big (PB). En la Figura 3 se muestran unas
posibles funciones de membresía de una de las variables lingüísticas.
Figura 3
4. Implemente el control difuso al péndulo invertido usando el circuito de la Figura 4.
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
7
MATERIAL Y EQUIPO
1 Microcontrolador con su circuito mínimo (oscilador, reset, alimentación).
1 Regulador de voltaje LM7805.
1 Potenciómetros de bajo torque para usarse como sensor de ángulo.
1 Puente H o Driver de 2A (L298).
4 Diodos de alta velocidad de conmutación, de 2 amperes.
1 Motor
1 Regulador de voltaje LM7805 con 2 capacitores a la salida (0.1uF y 1uF)
Fuente de alimentación de 20 – 30 Volts.
Multímetro.
Computadora.
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
8 Figura 4
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
9
REPORTE
El reporte de la práctica deberá contener:
• Portada con los datos pertinentes, incluyendo un resumen descriptivo de la práctica, entre 100 y 150 palabras. • Objetivo de la práctica. • Marco teórico. • Metodología empleada (explicar algoritmos mediante diagramas de flujo o de bloques). • Diagrama esquemático del circuito. • Listado de programas (se recomienda como apéndice). • Resultados experimentales obtenidos. • Conclusiones. • Bibliografía.
REFERENCIAS
Constantin Von Altrock, Fuzzy Logic & NeuroFuzzy Applications Explained, Ed. Prentice Hall, 1995.
Hung T. Nguyen, A first Course in Fuzzy and Neural Control, Ed. Chapman & Hall/CRC, 2003.
Clarence W. de Silva. Intelligen Control Fuzzy Logic Applications. Ed. CRC Press, 1995.
http://www.cea-ifac.es/actividades/jornadas/XXIV/documentos/ro/77.pdf
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
10
PRÁCTICA # 2
RECONOCIMIENTO DE COMANDOS DE VOZ
OBJETIVO Implementar un sistema embebido de reconocimiento de comandos por voz usando Lógica Difusa
INTRODUCCIÓN
El reconocimiento de voz es una parte de la Inteligencia Artificial que tiene como objetivo permitir la comunicación hablada entre seres humanos y
computadoras electrónicas. Se ha conseguido la capacidad de reconocimiento del habla en ambientes sin ruido. El reconocimiento del habla en ambientes
ruidosos está limitado a pocas palabras y comandos. Debido a que no existen modelos matemáticos que representen fielmente el habla humana, los
diseñadores se basan en experiencia y experimentos para desarrollar este tipo de sistemas. La lógica difusa es comúnmente usada en este tipo de sistemas
debido a que permite integrar conocimiento experto a los sistemas.
La primera aplicación de lógica difusa en reconocimiento del habla fue hecha por la compañía Japonesa Ricoh. Experimentalmente resultó en un 93% de
reconocimiento en ambientes ruidos de un conjunto reducido de 120 palabras.
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
11
La mayoría de los sistemas de reconocimiento de voz (con o sin lógica difusa) usan la Transformada Rápida de Fourier para transformar el comando de voz
en patrones de frecuencia como primer paso, luego, después de normalización y filtrado, los algoritmos de reconocimiento de patrones determinan la
similitud del comando de voz con patrones pregrabados.
En algunas aplicaciones, la Lógica Difusa permite una solución más sencilla sin usar la Transformada de Fourier. En esta práctica se desarrollará un sistema
de reconocimiento de comandos de Voz para controlar el encendido y apagado de 2 cargas: Luz y Motor.
El objeto de este sistema es reconocer 4 palabras: “Luz”, “Motor”, “On”, “Off”, para controlar un motor y un foco; de tal manera que si se desea prender la
luz se dirán las palabras “Luz” seguida de “On”.
PROCEDIMIENTO DE DISEÑO
1. Armar el circuito de la Figura 3.
2. Muestrear el comando de voz que se desea reconocer (“luz”, “motor”, “on”, “off”) al mantener pulsado un botón con una frecuencia de 8000 muestras
por segundo, obteniendo un total de 2048 muestras.
3. Durante el muestreo del comando de voz, se llenarán 24 variables lingüísticas (“D1” hasta “D24”) en función de la amplitud de la señal muestreada.
Las figuras 1 y 2 muestran gráficas de la información que se obtendrá, en donde las regiones con mayor densidad son regiones con mayor
frecuencia.
4. Se deben analizar estas variables (se recomienda gráficamente) para determinar las reglas de lógica difusa que representan las 4 palabras que se
desean reconocer. Una vez analizada la información obtenida de las palabras que se desean reconocer se crean las reglas de inferencia.
Por ejemplo:
Si D20 es MEDIO DENSA y D21 es MEDIO DENSA y D9 es MUY BAJA y D10 es MUY BAJA entonces la palabra es EQUAL
Si D20 es MUY BAJA y D21 es MUY BAJA y D9 es PROMEDIO y D10 es PROMEDIO entonces la palabra es FOUR
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
12
Figura 1. Intensidad de señal de la palabra “equal”
Figura 2. Intensidad de señal de la palabra “four”
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
13
FUNCIONAMIENTO
Una vez diseñado el sistema de reconocimiento, se pone a prueba su funcionamiento.
1. Muestrear el comando de voz al mantener pulsado un botón, con una frecuencia de 8000 muestras por segundo, obteniendo un total de 2048
muestras.
2. Durante el muestreo del comando de voz, se llenarán 24 variables lingüísticas (“D1” hasta “D24”) en función de la amplitud de la señal muestreada.
Esta información entra al sistema de reconocimiento basado en Lógica Difusa y se emite una señal de control en función de la palabra reconocida.
Esta señal controlará 2 relevadores donde están conectadas las cargas.
MATERIAL Y EQUIPO
1 Microcontrolador con mas de 2k de RAM (cristal y circuito de Reset) 1 Amplificador de audio LM386 2 Transistores 2N2222 3 Diodos rectificadores 1 Resistencia de 3.3k 1 Resistencia de 47k 3 Resistencias de 1k 1 Capacitores de 1uF 1 Capacitor de 10nF
1 Capacitor de 220nF 1 Capacitor de 100nF 2 Relevadores de 5V 1 Micrófono Electret 1 Motor de Corriente directa 1 Foco 1 Fuente de Voltaje de 5V para circuito digital 1 Fuente de Voltaje para Motor 1 Toma de corriente de 110V para foco
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
14
Figura 3. Diagrama
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
15
REPORTE
El reporte de la práctica deberá contener:
• Portada con los datos pertinentes, incluyendo un resumen descriptivo de la práctica, entre 100 y 150 palabras. • Objetivo de la práctica. • Marco teórico. • Metodología empleada (explicar algoritmos mediante diagramas de flujo o de bloques). • Diagrama esquemático del circuito. • Listado de programas (se recomienda como apéndice). • Resultados experimentales obtenidos. • Conclusiones. • Bibliografía.
REFERENCIAS
Constantin Von Altrock, Fuzzy Logic & NeuroFuzzy Applications Explained, Ed. Prentice Hall, 1995.
Hung T. Nguyen, A first Course in Fuzzy and Neural Control, Ed. Chapman & Hall/CRC, 2003.
Fujimoto, J., Nakatani, T., Yoneyama, M., “Speaker-Independent Word Recognition Using Fuzzy Pattern Matching”, Fuzzy Sets and Systems Vol. 32
(1989), pp. 181-191.
Hale, C. and Nguyen, C. Q., “Using Fuzzy Logic Based Digital Filters for Voice Command Recognition,” Computer Design Fuzzy Logic ’94 Conference
in San Diego (1994), pp. 279-298.
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
16
PRÁCTICA # 3
INTRODUCCIÓN A LAS REDES NEURONALES
OBJETIVO Implementar redes neuronales para resolver operaciones lógicas
INTRODUCCIÓN
Las redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés como: "ANN") son un paradigma de aprendizaje y procesamiento
automático inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de interconexión de neuronas en una red que
colabora para producir un estímulo de salida. En inteligencia artificial es frecuente referirse a ellas como redes de neuronas o redes neuronales.
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
17
PROCEDIMIENTO
En esta práctica utilizaremos el Toolbox de redes neuronales que viene incorporado en la instalación de MATLAB (Neural Network Toolbox).
Para comprender mejor las redes neuronales vamos a ver un ejemplo que resuelve la función XOR:
Necesitamos una red neuronal con dos neuronas de entrada y una de salida. Como la
función XOR no es un problema separable linealmente, intentaremos resolver el
problema con una capa oculta en la que colocaremos dos neuronas.
El modelo de neurona que utiliza matlab, existen dos posibilidades con o sin bias:
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
18
Las funciones de activación que maneja Matlab son las siguientes:
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
19
El modelo de red neuronal que utiliza Matlab es el siguiente:
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
20
Para crear la red utilizaremos la función newff (fed-forward). Es una red que se propaga hacia-adelante.
>> net = newff([0 1; 0 1],[2 1],{'logsig','logsig'})
Como parámetros necesita el rango de valores de las neuronas de entrada ([0 1; 0 1]), el número de celdas en la capa oculta y en la de salida ([2 1]) y la función de activación de cada capa ({‘logsig’,’logsig’})
Veamos cómo se comporta la red sin entrenar. Necesitamos una matriz
con las entradas. Las entradas de la red son las columnas de la matriz. Si
queremos una matriz con las entradas: “1 1”, “1 0”, “0 1” y “0 0” debemos
escribir los vectores de entrada a la red en columna, por tanto hacemos
una matriz con los 4 vectores de entrada:
>> input = [1 1 0 0; 1 0 1 0]
Para ver la salida de la red usamos la función sim:
>> output=sim(net,input)
output = 0.3394 0.0659 0.0769 0.1025
La función sim se utiliza para simular la red y así calcular las salidas. La
salida no es muy buena. Lo deseable era (0 1 1 0) y nos hemos
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
21
encontrado con (0.3394 0.0659 0.0769 0.1025). Esto es así porque los
pesos se han inicializado aleatoriamente y la red no ha sido entrenada.
El objetivo de esta red es ser capaz de producir:
>> target = [0 1 1 0]
Con el comando plot podemos ver el objetivo y lo que hemos conseguido hasta el momento:
>> plot(target, 'o') >> hold on >> plot(output, '+r')
El objetivo son los círculos en azul y solución obtenida sin entrenar la red son los “+” en rojo. Con los pesos que tiene la red sin entrenar no se obtiene una buena solución. Los pesos que hay entre la capa de entrada y la capa oculta se guardan en IW (input weights): >> net.IW{1,1}
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
22
Se puede cambiar cualquier peso de la red, por ejemplo:
>> net.IW{1,1}(1,2)=5; >> net.IW{1,1} ans = 7.7055 5.0000 -7.9089 -0.4123
Los pesos entre la capa oculta y la capa de salida se almacenan en LW (Layer Weight):
>> net.LW{2,1}
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
23
Entonces la red con todos los pesos incluyendo el cambio realizado sería la siguiente:
Con el nuevo cambio podemos volver a evaluar la red:
>> output=sim(net,input) output = 0.6645 0.0659 0.0846 0.1025 >> plot(output,'g*')
Podemos cambiar los pesos manualmente o podemos entrenar la red automáticamente. Para entrenar la red se usa la función train
>> net = train(net,input,target);
Al ejecutar el comando, aparece un gráfico en el que vemos la evolución del entrenamiento. El objetivo a alcanzar es bajar de un gradiente de 1E-10 (valor predeterminado).
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
24
Veamos ahora si la red ya aprendió:
>> output = sim(net,input)
output =
0.0000 1.0000 1.0000 0.0000
Veamos los pesos que se han calculado en el entrenamiento:
>> net.IW{1,1} ans = 9.2325 -11.5070 -12.0289 13.7543 >> net.LW{2,1} ans = 27.6393 30.3009
EJERCICIO Diseñe una red neuronal que resuelva la función ((A OR B) AND (NOT(C) OR A)) Modifique la estructura de la red, y anote en una tabla comparativa los siguientes parámetros:
-Estructura utilizada, objetivo, tiempo aproximado de entrenamiento de la red, tiempo de cálculo de la salida, etc. (Las modificaciones a realizar incluirán al menos aumentar el número de capas ocultas, aumentar el número de neuronas en cada capa).
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
25
MATERIAL Y EQUIPO
Computadora con Matlab y Neural Network Toolbox
REPORTE
El reporte de la práctica deberá contener:
• Portada con los datos pertinentes, incluyendo un resumen descriptivo de la práctica, entre 100 y 150 palabras. • Objetivo de la práctica. • Marco teórico. • Listado de programas (se recomienda como apéndice). • Resultados experimentales obtenidos. • Conclusiones. • Bibliografía.
REFERENCIAS
B. Martin del Brio, Redes Neuronales y Sistemas Difusos, Ed. Alfaomega, 2002.
Hung T. Nguyen, A first Course in Fuzzy and Neural Control, Ed. Chapman & Hall/CRC, 2003.
Matlab Neural Network Toolbox, http://www.mathworks.com/access/helpdesk/help/toolbox/nnet/, 2009.
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
26
PRÁCTICA # 4
Reconocimiento de comandos de Voz
OBJETIVO Implementar un sistema de reconocimiento de voz usando Redes Neuronales en Matlab
INTRODUCCIÓN
Los sistemas de reconocimiento de voz con el tiempo han tenido un gran auge en la sociedad moderna, ante la creciente necesidad de tener sistemas que se
puedan controlar de manera no física, para un porcentaje creciente de personas discapacitadas en el mundo.
Un reconocimiento de voz tiene la dificultad principal en la extracción de características de la voz, debido a que cuenta con diversos problemas a solucionar,
como lo es que una persona no puede pronunciar dos veces igual la misma palabra, debido entre otras cosas al estado de ánimo, la salud, y la fuerza de
pronunciación, el tiempo, la entonación, etc.
Aun con estas dificultades, se han desarrollado algoritmos para poder determinar un nivel de coincidencia entre las pronunciaciones para poder realizar un
reconocimiento eficaz. Entre estos métodos usados se encuentran las redes neuronales artificiales.
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
27
MATERIAL Y EQUIPO
Computadora de escritorio o portátil con Matlab.
Micrófono.
PROCEDIMIENTO 1. Crear un sistema de reconocimiento de comandos de voz usando Matlab.
Para la entrada de voz puede usar un micrófono conectado a la computadora y por medio de Matlab leer la señal de la entrada auxiliar de la tarjeta
de sonido.
2. Usando redes neuronales artificiales implemente un reconocedor de comandos de voz. El sistema debe ser capaz de reconocer 3 comandos de voz
distintos.
SUBSECRETARIA DE EDUCACION SUPERIOR
DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA
INSTITUTO TECNOLOGICO DE MAZATLAN
INGENIERIA ELECTRONICA
INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/
28
REPORTE
El reporte de la práctica deberá contener:
• Portada con los datos pertinentes, incluyendo un resumen descriptivo de la práctica, entre 100 y 150 palabras. • Objetivo de la práctica. • Marco teórico. • Listado de programas (se recomienda como apéndice). • Resultados experimentales obtenidos. • Conclusiones. • Bibliografía
REFERENCIAS Matlab Neural Network Toolbox, http://www.mathworks.com/access/helpdesk/help/toolbox/nnet/, 2009.
José R Hilera Martínez, “Redes Neuronales Artificiales, Fundamentos, Modelos y Aplicaciones”, Alfa Omega, México, (2000)
Bonifacio Martín del Rio, Alfredo Sanz Molina. "Redes Neuronales y Sistemas Borrosos", Ra-Ma, Madrid, (2001)
Jose Luis Oropeza. “Algorithms and Methods for the Automatic Speech Recognition in Spanish Languages using Syllables”, Computación y Sistemas,
Vol.9, No. 3, pp.270-286, 2006.
Merlo, G. Fernandez, Caram, F. Priegue, R. “Reconocimiento de la voz mediante una red neuronal de Kohonen”, Proceedings, Procesamiento
Distribuido y paralelo. Tratamiento de Señales.
Carlos A. De Luna, Julio Cesar Martinez R. “Reconocimiento de voz con redes neuronales, DTW y Modelos Ocultos de Markov”, Conciencia
Tecnológica, Instituto Tecnológico de Aguascalientes.
Luis A. Cruz, Marco A. Acevedo, “Reconocimiento de voz usando redes neuronales artificiales, Backpropagation y coeficientes LPC”, SEPI-
Telecomunicaciones ESIME IPN Unidad Profesional.