Está en la página 1de 7

Inteligencia Artificial y Redes Neuronales

(M. Daniela López De Luise-EnterpriseWare SRL-Junio de 2001)

1. Inteligencia Artificial
Podía decirse que la Inteligencia artificial es el estudio de los comportamientos
que permiten percibir, razonar y actuar.
Desde el punto de vista de objetivos, debemos decir que además de abarcar la
ingeniería, es en sí una ciencia.
El objetivo ingenieril: resolver problemas reales usando como base las técnicas
de representación y utilización del conocimiento y de cómo construir sistemas.
El objetivo científico: determinar qué ideas acerca de la representación del
conocimiento, del uso que se da a éste, y del ensamblaje de sistemas explican
diversas clases de inteligencia.

La Inteligencia Artificial, para cumplir con su objetivo, aborda el estudio de los


métodos de representación de conocimiento, uso y alcance. También estudia los
métodos de aprendizaje con mayor o menor complejidad.
Entre las áreas más destacadas de la AI, podemos encontrar:
- Aprendizaje automático y Redes neuronales
- Robótica
- Percepción
- Computación evolutiva (algoritmos genéricos)
- Arquitecturas con agentes inteligentes (ej. Bases de Datos inteligentes)
- Sistemas basados en el conocimiento: sistemas expertos
- Recuperación de la información y procesamiento de lenguaje natural

2. Por qué redes neuronales


2.1. Se adapta al procesamiento paralelo masivo, realizando cálculos lógicos
que en una arquitectura de Von Neumann sería casi ridículo pensar. Este
procesamiento masivo es característico de cierto tipo de aplicaciones como
reconocimiento de patrones, clasificación, etc.
2.2. Dada la flexibilidad de “adaptación” es apto para “aprendizaje” de
características a partir de sus entradas.
2.3. Su naturaleza de procesamiento no lineal, es apto para aproximaciones
funcionales y para filtrado de señales con resultados altamente superiores a los
sistemas convencionales.
2.4. Son excelentes sistemas de clasificación donde los dominios de interés son
complejo.

3. Problemas de las redes neuronales


3.1.Requieren de una capacidad de cálculo muy alta para obtener resultados
significativos
3.2.Debido a su naturaleza matemática, la red puede alcanzar un nivel de
optimización local y no global (acá hay que tener en cuenta que en definitiva
siempre se está optimizando una especie de función de costo, que será la que
refleje el objetivo a alcanzar).
3.3.Para la resolución de muchos problemas de la vida real aún son técnicas
impracticables debido al estado de avance de la tecnología y a la complejidad de
la implementación e interpretación de las redes.

4. Conceptos básicos
Una manera de ver el comportamiento básico de una red es compararla contra
un sistema algorítmico tradicional.

Acá vemos unas diferencias importantes:


1.En el caso del clasificador tradicional (A), los patrones de entrada son
introducidos secuencialmente, luego se realizan ciertos cálculos internos
también secuencialmente. En el caso del clasificador neuronal (B), las entradas
son paralelas y los cálculos internos se realizan paralelamente.
2.En el caso tradicional, los parámetros del sistema son calculados previamente
a partir de los datos de muestra. Una vez determinados, estos parámetros
permanecen invariables en el tiempo. En cambio en el clasificador neuronal (B)
los parámetros internos y los “pesos” que unen los nodos (donde se deposita
parte del conocimiento acerca del algoritmo de clasificación), son “aprendidos”
por la red durante el transcurso de su proceso de aprendizaje, que solo consta
de la presentación de las entradas de muestra y de la respuesta esperada por
parte de la red. Al terminar este proceso (totalmente automático), puede optarse
o no por dejar los parámetros estáticos.
5. Taxonomía
Los componentes básicos de una red de neuronas son:

5.1. Nodos de entrada:


Los datos de entrada a la red de neuronas, deberá presentarse de manera que
sea procesable por ésta. Normalmente se trata de un conjunto de valores que
conforman un vector de n elementos numéricos (algunas redes admiten solo
elementos dentro de los números enteros, otras permiten entradas reales
acotadas y otras simplemente reales). Estos nodos son los que reciben la
entrada en algún formato relacionado con el entorno real del problema y se
dedica a transformar las entradas en algo entendible por la red. Es un
“preprocesamiento de adaptación”.
x0
x1
x2
entradas
problema real
xn-2
xn-1

5.2. Nodo interno: Función de Combinación


Cada unidad en la red neuronal que no es de entrada combina valores
alimentados vía una conexión sináptica o de otras unidades, produciendo un
único valor denominado “neto”. No existe una definición estándar de cómo debe
ser esta función. Normalmente se las denomina función de combinación, y es
una función con dominio en el campo de los vectores y con imagen en los
escalares. Es decir, es una función que recibe un vector de valores y que
devuelve un número. La mayoría de las redes de neuronas utilizan la función de
combinación lineal o bien la distancia euclídea de las entradas respecto a la
salida esperada. La principal característica afectada por esta función es la
habilidad de generalizar que pueda llegar a tener la red, especialmente cuando
la cantidad de patrones de aprendizaje son muchos.
Un esquema de este tipo de nodos sería:
x0
x1 w1 w0
x2
entradas w2 y salidas
... wn-2
xn-2
xn-1 wn-1

El nodo gris representa la función de combinación. En el caso de las


denominadas redes de Hopfield la ecución que representa al nodo es:

(1) y = w0 . x0 + w1. x1+...+ wn-1 . xn-1 = Σ wi. xi (i = [0..N-1])


Aquí los wi, son los “pesos” de las conexiones entre el nodo de entrada y el nodo
gris. Los xi, son cada uno de los elementos en que ha sido descompuesta la
entrada para conformar el vector mencionado para los nodos de entrada.
Como puede verse aquí, los pesos dependen de los nodos que interconectan.
En estos pesos quedará parte de la información algorítmica almacenada, de
modo que al modificar el peso de una conexión estamos modificando el
algoritmo que cumple la red y por lo tanto su comportamiento.

5.3. Función de activación


La mayoría de las unidades dentro de la red convertirá su entrada a otro valor
escalar utilizando esta función. El valor resultante es denominado activación.
Salvo para las neuronas de salida, normalmente estos valores son enviados vía
sinápsis a otras unidades. En algunos casos estos valores son acotados. Todas
las redes tienen esta función, y en el peor de los casos su resultado será
idéntico a su entrada, o sea una función identidad o lineal.
Para nuestro estudio, tomaremos una red muy sencilla que se utiliza para
clasificar patrones, es el caso de la red de Hopfield.Para adaptar (1) conforme a
esta red, incluyendo la función de activación, debemos tomar el valor obtenido
en (1) (llamémoslo α) y hacerlo pasar por una función fh:
+1, α > 1
(2) fh = 0 , α ε [-1..+1]
-1, α < -1
lo que gráficamente sería:

+1 fh
0 α

-1

Nuestra neurona tendrá el siguiente aspecto:

x0
x1 w1 w0
x2
entradas w2 y salidas
... wn-2
fh
xn-2
xn-1 wn-1

Acá nuestra ecuación (1) se transformará con (2) en :


(3) y = fh (w0 . x0 + w1. x1+...+ wn-1 . xn-1)= fh (Σ wi. xi) (i = [0..N-1])

5.4. Función de error


Para la etapa de aprendizaje, normalmente se utiliza una función que mide la
diferencia entre la salida obtenida por la red y el valor que debió dar (respuesta
esperada). Por medio de la misma se puede corregir el comportamiento de la
red.

En nuestro caso (red de Hopfield), no tendremos esta función, pero en redes


más complejas es una componente que sirve para ajustar los pesos luego de
que el nodo haya provocado su salida. Suele ser del estilo:

(4) wi(t+1) = wi(t) + η.ξ.xi

donde vemos que se agregan dos cosas: un valor de error (ξ) y un valor que
determina la “rapidez” con que la red “aprende” de sus errores (η). Los pesos wi
cambian con el tiempo, la sucesión temporal sería aproximadamente:

t suceso
0 ingresa el vector de entrada en los
nodos input. Se inicializan los pesos wi.
Se establece que tan rápido se quiere
aprender dándole un valor a η.
1 el nodo procesa por primera vez la
entrada y obtiene un error ξ, que se
usa para corregir los pesos con la
“rapidez” dada por η
2 se repite el paso de t=1
...

5.5. Función objetivo


Es la función que representa el objetivo a alcanzar durante el entrenamiento.
Normalmente se trata de una minimización del error total, en función de los
pesos de las conexiones.

En el caso de la red de Hopfield que nos planteamos, no será ni la maximización


ni la minimización de ninguna función. Esta red termina de procesar cuando las
salidas obtenidas no cambian al iterar. En ese momento, la salida estable
obtenida representará el resultado deseado.

6. Demostración
Para llevar a la práctica lo anterior veamos la red de Hopfield cuando se
compone de 120 nodos, y donde suponemos que hubo en algún momento un
proceso de aprendizaje (del cual no hablaremos en esta presentación). La red
fue “entrenada” con los siguiente 8 patrones que siguen:
Cada patrón contiene 120 pixels, y sólo números –1 o +1 (para puntos blancos o
negros)
Luego se tomó el patrón del número 3 y se lo distorcionó invirtiendo bits al azar
con una probabilidad de 0.25. El resultado de la distorción fue introducido en la
red para ver si reconocía que el patrón original era realmente un 3 o si lo
confundía con otra cosa (esta es la misma técnica que se utiliza para los filtros).
A continuación están las 8 salidas sucesivas de la red desde el momento inicial
en t=0, hasta que se llega al resultado final en t=7:

t=0 t=1 t=2 t=3

t=4 t=5 t=6 t=7

La responsable de este resultado es la red de Hopfield, que tendrá el siguiente


aspecto (incluyendo algunos “artefactos” matemáticos no explicados):

7. Aplicación
1. Clasificación
2. Reconocimiento de imágenes
3. Determinación de patrones de comportamiento (ej.webmining)
4. Filtros (eliminación de ruidos)
5. Robótica (ej. para que el robot aprenda a “mantener el equilibrio”)

Lic. M. Daniela López De Luise


EnterpriseWare SRL- Buenos Aires- Argentina
TE/FAX: +54(11)4964-2435
email: dll@enterpriseware.net

También podría gustarte