Redes Neuronales

July 28, 2017 | Author: Jinno Orellana Muñico | Category: Artificial Neural Network, Neuron, Synapse, Applied Mathematics, Areas Of Computer Science
Share Embed Donate


Short Description

Download Redes Neuronales...

Description

CAPITULO CUATRO APRENDIZAJE CON REDES NEURONALES ARTIFICIALES Una red neuronal artificial es, básicamente, el resultado de los intentos por reproducir mediante computadores el funcionamiento del cerebro humano. Su principal aplicación es en torno a las tareas en que los seres humanos fácilmente superan a los computadores tradicionales, como en procesamiento de señales, procesamiento de imágenes, procesamiento de voz, en robótica y otros. Nuestro cerebro está formado por miles de millones de neuronas interconectadas entre sí en forma variable y compleja. Cada neurona recibe señales de las otras neuronas, o señales provenientes del exterior de la red, las procesa, ponderando o dándole distinta importancia a cada una de ellas, y genera una única señal de salida que se transmite a las otras neuronas. La información que procesa una red neuronal se encuentra dispersa entre todas sus interconexiones, lo que la hace fundamentalmente diferente a un computador tradicional, en que la información se encuentra totalmente localizada y no distribuida como en este caso. Esta cualidad hace que las redes neuronales posean una gran tolerancia a fallas.

4.1. FUNDAMENTOS BIOLÓGICOS La figura 4.1 muestra el modelo biológico de la neurona, elemento base de las redes de neuronas.

Mg. Abraham Gamarra Moreno

165

Figura 4.1. Modelo de la Neurona Biológica

Como se aprecia en esta figura, cada neurona en el cerebro está compuesta básicamente por un cuerpo, axones y dendritas. Las dendritas forman un "cepillo filamentoso" muy fino que rodea el cuerpo de la neurona. El axón puede considerarse como un tubo largo y fino que se subdivide en numerosas ramas que terminan en pequeños bulbos, los cuales tienen contacto con las dendritas de las otras células. La pequeña separación entre una terminación y una dendrita es llamada sinapsis. El axón de una neurona puede formar conexiones sinápticas con muchas otras neuronas. Funcionalmente, las dendritas reciben señales desde otras células a través de los puntos de conexión llamados sinapsis. La fuerza de una conexión dada es determinada por la eficiencia de la transmisión sináptica. Desde ahí las señales son pasadas al cuerpo de la célula. Las señales que llegan de las dendritas pueden ser excitatorias o inhibitorias, y si la suma ponderada de éstas, realizada dentro del cuerpo de la neurona, supera su "umbral de activación" dentro de un tiempo suficiente, la neurona se disparará, enviando un impulso nervioso a través de su axón.

4.2. LA NEURONA ARTIFICIAL En la figura 4.2 se presenta el esquema típico de la neurona artificial. X1

X2

W

1j

W 2j

Yj

.: : Xn

Axones

Zj=

W ij

Xi

F ( Zj )

W nj Sinapsis

Dendritas

Cuerpo

de la

Neurona

Axón

Figura 4.2: Modelo de la Neurona Artificial

166

Tópicos y Aplicaciones de la Inteligencia Artificial

El cuerpo de la neurona será a menudo representada por la suma ponderada de las entradas, Zj, seguida por una función lineal o no lineal, Yj = F( Zj). La eficiencia sináptica es representada por los "pesos de interconexión", Wij. La función F(Zj) es llamada "función de activación", que usa los valores de entrada para determinar la actividad de la neurona. El modelo de la neurona es llamado neurona de McCulloch-Pitts .

4.2.1.

PESOS DE INTERCONEXIÓN

Los pesos de interconexión, representan la fuerza de interconexión entre las neuronas, y pueden ser positivos (excitatorios) o negativos (inhibitorios); además pueden ser fijos o adaptables. Las redes con pesos adaptables usan leyes de aprendizaje para ajustar los valores de la fuerza de interconexión. Si la red neuronal usa pesos fijos las tareas a ser ejecutadas deben estar bien definidas a priori.

4.2.2.

FUNCIONES DE ACTIVACIÓN

Existen distintos tipos de redes neuronales que usan diferentes funciones de activación, F(Z), pero la estructura interna de la neurona , es decir la suma ponderada seguida por la función F(Z), es común en la mayoría de las redes. Entre las funciones de activación más usadas y conocidas se encuentran las que se muestran en la figura 4.3.

Figura 4.3. Funciones de Activación

Mg. Abraham Gamarra Moreno

167

4.3. REDES DE NEURONAS Una red de neuronas consiste en varios de estos elementos (neuronas) trabajando juntos. Usualmente estos elementos se organizan en grupos conocidos con el nombre de capas. Una red típica consiste en una sucesión de capas conectadas entre ellas en forma total o aleatoria. Estas redes poseen dos capas que tienen contacto con el exterior, que son la capa de entrada y la de salida. Las capas que no se conectan con el exterior reciben el nombre de capas ocultas. La figura 4.4 presenta el esquema típico de una red de neuronas.

4.3.1.

REDES MONOCAPA (1 CAPA)

En las redes monocapa, como la red de HOPFIELD y la red BRAIN-STATE-INA-BOX, se establecen conexiones laterales entre las neuronas que pertenecen a-la única capa que constituye la red. También pueden existir conexiones autorrecurrentes (salida de una neurona conectada a su propia entrada), aunque en algún modelo, como el de HOPFIELD, esta recurrencia no se utiliza.

: : :

:

:

Capa de entrada

:

Capa escondida

Capa de salida

Figura 4.4 Esquema típico de una red de neuronas

Una topología equivalente a la de las redes de 1 capa es la denominada topología crossbar (barras cruzadas). Una red de este tipo (por ejemplo, la red LEARNING MATRIX) consiste en una matriz de terminales (de entrada y salida) o barras que se cruzan en unos puntos a los que se les asocia un peso. Esta representación crossbar suele utilizarse como etapa de transición cuando se pretende implementar físicamente una red monocapa, puesto que es relativamente sencillo desarrollar como hardware una estructura como la indicada (por ejemplo, las barras cruzadas serían cables, y los puntos de conexión, resistencias cuyos valores representarían los pesos de la red).

168

Tópicos y Aplicaciones de la Inteligencia Artificial

Finalmente, hay que indicar que las redes monocapa se utilizan típicamente en tareas relacionadas con lo que se conoce como autoasociación; por ejemplo, para regenerar informaciones de entrada que se presentan a la red incompleta o distorsionada. En la tabla 4.1 se muestran las características topológicas de los modelos de redes monocapa más conocidos. Tabla 4.1. modelos de redes monocapa más conocidos.

TIPOS DE CONEXIONES CONEXIONES AUTORRECURRENTES CONEXIONES LATERALES EXPLÍCITAS NO AUTORECURRENTES CROSSBAR

MODELO DE RED BRAIN-STATE-IN-A-BOX ADDITIVE GROSSBERG (AG) SHUNTING GROSSBERG (SG) OPTIMAL LINEAR ASOCIATIVE MEMORY HOPFIELD BOLTZMANN MACHINE CAUCHY MACHINE LEARNING MATRIX (LM)

La figura 4.5 muestra el modelo de red neuronal de Hopfield.

Figura 4.5 Red de Hopfield

4.3.2.

REDES NEURONALES MULTICAPAS

En el caso de las redes multicapas, sus unidades se clasifican en tres tipos: Mg. Abraham Gamarra Moreno

169



Unidades de entrada: al igual que el caso de la red de una sola capa, estas unidades son las que reciben el patrón de entrada directamente.



Unidades ocultas o escondidas: estas no reciben entradas directamente y no poseen realimentación directa. Ellas permiten tener una representación interna del patrón en cuestión.



Unidades de salida: estas son las que entregan el resultado de la red.

Las redes multicapa son aquellas que disponen de conjuntos 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 de otra capa anterior, más cercana a la entrada de la red, y envían las señales de salida a una capa posterior, más cercana a la salida de la red. A estas conexiones se les denomina conexiones hacia adelante o feedforward (Fig. 4.7). Sin embargo, en un gran número de estas redes también existe la posibilidad de conectar las salidas de las neuronas de capa posteriores a las entradas de las capas anteriores, a estas conexiones se les denomina conexiones hacia atrás o feedback (Fig. 4.6).

Figura 4.6. Red feedback

Un modelo de red neuronal multicapa es el Perceptron multinivel o multicapa (Figura 4.7), el cual es una red de tipo feedforward compuesta de varias capas de neuronas entre la entrada y la salida de la misma. Las capacidades del Perceptron con dos tres y cuatro niveles o capas y con una única neurona en el nivel de salida, se muestra en la figura 4.8.

170

Tópicos y Aplicaciones de la Inteligencia Artificial

Figura 4.7 Perceptron multinivel (red feedforward multicapa)

Figura 4.8 Distintas formas de las regiones generadas por un perceptron multinivel

En la segunda columna se muestra el tipo de región de decisión que se puede formar con cada una de las configuraciones. En la siguiente columna se indica el tipo de región de decisión que se formaría para el problema de la XOR. En las dos últimas columnas se muestran las regiones formadas para resolver el

Mg. Abraham Gamarra Moreno

171

problema de clases con regiones mezcladas y las formas de regiones más generales para cada uno de los casos. El Perceptron básico de dos capas (la de entrada con neuronas lineales y la de salida) sólo puede establecer dos regiones separadas por una frontera lineal en el espacio de patrones de entrada. Un Perceptron con tres niveles de neuronas puede formar cualquier región convexa en este espacio. La región de decisión resultante será regiones convexas con un número de lados a lo sumo igual al número de neuronas de la segunda capa. Un Perceptron con cuatro capas puede formar regiones de decisión arbitrariamente complejas. El proceso de separación en clases que se lleva a cabo consiste en la partición de la región deseada en pequeños hipercubos (cuadrados para dos entradas de la red). El análisis anterior demuestra que no se requieren más de cuatro capas en una red de tipo Perceptron, pues, como se ha visto una red con cuatro niveles, puede generar regiones de decisión arbitrariamente complejas. El Perceptron es de interés histórico, dado que ha abierto el camino para el desarrollo de otras redes neuronales, entre ellos el BackPropagation, que se analizará más adelante.

4.4.

OPERACIÓN DE UNA RED NEURONAL

Las redes neuronales operan en dos fases: aprendizaje y evocación o recuerdo. El aprendizaje es el proceso en el cual se adaptan o modifican los pesos de las conexiones en respuesta a un estímulo que ha sido presentado en sus entradas y opcionalmente a su salida. El estímulo presentado a la salida corresponde a la salida deseada para una determinada entrada; esta salida deseada debe ser entregada por un "instructor". En tal caso se habla de un aprendizaje supervisado o entrenamiento supervisado. La evocación o recuerdo se refiere a cómo la red procesa los estímulos presentados en sus entradas y genera una respuesta en su salida. A menudo la evocación o recuerdo es una parte del aprendizaje; esto sucede cuando la salida deseada debe ser comparada con la salida actual de la red para originar la señal de error.

4.5.

ENTRENAMIENTO DE UNA RED NEURONAL

El entrenamiento de una red es todo el proceso de aprendizaje que realiza una red neuronal. Su objetivo es lograr que la aplicación de un conjunto de entradas produzca el conjunto de salidas deseadas (o uno al menos consistente).

172

Tópicos y Aplicaciones de la Inteligencia Artificial

Dicho entrenamiento se realiza aplicando secuencialmente vectores de entrada (patrones de entrenamiento), a la vez que se ajustan los pesos de la red de acuerdo a un procedimiento predeterminado (cada modelo define su procedimiento), los cuales convergen gradualmente a valores tales que cada vector de entrada produce el vector de salida deseado. En cuanto a los tipos de aprendizaje, existen dos tipos: el aprendizaje supervisado y el no supervisado.

4.5.1.

ENTRENAMIENTO SUPERVISADO

Se selecciona un número suficientemente grande de vectores de entrada con sus correspondientes vectores de salida. Cada vector de entrada se aplica a la red calculándose la salida, la que posteriormente se compara con la salida deseada, determinando el error. Dicho error es realimentado a través de la red, modificando los pesos de acuerdo a un algoritmo que lo minimice. Los vectores del conjunto de entrenamiento se aplican secuencialmente, calculando los errores y modificando los pesos hasta que el error del conjunto total de entrenamiento converja a un nivel aceptable. A continuación se muestra como se realiza el entrenamiento de una red neuronal multicapa:



Lo primero que necesitamos son patrones de entrenamiento (cada fila de la tabla) que contengan el conocimiento de algún dominio en particular. Para nuestro ejemplo (Tabla 4.2) tenemos patrones que permiten identificar si un animal es un mamífero (1) o un ave (0).



Ahora necesitamos una red neuronal que permita tomar los patrones de entrada y de salida para el entrenamiento, tal como se muestra en la figura 4.9.

Los 6 primeros patrones (patrones de entrada) debe suministrar a las neuronas que están en la parte superior (neuronas de entrada) y la última columna se debe suministrarse como salida deseada. Se puede elaborar un programa que permita entrenar la red neuronal y luego de este entrenamiento, se debe probar si el aprendizaje fue correcto o no. Para el primer patrón de entrenamiento, la prueba consiste en ingresar el patrón de entrada (6 primeras columnas) y esperar que se tenga la salida deseada dada en el entrenamiento (última columna que debe ser igual o cercano a 1), vea la figura 4.10. Para esta ejecución se tiene que el valor devuelto por la red neuronal es muy cercano a 1, tal como se dio en el entrenamiento (la red neuronal aprendió).

Mg. Abraham Gamarra Moreno

173

Tabla 4.2 Patrones de entrenamiento que permiten identificar si un animal es un mamífero (1) o un ave (0)

Entrenamiento de una red neuronal Entradas

Salida (1= Mamifer o 0=Ave)

¿Tiene pelo?

¿Toma leche?

¿Vuela?

¿Pone ¿Tiene huevos? plumas?

¿Nada?

1

1

0

0

0

0

1

0

1

1

0

0

0

1

0

1

0

0

0

1

1

0

0

1

1

1

1

0

0

0

1

1

1

0

0

0

0

0

1

1

0

0

Entrenamiento de una red neuronal: ¿Tiene Pelo?

¿Toma leche?

¿Vuela?

¿Pone Huevos?

¿Tiene Plumas?

¿Nada?

Salida

Figura 4.9 Red neuronal que permite tomar los patrones de la tabla 4.2.

174

Tópicos y Aplicaciones de la Inteligencia Artificial

Al ejecutar un programa que use el aprendizaje de esta red neuronal, con el último patrón de entrenamiento, se tiene que la salida también es correcta (figura 4.11).

Figura 4.10 Resultado que muestra un programa que contiene a la red neuronal entrenada de la figura 4.9.

Figura 4.11 Resultados que muestra otra ejecución del programa que contiene a la red neuronal entrenada de la figura 4.9.

Para salidas binarias (0 ó 1), si la salida deseada es 1, un valor aceptable será cuando la salida sea mayor que 0.9 (salida>0.9); de la misma manera si la salida deseada es 0, un valor aceptable será cuando la salida sea menor que 0.1 (salida 1) Then inarray(1) = 1 inarray(1) = inarray(1) If (inarray(2) < 0) Then inarray(2) = 0 If (inarray(2) > 1) Then inarray(2) = 1 inarray(2) = inarray(2) If (inarray(3) < 0) Then inarray(3) = 0 If (inarray(3) > 1) Then inarray(3) = 1 inarray(3) = inarray(3) If (inarray(4) < 0) Then inarray(4) = 0 If (inarray(4) > 1) Then inarray(4) = 1 inarray(4) = inarray(4) If (inarray(5) < 0) Then inarray(5) = 0 If (inarray(5) > 1) Then inarray(5) = 1 inarray(5) = inarray(5) If (inarray(6) < 0) Then inarray(6) = 0 If (inarray(6) > 1) Then inarray(6) = 1 inarray(6) = inarray(6) If (inarray(7) < 0) Then inarray(7) = 0 If (inarray(7) > 1) Then inarray(7) = 1 inarray(7) = inarray(7) netsum = -0.3115481 netsum = netsum + inarray(1) * 0.7032344 netsum = netsum + inarray(2) * 0.1466639 netsum = netsum + inarray(3) * 2.036957 netsum = netsum + inarray(4) * -0.4733835 netsum = netsum + inarray(5) * -0.4653012 netsum = netsum + inarray(6) * -1.454124 netsum = netsum + inarray(7) * -0.7716009 210

Tópicos y Aplicaciones de la Inteligencia Artificial

feature2(1) = 1 / (1 + Exp(-netsum)) netsum = -0.007483043 netsum = netsum + inarray(1) * -0.7950581 netsum = netsum + inarray(2) * -1.6701 netsum = netsum + inarray(3) * 1.082342 netsum = netsum + inarray(4) * 0.8707346 netsum = netsum + inarray(5) * -0.3615806 netsum = netsum + inarray(6) * -0.6289499 netsum = netsum + inarray(7) * 0.9206671 feature2(2) = 1 / (1 + Exp(-netsum)) netsum = 0.3411922 netsum = netsum + inarray(1) * 1.407685 netsum = netsum + inarray(2) * 1.998027 netsum = netsum + inarray(3) * -1.747856 netsum = netsum + inarray(4) * -1.269704 netsum = netsum + inarray(5) * -2.329731 netsum = netsum + inarray(6) * 1.356552 netsum = netsum + inarray(7) * 1.647663 feature2(3) = 1 / (1 + Exp(-netsum)) netsum = -0.2768248 netsum = netsum + inarray(1) * 2.065744 netsum = netsum + inarray(2) * -1.146601 netsum = netsum + inarray(3) * -0.9325874 netsum = netsum + inarray(4) * -1.517177 netsum = netsum + inarray(5) * 0.2812504 netsum = netsum + inarray(6) * -0.6556798 netsum = netsum + inarray(7) * 1.173773 feature2(4) = 1 / (1 + Exp(-netsum)) netsum = -0.1239126 netsum = netsum + inarray(1) * -1.830723 netsum = netsum + inarray(2) * 0.8275196 netsum = netsum + inarray(3) * 0.2012251 netsum = netsum + inarray(4) * -0.7351373 netsum = netsum + inarray(5) * 0.5414248 netsum = netsum + inarray(6) * 2.384689 netsum = netsum + inarray(7) * -1.566727 feature2(5) = 1 / (1 + Exp(-netsum)) netsum = 0.0145554 netsum = netsum + inarray(1) * -0.4000922 netsum = netsum + inarray(2) * -1.257582 netsum = netsum + inarray(3) * 0.8750437 netsum = netsum + inarray(4) * 1.78116 netsum = netsum + inarray(5) * 1.741183 netsum = netsum + inarray(6) * -2.168171 netsum = netsum + inarray(7) * -0.9200088 feature2(6) = 1 / (1 + Exp(-netsum)) netsum = netsum = netsum = netsum = netsum = netsum = netsum = netsum =

0.3624522 netsum + inarray(1) * -1.666589 netsum + inarray(2) * -2.92119 netsum + inarray(3) * 1.415627 netsum + inarray(4) * 0.1193302 netsum + inarray(5) * 0.3643235 netsum + inarray(6) * 1.332756 netsum + inarray(7) * 1.651392

Mg. Abraham Gamarra Moreno

211

feature2(7) = 1 / (1 + Exp(-netsum)) netsum = -0.08557819 netsum = netsum + inarray(1) * 0.3886256 netsum = netsum + inarray(2) * -2.094244 netsum = netsum + inarray(3) * -1.564476 netsum = netsum + inarray(4) * 1.770092 netsum = netsum + inarray(5) * 0.9950833 netsum = netsum + inarray(6) * -1.562377 netsum = netsum + inarray(7) * 1.671334 feature2(8) = 1 / (1 + Exp(-netsum)) netsum = -0.2997127 netsum = netsum + inarray(1) * 1.399435 netsum = netsum + inarray(2) * -0.1395936 netsum = netsum + inarray(3) * -1.913407 netsum = netsum + inarray(4) * -0.9458458 netsum = netsum + inarray(5) * 2.404087 netsum = netsum + inarray(6) * 0.6442617 netsum = netsum + inarray(7) * -1.377198 feature2(9) = 1 / (1 + Exp(-netsum)) netsum = 0.8538765 netsum = netsum + feature2(1) * 1.642975 netsum = netsum + feature2(2) * -1.08525 netsum = netsum + feature2(3) * 1.692052 netsum = netsum + feature2(4) * 0.5226364 netsum = netsum + feature2(5) * -1.016138 netsum = netsum + feature2(6) * 0.3381723 netsum = netsum + feature2(7) * -4.312466 netsum = netsum + feature2(8) * -0.8845294 netsum = netsum + feature2(9) * 0.3042739 outarray(1) = 1 / (1 + Exp(-netsum)) netsum = 0.6356097 netsum = netsum + feature2(1) * -1.699543 netsum = netsum + feature2(2) * -0.8347372 netsum = netsum + feature2(3) * 1.740408 netsum = netsum + feature2(4) * -2.244962 netsum = netsum + feature2(5) * 2.778615 netsum = netsum + feature2(6) * -1.380548 netsum = netsum + feature2(7) * -1.0302 netsum = netsum + feature2(8) * -1.023457 netsum = netsum + feature2(9) * -0.1288214 outarray(2) = 1 / (1 + Exp(-netsum)) netsum = 0.8881556 netsum = netsum + feature2(1) * 1.621511 netsum = netsum + feature2(2) * -0.03661929 netsum = netsum + feature2(3) * 0.1688382 netsum = netsum + feature2(4) * -1.013181 netsum = netsum + feature2(5) * 2.699184 netsum = netsum + feature2(6) * -1.219513 netsum = netsum + feature2(7) * 0.4337809 netsum = netsum + feature2(8) * -3.760823 netsum = netsum + feature2(9) * -1.450161 outarray(3) = 1 / (1 + Exp(-netsum)) netsum = -0.1752312 netsum = netsum + feature2(1) * 0.7248147 212

Tópicos y Aplicaciones de la Inteligencia Artificial

netsum = netsum + feature2(2) * 0.4916552 netsum = netsum + feature2(3) * -3.363693 netsum = netsum + feature2(4) * -1.489237 netsum = netsum + feature2(5) * 0.3150889 netsum = netsum + feature2(6) * 2.669589 netsum = netsum + feature2(7) * 0.2992842 netsum = netsum + feature2(8) * 0.4325282 netsum = netsum + feature2(9) * 0.1342072 outarray(4) = 1 / (1 + Exp(-netsum)) netsum = -0.2363798 netsum = netsum + feature2(1) * 0.8358494 netsum = netsum + feature2(2) * 0.6256061 netsum = netsum + feature2(3) * -3.400938 netsum = netsum + feature2(4) * -1.574203 netsum = netsum + feature2(5) * 0.3605849 netsum = netsum + feature2(6) * 2.502021 netsum = netsum + feature2(7) * 0.2546888 netsum = netsum + feature2(8) * 0.5457298 netsum = netsum + feature2(9) * 0.2242781 outarray(5) = 1 / (1 + Exp(-netsum)) netsum = -0.1454982 netsum = netsum + feature2(1) * 0.7328083 netsum = netsum + feature2(2) * 1.886714 netsum = netsum + feature2(3) * 0.05207601 netsum = netsum + feature2(4) * -1.110788 netsum = netsum + feature2(5) * -1.82287 netsum = netsum + feature2(6) * 0.5481207 netsum = netsum + feature2(7) * 1.574738 netsum = netsum + feature2(8) * 1.149344 netsum = netsum + feature2(9) * -4.210217 outarray(6) = 1 / (1 + Exp(-netsum)) outarray(1) = (outarray(1) - 0.1) / 0.8 If (outarray(1) < 0) Then outarray(1) = 0 If (outarray(1) > 1) Then outarray(1) = 1 outarray(2) = (outarray(2) - 0.1) / 0.8 If (outarray(2) < 0) Then outarray(2) = 0 If (outarray(2) > 1) Then outarray(2) = 1 outarray(3) = (outarray(3) - 0.1) / 0.8 If (outarray(3) < 0) Then outarray(3) = 0 If (outarray(3) > 1) Then outarray(3) = 1 outarray(4) = (outarray(4) - 0.1) / 0.8 If (outarray(4) < 0) Then outarray(4) = 0 If (outarray(4) > 1) Then outarray(4) = 1 outarray(5) = (outarray(5) - 0.1) / 0.8 If (outarray(5) < 0) Then outarray(5) = 0 If (outarray(5) > 1) Then outarray(5) = 1 outarray(6) = (outarray(6) - 0.1) / 0.8 If (outarray(6) < 0) Then outarray(6) = 0 If (outarray(6) > 1) Then outarray(6) = 1 End Sub Mg. Abraham Gamarra Moreno

213

4.9.3.

CONCESIÓN DE AYUDAS POR ESTUDIOS

El problema consiste en determinar cuál es el tipo de ayuda, que se puede conceder por estudios a un trabajador en una empresa, en base a concesiones otorgadas en otros casos. Para la concesión se toman los siguientes atributos:



salario del trabajador,



tipo de estudios a realizar, y



antigüedad en la empresa.

La empresa cuenta con la información de la tabla 4.7 referida a ayudas concedidas en ejercicios anteriores.

Tabla 4.7. Ayudas concedidas con ejercicios anteriores

214

Tópicos y Aplicaciones de la Inteligencia Artificial

Tabla 4.7. Ayudas concedidas con ejercicios anteriores (continuación)

Tabla 4.7. Ayudas concedidas con ejercicios anteriores (continuación)

Mg. Abraham Gamarra Moreno

215

Se puede utilizar el Neuroshell, para entrenar a la red neuronal con los datos de la tabla 4.7 y se debe obtener también el codigo fuente en Visual Basic. La implementacion se encuentra en el CD que se adjunta al libro. El formulario y la ejecución del programa en Visual Basic 6.0, teniendo en cuenta el 16 avo patrón de entrenamiento se muestra en la figura 4.33.

Figura 4.33. Ejecución del programa en Visual Basic 6.0, teniendo en cuenta el 16 avo patrón de entrenamiento de la tabla 4.7.

4.9.4.

IMPLEMENTACIÓN DE OTRAS APLICACIONES CON REDES NEURONALES ARTIFICIALES En el CD se encuentra la implementación del reconocimiento de los caracteres A y B, utilizando Neuroshell y Visual Basic .NET. Además se implementa el ejemplo de la identificación de animales de la tabla 4.2.

216

Tópicos y Aplicaciones de la Inteligencia Artificial

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF