Documentos de Académico
Documentos de Profesional
Documentos de Cultura
- LEÓN –
REDES
NEURONALES
CURSO: 2013/2014
Contenido
DEFINICIÓN:
Las redes neuronales artificiales son una propuesta tecnológica en programación
informática para el aprendizaje y procesamiento automático basado en los sistemas
neuronales de los animales. Se trata pues, de un sistema de redes interconectadas
capaces de trabajar entre ellas para producir un estímulo de salida.
La capacidad que presenta el cerebro humano para poder pensar, recordar, aprender
y resolver problemas que se le presenten es un gran reto para los científicos a la hora de
poder emular y modelar a través de la programación el funcionamiento del sistema
cerebral humano, ya que sus amplias posibilidades se abren al mundo de la ciencia y la
tecnología.
Una neurona cerebral es la unidad básica del sistema nervioso y en este caso, del
cerebro. Éste, está compuesto por varios billones de neuronas altamente
interconectadas. Esta unidad fundamental recibe señales a su entrada, combinándolas, y
enviando una respuesta a otras neuronas, si la intensidad del conjunto de señales
recibidas es suficientemente elevada.
Las partes fundamentales de una neurona cerebral son las dendritas (entradas), el
axón (salida) y la sinapsis (unión entre neuronas). El axón de la neurona se ramifica para
poder conectarse a la vez con diferentes dendritas de otras neuronas, a través de las
sinapsis cerebrales. Estas uniones pueden mejorar su eficacia de envío de señales
mediante el proceso de aprendizaje del cerebro.
Las señales que usan las neuronas cerebrales son de tipo eléctrico y químico. La señal
que se genera y que distribuye al axón es de tipo eléctrico. Sin embargo, utiliza señales de
tipo químico para comunicar el terminal del axón de una neurona con las dendritas de
otras.
Análogamente, en las redes neuronales artificiales, la unidad fundamental es el
elemento procesador, PE (process element). Éste, está compuesto por un número
determinado de variables de entrada y una o varias salidas.
El elemento procesador combina el conjunto de señales de entrada, mediante una
suma normalmente, para procesar dicho resultado en una función de transferencia,
denominada función de activación, que tendrá como resultado el valor de la señal de la
variable de salida.
La interconexión de las neuronas se realiza con una determinada arquitectura. Cada
conexión entre neuronas recibe un determinado peso que ponderará cada entrada. Con
esto, la entrada es la suma de las salidas de las neuronas que están conectadas a ella y
multiplicado por el peso de cada conexión.
HISTORIA DE LA COMPUTACIÓN NEURONAL:
En 1974 Paul Werbos desarrolla la idea básica del el algoritmo de aprendizaje hacia
atrás (backpropagation).
Estado de Activación: Los estados del sistema en un tiempo “t” se representan por
un vector A(t). Los valores de activación pueden ser continuos o discretos, limitados o
ilimitados. Si son discretos, suelen tomar un conjunto discreto de valores binarios, así un
estado activo se indicaría con un “1” y un estado pasivo se representaría por un “0”. En
otros modelos se considera un conjunto de estados de activación, en cuyo valor entre
[0,1], o en el intervalo [-1,1], siendo una función sigmoidal.
Función de Salida o de Transferencia: Asociada con cada unidad hay una función de
salida, que transforma el estado actual de activación en una señal de salida. Existen
cuatro funciones de transferencia típicas que determinan distintos tipos de neuronas:
Función escalón, función lineal y mixta, sigmoidal, función gaussiana.
Conexiones: Tiene asociado un peso, que es el que hace que la red adquiera
conocimiento. Se considera que el efecto de cada señal es aditivo, de tal forma que la
entrada neta que recibe una neurona es la suma del producto de cada señal individual
por el valor de la sinapsis que conecta ambas neuronas y es lo que se conoce como red de
propagación. Se utiliza una matriz W con todos los pesos, Si wji es positivo indica que la
relación entre las neuronas es excitadora, es decir, siempre que la neurona i esté
activada, la neurona j recibirá una señal que tenderá a activarla. Si wji es negativo, la
sinapsis será inhibidora. Finalmente si wji es 0 se supone que no hay conxión entre
ambas.
Cuando ninguna salida de las neuronas es entrada de neuronas del mismo nivel o de
niveles precedentes, la red se describe como de propagación hacia adelante.
Cuando las salidas pueden ser conectadas como entradas de neuronas de niveles
previos o del mismo nivel, incluyéndose ellas mismas, la red es de propagación hacia
atrás.
Regla de activación: Combina las entradas con el estado actual de la neurona para
producir un nuevo estado de activación. Esta función F produce un nuevo estado de
activación en una neurona a partir del estado que existía y la combinación de las entradas
con los pesos de las conexiones. Esa F es denominada función de activación, y las salidas
se obtienen en una neurona para las diferentes formas de F.
FUNCIONAMIENTO:
Las redes neuronales artificiales, a diferencia de los algoritmos que son instrucciones
previamente programadas, deben ser previamente entrenadas. Esto significa que a la red
se le muestra en su capa de entrada unos ejemplos y ella misma se ajusta en función de
alguna regla de aprendizaje.
En los sistemas de computación neuronal cada elemento sólo puede realizar uno, o
como mucho, varios cálculos. La potencia del procesado de las RNA se mide
principalmente por el número de interconexiones actualizadas por segundo durante el
proceso de entrenamiento o aprendizaje. Sin embargo las máquinas de Von Neuman se
miden por el número de instrucciones que ejecuta por segundo el procesador central
CPU.
Existen dos fases en toda aplicación de las redes neuronales: la fase de aprendizaje o
entrenamiento y la fase de prueba. En la fase de entrenamiento, se usa un conjunto de
datos o patrones de entrenamiento para determinar los pesos (parámetros de diseño)
que definen el modelo neuronal. Una vez entrenado este modelo, se usará en la llamada
fase de prueba o funcionamiento directo, en la que se procesan los patrones de prueba
que constituyen la entrada habitual de la red, analizándose de esta manera las
prestaciones definitivas de la red.
Fase de Prueba: los parámetros de diseño de la red neuronal se han obtenido a partir
de unos patrones representativos de las entradas que se denominan patrones de
entrenamiento. Los resultados pueden ser tanto calculados de una vez como adaptados
iterativamente, según el tipo de red neuronal, y en función de las ecuaciones dinámicas
de prueba. Una vez calculados los pesos de la red, los valores de las neuronas de la última
capa, se comparan con la salida deseada para determinar la validez del diseño.
TOPOLOGIAS PRINCIPALES:
Normalmente las redes más complejas y más grandes ofrecen mejores prestaciones
en el cálculo computacional que las redes simples. Las configuraciones de las redes
construidas presentan aspectos muy diferentes pero tienen un aspecto común, el
ordenamiento de las neuronas en capas o niveles imitando la estructura de capas que
presenta el cerebro en algunas partes.
Las redes multicapa se forman con un grupo de capas simples en cascada. La salida
de una capa es la entrada de la siguiente capa. Se ha demostrado que las redes multicapa
presentan cualidades y aspectos por encima de las redes de una capa simple.
MODOS DE ENTRENAMIENTO:
Aprendizaje por corrección de error: Consiste en ajustar los pesos de las conexiones
de la red en función de la diferencia entre los valores deseado y los obtenidos en la salida
de la red, es decir en función de los errores cometidos a la salida.
En estas redes cada neurona tiene asignado un peso total, suma de todos los pesos
de las conexiones a su entrada. El aprendizaje solo afecta a las neuronas activas,
redistribuyendo el peso total entre todas las conexiones que llegan a la neurona ganadora
y repartiendo esta cantidad por igual entre todas las conexiones procedentes de
neuronas activas. Por lo tanto una neurona “j” se modificara solo si es excitada por la
neurona precedente “i”.
Fácil inserción dentro de la tecnología existente: Debido a que una red puede ser
rápidamente entrenada, comprobada, verificada y trasladada a una implementación
hardware de bajo costo, es fácil insertar RNA para aplicaciones específicas dentro de
sistemas existentes (chips, por ejemplo).
APLICACIONES:
Conversión Texto a Voz: La conversión texto-voz consiste en cambiar los símbolos
gráficos de un texto en lenguaje hablado. El sistema de computación neuronal presentado
por Sejnowski y Rosemberg, el sistema llamado NetTalk, convierte texto en fonemas y con
la ayuda de un sintetizador de voz (Dectalk) genera voz a partir de un texto escrito.
Procesado Natural del Lenguaje: incluye el estudio de cómo se construyen las reglas
del lenguaje. Los científicos del conocimiento Rumelhart y McClelland han integrado una
red neuronal de proceso natural del lenguaje. El sistema realizado ha aprendido el tiempo
verbal pass tense de los verbos en Inglés. Las características propias de la computación
neuronal como la capacidad de generalizar a partir de datos incompletos y la capacidad
de abstraer, permiten al sistema generar buenos pronósticos para verbos nuevos o
verbos desconocidos.
Filtro de Ruido: las RNA también pueden ser utilizadas para eliminar el ruido de una
señal. Estas redes son capaces de mantener en un alto grado las estructuras y valores de
los filtros tradicionales.
Simuladores Software: constituyen una de las formas más versátiles con las que se
pueden implementar redes neuronales. Estos programas constituyen todo un sistema de
desarrollo y realización de prototipos de redes neuronales. Estos programas se utilizan
para diseñar, construir, entrenar y probar redes neuronales artificiales para resolver
problemas complejos y problemas del mundo real.
Aplicaciones prácticas en la
ingeniería
Modelización de las propiedades termodinámicas utilizando redes neuronales:
Aplicación a los refrigerantes
El objetivo de este trabajo consiste en la elaboración óptima de los modelos neuronales para la
predicción del factor de compresibilidad.
La salida será el factor de compresibilidad (Z) y las entradas serán la temperatura (T) y la presión
(P), tanto como para fase liquida como gaseosa.
Solo se ha considerado una capa oculta, calculando el número óptimo de capas ocultas mediante
ensayo y error. Los modelos neuronales de la fase liquida y gaseosa se realizan por separado.
Para la obtención de datos simultáneos de las propiedades PLV (Equilibrio de fases) y PVT
(presión, temperatura y volumen) se ha usado un equipo dedicado creando una base de datos
adaptable (entre 240 y 340 K y de 0,001 a 20 MPa) utilizando el software REFPROP 6.0.
Las propiedades derivadas tales como entalpía (H), entropía (S) y la capacidad calorífica (Cp) se
calculan a partir de Z en función de la temperatura y la presión mediante derivadas.
Para explicar que es un problema multirespuesta y la técnica estadística más exitosa a la fecha
para su solución se utilizará el ejemplo del artículo "Modified Desirability Functions for últiple
response Optimization", publicado por Del Castillo, Montgomery y McCarville, del Journal of
Quality Technology, Vol. 28, N° 3.
En este caso Del Castillo et al. (1996), presentan un ejemplo aplicativo sobre una faja
transportadora metálica para calentamiento y adhesión de conductores de circuitos integrados en
placas de plástico.
Aplicando redes neuronales a los mismos datos se siguió la metodología sugerida por Lee-Ing
Tong y kun- Lin Hsieh, en su artículo "A Novel mean of Applying Neural Netwoks to Optimize the
Multireponse Problem", publicado en el Quality Engineering, Vol.13, N° 1; son:
Para ello se aplicaron redes neuronales BP, con arquitectura 6-5-3 para la Red Inversa y 3-5-6 para
la Red Directa.
La metodología fue la siguiente:
Paso 1. Encontrar la red neuronal que con los datos de salida como entradas permita obtener los
valores objetivos, Red Inversa. Obtenida la red entrenada se aplican los datos objetivo para
obtener los valores de entrada optimizados.
Paso 2. Encontrar la red neuronal que con los datos de entrada permita obtener los valores
objetivo. Obtenida la red entrenada se aplican los datos de entrada optimizados para obtener los
valores objetivos optimizados.
Comparación de valores:
Conclusiones:
La comparación de los valores se muestra en el Cuadro1. Aquí, se puede apreciar que la red
desarrollada en el presente trabajo con BP traingdm, esta más cerca de los valores objetivos que
la Red desarrollada por Tong y Hsieng, que la red newgrnn y que lo calculado mediante la función
de deseabilidad de Del Castillo et al. (1996)
RRNN y Matlab
Algoritmo del Perceptron para solucionar el problema de la AND
% ANDPER.M
% Programa que implementa un Perceptron que resuelve
% la funcion AND
% Autor:
% Jesús Alfonso López S.
W=rand(2,1);
B=rand(1,1);
Neta=W'*X+B*ones(1,4);
Yred=escalon(Neta);
disp('La salida inicial de la red es')
disp(Yred)
N=50;
figure;
plot(X(1,1:3),X(2,1:3),'ob');
axis([-0.2 1.2 -0.2 1.2])
hold on
plot(X(1,4),X(2,4),'or');
m=W(1)/W(2);
b=B/W(2);
x1=-0.2:0.2:1.2;x2=-m*x1-b;
plot(x1,x2,'k');
hold off;
for i=1:N
Neta=W'*X+B*ones(1,4);
Yred=escalon(Neta);
Waux=W'+0.5*(Yd-Yred)*X';
W=Waux';
B=B+0.5*(Yd-Yred)*ones(4,1);
Error=Yd-Yred;
if sum((Error.^2))==0
break;
end;
end;
Neta=W'*X+B*ones(1,4);
Yred=escalon(Neta);
disp('La salida final de la red es')
disp(Yred)
disp('Numero de iteraciones realizadas')
disp(i)
figure;
plot(X(1,1:3),X(2,1:3),'ob');
axis([-0.2 1.2 -0.5 1.2])
hold on
plot(X(1,4),X(2,4),'or');
m=W(1)/W(2);
b=B/W(2);
x1=-0.2:0.2:1.2;
x2=-m*x1-b;
plot(x1,x2,'k');
hold off;
% Fin Perceptron
A continuación tenemos la función escalon, necesaria para poder ejecutar el script anterior.
El Perceptron es una RNA que está en capacidad de realizar separaciones lineales veamos cómo se
puede realizar un problema de estos con ayuda del toolbox de redes neuronales del MATLAB
Con los siguientes pasos se puede resolver este problema con el MATLAB:
>> X=[0 0 1 1 ;0 1 0 1 ] ;
>> D=[0 0 0 1] ;
>> plotpv(X,D)
Donde:
[0 1;0 1] = Rango del valor de la entrada de la red neuronal, el número de filas de esta matriz lo
utilizará MATLAB para definir el número de entradas que tiene la red neuronal.
Ahora se procederá a generar unos pesos iniciales a la red, este paso no es necesario hacerlo pero
permite generar un perceptron con una superficie de separación conocida
>> Pesos=red.iw{1,1};
>> Bias=red.b{1};
>>plotpc(Pesos,Bias)
El comando anterior adiciona la recta clasificadora al gráfico generado por plotpv, la gráfica
quedaría así:
Entrenamiento de la red
Donde
Al entrenar MATLAB nos grafica la manera como va evolucionando error al transcurrir las
iteraciones
Cuando se ha entrenado la red, se puede visualizar en la gráfica donde se muestra la línea
clasificadora que la red ha llevado a cabo la tarea.
>> figure;
>> Pesos=red.iw{1,1};
>> Bias=red.b{1};
>> plotpv(X,D)
>>plotpc(Pesos,Bias)
Validación de la red
>> % Prueba de la red ante el patrón de prueba, W,b son los pesos y el boas de la red entrenada
a =0
a = sim(red, in_prueba)
a =1