• No results found

2.3 Vulnerabilities Threatening the Client

2.3.2 Session Fixation

Una red neuronal artificial es una estructura de procesamiento distribuido inspirado biol´ogicamente en la redes neuronales del cerebro.

Es importante mencionar que biol´ogicamente las neuronas se comunican a trav´es de conexiones llamadas sinapsis. Cada neurona esta compuesta por tres partes fundamen- tales: el soma, dendritas y ax´on (ver Figura 2.2). El soma en su capa externa tiene la capacidad ´unica de generar impulsos nerviosos. Las dendritas que son como las ramas que salen del soma, poseen algunas conexiones sin´apticas en donde se reciben se˜nales que generalmente vienen de otros axones. El soma realiza la sumatoria de todas las se˜nales provenientes de las dendritas, cuando en el soma se llega a una suma suficiente, se dispara la c´elula, o en su defecto, transmite mediante el ax´on, una se˜nal hacia otras neuronas [Russell and Norvig, 2004]. El funcionamiento de una neurona artificial esta basado en ´este dise˜no.

Para poder dotar al robot de una estructura de control que le permita aprender con el paso del tiempo, las redes neuronales artificiales son generalmente las m´as utilizadas

2.2. NEURO-CONTROLADORES 19

Figura 2.2: Esquema de neurona biol´ogica

para ´este prop´osito, sin embargo su uso no s´olo se limita a ´este tipo de estructuras sino que en general son muy utilizadas dentro del campo de la inteligencia artificial. El primer modelo de una Red Neuronal Artificial fue desarrollado por McCulloch y Pitts en 1943, consist´ıa en dos estados l´ogicos como salida: encendido y apagado.

Sin embargo ´esta primera aproximaci´on no fue muy popular debido en gran parte a que s´olo funcionaba con problemas que eran linealmente separables, debido a esto las investigaciones sobre RNA’s fueron apartadas por mucho tiempo. No fue sino hasta la d´ecada de los 80’s que el campo recobro fuerzas, gracias a la aparici´on de RNA’s multicapas que permit´ıan resolver problema linealmente no separables mediante la re- gionalizaci´on del problema y con ayuda del algoritmo de retroalimentaci´on del error (del ingl´es backpropagation) propuesto por Rumelhart, Hinton y Williams.

Estas RNA’s pueden llegar a ser tan robustas debido a las caracter´ısticas que pre- sentan que seg´un [Hilera Gonz´alez and Mart´ınez Hernando, 1995] ser´ıan las siguientes: Aprendizaje adaptativo: Esta quiz´as sea la mejor caracter´ıstica que presentan las RNA’s, se refiere a la capacidad que tienen para aprender a realizar tareas basadas en un experimento o entrenamiento inicial. De esta forma, no es necesario elaborar un modelo a priori, ni establecer funciones probabil´ısticas. Una red neuronal artificial es adaptativa porque puede modificarse constantemente con el

20 CAPITULO 2. ROB ´OTICA EVOLUTIVA

fin de adaptarse a nuevas condiciones de trabajo.

Autoorganizaci´on: Mediante su aprendizaje adaptativo las RNA’s pueden organizar toda la informaci´on que reciben durante el aprendizaje. Consiste en la modificaci´on de la red completa con el fin de llevar a cabo un objetivo especifico, es as´ı como la red puede responder a datos o situaciones no experimentadas antes, pero puede hacer inferencias sobre su base de conocimiento. Esto es muy ´util sobre todo cuando la informaci´on de entrada no esta completa o es poco clara. Tolerancia a fallos: Mientras que en la computaci´on tradicional la inconsisten-

cia o perdida de datos pueden causar un colapso total del sistema en las RNA’s esto no sucede debido a que poseen una gran tolerancia a fallos, esto es debido a que las RNA’s guardan su informaci´on de una manera distribuida y muy redun- dante, de este modo las redes pueden seguir trabajando aunque se destruya una parte de la red, si esto llega a suceder probablemente el comportamiento de la red se vea afectado, pero de ning´un modo colapsara, y se podr´a adaptar a la nueva situaci´on.

Operaci´on en tiempo real: Si se quiere hacer un reconocimiento de patrones en tiempo real las RNA’s son las m´as indicadas para hacer esta labor, debido a que trabajan en paralelo actualizando sus instancias simult´aneamente. Cabe re- saltar que est´a caracter´ıstica s´olo se aprecia cuando se trabaja con alg´un hardware especializado en procesos paralelos.

F´acil inserci´on dentro de la tecnolog´ıa existente: Debido a que una RNA puede ser f´acil y r´apidamente entrenada y verificada ´esta puede ser trasladada a chips especializados para RNA’s y de esta manera integrarlos en sistemas es- pec´ıficos ya existentes.

Una red neuronal consiste en un conjunto de elementos de procesamiento, llamados neuronas, los cuales se conectan entre s´ı. La organizaci´on y disposici´on de las neuronas dentro de una red neuronal se denomina topolog´ıa, y viene dada por el n´umero de capas, la cantidad de neuronas por capa, el grado de conectividad, y el tipo de conexi´on entre neuronas. Una vez determinada la topolog´ıa de la red neuronal, es necesario entrenarla.

2.2. NEURO-CONTROLADORES 21

Figura 2.3: Modelo de neurona artificial, la Wi representa los pesos sin´apticos entre las conexiones

En la etapa de entrenamiento la red es capaz de aprender relaciones complejas entre entradas y salidas mediante el ajuste de los pesos de las conexiones entre neuronas. Por lo tanto, los elementos que constituyen la neurona son: conjunto de entradas, pesos sin´apticos, regla de propagaci´on, funci´on de activaci´on, y funci´on de salida, estos elementos se muestran con gr´aficamente en la figura 2.3

Para [Russell and Norvig, 2004] una RNA est´a compuesta por nodos que se conectan a trav´es de unidades llamadas conexiones, asociadas con unos pesos num´ericos, que rep- resentan una memoria de largo plazo y que se ajusta en un proceso de aprendizaje. Otra definici´on ser´ıa la de [Santos and Duro, 2005] que dice que una RNA es una estructura de procesamiento distribuida compuesta de nodos o neuronas que calculan una funci´on matem´atica generalmente no lineal y con conexiones o pesos que simulan la conexi´on sin´aptica de las dendritas y los axones. Estas conexiones pueden ser excitadoras si incrementan su nivel de activaci´on o inhibidoras en el caso contrario, en general una red neuronal seg´un estos autores, trata de imitar a un nivel b´asico, el funcionamiento de las neuronas biol´ogicas.

Las conexiones que existen entre estas neuronas se llaman conexiones sinapticas y son direccionales, es decir la informaci´on s´olo puede propagarse en un ´unico sentido, desde la neurona presin´aptica a la postsin´aptica. Cuando varias neuronas se agrupan

22 CAPITULO 2. ROB ´OTICA EVOLUTIVA

Figura 2.4: Modelo de una RNA, donde se pueden apreciar las capas que la constituyen

a un mismo nivel se les llama capas, dependiendo de la estructura de la propia red se pueden encontrar varias capas, pero en general se distinguen 3 tipos de capas: de en- trada, de salida y ocultas [Hilera Gonz´alez and Mart´ınez Hernando, 1995], al conjunto de una o m´as capas se le denomina red neuronal.

La capa de entrada esta constituida por neuronas que reciben datos o se˜nales del exterior, en el caso de la rob´otica generalmente esta capa esta constituida por los sensores del robot. La capa de salida es aquella donde las neuronas proporcionan la respuesta de la red neuronal, de igual manera en rob´otica esta capa de salida suele ser la capa que contiene los actuadores del robot. Por ´ultimo la capa oculta es la que no tiene una conexi´on directa con el entorno, es decir las entradas de estas neuronas son las salidas de las neuronas provenientes de la capa anterior y su salida no es directa al exterior sino que mandan su respuesta hacia otra capa de la red, esto se muestra en la figura 2.4.

Las conexiones entre las neuronas pueden ser excitatorias o inhibitorias: un peso sin´aptico negativo define una conexi´on inhibitoria, mientras que uno positivo determina una conexi´on excitatoria. Habitualmente, no se suele definir una conexi´on como de un tipo o de otro, sino que por medio del aprendizaje se obtiene un valor para el peso, que incluye signo y magnitud [Russell and Norvig, 2004].

En el contexto de las redes neuronales, puede definirse el aprendizaje como el proceso por el que se produce el ajuste de los par´ametros libres de la red a partir de un proceso de