Está en la página 1de 22

Edison Andrés Montalván

Luis Miguel Mejía


Diego Rubiro Saltos
REDES
23/02/2017

NEURONALES
ARTIFICIALES
Contenido
INTRODUCCIÓN ........................................................................................................................ 3
Acerca de las redes neuronales........................................................................................... 3
RESEÑA HISTÓRICA ............................................................................................................... 4
Historia de las redes neuronales. ........................................................................................ 4
GENERALIDADES ..................................................................................................................... 5
Definiciones de una red neuronal. ....................................................................................... 5
Ventajas que ofrecen la red neuronal. ................................................................................ 6
Aprendizaje adaptativo. ...................................................................................................... 6
Auto-organización. ................................................................................................................. 7
Tolerancia a fallos. ................................................................................................................. 7
Operación en tiempo real. ..................................................................................................... 8
Fácil inserción dentro de la tecnología existente. ............................................................. 8
Redes neuronales y computadoras digitales. .................................................................... 8
ELEMENTOS BÁSICOS ........................................................................................................... 8
Elementos básicos que componen una red neuronal. ..................................................... 8
APRENDIZAJE, VALIDACIÓN Y CODIFICACIÓN ............................................................... 9
Niveles o capas de una red neuronal. ................................................................................. 9
Tipos de neuronas artificiales. ............................................................................................ 10
Técnicas de decisión ........................................................................................................... 10
Mecanismos de aprendizaje ............................................................................................... 10
Aprendizaje supervisado.................................................................................................. 11
Aprendizaje por corrección de error. ............................................................................. 11
Aprendizaje por refuerzo. ................................................................................................ 12
Aprendizaje estocástico................................................................................................... 12
Aprendizaje no supervisado. .............................................................................................. 12
PRINCIPALES TIPOLOGÍAS ................................................................................................. 13
Topología de las redes neuronales. .................................................................................. 13
Redes monocapa ................................................................................................................. 13
Redes multicapa. .................................................................................................................. 13
Redes de propagación hacia atrás (backpropagation). .................................................. 14
APLICACIONES ....................................................................................................................... 14
Aplicaciones de las redes neuronales............................................................................... 14
MODELO COMPUTACIONAL BASADO EN REDES NEURONALES ............................ 15
OBJETIVO ................................................................................................................................. 15
PROGRAMAS COMPUTACIONALES A SER USADOS: ............................................. 15
WEKA ......................................................................................................................................... 15
JAVA ........................................................................................................................................... 15
METODOLOGIA ....................................................................................................................... 16
PROCESO EN EL QUE SE DESARROLLA ESTE MODELO .......................................... 17
MODELO DE PERCEPTRÓN ............................................................................................ 17
FUNCIO QUE UTILIZA ........................................................................................................ 17
FORMULA DE ACTIVACIÓN ............................................................................................. 17
ACTUALIZACIÓN DE LOS PESOS: ................................................................................. 18
PERCEPTRÓN CON NUEVOS PESOS .......................................................................... 18
ALGORITMO DEL PERCEPTRÓN SIMPLE ................................................................... 19
CONCLUCIONES ........................................................................................................................... 19
REFERENCIAS ........................................................................................................................ 20
ANEXOS ....................................................................................................................................... 20
ANEXO1 ................................................................................................................................... 20
ANEXO 2 .................................................................................................................................. 20
ANEXO 3 .................................................................................................................................. 20
ANEXO4 ................................................................................................................................... 20
ANEXO5 ................................................................................................................................... 21
INTRODUCCIÓN
Acerca de las redes neuronales.
El hombre se ha caracterizado siempre por su búsqueda constante de nuevas vías
para mejorar sus condiciones de vida. Estos esfuerzos le han servido para reducir
el trabajo en aquellas operaciones en las que la fuerza juega un papel
primordial. Los progresos obtenidos han permitido dirigir estos esfuerzos a otros
campos, como por ejemplo, a la construcción de máquinas calculadoras que
ayuden a resolver de forma automática y rápida determinadas operaciones que
resultan tediosas cuando se realizan a mano.

Uno de los primeros en acometer esta empresa fue Charles Babbage, quien trató
infructuosamente de construir una máquina capaz de resolver problemas
matemáticos. Posteriormente otros tantos intentaron construir máquinas similares,
pero no fue hasta la Segunda Guerra Mundial, cuando ya se disponía de
instrumentos electrónicos, que se empezaron a recoger los primeros frutos. En
1946 se construyó la primera computadora electrónica, ENIAC. Desde entonces
los desarrollos en este campo han tenido un auge espectacular.
Estas máquinas permiten implementar fácilmente algoritmos para resolver
multitud de problemas que antes resultaban engorrosos de resolver. Sin
embargo, se observa una limitación importante: ¿qué ocurre cuando el
problema que se quiere resolver no admite un tratamiento algorítmico, como
es el caso, por ejemplo, de la clasificación de objetos por rasgos comunes?
Este ejemplo demuestra que la construcción de nuevas máquinas más
versátiles requiere un enfoque del problema desde otro punto de vista. Los
desarrollos actuales de los científicos se dirigen al estudio de las capacidades
humanas como una fuente de nuevas ideas para el diseño de las nuevas
máquinas. Así, la inteligencia artificial es un intento por descubrir y describir
aspectos de la inteligencia humana que pueden ser simulados mediante
máquinas. Esta disciplina se ha desarrollado fuertemente en los últimos años
teniendo aplicación en algunos campos como visión artificial, demostración de
teoremas, procesamiento de información expresada mediante lenguajes humanos.

Las redes neuronales son más que otra forma de emular ciertas características
propias de los humanos, como la capacidad de memorizar y de asociar
hechos. Si se
examinan con atención aquellos problemas que no pueden expresarse a través
de un algoritmo, se observará que todos ellos tienen una característica
en común: la experiencia. El hombre es capaz de resolver estas situaciones
acudiendo a la experiencia acumulada. Así, parece claro que una forma de
aproximarse al problema consista en la construcción de sistemas que sean capaces
de reproducir esta característica humana. En
definitiva, las redes neuronales no son más que un modelo artificial y
simplificado del
cerebro humano, que es el ejemplo más perfecto del que disponemos para
un sistema
que es capaz de adquirir conocimiento a través de la experiencia. Una red
neuronal es “un nuevo sistema para el tratamiento de la información, cuya
unidad básica de procesamiento está inspirada en la célula fundamental del
sistema nervioso humano: la neurona”.

Como ya se sabe, el pensamiento tiene lugar en el cerebro, que consta de


billones de neuronas interconectadas. Así, el secreto de la “inteligencia” -sin
importar como se defina- se sitúa dentro de estas neuronas interconectadas
y de su interacción.
También, es bien conocido que los humanos son capaces de aprender.
Aprendizaje
significa que aquellos problemas que inicialmente no pueden resolverse,
pueden ser resueltos después de obtener más información acerca del
problema. Por lo tanto, las
Redes Neuronales.
 Consisten de unidades de procesamiento que intercambian datos o
información.
 Se utilizan para reconocer patrones, incluyendo imágenes, manuscritos y
secuencias de tiempo (por ejemplo: tendencias financieras).
 Tienen capacidad de aprender y mejorar su funcionamiento.

Una primera clasificación de los modelos de redes neuronales podría ser,


atendiendo a su similitud con la realidad biológica:

1) El modelo de tipo biológico. Este comprende las redes que tratan de simular los
sistemas neuronales biológicos, así como las funciones auditivas o algunas
funciones básicas de la visión.
2) El modelo dirigido a aplicación. Este modelo no tiene por qué guardar
similitud con los sistemas biológicos. Su arquitectura está fuertemente
ligada a las necesidades de las aplicaciones para la que es diseñada.

RESEÑA HISTÓRICA
Historia de las redes neuronales.
1936 - Alan Turing. Fue el primero en estudiar el cerebro como una forma de
ver el mundo de la computación. Sin embargo, los primeros teóricos que concibieron los
fundamentos de la computación neuronal fueron Warren McCulloch, un neurofisiólogo,
y Walter Pitts, un matemático, quienes, en 1943, lanzaron una teoría acerca de la forma
de trabajar de las neuronas (Un Cálculo Lógico de la Inminente Idea de la
Actividad Nerviosa - Boletín de Matemática Biofísica 5: 115-133). Ellos modelaron
una red neuronal simple mediante circuitos eléctricos.

1949 - Donald Hebb. Fue el primero en explicar los procesos del aprendizaje
(que es el elemento básico de la inteligencia humana) desde un punto de vista
psicológico, desarrollando una regla de como el aprendizaje ocurría. Aun hoy, este es
el fundamento de la mayoría de las funciones de aprendizaje que pueden hallarse
en una red neuronal. Su idea fue que el aprendizaje ocurría cuando ciertos
cambios en una neurona eran activados. También intentó encontrar semejanzas entre
el aprendizaje y la actividad nerviosa. Los trabajos de Hebb formaron las bases de
la Teoría de las Redes Neuronales.
1950 - Karl Lashley. En sus series de ensayos, encontró que la información no
era almacenada en forma centralizada en el cerebro sino que era distribuida
encima de él.

1956 - Congreso de Dartmouth. Este Congreso frecuentemente se menciona para


indicar el nacimiento de la inteligencia artificial.

1957 - Frank Rosenblatt. Comenzó el desarrollo del Perceptron. Esta es la red


neuronal más antigua; utilizándose hoy en día para aplicación como identificador
de patrones. Este modelo era capaz de generalizar, es decir, después de haber
aprendido
una serie de patrones podía reconocer otros similares, aunque no se le hubiesen
presentado en el entrenamiento. Sin embargo, tenía una serie de limitaciones,
por
ejemplo, su incapacidad para resolver el problema de la función OR-exclusiva y,
en general, era incapaz de clasificar clases no separables linealmente.

1959 - Frank Rosenblatt: Principios de Neurodinámica. En este libro confirmó


que, bajo ciertas condiciones, el aprendizaje del Perceptron convergía hacia un
estado finito (Teorema de Convergencia del Perceptron).

1960 - Bernard Widroff/Marcian Hoff. Desarrollaron el modelo Adaline


(ADAptative LINear Elements). Esta fue la primera red neuronal aplicada a un
problema real (filtros adaptativos para eliminar ecos en las líneas telefónicas) que se ha
utilizado comercialmente durante varias décadas.

1961 - Karl Steinbeck: Die Lernmatrix. Red neuronal para simples realizaciones técnicas
(memoria asociativa).

1969 - Marvin Minsky/Seymour Papert. En este año casi se produjo la “muerte


abrupta” de las Redes Neuronales; ya que Minsky y Papert probaron (matemáticamente)
que el Perceptrons no era capaz de resolver problemas relativamente fáciles, tales como

GENERALIDADES
Definiciones de una red neuronal.
Existen numerosas formas de definir a las redes neuronales; desde las
definiciones cortas y genéricas hasta las que intentan explicar más detalladamente
qué son las redes neuronales. Por ejemplo:

1) Una nueva forma de computación, inspirada en modelos biológicos.


2) Un modelo matemático compuesto por un gran número de elementos
procesales organizados en niveles.
3) ...un sistema de computación compuesto por un gran número de elementos simples,
elementos de procesos muy interconectados, los cuales procesan información por
medio de su estado dinámico como respuesta a entradas externas.
4) Redes neuronales artificiales son redes interconectadas masivamente en
paralelo de elementos simples (usualmente adaptativos) y con organización
jerárquica,
las cuales intentan interactuar con los objetos del mundo real del mismo modo
que lo hace el sistema nervioso biológico.

Ventajas que ofrecen la red neuronal.


Debido a su constitución y a sus fundamentos, las redes neuronales artificiales
presentan un gran número de características semejantes a las del cerebro. Por
ejemplo,
son capaces de aprender de la experiencia, de generalizar de casos anteriores
a nuevos casos, de abstraer características esenciales a partir de entradas
que representan información irrelevante, etc. Esto hace que ofrezcan numerosas
ventajas y que este tipo de tecnología se esté aplicando en múltiples áreas. Entre las
ventajas se incluyen:
 Aprendizaje Adaptativo. Capacidad de aprender a realizar tareas basadas
en un entrenamiento o en una experiencia inicial.
 Auto-organización. Una red neuronal puede crear su propia organización o
representación de la información que recibe mediante una etapa de aprendizaje.
 Tolerancia a fallos. La destrucción parcial de una red conduce a una
degradación de su estructura; sin embargo, algunas capacidades de la red
se pueden retener, incluso sufriendo un gran daño.
 Operación en tiempo real. Los cómputos neuronales pueden ser realizados en
paralelo; para esto se diseñan y fabrican máquinas con hardware especial
para obtener esta capacidad.
 Fácil inserción dentro de la tecnología existente. Se pueden obtener chips
especializados para redes neuronales que mejoran su capacidad en ciertas
tareas. Ello facilitará la integración modular en los sistemas existentes.
Aprendizaje adaptativo.
La capacidad de aprendizaje adaptativo es una de las características más
atractivas de redes neuronales. Esto es, aprenden a llevar a cabo ciertas tareas
mediante un entrenamiento con ejemplos ilustrativos.

Como las redes neuronales pueden aprender a diferenciar patrones mediante


ejemplos y entrenamientos, no es necesario elaborar modelos a priori ni necesidad
de especificar funciones de distribución de probabilidad.

Las redes neuronales son sistemas dinámicos autoadaptativos. Son adaptables


debido a la capacidad de autoajuste de los elementos procesales (neuronas)
que componen el sistema. Son dinámicos, pues son capaces de estar
constantemente cambiando para adaptarse a las nuevas condiciones.

En el proceso de aprendizaje, los enlaces ponderados de las neuronas se ajustan de


manera que se obtengan ciertos resultados específicos. Una red neuronal no necesita
un algoritmo para resolver un problema, ya que ella puede generar su
propia distribución de pesos en los enlaces mediante el aprendizaje. También existen
redes que
continúan aprendiendo a lo largo de su vida, después de completado su período
de entrenamiento.
La función del diseñador es únicamente la obtención de la arquitectura
apropiada. No es problema del diseñador el cómo la red aprenderá a discriminar.
Sin
embargo, sí es necesario que desarrolle un buen algoritmo de aprendizaje que
le
proporcione a la red la capacidad de discriminar, mediante un entrenamiento con
patrones.

Auto-organización.
Las redes neuronales emplean su capacidad de aprendizaje adaptativo para
autoorganizar la información que reciben durante el aprendizaje y/o la operación.
Mientras que el aprendizaje es la modificación de cada elemento procesal,
la auto organización consiste en la modificación de la red neuronal completa para
llevar a cabo un objetivo específico.
Cuando las redes neuronales se usan para reconocer ciertas clases de patrones,
ellas auto organizan la información usada. Por ejemplo, la red llamada backpropagation,
creará su propia representación característica, mediante la cual puede reconocer
ciertos patrones.

Este auto organización provoca la generalización: facultad de las redes


neuronales de responder apropiadamente cuando se les presentan datos o
situaciones a las que no había sido expuesta anteriormente. El sistema puede
generalizar la entrada para obtener una respuesta. Esta característica es muy
importante cuando se tiene que
solucionar problemas en los cuales la información de entrada no es muy clara;
además
permite que el sistema dé una solución, incluso cuando la información de entrada
está especificada de forma incompleta.

Tolerancia a fallos.
Las redes neuronales fueron los primeros métodos computacionales con la
capacidad inherente de tolerancia a fallos. Comparados con los sistemas
computacionales tradicionales, los cuales pierden su funcionalidad cuando sufren
un pequeño error de memoria, en las redes neuronales, si se produce un fallo en un
número no muy grande de neuronas y aunque el comportamiento del sistema se ve
influenciado, no sufre una caída repentina.

Hay dos aspectos distintos respecto a la tolerancia a fallos:


a) Las redes pueden aprender a reconocer patrones con ruido,
distorsionados o incompletos. Esta es una tolerancia a fallos respecto a los
datos.
b) Las redes pueden seguir realizando su función (con cierta degradación)
aunque se destruya parte de la red.

La razón por la que las redes neuronales son tolerantes a los fallos es que tienen su
información distribuida en las conexiones entre neuronas, existiendo cierto grado de
redundancia en este tipo de almacenamiento. La mayoría de los ordenadores
algorítmicos y sistemas de recuperación de datos almacenan cada pieza de información
en un espacio único, localizado y direccionable. En cambio, las redes neuronales
almacenan información no localizada. Por lo tanto, la mayoría de las
interconexiones entre los nodos de la red tendrán sus valores en función de los
estímulos recibidos, y se generará un patrón de salida que represente la información
almacenada.
Operación en tiempo real.
Una de las mayores prioridades, casi en la totalidad de las áreas de aplicación, es la
necesidad de realizar procesos con datos de forma muy rápida. Las redes neuronales
se adaptan bien a esto debido a su implementación paralela. Para que la mayoría de
las redes puedan operar en un entorno de tiempo real, la necesidad de cambio en los
pesos de las conexiones o entrenamiento es mínimo.

Fácil inserción dentro de la tecnología existente.


Una red individual puede ser entrenada para desarrollar una única y bien definida
tarea (tareas complejas, que hagan múltiples selecciones de patrones,
requerirán sistemas de redes interconectadas). Con las herramientas
computacionales existentes (no del tipo PC), una red puede ser
rápidamente entrenada, comprobada, verificada y trasladada a una
implementación hardware de bajo coste. Por lo tanto, no se presentan
dificultades para la inserción de redes neuronales en aplicaciones
específicas, por ejemplo de control, dentro de los sistemas existentes.
De esta manera, las redes neuronales se pueden utilizar para mejorar sistemas
en forma incremental y cada paso puede ser evaluado antes de acometer un
desarrollo más amplio.

Redes neuronales y computadoras digitales.


Para entender el potencial de la computación neuronal, sería necesario hacer una breve
distinción entre sistemas de computación neuronales y digitales: los sistemas
neurológicos no aplican principios de circuitos lógicos o digitales. Un sistema de
computación digital debe ser síncrono o asíncrono. Si fuera asíncrono, la duración
de los impulsos neuronales debería ser variable para mantener uno de los valores
binarios por periodos de tiempo indefinido, lo cual no es el caso. Si el principio fuera
síncrono, se necesitaría un reloj global o maestro con el cual los pulsos estén
sincronizados. Éste tampoco es el caso. Las neuronas no pueden ser circuitos
de umbral lógico, porque hay miles de entradas variables en la mayoría de las neuronas
y el umbral es variable con el tiempo, siendo afectado por la estimulación,
atenuación, etc. La precisión y estabilidad de tales circuitos no es suficiente para definir
ninguna función booleana. Los procesos colectivos que son importantes en
computación neuronal no pueden implementarse por computación digital. Por
todo ello, el cerebro debe ser un computador analógico.

ELEMENTOS BÁSICOS
Elementos básicos que componen una red neuronal.
A continuación se puede ver, en la figura, un esquema de una red neuronal:
a misma está constituida por neuronas interconectadas y arregladas en tres capas
(esto último puede variar). Los datos ingresan por medio de la “capa de entrada”, pasan
a través de la “capa oculta” y salen por la “capa de salida”. Cabe mencionar que la capa
oculta puede estar constituida por varias capas.
Antes de comenzar el estudio sobre las redes neuronales, se debe aprender algo sobre
las neuronas y de cómo ellas son utilizadas por una red neuronal. En la siguiente se
compara una neurona biológica con una neurona artificial. En la misma se pueden
observar las similitudes entre ambas (tienen entradas, utilizan pesos y generan salidas).

Mientras una neurona es muy pequeña en sí misma, cuando se combinan cientos, miles
o millones de ellas pueden resolver problemas muy complejos. Por ejemplo el
cerebro humano se compone de billones de tales neuronas.

APRENDIZAJE, VALIDACIÓN Y CODIFICACIÓN


Niveles o capas de una red neuronal.
La distribución de neuronas dentro de la red se realiza formando niveles o
capas, con un número determinado de dichas neuronas en cada una de ellas. A partir
de su situación dentro de la red, se pueden distinguir tres tipos de capas:
- De entrada: es la capa que recibe directamente la información proveniente
de las fuentes externas de la red.
- Ocultas: son internas a la red y no tienen contacto directo con el entorno
exterior. El número de niveles ocultos puede estar entre cero y un
número elevado. Las neuronas de las capas ocultas pueden estar
interconectadas de distintas maneras, lo que determina, junto con su número,
las distintas topologías de redes neuronales.
- De salidas: transfieren información de la red hacia el exterior.

En la figura anterior se puede ver el ejemplo de la estructura de una posible red


multicapa, en la que cada nodo o neurona únicamente está conectada con
neuronas de un nivel superior. Notar que hay más conexiones que neuronas en sí; en
este sentido, se
dice que una red es totalmente conectada si todas las salidas desde un nivel
llegan a todos y cada uno de los nodos del nivel siguiente.

Tipos de neuronas artificiales.


Las neuronas artificiales se pueden clasificar de acuerdo a los valores que pueden
tomar. Por ahora es suficiente distinguir entre dos tipos principales:
a- Neuronas binarias.
b- Neuronas reales.

Las neuronas binarias solamente pueden tomar valores dentro del intervalo
{0, 1} o {-1, 1}, mientras que las neuronas reales pueden hacerlo dentro del
rango
[0, 1] o [-1, 1]. Los peso normalmente no están restringidos a un cierto intervalo,
aunque para aplicaciones específicas puede ser esto necesario.

Técnicas de decisión
En general, el proceso de decisión puede ser caracterizado como se muestra en el
diagrama de la figura:

Lo mismo ocurre cuando se utiliza una red neuronal como un sistema de sostén de
decisiones. La salida de la red neuronal es directa o indirectamente la solución
al problema o la decisión a tomar.

Mecanismos de aprendizaje
Se ha visto que los datos de entrada se procesan a través de la red neuronal con el
propósito de lograr una salida. También se dijo que las redes neuronales extraen
generalizaciones desde un conjunto determinado de ejemplos anteriores de
tales problemas de decisión. Una red neuronal debe aprender a calcular la salida
correcta para cada constelación (arreglo o vector) de entrada en el conjunto de
ejemplos. Este proceso de aprendizaje se denomina: proceso de entrenamiento
o acondicionamiento. El conjunto de datos (o conjunto de ejemplos) sobre el cual
este proceso se basa es, por ende, llamado: conjunto de datos de entrenamiento.

Si la topología de la red y las diferentes funciones de cada neurona (entrada,


activación y salida) no pueden cambiar durante el aprendizaje, mientras que los
pesos sobre cada una de las conexiones si pueden hacerlo; el aprendizaje de una red
neuronal significa: adaptación de los pesos.

En otras palabras el aprendizaje es el proceso por el cual una red neuronal


modifica sus pesos en respuesta a una información de entrada. Los cambios que
se
producen durante el mismo se reducen a la destrucción, modificación y creación
de conexiones entre las neuronas. En los sistemas biológicos existe una
continua destrucción y creación de conexiones entre las neuronas. En los modelos
de redes
neuronales artificiales, la creación de una nueva conexión implica que el peso
de la misma pasa a tener un valor distinto de cero. De la misma manera, una
conexión se destruye cuando su peso pasa a ser cero.

Durante el proceso de aprendizaje, los pesos de las conexiones de la red sufren


modificaciones, por lo tanto, se puede afirmar que este proceso ha terminado (la red ha
aprendido) cuando los valores de los pesos permanecen estables (dwij/dt = 0).

Un aspecto importante respecto al aprendizaje de las redes neuronales es el


conocer cómo se modifican los valores de los pesos, es decir, cuáles son los
criterios
que se siguen para cambiar el valor asignado a las conexiones cuando se
pretende que la red aprenda una nueva información.
Hay dos métodos de aprendizaje importantes que pueden distinguirse:
a- Aprendizaje supervisado.
b- Aprendizaje no supervisado.

Aprendizaje supervisado.
El aprendizaje supervisado se caracteriza porque el proceso de aprendizaje se
realiza mediante un entrenamiento controlado por un agente externo (supervisor,
maestro) que determina la respuesta que debería generar la red a partir de una
entrada determinada. El supervisor controla la salida de la red y en caso de que ésta
no coincida
con la deseada, se procederá a modificar los pesos de las conexiones, con el
fin de conseguir que la salida obtenida se aproxime a la deseada.

En este tipo de aprendizaje se suelen considerar, a su vez, tres formas de llevarlo a


cabo, que dan lugar a los siguientes aprendizajes supervisados:
1) Aprendizaje por corrección de error.
2) Aprendizaje por refuerzo.
3) Aprendizaje estocástico.

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 deseados y los obtenidos a la salida de la red, es
decir, en función del error cometido en la salida.

Un ejemplo de este tipo de algoritmos lo constituye la regla de aprendizaje del


Perceptron, utilizada en el entrenamiento de la red del mismo nombre que
desarrolló Rosenblatt en 1958 [Rosenblatt 58]. Esta es una regla muy simple, para cada
neurona en la capa de salida se le calcula la desviación a la salida objetivo como el
error, δ. El cual luego se utiliza para cambiar los pesos sobre la conexión de la
neurona precedente. El cambio de los pesos por medio de la regla de aprendizaje
del Perceptron se realiza según la siguiente regla:

Donde: aqi es la salida deseada/objetivo de la neurona de salida Ni, δi = (aqi


– outi) la desviación objetivo de la neurona Ni y σ el aprendizaje. La salida de la
neurona Nj( outj) se utiliza, porque este valor influye en la entrada global y, por ende,
en la activación y luego en la salida de la neurona Ni. Esto es semejante a un
“efecto en cadena”.

Por último se debe mencionar la regla de aprendizaje de propagación hacia


atrás o de backpropagation, también conocido como regla LMS multicapa, la cual
es una generalización de la regla de aprendizaje Delta. Esta es la primer regla
de aprendizaje que permitió realizar cambios sobre los pesos en las conexiones de la
capa oculta.

Aprendizaje por refuerzo.


Se trata de un aprendizaje supervisado, más lento que el anterior, que se basa en la
idea de no disponer de un ejemplo completo del comportamiento deseado, es decir, de
no indicar durante el entrenamiento exactamente la salida que se desea que proporcione
la red ante una determinada entrada.

En el aprendizaje por refuerzo la función del supervisor se reduce a indicar


mediante una señal de refuerzo si la salida obtenida en la red se ajusta a la
deseada (éxito = +1 o fracaso = -1), y en función de ello se ajustan los pesos
basándose en un 21 mecanismo de probabilidades. Se podría decir que en este tipo
de aprendizaje la función del supervisor se asemeja más a la de un crítico (que opina
sobre la respuesta de la red) que a la de un maestro (que indica a la red la
respuesta concreta que debe generar), como ocurría en el caso de supervisión por
corrección del error.

Aprendizaje estocástico.
Consiste básicamente en realizar cambios aleatorios en los valores de los pesos
de las conexiones de la red y evaluar su efecto a partir del objetivo deseado y
de distribuciones de probabilidad.

En el aprendizaje estocástico se suele hacer una analogía en términos


termodinámicos, asociando a la red neuronal con un sólido físico que tiene cierto estado
energético. En el caso de la red, la energía de la misma representaría el grado
de estabilidad de la red, de tal forma que el estado de mínima energía correspondería
a una situación en la que los pesos de las conexiones consiguen que su funcionamiento
sea el que más se ajusta al objetivo deseado.

Según lo anterior, el aprendizaje consistiría en realizar un cambio aleatorio de


los valores de los pesos y determinar la energía de la red (habitualmente la
función energía es una función de Liapunov). Si la energía es menor después
del cambio, es decir, si el comportamiento de la red se acerca al deseado, se acepta
el cambio; si, por el contrario, la energía no es menor, se aceptaría el cambio en función
de una determinada y preestablecida distribución de probabilidades.

Aprendizaje no supervisado.
Las redes con aprendizaje no supervisado (también conocido como
(autosupervisado) no requieren influencia externa para ajustar los pesos de
las conexiones entre sus neuronas. La red no recibe ninguna información por
parte del entorno que le indique si la salida generada en respuesta a una determinada
entrada es o no correcta.
Estas redes deben encontrar las características, regularidades, correlaciones o
categorías que se puedan establecer entre los datos que se presenten en su
entrada.

Existen varias posibilidades en cuanto a la interpretación de la salida de estas redes,


que dependen de su estructura y del algoritmo de aprendizaje empleado.

En algunos casos, la salida representa el grado de familiaridad o similitud entre la


información que se le está presentando en la entrada y las informaciones que se le han
mostrado hasta entonces (en el pasado). En otro caso, podría realizar una clusterización
(clustering) o establecimiento de categorías, indicando la red a la salida a qué categoría
pertenece la información presentada a la entrada, siendo la propia red quien
debe encontrar las categorías apropiadas a partir de las correlaciones entre las
informaciones presentadas.

En cuanto a los algoritmos de aprendizaje no supervisado, en general se suelen


considerar dos tipos, que dan lugar a los siguientes aprendizajes:
1) Aprendizaje hebbiano.
2) Aprendizaje competitivo y comparativo.

PRINCIPALES TIPOLOGÍAS
Topología de las redes neuronales.
La topología o arquitectura de una red neuronal consiste en la organización y
disposición de las neuronas en la misma, formando capas o agrupaciones de
neuronas más o menos alejadas de la entrada y salida de dicha red. En este sentido,
los parámetros
fundamentales de la red son: el número de capas, el número de neuronas por
capa, el grado de conectividad y el tipo de conexiones entre neuronas.

Redes monocapa.
En las redes monocapa, se establecen conexiones entre las neuronas que
pertenecen a la única capa que constituye la red. Las redes monocapas se
utilizan generalmente en tareas relacionadas con lo que se conoce como
autoasociación (regenerar información de entrada que se presenta a la red de
forma incompleta o distorsionada).

Redes multicapa.
Las redes multicapas son aquellas que disponen de un conjunto de neuronas
agrupadas en varios (2, 3, etc.) niveles o capas. En estos casos, una forma
para distinguir la capa a la que pertenece una neurona, consistiría en fijarse en el
origen de las señales que recibe a la entrada y el destino de la señal de salida.
Normalmente, todas las neuronas de una capa reciben señales de entrada
desde otra capa anterior (la cual está más cerca a la entrada de la red), y
envían señales de salida a una capa posterior (que está más cerca a la salida de
la red). A estas conexiones se las denomina conexiones hacia adelante o feedforward.

Sin embargo, en un gran número de estas redes también existe la posibilidad de


conectar la salida de las neuronas de capas posteriores a la entrada de capas
anteriores; a estas conexiones se las denomina conexiones hacia atrás o feedback.

Estas dos posibilidades permiten distinguir entre dos tipos de redes con
múltiples capas: las redes con conexiones hacia adelante o redes feedforward, y
las
redes que disponen de conexiones tanto hacia adelante como hacia atrás o redes
feedforward/feedback.

Redes de propagación hacia atrás (backpropagation).


El nombre de backpropagation resulta de la forma en que el error es propagado hacia
atrás a través de la red neuronal, en otras palabras el error se propaga hacia atrás desde
la capa de salida. Esto permite que los pesos sobre las conexiones de las neuronas
ubicadas en las capas ocultas cambien durante el entrenamiento.

El cambio de los pesos en las conexiones de las neuronas además de influir


sobre la entrada global, influye en la activación y por consiguiente en la salida
de una neurona. Por lo tanto, es de gran utilidad considerar las variaciones de
la función activación al modificarse el valor de los pesos. Esto se llama sensibilidad de
la función activación, de acuerdo al cambio en los pesos.

APLICACIONES
Aplicaciones de las redes neuronales.
Las redes neuronales pueden utilizarse en un gran número y variedad de
aplicaciones, tanto comerciales como militares. Se pueden desarrollar redes
neuronales en un periodo de tiempo razonable, con la capacidad de realizar
tareas concretas mejor que otras tecnologías. Cuando se implementan mediante
hardware (redes neuronales en chips VLSI), presentan una alta tolerancia a fallos
del sistema y proporcionan un alto grado de paralelismo en el procesamiento de
datos. Esto posibilita la inserción de redes neuronales de bajo coste en sistemas
existentes y recientemente desarrollados.

Hay muchos tipos diferentes de redes neuronales; cada uno de los cuales tiene
una aplicación particular más apropiada. Algunas aplicaciones comerciales son:

* Biología:
- Aprender más acerca del cerebro y otros sistemas.
- Obtención de modelos de la retina.
* Empresa:
- Evaluación de probabilidad de formaciones geológicas y petrolíferas.
- Identificación de candidatos para posiciones específicas.
- Explotación de bases de datos.
- Optimización de plazas y horarios en líneas de vuelo.
- Optimización del flujo del tránsito controlando convenientemente la temporización
de los semáforos.
- Reconocimiento de caracteres escritos.
- Modelado de sistemas para automatización y control.
* Medio ambiente:
- Analizar tendencias y patrones.
- Previsión del tiempo.
* Finanzas:
- Previsión de la evolución de los precios.
- Valoración del riesgo de los créditos.
- Identificación de falsificaciones.
- Interpretación de firmas.
* Manufacturación:
- Robots automatizados y sistemas de control (visión artificial y sensores de
presión, temperatura, gas, etc.).
- Control de producción en líneas de procesos.
- Inspección de la calidad.
* Medicina:
- Analizadores del habla para ayudar en la audición de sordos profundos.
- Diagnóstico y tratamiento a partir de síntomas y/o de datos analíticos
(electrocardiograma, encefalogramas, análisis sanguíneo, etc.).
- Monitorización en cirugías.
- Predicción de reacciones adversas en los medicamentos.
- Entendimiento de la causa de los ataques cardíacos.
* Militares:
- Clasificación de las señales de radar.
- Creación de armas inteligentes.
- Optimización del uso de recursos escasos.
- Reconocimiento y seguimiento en el tiro al blanco.

MODELO COMPUTACIONAL BASADO EN REDES NEURONALES

OBJETIVO

CREAR UN MODELO COMPUTACIONAL EN UN LENGUAJE DE PROGRAMACIÓN QUE SIMULE EL


FUNCIONAMIENTO DE UNA RED NEURONAL INVOLUCRANDO VARIABLES COMO EL VIENTO,
LA TEMPERATURA, LA HUMEDAD; PAR ASI PORDER PREDECIR EL NIVEL DE PRECIPITACION
EXISTENTE EN UNA DETERMINADA ZON DEL ECUADOR.

Para la creación de este modelo se escogió una base computacional a ser usada con
un lenguaje de programación amigable.
PROGRAMAS COMPUTACIONALES A SER USADOS:
LA PROGRAMACIÓN QUE SE UTILIZO ES.
1. WEKA
2. JAVA

WEKA
(Waikato Environment for Knowledge Analysis), en español «entorno para análisis del
conocimiento de la Universidad de Waikato») es una plataforma de software para el
aprendizaje automático y la minería de datos escrito en Java y desarrollado en la
Universidad de Waikato.
El paquete Weka contiene una colección de herramientas de visualización
y algoritmos para análisis de datos y modelado predictivo, unidos a una interfaz gráfica
de usuario para acceder fácilmente a sus funcionalidades. La versión original de Weka
fue un front-end en TCL/TK para modelar algoritmos implementados en otros lenguajes
de programación, más unas utilidades para reprocesamiento de datos desarrolladas en
C para hacer experimentos de aprendizaje automático. Esta versión original se diseñó
inicialmente como herramienta para analizar datos procedentes del dominio de
la agricultura, pero la versión más reciente basada en Java (WEKA 3), que empezó a
desarrollarse en 1997, se utiliza en muchas y muy diferentes áreas, en particular con
finalidades docentes y de investigación.
Al ejecutar la aplicación nos aparece el selector de interfaz de Weka (Weka GUI
Chooser) que da la opción de seleccionar entre cuatro posibles interfaces de usuario
para acceder a las funcionalidades del programa, éstas son "Simple CLI", "Explorer",
"Experimenter" y "Knowledge Flow".

JAVA
Es un lenguaje de programación de propósito general, concurrente, orientado a
objetos que fue diseñado específicamente para tener tan pocas dependencias de
implementación como fuera posible. Su intención es permitir que los desarrolladores de
aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo
(conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que
el código que es ejecutado en una plataforma no tiene que ser recompilado para correr
en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares
en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10
millones de usuarios reportados.
El lenguaje Java se creó con cinco objetivos principales:

1. Debería usar el paradigma de la programación orientada a objetos.


2. Debería permitir la ejecución de un mismo programa en múltiples sistemas
operativos.
3. Debería incluir por defecto soporte para trabajo en red.
4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos,
como C++.
Para conseguir la ejecución de código remoto y el soporte de red, los programadores de
Java a veces recurren a extensiones como CORBA (Common Object Request Broker
Architecture), Internet Communications Engine o OSGi respectivamente.

METODOLOGIA
PREDICCION DEL NIVEL DE PRECIPITACION (ALTA, MEDIA Y BAJA) EN
DIFERENTES REGIONES DEL ECUADOR.
1. RECOPILACION DE INFORMACION
2. IDENTIFICACION DE VARIABLES DE ENTRADA Y SALIDA DE NUESTRA
RED NEURONAL
Entrada
- Temperatura
- Velocidad del viento
- Humedad
SALIDA
- Precipitación

3. CREAR BASE DE DATOS PARA LAS DIFERENTES PASOS EN LA


EJECUCION DE LA INFORMACION:
 Archivo de datos de entrenamiento
 Archivo de datos de validación
 Archivo de datos de test
 Archivo de datos predicción

4. INGRESO DE DATOS EN LA BASE COMPUTACIONAL WEKA EN LA QUE SE


SIMULARA EL FUNCIONAMIENTO DE NUESTRA RED NEURONAL BASADA
EN EL PERCEPTRÓN SIMPLE.
5. CREAR LA RED NEURONAL EN BASE DE LAS VARIABLES IDENTIFICADAS
PARA PREDECIR EL NIVEL DE PRECIPITACION EN LAS REGIONES DEL
ECUADOR
- Perceptrón simple (función linealmente separable)

6. VALIDACION DE RESULTADOS OBTENIDOS MEDIANTE EL PROGRAMA


- Entrenamiento
- Validación
- Testing
En este proceso se realiza inicialmente el entrenamiento luego se procede a
realizar la validación y el test donde se compara el porcentaje de desarrollo que
produce cada proceso y si este nos da un porcentaje parecido en los tres casos
el modelo es eficiente y es aceptable.
7. ANALISIS DE RESULTADOS OBTENIDOS EN LA RED NEURONAL
Los resultados obtenidos se analizaron inicialmente comparando son los rangos de
precipitación existentes en nuestro país para determinadas regiones. Se buscó predecir
si es alto medio y bajo y seguidamente se realizó un segundo proceso para saber cuál
es este valor alto, medio y bajo que el programa nos ha arrojado como predicción,
también se realizó una comparación entre los datos ingresados con los datos obtenidos
después del entrenamiento al realizar la validación del proceso.

PROCESO EN EL QUE SE DESARROLLA ESTE MODELO


Se muestra a continuación la forma en que funciona el modelo de red neuronal
(perceptron) que se utiza en la predicción del nivel de lluvia en las regiones del ecuador.
MODELO DE PERCEPTRÓN

FUNCIO QUE UTILIZA


- LINEALMENTE SEPARABLE

En las gráficas 1 y 3 se muestra que son linealmente separables ya que se puede


separar los valores clasificados donde estos se mostraran con un valor de un lado de
la línea y otro valor del otro lado de la línea y se observa también que en el caso de la
gráfica del medio esto no ocurre.
FORMULA DE ACTIVACIÓN
ACTUALIZACIÓN DE LOS PESOS:
Donde los pesos representan la memoria a largo plazo en las redes neuronales.

Programación en Java : cómo funciona el proceso de entrenamiento, función (or)

De esta manera los pesos se recalculan y se tiene como resultado un valor nuevo de
peso al cual se lo afecto con un factor de aprendizaje y se le introdujo un valor por
aprender.

PERCEPTRÓN CON NUEVOS PESOS

De esta manera se van actualizando los pesos y comparándolos hasta encontrar el


más apropiado, es decir la salida yi se compara con la salida i si no son iguales se
vuelve a calcular.
Por tanto el siguiente nuevo valor va remplazar al primer valor que podemos observar
en la parte anterior(0,2871).

De esta manera el proceso continúa recalculándolos pesos iniciando con el nuevo


valor ingresado y con los dos restantes que se observó a este le seguían en la
columna anteriormente mostrada.
ALGORITMO DEL PERCEPTRÓN SIMPLE

CONCLUCIONES
1. La validez de nuestro programa que simule el funcionamiento de una red
neuronal estará íntimamente ligada a la calidad de datos que nosotros
ingresemos como variables de entrada es decir a nuestra correcta elección de
las variables de entrada.
2. El modelo de red neuronal del perceptrón solo realiza el proceso para una
función linealmente separable. El tipo de modelo es de aprendizaje supervisado,
es decir nosotros ingresamos nuestros datos de salida que queremos que la red
neuronal aprenda y por ende arroje en el proceso de salida después del
entrenamiento y su aprendizaje.
3. Si analizamos la validación del proceso de aprendizaje y de los resultados que
se esperan obtener, estos serán dados como válidos cuando el porcentaje de
confiabilidad ligado al error sea similar en los tres procesos (entrenamiento,
validación y testing) por ejemplo: (89,90,92). Entendiendo con esto que los datos
son confiables ya que no hay un rango amplio de variabilidad entre cada
porcentaje de validez; mientras este valor se acerca más al 100 por ciento
mejores y más confiables serán los resultados obtenidos en el proceso.
4. Al utilizar este lenguaje de programación y empleando el modelo del perceptrón
simple se observa que este porcentaje antes mencionado se puede mejorar
variando el número de neuronas involucradas en la capa oculta, así como
también el valor de rápido aprendizaje que varía desde 0,1 hasta 1 siendo mejor
cuando este valor es menor a uno ya que indica que se empleó menos tiempo
en entender o aprender en el proceso.
5. Se realizo una comparación entre los datos de salida obtenidos antes y después
de realizar el proceso, observado así el nivel de dispersión existente y la
convergencia que realiza el modelo al buscar una similitud a los datos de salida
que queremos como resultado después de nuestro aprendizaje ya que mientras
mejor entrenemos a nuestras variables de entrada mejor será la validez de
nuestro valor resultante esperado.

REFERENCIAS
Stuart Russel, Peter Norving, Inteligencia Artificial un enfoque Moderno, 1996, Phh
Anderson A. James, Redes Neuronales, 2007, Alfa Omega
Pajares Martínez G, Peñas Santos M. Inteligencia Artificial e Ingeniería del
Conocimiento, 2006, AlfaOmega
Ian H. Witten; Eibe Frank, Len Trigg, Mark Hall, Geoffrey Holmes, and Sally Jo
Cunningham (1999). «Weka: Practical Machine Learning Tools and Techniques
with Java Implementations». Proceedings of the ICONIP/ANZIIS/ANNES'99
Workshop on Emerging Knowledge Engineering and Connectionist-Based
Information Systems. pp. 192-196. Consultado el 26 de junio de 2007.
P. Reutemann; B. Pfahringer and E. Frank (2004). «Proper: A Toolbox for Learning from
Relational Data with Propositional and Multi-Instance Learners». 17th Australian
Joint Conference on Artificial Intelligence (AI2004). Springer-Verlag. Consultado
el 25 de junio de 2007.

ANEXOS

ANEXO1
- INFORMACIÓN RECOPILADA DE CADA UNA DE LAS VARIABLES
INVOLUCRAD EN LA CREACION DE NUESTRA RED NEURONAL

ANEXO 2

ANEXO 3

ANEXO4
ANEXO5

También podría gustarte