5 TIA Redes Neuronales.pdf
Document Details
Uploaded by Itan
Universidad Internacional de La Rioja
Tags
Related
- Deep Learning and Artificial Neural Networks for Spacecraft Dynamics, Navigation and Control PDF
- Artificial Intelligence - Neural Networks PDF
- Artificial Intelligence for Big Data, Neural Networks, and Deep Learning PDF
- Artificial Intelligence for Big Data, Neural Networks & Deep Learning PDF
- Artificial Neural Networks Chapter 8 PDF
- Artificial Intelligence Reading Comprehension PDF
Full Transcript
Tema 5 Técnicas de Inteligencia Artificial Redes neuronales artificiales Índice Esquema 3...
Tema 5 Técnicas de Inteligencia Artificial Redes neuronales artificiales Índice Esquema 3 Ideas clave 4 5.1. ¿Cómo estudiar este tema? 4 5.2. Introducción. Fundamento biológico 4 5.3. La neurona artificial. El perceptrón 9 5.4. Redes neuronales multicapa 12 © Universidad Internacional de La Rioja (UNIR) 5.5. Redes neuronales recurrentes. Redes Hopfield 17 5.6. Hacia el deep learning 23 5.7. Aplicaciones y ejemplos de implementación 24 5.8. Referencias bibliográficas 33 A fondo 37 Test 40 Esquema © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 3 Tema 5. Esquema Ideas clave 5.1. ¿Cómo estudiar este tema? Para estudiar este tema deberás leer las Ideas clave que se presentan a continuación. Puedes completar el estudio visualizando la lección magistral. Es recomendable ver esta lección antes de realizar la actividad grupal propuesta. Al finalizar el estudio de este tema serás capaz de: Entender el funcionamiento básico de la neurona artificial y el perceptrón. Describir las redes neuronales multicapa. Diferenciar entre redes de propagación hacia adelante (feed forward) y redes bidireccionales (redes recurrentes). Entender la evolución de las redes neuronales hacia el deep learning. Identificar aplicaciones prácticas de redes neuronales. 5.2. Introducción. Fundamento biológico Las redes neuronales artificiales son una de las técnicas de aprendizaje automático por excelencia (Alanis et al., 2019; Graupe, 2019; Rogers & Girolami, 2017). Este tipo de redes permiten que mejore el rendimiento de un programa al desarrollar una tarea determinada gracias a que aprenden de la experiencia. De forma muy © Universidad Internacional de La Rioja (UNIR) resumida, el modelo computacional de las redes neuronales se basa en el funcionamiento del cerebro humano. El cerebro humano se compone de unidades de procesamiento y transmisión de información denominadas neuronas. Las neuronas reciben estímulos y transmiten los Técnicas de Inteligencia Artificial 4 Tema 5. Ideas clave impulsos nerviosos conectándose con otras neuronas o con los músculos. A esta conexión se le denomina sinapsis. El impulso nervioso se transmite desde el axón de una neurona, que sería el transmisor de la señal, hasta las dendritas de otras neuronas, que serían los receptores de los impulsos. Una neurona está compuesta de múltiples receptores (dendritas) y de un solo transmisor (axón) que se podrá ramificar en varias salidas iguales, tal y como podemos observar en la Figura 1. Cuando una dendrita recibe un impulso nervioso, segrega una determinada sustancia química que hace que la neurona se excite a su vez y, si supera un determinado umbral, se envía el impulso eléctrico hacia el axón, causando la sinapsis y la excitación de otras neuronas. © Universidad Internacional de La Rioja (UNIR) Figura 1. Componentes de una neurona biológica. El cerebro humano, especialmente cuando se es un niño, es muy maleable. Es en esta fase de la vida cuando precisamente es más fácil aprender, procesar y retener Técnicas de Inteligencia Artificial 5 Tema 5. Ideas clave información. Ante la información externa que llega, el cerebro es capaz de procesar esa información y almacenarla. Para ello, las neuronas crean nuevas conexiones con otras neuronas, las cuales se establecen y fortalecen a largo plazo. De este modo, el cerebro aprende las conexiones que dan lugar a respuestas correctas, las cuales se fortalecen, mientras que aquellas que dan lugar a respuestas incorrectas se debilitan y olvidan (Negnevitsky, 2011). El cerebro humano se puede considerar como un sistema de procesamiento de información no-lineal y muy complejo. La información se almacena y procesa en las redes neuronales «como un todo», globalmente y simultáneamente, utilizando toda la red y no localizaciones específicas (Negnevitsky, 2011). Tal y como se ha indicado anteriormente, las redes neuronales basan su funcionamiento en la forma de aprender del cerebro. Son capaces de realizar tareas de aprendizaje de manera eficaz, incluso llevando a cabo tareas de reconocimiento que un humano es incapaz de realizar. Por este motivo son utilizadas en un gran número de aplicaciones. No hay más que realizar una búsqueda en Internet para encontrarse con una numerosa colección de artículos relativos al uso de redes neuronales desde hace décadas para solucionar diversos tipos de problemas en diversos campos como (Abiodun et al., 2018). La siguiente lista muestra algunos ejemplos concretos: Reconocimiento de voz (Graves et al., 2013). Reconocimiento de escritura (Ptucha et al., 2019). Conducción de vehículos autónoma (Pomerleau, 1993). © Universidad Internacional de La Rioja (UNIR) En medicina, por ejemplo, para el análisis de imágenes (Anwar et al., 2018). En telecomunicaciones se utiliza, por ejemplo, en redes móviles e inalámbricas (Zhang et al., 2019). En compañías financieras se han aplicado en el estudio de patrones de uso de tarjetas de crédito con el fin de detectar fraudes (Roy et al., 2018). Técnicas de Inteligencia Artificial 6 Tema 5. Ideas clave En servicios web de mapas, las redes neuronales se han utilizado para predecir áreas probables de ser solicitadas en un futuro con el fin de ser precargadas en una caché y mejorar la experiencia del usuario (García et al., 2013). En múltiples áreas de marketing como, por ejemplo, en la predicción de parámetros como el CTR (Click Through Rate) (Gao et al., 2018). Las redes neuronales son apropiadas en problemas donde las instancias tienen un gran número de atributos y cuando la salida puede tener cualquier valor: real, discreto o un vector con una combinación de valores reales y discretos. Cuando se aplican redes neuronales, una vez aprendida la función objetivo, la evaluación de dicha función objetivo mediante el uso de instancias nuevas es rápida. Sin embargo, el tiempo de entrenamiento de las redes neuronales es largo, por lo que será una condición que ha de tenerse en cuenta a la hora de decidir su uso. Por otra parte, tampoco ha de importar el no comprender la función objetivo, ya que los pesos que se aprenden son difíciles de interpretar. De hecho, en este sentido existe una corriente de investigación cada vez más en auge enfocada en tratar de explicar estos pesos, lo que se conoce como Inteligencia Artificial Explicable (XAI – eXplainable Artificial Intelligence) (Adadi y Berrada, 2018). Una de las grandes ventajas de las redes neuronales es que estas se comportan de manera robusta frente al ruido, por lo que pueden ofrecer buenos resultados, aunque los ejemplos de entrenamiento contengan errores (Mitchell, 1997). Tal y como hemos adelantado, las neuronas artificiales simulan el comportamiento de las neuronas biológicas. Al igual que las neuronas biológicas, las neuronas artificiales pueden recibir varios estímulos como entradas (emulando a las dendritas), © Universidad Internacional de La Rioja (UNIR) pero únicamente cuentan con una salida (emulando el único axón que tienen las neuronas biológicas). Esta única salida podrá estar ramificada para así conectar con las entradas a otras neuronas a través de unos enlaces ponderados. La relevancia de una determinada entrada a una neurona vendrá determinada por una serie de pesos que se establecen para los enlaces que conectan las neuronas. Son precisamente Técnicas de Inteligencia Artificial 7 Tema 5. Ideas clave estos pesos los que se han de ajustar en la tarea de aprendizaje mediante redes neuronales. Al igual que las neuronas del cerebro producen sinapsis a partir de un determinado nivel de excitación eléctrica, las neuronas artificiales se excitan con un determinado nivel que se establece ajustando los pesos mencionados para cada entrada a la neurona, así como una función objetivo que determina la salida de la neurona a partir de un determinado umbral. La Figura 2 muestra la estructura típica de una red neuronal básica. En ella puede observarse que está compuesta por una serie de entradas y salidas, así como una capa intermedia de neuronas. Tal y como se ha indicado anteriormente, uno de los objetivos principales de la red neuronal es el ajuste de los pesos de los enlaces que conectan las neuronas. La estructura que muestra la Figura 2 es un ejemplo de diseño básico ya que, tal y como puede intuirse, existen múltiples posibilidades de diseño de una red neuronal. El primer paso para la implementación de un sistema de aprendizaje basado en redes neuronales es el diseño de una estructura inicial de dicha red. En dicho diseño, tanto el número de capas intermedias como el número de neuronas de cada capa es variable. Señales de Señales de entrada salida X1 y1 X2 y2 © Universidad Internacional de La Rioja (UNIR) y3 X3 Figura 2. Estructura de una red típica neuronal. Técnicas de Inteligencia Artificial 8 Tema 5. Ideas clave 5.3. La neurona artificial. El perceptrón El componente básico de una red neuronal es la neurona artificial, cuya estructura básica se muestra en la Figura 3. Tal y como se ha indicado en las secciones anteriores, la neurona artificial está compuesta por varias entradas y una salida que puede ramificarse en varias señales iguales. x1 w1 Y w2 Neurona Y x2 Y wn Y xn Figura 3. Estructura básica de una neurona artificial La salida de una neurona se puede calcular utilizando la función signo: © Universidad Internacional de La Rioja (UNIR) La salida de la neurona también se puede calcular con otras funciones comúnmente utilizadas, denominándose todas ellas funciones de activación, como ya hemos mencionado. Algunos ejemplos de función de activación son la función escalón, la Técnicas de Inteligencia Artificial 9 Tema 5. Ideas clave función lineal, la función sigmoide, la tangente hiperbólica, ReLU (Rectified Linear Unit), Leaky ReLU, o Softmax, por ejemplo, disponible en http://www.diegocalvo.es/funcion-de-activacion-redes-neuronales/ La red neuronal artificial más sencilla es el perceptrón, cuya estructura se muestra en la Figura 4 (Mitchell, 1997). El perceptrón está formado por una sola capa con las entradas y salidas que se necesiten para resolver el problema planteado. La máxima simplificación de este perceptrón es lo que se conoce como perceptrón simple, el cual está formado por una sola neurona. w0 x1 w1 x2 w2 ∑ signo wn X Y xn Figura 4. Estructura del perceptrón (Mitchell, 1997). En esta red neuronal simple, se toman las entradas y se aplican las expresiones (1) y (2) para obtener la salida. Entonces, dada esta red tan simple, ¿en qué se basa el aprendizaje de la red neuronal? A grandes rasgos, el objetivo del aprendizaje se reduce a, dado un conjunto de datos de entrenamiento que consiste en una serie de entradas a esa red y las salidas conocidas correspondientes, escoger los pesos que se ajusten mejor a esas entradas y salidas definidas a priori. Este objetivo es el mismo en principio para redes simples o más complejas y, como podemos comprobar, encaja con un modelo de aprendizaje supervisado en el cual los datos de © Universidad Internacional de La Rioja (UNIR) entrenamiento se encuentran etiquetados. Al formar la red neuronal se desconocerá el valor de los pesos, por lo que estos se asignarán inicialmente de forma aleatoria. De este modo, la salida que se obtiene al aplicar los pesos en cada iteración será diferente a la salida conocida o esperada. Esta Técnicas de Inteligencia Artificial 10 Tema 5. Ideas clave diferencia entre la salida obtenida y la esperada es lo que se conoce como el error (también llamado pérdida – loss – o costo – cost), valor que se utiliza para ajustar los pesos siguiendo la regla de aprendizaje del perceptrón (Rosenblatt, 1960). La formulación matemática de esta idea se la siguiente: Siendo e(t) la diferencia entre la salida esperada y la salida real en la entrada procesada en la iteración t. En cada iteración se procesaría uno de los datos de entrenamiento disponibles. 𝛼𝛼 es la tasa de aprendizaje, un valor entre 0 y 1 que pondera la relevancia del error obtenido en última iteración. El algoritmo de aprendizaje de la red neuronal consta de los siguientes pasos (Negnevitsky, 2011): 1. Se asignan valores aleatorios en el intervalo [-0.5, 0.5] al umbral w0 y a los pesos w1, w2, …, wn. 2. Se activa el perceptrón aplicando las entradas x1(t), x2(t), …, xn(t) y teniendo en cuenta la salida deseada yd(t). Se calcula la salida real en la iteración utilizando la función de activación signo (Ecuación 1). Se puede utilizar cualquier otra función de activación, tal y como se indicó al inicio de esta sección. 3. A partir de la salida real obtenida en el paso 2 se actualizan los pesos aplicando la expresión de la Ecuación 3. 4. Se retorna al paso 2 hasta alcanzar la convergencia, que puede estar determinada por un error máximo admisible, por ejemplo, o un número máximo de iteraciones. © Universidad Internacional de La Rioja (UNIR) El perceptrón es una red neuronal muy simple y es un tipo de clasificador o discriminador lineal. Es decir, durante el entrenamiento trata de elegir la mejor recta (o hiperplano, en realidad) que separa los vectores de características que forman los Técnicas de Inteligencia Artificial 11 Tema 5. Ideas clave datos de entrenamiento a la entrada, devolviendo un valor -1 o +1 a la salida (si utilizamos la función signo como función de activación). Esto implica que puede no encontrar una recta discriminante perfecta, sino una aproximada. Por eso hay que poner límites a la convergencia. Sin embargo, esta simplicidad no obsta para que sobre él esté basado el funcionamiento de diversos tipos de redes neuronales. El funcionamiento de la red neuronal vendrá determinado por los siguientes parámetros: Arquitectura de la red, esto es, el número de capas, número de neuronas por capa y las conexiones entre neuronas entre diferentes capas. Función de activación: función signo, función escalón, etc. Algoritmo de aprendizaje determinado principalmente por la regla de aprendizaje para ajustar pesos (por ejemplo, la expresión de la Ecuación 3). 5.4. Redes neuronales multicapa La evolución del perceptrón simple en el perceptrón multicapa, mediante la incorporación de capas de neuronas intermedias u ocultas, da lugar a las redes neuronales multicapa. Las redes neuronales multicapa son redes unidireccionales de alimentación hacia adelante (feedforward). Dado que se trata de redes de alimentación en una única dirección de atrás hacia adelante, la señal de entrada se va propagando a lo largo de las capas hacia la salida. © Universidad Internacional de La Rioja (UNIR) Estas redes tienen al menos una capa intermedia oculta, como las mostradas en la Figura 2 y en la Figura 5, aunque pueden tener más de una capa oculta. En este sentido, las redes neuronales comerciales (en los casos en los que no hablamos de deep learning) incorporan 1 o 2 capas ocultas y estas capas pueden tener desde 10 a 1000 neuronas (Negnevitsky, 2011) aunque, como es esperable, estas cifras Técnicas de Inteligencia Artificial 12 Tema 5. Ideas clave aumentan con la mejora de la capacidad de proceso y la optimización de los algoritmos. Dado que incorporar nuevas capas supone ampliar la carga computacional de manera exponencial, en la práctica no es recomendable trabajar con un número elevado de capas. En el caso de modelos deep learning, como veremos en el Tema 6, existen ejemplos extremos de arquitecturas de redes neuronales de cientos o incluso un millar de capas ocultas, como algunas redes convolucionales empleadas en visión artificial, en concreto las redes residuales o resnet. Sin embargo, no siempre una red profunda tendrá un mayor rendimiento que una red poco profunda. Esto es algo que hay que evaluar en cada caso de uso (Wu et al., 2019). El aprendizaje en las redes multicapas se realiza de la misma manera que el aprendizaje en la red simple del perceptrón expuesta en la sección anterior. A partir de unos datos de entrenamiento disponibles se alimenta la red con las entradas, se calcula la salida y la diferencia entre esta salida y la salida esperada (error) se utiliza para ajustar los pesos con el objetivo de reducir el error. Hay muchos métodos y algoritmos para el aprendizaje de redes neuronales. En este tema se va a exponer un método comúnmente utilizado para el aprendizaje en redes neuronales denominado retropropagación del error, más conocido por su nombre en inglés: back-propagation. Las redes de retropropagación son aquellas que utilizan este método, las cuales están formadas por capas en las que todas las neuronas de una capa se conectan con todas las neuronas de las capas anterior y posterior. © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 13 Tema 5. Ideas clave x1 y1 1 x2 y2 2............. xi wij wjk yk j........ ….. xn ym Retro propagación del error Figura 5. Retropropagación del error en una red neuronal. La salida de una neurona X se determina con la expresión de la Ecuación 2 y la función de activación es una función sigmoide, es decir, una función S(x) que tiene forma de «S». Un ejemplo de función sigmoide es la función logística, cuya expresión viene dada por la Ecuación 4. Otros posibles ejemplos alternativos de funciones sigmoides son la arcotangente o la © Universidad Internacional de La Rioja (UNIR) tangente hiperbólica, entre otras. Una vez definida la arquitectura, habitualmente de 3 o 4 capas, con todas las neuronas entre capas adyacentes conectadas entre sí, y conocida la función de activación, únicamente queda determinar la regla de aprendizaje. En las redes Técnicas de Inteligencia Artificial 14 Tema 5. Ideas clave multicapa se utiliza el gradiente del error para ajustar los pesos, el cual bien dado por la expresión de la Ecuación 5: Siendo: Xk(t): entrada ponderada a la neurona k (calculada según la Ecuación 2) en la iteración t. yk(t): salida real de la neurona k en la iteración t (calculada según la función de activación de la Ecuación 4). 𝑦𝑦𝑑𝑑,𝑘𝑘 (𝑡𝑡): salida esperada en la neurona k. En la Ecuación 5, si se sustituye Yk(t) por la expresión dada en la Ecuación 4, se obtiene la fórmula para el cálculo del gradiente del error, detallada en la Ecuación 6: Para ajustar los pesos de los enlaces entre la neurona j y la neurona k, es decir, wjk, en la capa de salida se utiliza la expresión indicada en la Ecuación 7: © Universidad Internacional de La Rioja (UNIR) Siendo 𝑦𝑦𝑗𝑗 (𝑡𝑡) la salida de la neurona j en la capa oculta. Técnicas de Inteligencia Artificial 15 Tema 5. Ideas clave Para el caso de la capa oculta los pesos se reajustan según la expresión dada por la Ecuación 7, utilizando igualmente el gradiente del error. Sin embargo, el cálculo de este es diferente ya que en la capa oculta no solo hay una salida en la neurona, sino múltiples salidas a las que se aplicarán diferentes pesos. Se emplea, por tanto, la expresión dada por la Ecuación 8: Siendo m el número de neuronas en la capa de salida, 𝛿𝛿𝑘𝑘 (𝑝𝑝) es el gradiente del error calculado para la neurona de salida k-ésima, y wjk, el peso de la conexión entre la neurona j y la neurona k. 𝑦𝑦𝑗𝑗 (𝑡𝑡) es la salida obtenida mediante la Ecuación 4 a partir de las entradas a la neurona j en la iteración t, es decir, x1(t), x2(t), …, xn(t): Por tanto, el algoritmo de aprendizaje para una red multicapa de 3 capas consta de las siguientes fases: 1. Establecimiento inicial de los pesos con valores aleatorios pequeños. © Universidad Internacional de La Rioja (UNIR) 2. Para cada dato de entrada x1(t), x2(t), …, xn(t), calcular las salidas de la red al activarla con esos datos de entrada. 3. Ajuste de los pesos mediante retropropagación de los errores en dos fases: a. Cálculo del gradiente del error para las neuronas de la capa de salida según la Ecuación 6 y reajuste de sus pesos según la Ecuación 7. Técnicas de Inteligencia Artificial 16 Tema 5. Ideas clave b. Cálculo del gradiente del error para las neuronas en la capa oculta, según la Ecuación 8 y reajuste de sus pesos según la Ecuación 7. 4. Repetir los pasos 2 y 3 hasta que se cumpla la convergencia, siendo los errores suficientemente pequeños, o un criterio de parada específico. De acuerdo con Negnevitsky (2011), los algoritmos puros de retropropagación son raramente utilizados en la práctica por la alta carga computacional, dando lugar a un entrenamiento lento. Sin embargo, se han desarrollado muchas variaciones (Mitchell, 1997) que permiten mejorar el rendimiento, como utilizar una función de activación del tipo tangente hiperbólica o añadiendo un «momento» en el cálculo de los ajustes de los pesos, de tal manera que la actualización de un peso en la iteración t dependa parcialmente de la actualización realizada en la iteración anterior t-1. Realmente, las redes de retropropagación de dos o tres niveles tienen un gran potencial a la hora de representar diferentes funciones (Mitchell, 1997), como funciones booleanas, continuas, funciones de aproximación arbitraria, etc., y este tipo de redes son muy utilizadas en, por ejemplo, problemas de reconocimiento y clasificación de patrones. 5.5. Redes neuronales recurrentes. Redes Hopfield Las redes neuronales recurrentes tratan de emular las características asociativas de la memoria humana (Mitchell, 1997). La peculiaridad de estas redes es que sus salidas alimentan las entradas, formando un bucle. Se calcula la salida de la red a partir de una entrada dada y se aplica la salida obtenida en la iteración (t) como entrada en la © Universidad Internacional de La Rioja (UNIR) iteración (t+1), repitiendo el proceso hasta que se alcanza una estabilidad, siendo la salida constante en las distintas iteraciones. Técnicas de Inteligencia Artificial 17 Tema 5. Ideas clave Red Hopfield Es una red autoasociativa que puede almacenar varias informaciones durante la etapa de aprendizaje como si se tratara de una memoria. x1 1 y1 x2 2 y2 xj.... j.... yj xn n yn Figura 6. Arquitectura de una red neuronal recurrente monocapa, red Hopfield La Figura 6 muestra una red Hopfield monocapa con n neuronas. Las salidas de las n neuronas retroalimentan las entradas a las diferentes neuronas, pero nunca a ellas mismas (no hay autoretroalimentación). En una red Hopfield las salidas pueden ser binarias o números reales. Estas redes pueden utilizar diversas funciones como función de activación, aunque es habitual utilizar la función signo siguiente (Negnevitsky, 2005). © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 18 Tema 5. Ideas clave El estado de la red viene determinado por el conjunto de salidas [y1, y2,… yn] y el objetivo es que la red sea capaz de almacenar unos determinados estados Y1,Y2, …, Ym, …, YM, denominados memorias fundamentales. Estos estados los almacena la red durante un período de entrenamiento o aprendizaje. Una vez finalizada la etapa de aprendizaje, si se presenta alguna de las informaciones almacenadas a la entrada, la red se estabiliza ofreciendo a la salida la misma información que se ha presentado a la entrada y que coincide con la información almacenada. Si la entrada no coincide con una de las memorias fundamentales, la red evoluciona hacia una salida lo más parecida a una de las informaciones almacenadas. Con este objetivo, los pasos del algoritmo de entrenamiento de la red Hopfield son los siguientes: 1. Cálculo de la matriz de pesos: El valor del peso wij de la conexión entre las neuronas i y j se calcula con la siguiente expresión: © Universidad Internacional de La Rioja (UNIR) Siendo ym,i e ym,j los elementos i y j del vector de salida deseado Ym. Dado que las salidas se pueden representar como vectores de n elementos, se puede calcular también los pesos mediante la siguiente expresión matricial: Técnicas de Inteligencia Artificial 19 Tema 5. Ideas clave Siendo Ym el vector n-dimensional que se quiere memorizar, I la matriz identidad y M el número de estados que es necesario que memorizar. Por ejemplo, si se quieren almacenar las memorias fundamentales: Y1=[1,1,1] e Y2=[-1,-1,-1], aplicando ambas expresiones (12) o (13) , se obtiene la siguiente matriz de pesos: 2. Comprobación de que la red es capaz de memorizar las memorias fundamentales. Cuando a la red se le presenta una memoria fundamental Ym como entrada, la red tiene que ser capaz de memorizarla y proporcionarla a la salida. Por tanto, para cada memoria fundamental Ym de n componentes, m = 1, 2, …, M, si se da una entrada tal que Y si la función de activación es la función signo en (11), se ha de cumplir lo siguiente: © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 20 Tema 5. Ideas clave Dado que se trata de vectores, se puede realizar la comprobación mediante la expresión matricial siguiente: Para los datos del ejemplo expuesto anteriormente, si los umbrales w0 son iguales a 0, se puede comprobar cómo efectivamente, a partir de una entrada [1 1 1] igual a una de las memorias fundamentales Y1, la red obtiene la salida correspondiente a esa memoria fundamental: Realizando la misma operación, para una entrada igual a Y2 se comprueba que efectivamente la red obtiene una salida igual a esa memoria fundamental. 3. Comprobación con entradas de prueba de que la red recupera un estado estable. Se toma un vector X=[x0, x1, …, xn] que sea diferente a cualquiera de los de la memoria fundamental y se aplica como entrada a la red obteniendo como salida: Siendo 𝑥𝑥𝑗𝑗 (0) el componente j de la entrada en la iteración t = 0 e 𝑦𝑦𝑖𝑖 (0) la salida de la neurona i en la iteración t=0. En forma matricial: © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 21 Tema 5. Ideas clave Se repite el paso anterior hasta que el vector de estado o la salida se mantiene estable, es decir, no cambia. En las diferentes iteraciones, las neuronas están recibiendo como entrada las salidas de las otras neuronas multiplicadas por el peso correspondiente. Si la actualización de las salidas de las neuronas de la red se realiza de forma simultánea, se hablar de una red de Hopfield síncrona. Por tanto, en la iteración (t+1) todas las neuronas van a utilizar como entradas las salidas generadas por las otras neuronas en la iteración (t). Si las neuronas trabajan asíncronamente, se actualiza solo la salida de una neurona en cada iteración, con lo que se habla de una red asíncrona. En este caso la salida a la que converge la red dependerá del orden de activación de las neuronas. La condición de estabilidad es: O, en forma matricial: Para el ejemplo con el que se está trabajando, si se tiene una entrada de prueba [-1 1 1], la salida en la iteración t=0 es: © Universidad Internacional de La Rioja (UNIR) La salida no coincide con la entrada, la red no está estable. Esa salida se aplica de nuevo a la entrada y se obtiene en la iteración t=1: Técnicas de Inteligencia Artificial 22 Tema 5. Ideas clave Y(1) es precisamente una de las memorias fundamentales y, tal y como se ha comprobado en el segundo paso del algoritmo, la red es capaz de memorizar esa memoria fundamental y, por tanto, ese estado quedará estable en la red. Un problema de la red Hopfield es que si alcanza un estado estable no siempre ese estado es una memoria fundamental. Por otra parte, las redes Hopfield tienen una limitación de capacidad, por lo que el número de informaciones que puede ser aprendido o almacenado es limitado, precisando de gran cantidad de neuronas y de conexiones para almacenar pocas informaciones. Las redes de Hopfield son redes autoasociativas que pueden recuperar memorias incompletas, o información completa, a partir de información incompleta. Son redes utilizadas en reconocimiento de imágenes o de patrones y en problemas de optimización, por ejemplo. Sin embargo, las redes de Hopfield no pueden asociar una información con otra. Si en vez de una red recurrente con una capa de neuronas se tienen dos niveles, se pueden generar memorias bidireccionales asociativas que sí son capaces de asociar informaciones diferentes. 5.6. Hacia el deep learning © Universidad Internacional de La Rioja (UNIR) A pesar de resolver múltiples problemas eficazmente, las redes neuronales de retropropagación presentan una serie de limitaciones que deben ser resueltas. Estas limitaciones reducen principalmente la eficacia de este tipo de redes en problemas complejos en los que el número de nodos intermedios es elevado. El elevado número Técnicas de Inteligencia Artificial 23 Tema 5. Ideas clave de nodos aumenta el número de conexiones y, por ende, el cálculo de los pesos asociados. De este modo, el entrenamiento de las redes se convierte en un proceso ineficiente y costoso, por lo que han de buscarse soluciones que nos permitan la creación de redes neuronales con decenas y cientos de nodos y capas. Es entonces cuando aparece el aprendizaje profundo, más conocido por traducción al inglés deep learning (Graupe, 2019; Pouyanfar et al., 2018). Deep learning es un área específica del aprendizaje automático, que se basa en la utilización de redes neuronales con un alto número de nodos y capas. Este nuevo concepto dentro del aprendizaje automático lidia con procesos complejos que trabajan con volúmenes elevados de datos, así como con la interconexión necesaria entre los diferentes sistemas que forman parte de la solución completa. Por otro lado, deep learning se encarga del desarrollo de nuevos algoritmos y configuración de redes que mejoren la eficacia de la red neuronal y, a su vez, permitan mejorar su eficiencia. Para ello, entre otras técnicas, esta área incluye la utilización de técnicas de aprendizaje no supervisado en las capas intermedias para que estas aprendan automáticamente en base a la experiencia, incluso conceptos que antes no conocían. Una de las aplicaciones más típicas de deep learning es en sistemas que incluyen la extracción de características y la clasificación en la misma solución. Dada la importancia del deep learning en los sistemas de aprendizaje, el siguiente tema abordará en profundidad, valga la redundancia, este método de aprendizaje automático a través de la presentación de los algoritmos más significativos y múltiples ejemplos de aplicación. © Universidad Internacional de La Rioja (UNIR) 5.7. Aplicaciones y ejemplos de implementación Algunas aplicaciones de las redes neuronales en la literatura Técnicas de Inteligencia Artificial 24 Tema 5. Ideas clave Las redes neuronales son, sin duda, una de las técnicas de aprendizaje automático (machine learning) por excelencia y con mayor potencial en la actualidad. De este modo, las redes neuronales pueden utilizarse como sustitutos de todos los métodos supervisados, no supervisados y semisupervisados (algunos vistos ya previamente y algunos que veremos en temas posteriores) obteniendo una precisión mucho mayor. Obviamente, esta mayor precisión se consigue a cambio de un mayor coste computacional, a la hora de entrenar los modelos y a la hora de testear y ejecutar los modelos en producción, que habrá que tener en cuenta. De ahí que en algunas ocasiones sea necesario considerar si utilizar redes neuronales (más aún redes neuronales profundas) es lo más adecuado si existen modelos de machine learning clásico (árboles de decisión, SVM, etc.) o ensemble learning (random forest, etc.) que nos den la precisión que necesitamos a cambio de una menor carga computacional. Esto es especialmente importante si estamos aplicando algoritmos de machine learning en dispositivos móviles, en dispositivos embebidos como nodos IoT (Internet of Things) o que se ejecuten del lado del navegador o cliente web. Además de para todos los algoritmos supervisados y no supervisados que podamos imaginar, las redes neuronales (entendiéndolas de forma global como redes neuronales y redes neuronales profundas) también se utilizan, entre otras posibles aplicaciones, para la identificación de objetos en imágenes y vídeos (Shah, Bennamoun y Boussaid, 2016), el reconocimiento de voz (Zhang et al. 2018), la síntesis de voz (Arik, et al. 2017), análisis de sentimientos y reconocimiento de emociones del habla (Fayek, Lech y Cavedon, 2017), procesamiento de imágenes (Razzak, Naz y Zaib, 2018), transferencia de estilos (por ejemplo, aplicación del estilo © Universidad Internacional de La Rioja (UNIR) de pintura de Van Gogh a cualquier fotografía) (Luan et al., 2017), procesamiento del lenguaje natural (Natural Language Processing) (Costa-jussà et al., 2017), traducción automática (Deng y Liu, 2018), etc. Ejemplos de implementación Técnicas de Inteligencia Artificial 25 Tema 5. Ideas clave Anteriormente en el Tema 3 (Árboles de decisión) utilizamos diferentes librerías de Python para comparar entre sí el rendimiento de clasificadores como la regresión logística y de un árbol de decisión (utilizando la versión optimizada del algoritmo CART que nos proporcionaba scikit-learn) en la clasificación de especies de flor Iris a partir del dataset iris de Fisher. En esta ocasión vamos a comparar otros algoritmos clasificadores que hemos ido mencionando en los anteriores temas, en concreto el random forest (visto en el Tema 3), el algoritmo k-NN, los clasificadores Naïve Bayes, las máquinas de soporte vectorial (SVM), estos tres últimos mencionados en el Tema 4, y el perceptrón multicapa (MLP)¸visto en este mismo tema como un ejemplo de red neuronal. Recordemos la información que teníamos sobre el dataset por facilidad de lectura. Este dataset es un conjunto de datos multivariante de 150 muestras, 50 de cada una de las tres especies de flor Iris (Iris setosa, Iris virginica e Iris versicolor), con medidas del largo y ancho del sépalo y el pétalo de cada una de ellas. Este dataset viene incluido en scikit-learn, de modo que lo podemos importar de dicha librería, como ya hemos visto en el Tema 1. No obstante, lo importaremos de OpenML, disponible en: https://www.openml.org/d/61 Que, como vemos, tiene una URL de acceso al CSV mediante: https://www.openml.org/data/get_csv/61/dataset_61_iris.arff © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 26 Tema 5. Ideas clave Tabla 1. Conjunto de datos flor Iris o iris de Fisher (muestra de las primeras filas). Volvamos a echar un vistazo a los datos del dataset en modo texto, tal y como se explica en los comentarios del código, que ya vimos en el Tema 3: © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 27 Tema 5. Ideas clave Echemos un vistazo a los datos ahora en modo gráfico. En esta ocasión vamos a instalar un nuevo paquete, llamado seaborn (basado, a su vez, en matplotlib) que nos permite analizar gráficamente nuestros datos. Disponible en https://seaborn.pydata.org/ Lo instalamos como es habitual utilizando nuestro gestor de paquetes, por ejemplo: PS C:\Users\xxx> pip install seaborn Y, ejecutamos el siguiente código: © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 28 Tema 5. Ideas clave Ahora vamos a evaluar cinco algoritmos machine learning y compararlos entre sí: un random forest, un clasificador k-NN, un clasificador Naïve Bayes, una SVM y un MLP (perceptrón multicapa). Para ello, de nuevo como hicimos en el Tema 3, separaremos nuestro dataset: usaremos un 80 % de los datos para entrenar los algoritmos y un 20 % de los datos para hacer los test de predicción. Además, de nuevo utilizaremos una validación cruzada estratificada de 10 veces (k- © Universidad Internacional de La Rioja (UNIR) fold) para estimar la precisión del modelo. Como recordaremos, esto dividirá nuestro conjunto de datos en 10 partes, entrenando en 9 partes y testeando en 1 parte y repetirá para todas las combinaciones de divisiones de entrenamiento-test. Técnicas de Inteligencia Artificial 29 Tema 5. Ideas clave Nota: lo habitual es normalizar los datos, especialmente cuando trabajamos con redes neuronales, si bien en este ejemplo no lo estamos realizando. Veremos un ejemplo de normalización en el Tema 6. © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 30 Tema 5. Ideas clave © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 31 Tema 5. Ideas clave Obtendremos la siguiente gráfica comparativa, además. Como vemos en los resultados por consola (mostrados en los comentarios del código) y en la gráfica, aunque el MLP (dos capas ocultas de 3 neuronas cada una) obtiene unos excelentes resultados (96.7 % de precisión), la SVM obtiene unos resultados incluso ligeramente mejores (98.3 % de precisión promedio y una menor desviación estándar de la precisión en las pruebas). Por supuesto, esto no quiere decir que no podamos encontrar una configuración de capas y neuronas de MLP que supere a la SVM. Podemos realizar diferentes pruebas con más capas y más neuronas, y veremos cómo aumenta el tiempo de entrenamiento y que no siempre se obtienen mejores resultados para un mismo problema. Esto también nos enseña que, para problemas sencillos, los métodos de machine learning clásicos pueden ser suficientes a cambio de una menor necesidad de cálculo. © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 32 Tema 5. Ideas clave 5.8. Referencias bibliográficas Abiodun, O. I., Jantan, A., Omolara, A. E., Dada, K. V., Mohamed, N. A. & Arshad, H. (2018). State-of-the-art in artificial neural network applications: A survey. Heliyon, 4(11). Disponible en https://doi.org/10.1016/j.heliyon.2018.e00938 Adadi, A. & Berrada, M. (2018). Peeking inside the black-box: A survey on Explainable Artificial Intelligence (XAI). IEEE Access, 6, 52138-52160. Alanis, A. Y., Arana-Daniel, N. & Lopez-Franco, C. (2019). Artificial Neural Networks for Engineering Applications. Disponible en https://www.sciencedirect.com/science/book/9780128182475 Anwar, S. M., Majid, M., Qayyum, A., Awais, M., Alnowami, M. & Khan, M. K. (2018). Medical Image Analysis using Convolutional Neural Networks: A Review. Journal of Medical Systems, 42(11), 226. Disponible en https://doi.org/10.1007/s10916-018- 1088-1 Costa-jussà, M. R., Allauzen, A., Barrault, L., Cho, K. & Schwenk, H. (2017). Introduction to the special issue on deep learning approaches for machine translation. Computer Speech & Language, 46, 367-373. Deng, L. & Liu, Y. (Eds.). (2018). Deep learning in natural language processing. Springer. Fayek, H. M., Lech, M. & Cavedon, L. (2017). Evaluating deep learning architectures © Universidad Internacional de La Rioja (UNIR) for Speech Emotion Recognition. Neural Networks, 92, 60-68. Gao, H., Kong, D., Lu, M., Bai, X. & Yang, J. (2018). Attention Convolutional Neural Network for Advertiser-level Click-through Rate Forecasting. Proceedings of the 2018 World Wide Web Conference, 1855–1864. Disponible en Técnicas de Inteligencia Artificial 33 Tema 5. Ideas clave https://doi.org/10.1145/3178876.3186184 García, R., Verdú, E., Regueras, L. M., de Castro, J. P. & Verdú, M. J. (2013). A neural network based intelligent system for tile prefetching in web map services. Expert Systems with Applications, 40(10), 4096-4105. Disponible en https://doi.org/10.1016/j.eswa.2013.01.037 Graupe, D. (2019). Principles Of Artificial Neural Networks: Basic Designs To Deep Learning (4th Edition). World Scientific Publishing Company. Disponible en https://books.google.co.uk/books?id=77uSDwAAQBAJ Graves, A., Mohamed, A. & Hinton, G. (2013). Speech recognition with deep recurrent neural networks. 2013 IEEE International Conference on Acoustics, Speech and Signal Processing, pp. 6645-6649. Disponible en https://doi.org/10.1109/ICASSP.2013.6638947 Luan, F., Paris, S., Shechtman, E. & Bala, K. (2017). Deep photo style transfer. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 4990-4998). Mitchell, T. M. (1997). Machine Learning. McGraw-Hill. Negnevitsky, M. (2011). Artificial intelligence: A guide to intelligent systems (3. ed). Addison Wesley/Pearson. Pouyanfar, S., Sadiq, S., Yan, Y., Tian, H., Tao, Y., Reyes, M. P., Shyu, M.-L., Chen, S.-C. & Iyengar, S. S. (2018). A Survey on Deep Learning: Algorithms, Techniques, and Applications. Association for Computing Machinery. Disponible en © Universidad Internacional de La Rioja (UNIR) https://doi.org/10.1145/3234150 Técnicas de Inteligencia Artificial 34 Tema 5. Ideas clave Ptucha, R., Petroski Such, F., Pillai, S., Brockler, F., Singh, V. & Hutkowski, P. (2019). Intelligent character recognition using fully convolutional neural networks. Pattern Recognition, 88, 604-613. Disponible en https://doi.org/10.1016/j.patcog.2018.12.017 Razzak, M. I., Naz, S. & Zaib, A. (2018). Deep learning for medical image processing: Overview, challenges and the future. In Classification in BioApps (pp. 323-350). Cham: Springer. Rogers, S. & Girolami, M. (2017). A first course in machine learning (Second Edition). CRC Press, Taylor & Francis Group, a Chapman & Hall book. Rosenblatt, F. (1960). Perceptron Simulation Experiments. Proceedings of the IRE, 48(3), 301-309. Disponible en https://doi.org/10.1109/JRPROC.1960.287598 Roy, A., Sun, J., Mahoney, R., Alonzi, L., Adams, S. & Beling, P. (2018). Deep learning detecting fraud in credit card transactions. 2018 Systems and Information Engineering Design Symposium (SIEDS), 129-134. Disponible en https://doi.org/10.1109/SIEDS.2018.8374722 Shah, S. A. A., Bennamoun, M. & Boussaid, F. (2016). Iterative deep learning for image set based face and object recognition. Neurocomputing, 174, 866-874. Wu, Z., Shen, C. & Van Den Hengel, A. (2019). Wider or deeper: Revisiting the resnet model for visual recognition. Pattern Recognition, 90, 119-133. Zhang, Z., Geiger, J., Pohjalainen, J., Mousa, A. E. D., Jin, W. & Schuller, B. (2018). Deep © Universidad Internacional de La Rioja (UNIR) learning for environmentally robust speech recognition: An overview of recent developments. ACM Transactions on Intelligent Systems and Technology (TIST), 9(5), 1-28. Técnicas de Inteligencia Artificial 35 Tema 5. Ideas clave Zhang, C., Patras, P. & Haddadi, H. (2019). Deep Learning in Mobile and Wireless Networking: A Survey. IEEE Communications Surveys Tutorials, 21(3), 2224-2287. Disponible en https://doi.org/10.1109/COMST.2019.290489 © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 36 Tema 5. Ideas clave A fondo Redes neuronales en Weka Esta lección magistral consiste en un tutorial sobre el clasificador de Weka MultilayerPerceptron, que permite diseñar redes neuronales multicapa de retroprogación y realizar tareas de clasificación con las mismas. Accede a la lección magistral a través del aula virtual Redes neuronales aplicadas al reconocimiento de imágenes © Universidad Internacional de La Rioja (UNIR) Aitor Moreno de Ibermática explica cómo una red neuronal artificial puede utilizarse para el reconocimiento y la catalogación de imágenes, así como su aplicación en diferentes ámbitos (control de presencia en una empresa, catalogación de productos en un supermercado, etc.). Técnicas de Inteligencia Artificial 37 Tema 5. A fondo Accede al vídeo desde el aula virtual o a través de la siguiente dirección web: https://www.youtube.com/watch?v=vBxjhMzKgOA Aplicaciones de las redes neuronales artificiales Jossué Rodríguez de la Universidad de Panamá realiza un recorrido por las diversas aplicaciones de las redes neuronales en distintos campos. Accede al vídeo desde el aula virtual o a través de la siguiente dirección web: https://www.youtube.com/watch?v=d4t0WGjuYTs Aplicación de las redes neuronales artificiales en el diagnóstico médico Amato, F., López, A., Peña-Méndez, E.M., Vanhara, P., Hampl, A. & Havel, J. (2013). Artificial neural networks in medical diagnosis. Journal of Applied Biomedicine, 11(2), 47- 113. El artículo incluye una explicación de las redes neuronales y presenta el uso general © Universidad Internacional de La Rioja (UNIR) de este tipo de técnicas en el diagnóstico médico mediante ejemplos, comentando posibilidades y limitaciones. Técnicas de Inteligencia Artificial 38 Tema 5. A fondo Accede al artículo desde el aula virtual o a través de la siguiente dirección web: http://www.zsf.jcu.cz/jab_old/11_2/havel.pdf Redes neuronales Sitio web dedicado a las redes neuronales. Es particularmente interesante la sección dedicada a aplicaciones de las redes neuronales, así como la sección de recursos que contiene enlaces a materiales interesantes. Accede a la página desde el aula virtual o a través de la siguiente dirección web: http://cs.stanford.edu/people/eroberts/courses/soco/projects/2000-01/neural- networks/index.html © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 39 Tema 5. A fondo Test 1. Indica cuáles de las siguientes afirmaciones son correctas: A. Las neuronas artificiales simulan el comportamiento de las neuronas biológicas. B. Las neuronas artificiales pueden tener varias salidas que toman valores diferentes. C. Las neuronas artificiales pueden tener varias entradas que toman valores diferentes. D. Las entradas de las neuronas artificiales se ponderan con un peso. 2. Selecciona las opciones correctas. En la fase de entrenamiento de una red neuronal: A. Se ajusta el número de capas de la red neuronal. B. Se ajustan los pesos de los enlaces que conectan las neuronas. C. Se ajusta el número de neuronas por capa de la red neuronal. D. Ninguna de las anteriores. 3. Indica cuál de las afirmaciones siguientes son correctas respecto a la regla de aprendizaje del perceptrón: A. Se utiliza para calcular las salidas de la red. B. Utiliza la diferencia entre la salida real y la salida esperada para ajustar los pesos. C. Se puede establecer una tasa de aprendizaje en la regla que pondera la relevancia del último peso calculado. D. Se utiliza para ajustar los pesos de la red. 4. Indica cuáles de las siguientes funciones pueden ser utilizadas como funciones de © Universidad Internacional de La Rioja (UNIR) activación en redes neuronales: A. Función escalón. B. Función sigmoide. C. Función tangente hiperbólica. D. Todas las anteriores son correctas. Técnicas de Inteligencia Artificial 40 Tema 5. Test 5. Selecciona la opción más correcta. El funcionamiento de una red neuronal queda determinado por: A. El número de capas, número de neuronas y las conexiones entre neuronas. B. La función de activación, el número de capas, el número de neuronas y los pesos entre las neuronas. C. El algoritmo de aprendizaje, la regla de aprendizaje, el número de capas, número de neuronas y las conexiones entre neuronas. D. El algoritmo de aprendizaje, la función de activación, el número de capas, número de neuronas y las conexiones entre neuronas. 6. Indica cuáles de las siguientes afirmaciones son correctas: A. Las redes neuronales multicapa son redes bidireccionales. B. Las redes neuronales multicapa son redes asociativas. C. Las redes neuronales multicapa son redes de alimentación hacia adelante. D. Las redes neuronales multicapa son redes unidireccionales. 7. Indica cuáles de las siguientes afirmaciones son correctas respecto de las redes multicapa de retropropagación: A. Todas las neuronas de una capa se conectan con todas las neuronas de las capas posteriores. B. Para el ajuste de los pesos se utiliza el gradiente del error. C. Para el ajuste de los pesos se utiliza el error cuadrático medio. D. Se utilizan las mismas fórmulas para calcular los pesos relativos a las neuronas de salida y los relativos a las neuronas ocultas. 8. Indica cuáles de las siguientes afirmaciones son correctas respecto de las redes recurrentes: © Universidad Internacional de La Rioja (UNIR) A. Emulan la capacidad de almacenamiento de la memoria humana. B. Emulan la capacidad de asociación de la memoria humana. C. Las salidas de la red alimentan las entradas. D. La red Hopfield es una red recurrente. Técnicas de Inteligencia Artificial 41