Redes Neuronales

UNIVERSIDAD NACIONAL JOSÉ MARÍA ARGUEDAS FACULTAD DE INGENIERÍA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS TRABAJO B

Views 94 Downloads 0 File size 281KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD NACIONAL JOSÉ MARÍA ARGUEDAS FACULTAD DE INGENIERÍA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

TRABAJO BIBLIOGRAFICO REDES NEURONALES

CURSO

:

Inteligencia Artificial

DOCENTE

:

Candia

AUTOR

:

Medina Arce Antony Kevin

ANDAHUAYLAS – APURÍMAC PERÚ JULIO, 2015

1

TABLA DE CONTENIDOS Pág.

TABLA DE CONTENIDOS.................................................................................. 2 LISTA DE IMÁGENES........................................................................................ 2 1.

INTRODUCCION....................................................................................... 3 1.1. BREVE HISTORIA............................................................................. 4 1.2. APLICACIONES DE LAS REDES NEURONALES..................................5 1.3. IMPLEMENTACION EN APLICACIONES..............................................5

2.

FUNCIONAMIENTO BASICO......................................................................5

2

2.1. NEURONAS Y CONEXIONES.............................................................6 2.2. TIPOS DE APRENDIZAJE BASICO......................................................8 3.

Red neuronal artificial............................................................................. 9 3.1. DISEÑO Y PROGRAMACIÓN DE UNA RNA........................................9 3.2. ESTRUCTURA................................................................................ 10 3.3. VENTAJAS...................................................................................... 10

LISTA DE IMÁGENES Pág.

Ilustración 1: Esquema de una red neuronal.......................................................................6 Ilustración 2: Un ejemplo de una neurona...........................................................................7 Ilustración 3: Neuronas bias y su peso sináptico asociado..................................................8

3

REDES NEURONALES 1. INTRODUCCION

Las redes neuronales son un elemento importante de las denominadas tecnologías de Inteligencia Artificial (IA). La IA es "la disciplina científica y técnica que se ocupa del estudio de las ideas que permiten ser inteligentes a los ordenadores" (definición de H. Winston). Otra posible definición de la IA sería: rama de la computación que se encarga, entre otras cosas, de los problemas de percepción, razonamiento y aprendizaje en relación con sistemas artificiales, y que tiene como áreas de investigación a los sistemas expertos y de conocimiento, la robótica, los lenguajes naturales y las redes neuronales. Y a pesar de que el objetivo final de la IA, dotar de autentica inteligencia a las máquinas, queda todavía muy lejos (e incluso hay autores que defienden que esto nunca será posible), la ciencia de la Inteligencia Artificial ha generado numerosas herramientas prácticas, entre las que se encuentran las redes neuronales. Las redes neuronales, también llamadas "redes de neuronas artificiales", son modelos bastante simplificados de las redes de neuronas que forman el cerebro. Y, al igual que este, intentan "aprender" a partir de los datos que se le suministran. Así, las principales características que diferencian a las redes neuronales de otras tecnologías de IA son: Su capacidad de aprendizaje a partir de la experiencia (entrenamiento). Normalmente, para la elaboración de un programa informático es necesario un estudio detallado de la tarea a realizar para después codificarla en un lenguaje de programación. Pero, las redes neuronales pueden ser entrenadas para realizar una determinada tarea sin necesidad de un estudiar está a fondo ni programarla usando un lenguaje de programación. Además; las redes neuronales pueden volver a entrenarse para ajustarse a nuevas necesidades de la tarea que realizan, sin tenerse que reescribir o revisar el código (cosa frecuente en programas tradicionales). Su velocidad de respuesta una vez concluido el entrenamiento. Se comportan también en este caso de manera similar a como lo hace el cerebro: los seres humanos no necesitamos pensar mucho para identificar un objeto, una palabra,... una vez hemos aprendido a hacerlo.

4

Su robustez, en el sentido de que el conocimiento adquirido se encuentra repartido por toda la red, de forma que si se lesiona una parte se continúan generando cierto número de respuestas correctas (en este caso también hay cierta analogía con los cerebros parcialmente dañados).

1.1.

BREVE HISTORIA La era moderna de las redes neuronales se cree que comenzó en 1943 gracias a McCullough y Pitts, quienes describieron el cálculo lógico de las redes neuronales y perfilaron el primer módulo formal de una neurona elemental. En la década de los cincuenta, Minsky comienza a construir la primera neurocomputadora (basada en modelos de redes neuronales que imitan al cerebro). En 1962, Frank Rosenblatt presenta los resultados de una máquina a la que denominó "Perceptrón", la cual reproducía una estructura neuronal muy simplificada, capaz de aprender a reconocer y clasificar determinadas figuras. En la misma década, Minsky y Pappert (autoridades de la IA clásica) publicaron un libro en el que se ponían de manifiesto las limitaciones de los perceptrones de una capa. Esto hará que se pierda interés en el campo de las redes neuronales hasta la década de los 80, en que el estudio de nuevas arquitecturas de redes y la mayor potencia de los ordenadores permiten el diseño de redes muy eficientes en tareas en las que otros procedimientos de tipo simbólico encuentran dificultades. Así, en 1982 J. Hopfield describe las "redes de Hopfield" en las que se utilizan funciones de energía para entender las redes dinámicas. Cohen y Grossberg desarrollan en el 83 el principio de la memoria direccional. En 1986 Rumulhart, Hunton y Williams redescubren el algorismo de "back-propagation" (desarrollado en 1974 por Paul Werbor) para el aprendizaje de redes neuronales. Por estas fechas, y gracias a las nuevas tecnologías de fabricación de microchips, comienzan a construirse redes neuronales implementadas en silicio (mucho más rápidas que las de software). Actualmente, el uso de redes neuronales se ha extendido bastante en el mercado de software doméstico, dejando de estar restringidas a los entornos de investigación y a las grandes empresas. De esta forma, se pueden encontrar modelos de redes neuronales en programas de reconocimiento de voz, en juegos de ordenador, programas de contabilidad, tutores, y muchos otros.

5

1.2.

APLICACIONES DE LAS REDES NEURONALES Las características de las redes neuronales hacen que sus posibles aplicaciones sean muy amplias. Algunas de las aplicaciones más destacadas son: 

Reconocimiento de patrones de clasificación: Reconocimiento de voz, de caracteres manuscritos, Análisis y reconocimiento de imágenes, formas o Diagnóstico clínico.



Análisis de series temporales y predicción: Modelos meteorológicos. Predicción del comportamiento, Predicción de series temporales.



Robótica, Etc.

Se ven así las amplias posibilidades que permite esta tecnología, ya al alcance de cualquier programador.

1.3.

IMPLEMENTACION EN APLICACIONES A la hora de implementar una red neuronal como parte de un programa o sistema informático, se pueden distinguir 3 fases básicas: 

Diseño: en esta fase se elige el tipo de red neuronal a usar (la arquitectura o topología), el número de neuronas que la compondrán.



Entrenamiento: en esta fase se le presentan a la red neuronal una serie de datos de entrada y datos de salida (resultados), para que a partir de ellos pueda aprender.



Uso: se le suministran las entradas pertinentes a la red, y esta genera las salidas en función de lo que ha aprendido en la fase de entrenamiento.

2. FUNCIONAMIENTO BASICO Las redes neuronales están formadas por un conjunto de neuronas artificiales interconectadas. Las neuronas de la red se encuentran distribuidas en diferentes capas de neuronas, de manera que las neuronas de una capa están conectadas con las neuronas de la capa siguiente, a las que pueden enviar información.

6

La arquitectura más usada en la actualidad de una red neuronal (como la presentada en la figura 1) consistiría en: 

Una primera capa de entradas, que recibe información del exterior.



Una serie de capas ocultas (intermedias), encargadas de realizar el trabajo de la red.



Una capa de salidas, que proporciona el resultado del trabajo de la red al exterior

Ilustración 1: Esquema de una red neuronal antes del entrenamiento. Los circuitos representan neuronas, mientras las flechas representan conexiones entre las neuronas. El número de capas intermedias y el número de neuronas de cada capa dependerá del tipo de aplicación al que se vaya a destinar la red neuronal.

2.1.

NEURONAS Y CONEXIONES Cada neurona de la red es una unidad de procesamiento de información; es decir, recibe información a través de las conexiones con las neuronas de la capa anterior, procesa la información, y emite el resultado a través de sus conexiones con las neuronas de la capa siguiente, siempre y cuando dicho resultado supere un valor "umbral". En una red neuronal ya entrenada, las conexiones entre neuronas tienen un determinado peso ("peso sináptico").

7

Un ejemplo de una neurona sobre la que convergen conexiones de diferente peso sináptico (Wi) sería el de la figura 2:

Ilustración 2: Un ejemplo de una neurona sobre la que convergen conexiones de diferente peso sináptico.

El procesamiento de la información llevado a cabo por cada neurona Y, consiste en una función (F) que opera con los valores recibidos desde las neuronas de la capa anterior (Xi, generalmente 0 o 1), y que tiene en cuenta el peso sináptico de la conexión por la que se recibieron dichos valores (Wi). Así, una neurona dará mas importancia a la información que le llegue por una conexión de peso mayor que no a aquella que le llegue por una conexión de menor peso sináptico. Un modelo simple de la función F seria:

Si el resultado de la función F es mayor que el valor umbral (U), la neurona se activa y emite una señal (1) hacia las neuronas de la capa siguiente. Pero, si por el contrario, el resultado es menor que el valor umbral, la neurona permanece inactiva (0) y no envía ninguna señal:

De esta forma, definido un conjunto inicial de pesos en las conexiones, al presentar un "estímulo" (conjunto de ceros y unos que representa un dato, perfil u objeto) a la capa de entradas, cada neurona en cada capa realiza la operación descrita anteriormente,

8

activándose o no, de manera que al final del proceso las neuronas de la capa de salidas generan un resultado (otro conjunto de ceros y unos), que puede coincidir o no con el que se desea asociar el estímulo. En el entrenamiento de una red neuronal tanto el peso sináptico de las conexiones como el valor umbral para cada neurona se modifican (según un algoritmo de aprendizaje), con el fin de que los resultados generados por la red coincidan con (o se aproximen a) los resultados esperados. Y para simplificar el sistema de entrenamiento, el valor umbral (U) pasa a expresarse como un peso sináptico más (-W0), pero asociado a una neurona siempre activa (X0). Esta neurona siempre activa, se denomina "bias", y se sitúa en la capa anterior a la neurona Y, tal como se muestra en la figura 3.

Ilustración 3: Neuronas bias y su peso sináptico asociado Así, la condición de activación puede reescribirse como:

De esta manera el algoritmo de aprendizaje puede ajustar el umbral como si ajustara un peso sináptico más.

2.2.

TIPOS DE APRENDIZAJE BASICO Para poder aprender, las redes neuronales se sirven de un algoritmo de aprendizaje. Estos algoritmos están formados por un conjunto de reglas que permiten a la red neuronal aprender (a partir de los datos que se le suministran), mediante la modificación de los pesos sinápticos de las conexiones entre las neuronas (recordar que el umbral de cada neurona se modificará como si fuera un peso sináptico más).

9

Generalmente los datos que se usan para entrenar la red se le suministran de manera aleatoria

y

secuencial.

Los tipos de aprendizaje pueden dividirse básicamente en tres, atendiendo a como esta guiado este aprendizaje: 

Aprendizaje supervisado: se introducen unos valores de entrada a la red, y los valores de salida generados por esta se comparan con los valores de salida correctos. Si hay diferencias, se ajusta la red en consecuencia.



Aprendizaje de refuerzo: se introducen valores de entrada, y lo único que se le indica a la red si las salidas que ha generado son correctas o incorrectas.



Aprendizaje no supervisado: no existe ningún tipo de guía. De esta manera lo único que puede hacer la red es reconocer patrones en los datos de entrada y crear categorías a partir de estos patrones. Así cuando se le entre algún dato, después del entrenamiento, la red será capaz de clasificarlo e indicará en que categoría lo ha clasificado.

3. RED NEURONAL ARTIFICIAL Las redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés como: "ANN"1 ) son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona elsistema nervioso de los animales. Se trata de un sistema de interconexión de neuronas que colaboran entre sí para producir un estímulo de salida. En inteligencia artificial es frecuente referirse a ellas como redes de neuronas o redes neuronales.

3.1.

DISEÑO Y PROGRAMACIÓN DE UNA RNA Con un paradigma convencional de programación en ingeniería del software, el objetivo del programador es modelar matemáticamente (con distintos grados de formalismo) el problema en

cuestión

y

posteriormente

formular

una

solución

(programa)

mediante

un algoritmo codificado que tenga una serie de propiedades que permitan resolver dicho problema. En contraposición, la aproximación basada en las RNA parte de un conjunto de datos de entrada suficientemente significativo y el objetivo es conseguir que la redaprenda automáticamente las propiedades deseadas. En este sentido, el diseño de la red tiene menos que ver con cuestiones como los flujos de datos y la detección de condiciones,

10

y más que ver con cuestiones tales como la selección del modelo de red, la de las variables a incorporar y el pre-procesamiento de la información que formará elconjunto de entrenamiento. Asimismo, el proceso por el que los parámetros de la red se adecuan a la resolución de cada problema no se denomina genéricamente programación sino que se suele denominar entrenamiento neuronal. Por ejemplo en una red que se va a aplicar al diagnóstico de imágenes médicas; durante la fase de entrenamiento el sistema recibe imágenes de tejidos que se sabe que son cancerosos y tejidos que se sabe que son sanos, así como las respectivas clasificaciones de dichas imágenes. Si el entrenamiento es el adecuado, una vez concluido, el sistema podrá recibir imágenes de tejidos no clasificados y obtener su clasificación sano/no sano con un buen grado de seguridad. Las variables de entrada pueden ser desde los puntos individuales de cada imagen hasta un vector de características de las mismas que se puedan incorporar al sistema (por ejemplo, procedencia anatómica del tejido de la imagen o la edad del paciente al que se le extrajo la muestra).

3.2.

ESTRUCTURA La mayoría de los científicos coinciden en que una RNA es muy diferente en términos de estructura de un cerebro animal. Al igual que el cerebro, una RNA se compone de un conjunto masivamente paralelo de unidades de proceso muy simples y es en las conexiones entre estas unidades donde reside la inteligencia de la red. Sin embargo, en términos de escala, un cerebro es muchísimo mayor que cualquier RNA creada hasta la actualidad, y las neuronas artificiales también son más simples que su contrapartida animal.

3.3.

VENTAJAS Las redes neuronales artificiales (RNA) tienen muchas ventajas debido a que están basadas en la estructura del sistema nervioso, principalmente el cerebro. 

Aprendizaje: Las RNA tienen la habilidad de aprender mediante una etapa que se llama etapa de aprendizaje. Esta consiste en proporcionar a la RNA datos como entrada a su vez que se le indica cuál es la salida (respuesta) esperada.



Auto organización: Una RNA crea su propia representación de la información en su interior, quitándole esta tarea al usuario.

11



Tolerancia a fallos: Debido a que una RNA almacena la información de forma redundante, ésta puede seguir respondiendo de manera aceptable aun si se daña parcialmente.



Flexibilidad: Una RNA puede manejar cambios no importantes en la información de entrada, como señales con ruido u otros cambios en la entrada (por ejemplo si la información de entrada es la imagen de un objeto, la respuesta correspondiente no sufre cambios si la imagen cambia un poco su brillo o el objeto cambia ligeramente).



Tiempo real: La estructura de una RNA es paralela, por lo cual si esto es implementado con computadoras o en dispositivos electrónicos especiales, se pueden obtener respuestas en tiempo real.

12

CONCLUSIONES

Las Redes Neuronales Artificiales basadas en los sistemas nerviosos biológicos reproducen al menos el funcionamiento del cerebro humano, sea en hardware o software, El aprendizaje de sistemas neuronales directas tiene un proceso mediante

el empleo del

algoritmo

de

retropropagación

(backpropagation),

realizando el ajuste de pesos entre las capas de la red. La construcción de las redes neuronales artificiales hace uso de metodologías de desarrollo de software. Las redes neuronales artificiales tienen un amplio campo de aplicaciones donde se requiera la solución a problemas, desde actividades de investigación hasta aplicaciones comerciales e industriales.

13