Está en la página 1de 27

Escuela de Ingeniería Industrial

- LEÓN –

REDES
NEURONALES

ASIGNATURA: Inteligencia Artificial

PROFESOR: Héctor Alaiz Moretón

ALUMNOS: Víctor Rodríguez Robles

Carlos Calderón Aller

CURSO: 2013/2014
Contenido

ESTRUCTURA TEÓRICA : ..................................................................................................................... 3


DEFINICIÓN: ............................................................................................................................. 3
REDES NEURONALES BIOLÓGICAS Y ARTIFICIALES: ................................................................... 3
HISTORIA DE LA COMPUTACIÓN NEURONAL: ........................................................................... 5
ESTRUCTURA BÁSICA DE LAS RNA: ........................................................................................... 6
FUNCIONAMIENTO: .................................................................................................................. 7
TOPOLOGIAS PRINCIPALES: ...................................................................................................... 8
MODOS DE ENTRENAMIENTO:................................................................................................ 10
VENTAJAS DE LAS RNA: ........................................................................................................... 11
APLICACIONES: ........................................................................................................................... 13
Aplicaciones prácticas en la ingeniería .................................................................................... 15
Modelización de las propiedades termodinámicas utilizando redes neuronales: Aplicación a
los refrigerantes .................................................................................................................. 15
APLICACIÓN DE REDES NEURONALES PARA OPTIMIZAR ....................................................... 17
PROBLEMAS MULTIRESPUESTA EN MEJORADE LA CALIDAD ................................................. 17
RRNN y Matlab ........................................................................................................................... 21
Algoritmo del Perceptron para solucionar el problema de la AND.......................................... 21
Perceptron para solucionar el problema de la AND usando el toolbox de redes neuronales .. 22
ESTRUCTURA TEÓRICA:

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.

REDES NEURONALES BIOLÓGICAS Y ARTIFICIALES:


Las redes neuronales artificiales están basadas en el funcionamiento del cerebro
humano por ser este el sistema de cálculo más complejo conocido.

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 1943, el neurobiólogo Warren McCulloch, y el estadístico Walter Pitss, publicaron


el artículo "A logical calculus of Ideas Imminent in Nervous Activity". Este artículo
constituyó la base y el inicio del desarrollo en diferentes campos como son los
Ordenadores Digitales, la Inteligencia Artificial y el funcionamieto del ojo (red
Perceptron).

En 1956, los pioneros de la Inteligencia Artificial, Minsky, McCarthy, Rochester,


Shanon, organizaron la primera conferencia de Inteligencia Artificial.

En 1957, Frank Rosenblatt publicó el mayor trabajo de investigación en computación


neuronal realizado hasta esas fechas. Su trabajo consistía en el desarrollo de un elemento
llamado "Perceptron".
El perceptron es un sistema clasificador de patrones que puede identificar patrones
geométricos y abstractos.

En 1959, Bernard Widrow en Stanford desarrolló un elemento adaptativo lineal


llamado "Adaline" (Adaptive Linear Neuron). La Adaline y una versión de dos capas,
llamada "Madaline", fueron utilizadas en distintas aplicaciones como reconocimiento de
voz y caracteres, predicción del tiempo, control adaptativo y sobre todo en el desarrollo
de filtros adaptativos que eliminen los ecos de las líneas telefónicas.

A mediados de los años 60, Minsky y Papert pertenecientes al Laboratorio de


Investigación de Electrónica del MIT (Massachussets Institute Technology) comenzaron
un trabajo profundo de crítica al perceptron. La conclusión de este trabajo, es que el
Perceptron y la Computación Neuronal no eran temas interesantes que estudiar y
desarrollar. A partir de este momento descendieron drásticamente las inversiones en la
investigación de la computación neuronal.

Teuvo Kohonen, de la Universidad de Helsinki, es uno de los mayores impulsores de


la computación neuronal de la década de los 70. De su trabajo de investigación destacan
dos aportaciones: la primera es la descripción y análisis de una clase grande de reglas
adaptativas, reglas en las que las conexiones ponderadas se modifican de una forma
dependiente de los valores anteriores y posteriores de las sinapsis. Y la segunda
aportación es el principio de aprendizaje competitivo en el que los elementos compiten
por responder a un estímulo de entrada, y el ganador se adapta él mismo para responder
con mayor efecto al estímulo.

En 1974 Paul Werbos desarrolla la idea básica del el algoritmo de aprendizaje hacia
atrás (backpropagation).

En 1977 Stephen Grossberg establece la Teoria de Resonancia Adaptada (TRA), que


es una arquitectura de red diferente a las anteriormente inventadas, simula otras
habilidades del cerebro como memoria a corto y largo plazo.
Actualmente, uno de los mayores grupos de investigación de los últimos años ha sido
el grupo PDP (Parallel Distributed Processing) formado por Rumelhart, McClelland y
Hinton. Rumelhart de la Universidad de Stanford es uno de los principales impulsores de
la red más utilizada en la mayoría de las aplicaciones actuales, la famosa red neuronal
Backpropagation. En la Universidad de Toronto, Hinton y Sejnowski han desarrollado una
máquina llamada Boltzman que consiste en la red de Hopfield con dos modificaciones
significativas. Bart Kosko ha diseñado una red llamada BAM (Bidirectional Associate
Memory) basado en la red de Grossberg.

ESTRUCTURA BÁSICA DE LAS RNA:

Las redes neuronales artificiales son modelos que intentan reproducir el


comportamiento del cerebro. Como tal modelo, realiza una simplificación, averiguando
cuáles son los elementos relevantes del sistema, bien porque la cantidad de información
de que se dispone es excesiva o bien porque es redundante. Una elección adecuada de
sus características, más una estructura conveniente, es el procedimiento convencional
utilizado para construir redes capaces de realizar determinada tarea.

Una red neuronal consiste en un conjunto de unidades elementales conectadas de


una forma concreta. El interés de las RNA no reside solamente en el modelo del elemento
sino en las formas en que se conectan estos elementos procesadores. Generalmente los
elementos PE están organizados en grupos llamados niveles o capas.

Se conoce como capa o nivel a un conjunto de neuronas cuyas entradas provienen de


la misma fuente y cuyas salidas se dirigen al mismo destino.

Unidad de proceso: Existen tres tipos de unidades en cualquier sistema: entradas,


salidas y ocultas. Las unidades de entrada reciben señales desde el entorno; las de salida
envían la señal fuera de la red, y las unidades ocultas son aquellas cuyas entradas y
salidas se encuentran dentro del sistema.

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.

Regla de Aprendizaje: En el cerebro humano el conocimiento se encuentra en la


sinapsis. En el caso de las RNA el conocimiento se encuentra en los pesos de las
conexiones entre neuronas. Todo proceso de aprendizaje implica cierto número de
cambios en estas conexiones. En realidad, puede decirse que se aprende modificando los
valores de lo pesos de la red.

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.

La arquitectura de las ANN parte de la organización de los sistemas de procesado en


paralelo, es decir, sistemas en los que distintos procesadores están interconectados. No
obstante los procesadores son unidades procesadoras simples, diseñadas para la suma de
muchas entradas y con un ajuste automático de las conexiones ponderadas.
Los sistemas expertos difieren de la programación tradicional en que la base del
conocimiento está separada del motor de inferencia (el método del procesado del
conocimiento). Esta característica permite que todo el conocimiento adicional pueda ser
añadido al sistema sin necesidad de tener que ser reprogramado todo el sistema. Esta
técnica requiere que exista una persona experta en un área y que se puedan crear reglas
que codifiquen el conocimiento.

En el desarrollo de una red neuronal no hay que programar ni el conocimiento ni las


reglas del procesamiento del conocimiento. La red neuronal aprende las reglas del
procesamiento del conocimiento mediante el ajuste de las conexiones ponderadas entre
las neuronas de distintas capas de la red.

Mientras que en los sistemas expertos el conocimiento se hace explícito en forma de


reglas, en la computación neuronal las RNA generan sus propias reglas aprendiendo de
los ejemplos que se les muestran en la fase de entrenamiento. El aprendizaje se consigue
a través de una regla de aprendizaje que adapta o cambia los pesos de las conexiones en
respuesta a los ejemplos de entrada, y opcionalmente también en respuesta a las salidas
deseadas.

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.

Fase de Aprendizaje: Aprenden por la actualización o cambio de los pesos sinápticos


que caracterizan a las conexiones. Los pesos son adaptados de acuerdo a la información
extraída de los patrones de entrenamiento nuevos que se van presentando.

TOPOLOGIAS PRINCIPALES:

La capacidad de cálculo y potencia de la computación neuronal proviene de las


múltiples conexiones de las neuronas artificiales que constituyen las redes RNA.

La red más simple es un grupo de neuronas ordenadas en una capa (monocapa).


Cada una de las entradas está conectada a través de su peso correspondiente a cada
neurona artificial. En la práctica existen conexiones eliminadas e incluso conexiones entre
las salidas y entradas de las neuronas de una capa.

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:

El objetivo del entrenamiento de una RNA es conseguir que una aplicación


determinada, para un conjunto de entradas produzca el conjunto de salidas deseadas o
mínimamente consistentes. El proceso de entrenamiento consiste en la aplicación
secuencial de diferentes conjuntos o vectores de entrada para que se ajusten los pesos de
las interconexiones según un procedimiento predeterminado. Durante la sesión de
entrenamiento los pesos convergen gradualmente hacia los valores que hacen que cada
entrada produzca el vector de salida deseado.

Los algoritmos de entrenamiento o los procedimientos de ajuste de los valores de las


conexiones de las RNA se pueden clasificar en dos grupos:

Entrenamiento Supervisado: estos algoritmos requieren el emparejamiento de cada


vector de entrada con su correspondiente vector de salida. El entrenamiento consiste en
presentar un vector de entrada a la red, calcular la salida de la red, compararla con la
salida deseada, y el error o diferencia resultante se utiliza para realimentar la red y
cambiar los pesos de acuerdo con un algoritmo que tiende a minimizar el error.

Las parejas de vectores del conjunto de entrenamiento se aplican secuencialmente y


de forma cíclica. Se calcula el error y el ajuste de los pesos por cada pareja hasta que el
error para el conjunto de entrenamiento entero sea un valor pequeño y aceptable.

Hay tres formas de llevar a cabo el aprendizaje:

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.

Aprendizaje por refuerzo: Es un aprendizaje más lento, durante el aprendizaje este


modo de aprendizaje no tiene un ejemplo completo del comportamiento deseado, es
decir no se indica la salida exactamente durante el entrenamiento. La función del
supervisor durante este aprendizaje es indicar una señal de refuerzo en el caso de que la
salida se ajuste a la que deseamos, en función de ello se ajustan los pesos basándose en
un mecanismo de probabilidades.

Aprendizaje estocástico: Consiste en cambiar aleatoriamente lo valores de los pesos


de las conexiones de la red y evaluar el efecto que se produce a partir del objetivo
deseado y de distribuciones de probabilidad.

Entrenamiento No Supervisado: los sistemas neuronales con entrenamiento


supervisado han tenido éxito en muchas aplicaciones y sin embargo tienen muchas
críticas debido a que desde el punto de vista biológico no son muy lógicos. Resulta difícil
creer que existe un mecanismo en el cerebro que compare las salidas deseadas con las
salidas reales.
Los sistemas no supervisados son modelos de aprendizaje más lógicos en los sistemas
biológicos. Estos sistemas de aprendizaje no supervisado no requieren de un vector de
salidas deseadas y por tanto no se realizan comparaciones entre las salidas reales y
salidas esperadas.
El conjunto de vectores de entrenamiento consiste únicamente en vectores de
entrada. El algoritmo de entrenamiento modifica los pesos de la red de forma que
produzca vectores de salida consistentes. El proceso de entrenamiento extrae las
propiedades estadísticas del conjunto de vectores de entrenamiento y agrupa en clases
los vectores similares.

Se consideran dos tipos de aprendizaje no supervisado:

Aprendizaje hebbiano: Se podría decir que el aprendizaje consiste en el ajuste de los


pesos de las conexiones de acuerdo con la correlación (+1 y -1) de los valores de
activación (salidas) de las neuronas conectadas. Cuando dos acciones son activas
(positivas) la conexión se refuerza, mientras que si una es activa y otra pasiva la conexión
se debilita.

Aprendizaje competitivo y cooperativo: Esta “competición” se lleva a cabo en todas


las capas de la red, estas neuronas tienen conexiones recurrentes de autoexcitación y
conexiones de inhibición con las neuronas vecinas, si el aprendizaje es cooperativo estas
conexiones serán de excitación en vez de inhibición.

El objetivo de este aprendizaje es que las informaciones similares formen parte de la


misma categoría y por lo tanto activen la misma neurona de salida. Las categorías son
creadas por la misma red, dado que es aprendizaje no supervisado.

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”.

VENTAJAS DE LAS RNA:

Aprendizaje adaptativo: Es una de las características más atractivas de las redes


neuronales, es la capacidad de aprender a realizar tareas basadas en un entrenamiento o
una experiencia inicial.

Autoorganización: Las redes neuronales usan su capacidad de aprendizaje adaptativo


para organizar la información que reciben durante el aprendizaje y/o la operación. Una
RNA puede crear su propia organización o representación de la información que recibe
mediante una etapa de aprendizaje. Esta autoorganización provoca la facultad de las
redes neuronales de responder apropiadamente cuando se les presentan datos o
situaciones a los que no habían sido expuestas anteriormente.

Tolerancia a fallos: Comparados con los sistemas computacionales tradicionales, los


cuales pierden su funcionalidad en cuanto sufren un pequeño error de memoria, en las
redes neuronales, si se produce un fallo en un pequeño número de neuronas, aunque el
comportamiento del sistema se ve influenciado, sin embargo no sufre una caída
repentina.

Operación en tiempo real: Los computadores neuronales pueden ser realizados en


paralelo, y se diseñan y fabrican máquinas con hardware especial para obtener esta
capacidad.

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.

Compresión de Imágenes: la compresión de imágenes es la transformación de los


datos de una imagen a una representación diferente que requiera menos memoria o que
se pueda reconstruir una imagen imperceptible. Cottrel, Munro y Zisper de la Universidad
de San Diego y Pisttburgh han diseñado un sistema de compresión de imágenes utilizando
una red neuronal con un factor de compresión de 8:1.

Reconocimiento de Caracteres: es el proceso de interpretación visual y de


clasificación de símbolos. Los investigadores de Nestor, Inc. han desarrollado un sistema
de computación neuronal que tras el entrenamiento con un conjunto de tipos de
caracteres de letras, es capaz de interpretar un tipo de carácter o letra que no haya visto
con anterioridad.

Reconocimiento de Patrones en Imágenes: una aplicación típica es la clasificación de


objetivos detectados por un sonar. Existen varias ANN basadas en la popular
Backpropagation cuyo comportamiento es comparable con el de los operadores
humanos. Otra aplicación normal es la inspección industrial.

Problemas de Combinatoria: en este tipo de problemas la solución mediante cálculo


tradicional requiere un tiempo de proceso (CPU) que es exponencial con el número de
entradas. Un ejemplo es el problema del vendedor; el objetivo es elegir el camino más
corto posible que debe realizar el vendedor para cubrir un número limitado de ciudades
en un área geográfica específica. Este tipo de problema ha sido abordado con éxito por
Hopfield y el resultado de su trabajo ha sido el desarrollo de una RNA que ofrece buenos
resultados para este problema de combinatoria.

Procesado de la Señal: en este tipo de aplicación existen tres clases diferente de


procesado de la señal que han sido objeto de las RNA como son la predicción, el
modelado de un sistema y el filtrado de ruido.
Predicción: en el mundo real existen muchos fenómenos de los que conocemos su
comportamiento a través de una serie temporal de datos o valores. Lapedes y Farber del
Laboratorio de Investigación de los Álamos, han demostrado que la red backpropagation
supera en un orden de magnitud a los métodos de predicción polinómicos y lineales
convencionales para las series temporales caóticas.

Modelado de Sistemas: los sistemas lineales son caracterizados por la función de


transferencia que no es más que una expresión analítica entre la variable de salida y una
variable independiente y sus derivadas. Las RNA también son capaces de aprender una
función de transferencia y comportarse correctamente como el sistema lineal que está
modelando.

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.

Modelos Económicos y Financieros: una de las aplicaciones más importantes del


modelado y pronóstico es la creación de pronósticos económicos como por ejemplo los
precios de existencias, la producción de las cosechas, el interés de las cuentas, el volumen
de las ventas etc. Las redes neuronales están ofreciendo mejores resultados en los
pronósticos financieros que los métodos convencionales.

ServoControl: un problema difícil en el control de un complejo sistema de


servomecanismo es encontrar un método de cálculo computacional aceptable para
compensar las variaciones físicas que se producen en el sistema. Entre los inconvenientes
destaca la imposibilidad en algunos casos de medir con exactitud las variaciones
producidas y el excesivo tiempo de cálculo requerido para la obtención de la solución
matemática. Existen diferentes redes neuronales que han sido entrenadas para
reproducir o predecir el error que se produce en la posición final de un robot. Este error
se combina con la posición deseada para proveer una posición adaptativa de corrección y
mejorar la exactitud de la posición final.

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.

Aceleradores Hardware: la naturaleza paralela de la computación neuronal se presta


a realizar diseños concretos y a medida de dispositivos físicos, aceleradores hardware,
que aceleren la ejecución de los cálculos. Los aceleradores hardware para los sistemas de
computación neuronal son dispositivos físicos constituidos por diferentes procesadores
interconectados que ayudan a la realización y ejecución del comportamiento de las RNA.

Chips de Silicio: Otro de los campos de la investigación en el mundo de las


RNA es la integración de todos los componentes de computación neuronal en un chip de
silicio. Existen muchas compañías y centros de investigación que están trabajando en el
desarrollo de circuitos integrados que realizan computación neuronal. La mayoría de las
aplicaciones de estos chips está siendo la simulación de procesos sensitivos como la visión
de imágenes y la audición de sonidos.

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.

Estudiaremos 3 tipos de refrigerante como vemos en la grafica:


La desviación estándar del factor de compresión responde a la siguiente fórmula:

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.

No entraremos en el cálculo de las derivadas pero si en los resultados obtenidos.


APLICACIÓN DE REDES NEURONALES PARA OPTIMIZAR

PROBLEMAS MULTIRESPUESTA EN MEJORADE LA CALIDAD

 PROBLEMAS MULTIRESPUESTA Y SOLUCIÓN ESTADÍSTICA

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.

El calentamiento se da en un proceso continuo a través de una corriente de aire caliente(X1), de la


faja metálica a la temperatura (X2), y de un bloque de calentamiento a alta temperatura (X3). Se
busca obtener la placa (de plástico) con los circuitos adheridos, pero las placas deben tener
determinadas temperaturas. Si se sobre pasa demasiado dichas temperaturas. valores objetivos,
las placas se pueden dañar. Estas condiciones de temperaturas deben alcanzar las placas en
diversos puntos (valores objetivos) son: Y1, Y2, Y3, Y4, Y5, Y6.

Los datos se presentan a continuación:


Del Castillo et al. (1996), desarrollaron una nueva función de solución de la función de
deseabilidad que es superior a la de Harrington, y a la de Hooke-Jeeves.

Los valores objetivo utilizados son:

Y1 = 190; Y2 = 185; Y3 = 185; Y4 = 190; Y5 = 185; Y6 = 185;

Habiéndose obtenido como resultados para los parámetros de entrada:

X1 = 84,15 Ft3/min, X2 = 450 ° C; X3 = 329,8 °C;

Y con ellos para los valores objetivos los siguientes:

Y1 = 186,9°C; Y2 = 173,0°C; Y3 = 170,1°C; Y4 = 190,0°C; Y5 = 170,9°C; Y6 = 182,4°C.

 SOLUCIÓN CON REDES NEURONALES

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:

X1 = 72.674 Ft3/min; X2 = 477,112 ° C; X3 = 348,118 °C;

y con ellos para los valores objetivo los siguientes:

Y1 = 187,4 °C; Y2 = 181,0°C; Y3 = 178,6°C; Y4 = 190,3°C; Y5 = 173,1°C; Y6 = 186,1°C.

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.

En el siguiente gráfico se aprecia el método seguido:

Los resultados obtenidos son:

Aplicando la Red Neuronal BP traingdm se obtuvo

X1 = 74,7560 Ft3/min; X2 = 482,9671°C; X3 = 322,0778 °C;

y con ellos para los valores objetivo los siguientes:


Y1 = 188,3414°C; Y2 = 181,7106 °C; Y3 = 184,8623°C; Y4 = 195,5162 °C;

Y5 = 175,3033 °C; Y6 = 190,8334 °C.

Aplicando la Red Neuronal newgrnn se obtuvo

X1 = 80 Ft3/min; X2 = 450° C; X3 = 350 °C;

y con ellos para los valores objetivo los siguientes:

Y1 = 181°C; Y2 = 180°C; Y3 = 184°C; Y4 = 192°C; Y5 = 175°C; Y6 = 190°C.

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

El Perceptron por su simplicidad se puede implementar sin mucha complicación en un lenguaje de


programación como MATLAB, el siguiente código implementa un Perceptron para resolver el
problema de la función lógica AND.

% ANDPER.M
% Programa que implementa un Perceptron que resuelve
% la funcion AND
% Autor:
% Jesús Alfonso López S.

X=[0 0 1 1;0 1 0 1];


Yd=[0 0 0 1];

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.

function [ out ] = escalon( in )


% ESCALON:M
% Programa que implementa una función de activación
% tipo escalón, invocada des ANDPER:M%
for i=1:4
if in(i)>=0
out(i)=1;
else
out(i)=0;
end;
end

Perceptron para solucionar el problema de la AND usando el toolbox de redes


neuronales

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

Entre las funciones utilizadas por el MATLAB para el Perceptron se tienen:

NEWP - Inicializa el Perceptron.

PLOTPV - Grafica los vectores de entrada cuando la salida es 1/0.

PLOTPC - Grafica la línea de clasificación que genera el Perceptron.


TRAIN - Entrena la red con el algoritmo del Perceptron.

SIM - Simula o prueba la red.

Solución del problema de función lógica AND

La función lógica se define como:

Con los siguientes pasos se puede resolver este problema con el MATLAB:

 Definición del problema:

Definir el problema que una red neuronal va a resolver es proporcionarle a la misma la


información necesaria para que pueda llevar la tarea con éxito, en otras palabras en este paso se
le define a red neuronal los patrones de aprendizaje que se van a utilizar el proceso de
entrenamiento. En MATLAB esto se hace definiendo dos matrices una para las entradas y otra
para las salidas donde cada patrón de aprendizaje se define por columnas, los comandos
necesarios para lo anterior son:

>> % Definición de la función lógica AND

>> X=[0 0 1 1 ;0 1 0 1 ] ;

>> D=[0 0 0 1] ;

Para ver la gráfica de estos patrones se usa el comando plotpv

>> plotpv(X,D)

La gráfica resultante es la siguiente :


Como se puede observar MATLAB gráfica los puntos dados en el vector X y le asigna un símbolo
para la clasificación dependiendo de la salida deseada, en esta caso:

Para salida deseada cero (0) = o

Para salida deseada uno (1) = +

 Inicialización de la red neuronal

Ya teniendo los patrones de entrenamiento que definen el problema a resolver, se procede a


inicializar la red neuronal, para el caso del Perceptron se usa la función initp de la siguiente
manera:

>> red = newp([0 1;0 1],1)

Donde:

red = objeto donde se va almacenar la red creada por el MATLAB

[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.

1 = Número de neuronas que tiene la red neuronal en la capa de salida

X = Entrada de los patrones de aprendizaje

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

>> red.iw{1,1}=[1 1];


>> red.b{1}=0.5;

>> Pesos=red.iw{1,1};

>> Bias=red.b{1};

Con el siguiente comando se grafica la línea de separación que tiene el Perceptron

>>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

El entrenamiento de la red se realiza con el comando Train el cual implementa un entrenamiento


con la regla de aprendizaje tipo Perceptron, en MATLAB el entrenamiento se hace así:

>> red = train(red,X,D)

Donde

red = red a ser entrenada por el MATLAB.

X = Entrada de los patrones de aprendizaje.

D = Salida deseada de los patrones de aprendizaje.

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

Luego de tener una red entrenada se procede a validar si el comportamiento de la misma es


correcto o no, para esto se usa el comando sim como se muestra a continuación:

>> in_prueba=[0;0]; % Patrón de prueba

>> % Prueba de la red ante el patrón de prueba, W,b son los pesos y el boas de la red entrenada

>> a = sim(red, in_prueba)

a =0

>> % Otro patón de prueba

>> in_prueba=[1;1]; % Patrón de prueba>>

a = sim(red, in_prueba)

a =1

Como se puede observar el comportamiento de la red es el adecuado por lo que se da por


finalizado el entrenamiento.

También podría gustarte