Sistemas Inteligentes -...

28
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

Transcript of Sistemas Inteligentes -...

SUBSECRETARIA DE EDUCACION SUPERIOR

DIRECCION GENERAL DE EDUCACION SUPERIOR TECNOLOGICA

INSTITUTO TECNOLOGICO DE MAZATLAN

 

INGENIERIA ELECTRONICA

INGENIERIA ELECTRONICA | http://electronica.itmazatlan.edu.mx/ 

 

 

 

 

 

 

   

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/ 

 

 

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/ 

 

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/ 

 

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/ 

 

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/ 

 

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/ 

 

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/ 

 

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.