Está en la página 1de 48

Redes Neuronales Supervisadas

INTELIGENCIA ARTIFICIAL
Redes Neuronales más populares
Redes Unidireccionales organizadas en capas (feed forward) y con aprendizaje supervisado:
Son empleadas como clasificadores de patrones y estimadores de funciones.
Perceptrón simple
Adalina
Perceptrón muticapa
Backpropagation (retropropagación) o BP
Perceptrón simple
La estructura del perceptrón se inspira en las primeras etapas de procesamiento de los
sistemas sensoriales de los animales (por ejemplo, el de visión), en los cuales la información va a
travesando sucesivas capas de neuronas, que realizan un procesamiento progresivamente de
más alto nivel.
El perceptrón simple, es un modelo unidireccional, compuesto por dos capas de neuronas, una
sensorial o de entrada, y otra de salida

Las neuronas de entrada no realizan ningún cómputo, únicamente envían la información (en
principio consideramos señales discretas {0,1}) a las neuronas de salida.
Perceptrón Simple
La operación de una red de este tipo, con 𝑛 neuronas de
entrada y 𝑚 de salida, se puede expresar como:
𝑛

𝑦𝑖 𝑡 = 𝑓 ෍ 𝑤𝑖𝑗 𝑥𝑗 − 𝜃𝑖 , ∀𝑖, 1 ≤ 𝑖 ≤ 𝑚
𝑗=1

La función de activación de las neuronas de la capa de salida


es de tipo escalón, Así, la operación de un patrón simple
puede escribirse
𝑛

𝑦𝑖 = 𝐻 ෍ 𝑤𝑖𝑗 𝑥𝑗 − 𝜃𝑖 , ∀𝑖, 1 ≤ 𝑖 ≤ 𝑚
𝑗=1

Con la función heaviside o escalón 𝐻(. ), el perceptrón puede


utilizarse tanto como clasificador, como para la representación
de funciones booleanas
Perceptrón Simple
Una neurona tipo perceptrón solamente permite discriminar entre dos clases linealmente
separables.
Sea una neurona tipo perceptrón de dos entradas, 𝑥1 y 𝑥2 , con salida 𝑦, cuya operación se
define por lo tanto
𝑦 = 𝐻(𝑤1 𝑥1 + 𝑤2 𝑥2 − 𝜃)
O bien
1, 𝑠𝑖 𝑤1 𝑥1 + 𝑤2 𝑥2 ≥ 𝜃
𝑦=ቊ
0, 𝑠𝑖𝑤1 𝑥1 + 𝑤2 𝑥2 < 𝜃
Perceptrón Simple
Si consideramos 𝑥1 y 𝑥2 situadas sobre los ejes de abcisas y ordenadas en
el plano, la condición
𝑤1 𝑥1 + 𝑤2 𝑥2 − 𝜃 = 0
si lo igualamos a 0, lo podemos ver como una recta que corta en el plano
𝑤1 𝜃
⟹ 𝑥2 = − 𝑥 + (la ecuación de la recta)
𝑤2 1 𝑤2

Representa una recta (hiperplano, si trabajamos con 𝑛 entradas) que


divide el plano (espacio) en dos regiones, aquellas para que las neurona
proporciona una salida ‘0’ o ‘1’ respectivamente
Perceptrón Simple
Consideremos la función lógica NAND, que representamos sobre el
plano.
En este caso pueden encontrase unos parámetros 𝑤1 , 𝑤2 𝑦 𝜃 que
determinen una recta que separa perfectamente las regiones
correspondientes a los valores lógicos 0 y 1.
Por ello, la función lógica NAND se dice separable linealmente,
puesto que hemos podido encontrar una única condición lineal que
divida ambas regiones.
Por ejemplo, un perceptrón con los siguientes parámetros
implementa la función NAND: 𝑤1 = 𝑤2 = −2 y 𝜃 = −3
Perceptrón Simple: Algoritmo de
Aprendizaje
Existen dos tipos de aprendizaje, el primero utiliza una tasa de aprendizaje, mientras que el segundo
no la utiliza.
El algoritmo de aprendizaje es el mismo para todas las neuronas, todo lo que sigue se aplica a una
sola neurona en el aislamiento:
• 𝑦 denota la salida de la neurona
• 𝛿 denota la salida esperada
• 𝛼 es una constante tal que 0 < 𝛼 < 1
• 𝐸 error cometido

Utilizando tasa de aprendizaje (regla de actualización de pesos)


𝑤𝑖 = 𝑤𝑖 + 𝛼 𝛿 − 𝑦 𝑥𝑖
Sin utilizar tasa de aprendizaje (regla de actualización de pesos)
𝑤𝑖 = 𝑤𝑖 + 𝛿 − 𝑦 𝑥𝑖
 Actualización del umbral
𝜃 = 𝜃 − α(𝛿 − 𝑦)
Por lo cual, el aprendizaje es modelado como la actualización del vector de peso después de cada iteración, lo cual
solo tiene lugar si la salida 𝒚 difiere de la salida deseada 𝛿
𝑛

Ejemplo 1: ෍ 𝑤𝑖 𝑥𝑖 − 𝜃 = 0.25𝑥1 + 0.45𝑥2 − 0.49


𝑖=1

𝑛
1, 𝑠𝑖 𝑥 ≥ 0
𝒀 = 𝐹 ෍ 𝑤𝑖 𝑥𝑖 − 𝜃 𝑭 𝒙 = 𝑬= 𝛿−𝑦 𝒘𝒊 = 𝑤𝑖 + 𝛼𝐸𝑥𝑖 𝜽 = 𝜃 − 𝛼𝐸
0, 𝑠𝑖 𝑥 < 0
𝑖=1
Se aplica la función escalón
Programa en C#
Ejemplo 2: inversor
Ejemplo 3: 2 entradas 1 salida (compuerta AND)

𝑛 = ෍ 𝑤𝑖 𝑝𝑖 + 𝑏
𝑖=1

𝑛 = 2 𝑝1 + 1 𝑝2 + (−3)
𝑎 = 𝑓(𝑛) 𝑎 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑛)
Ejemplo 4: 2 entradas 1 salida (compuerta AND)

𝑛 = ෍ 𝑤𝑖 𝑝𝑖 + 𝑏
𝑖=1

𝑛 = 2 𝑝1 + 1 𝑝2 + (−3)
𝑎 = 𝑓(𝑛)
𝑎 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑛)
W1,1
P ∑ f
P b
W1,2

𝑛 = ෍ 𝑤𝑖 𝑝𝑖 + 𝑏
𝑖=1

𝑛 = 2 𝑝1 + 1 𝑝2 + (−3)
𝑎 = 𝑓(𝑛)
𝑎 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑛)
Ejemplo 5: 2 entradas – 2 salidas (AND,OR)
Resultado
W1,1
P ∑ f
W1,2
b
W2,1

P ∑ f
W2,2
b

𝑛 = Σ(𝑤𝑃) + 𝑏
𝑛1 = 𝑤1,1𝑃1 + 𝑤2,1𝑃2 + 𝑏
𝑎1 = 𝑓(𝑛1)
𝑎1 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑛1)

𝑛2 = 𝑤1,2𝑃1 + 𝑤2,2𝑃2 + 𝑏
𝑎2 = 𝑓(𝑛2)
𝑎2 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑛2)
Ejemplo 6: 3 entradas – 3 salidas (AND-OR-NAND)

𝑛 = Σ 𝑤𝑃 + 𝑏
𝑛1 = 𝑤1,1𝑃1 + 𝑤2,1𝑃2 + 𝑤3,1𝑃3 + 𝑏
𝑎1 = 𝑓 𝑛1
𝑎1 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚 𝑛1
𝑛2 = 𝑤1,2𝑃1 + 𝑤2,2𝑃2 + 𝑤3,2𝑃3 + 𝑏
𝑎2 = 𝑓 𝑛2
𝑎2 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑛2)
𝑛3 = 𝑤1,3𝑃1 + 𝑤2,3𝑃2 + 𝑤3,3𝑃3 + 𝑏
𝑎3 = 𝑓 𝑛3
𝑎3 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑛3)
Ejemplo 7: 2 entradas 1 salida (compuerta XOR)

𝑛2 = 𝑤1,2𝑃1 + 𝑤2,2𝑃2 + 𝑏
𝑎2 = 𝑓 𝑛2
𝑎2 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑛2)

𝑛 = Σ 𝑤𝑃 + 𝑏 𝑛3 = 𝑤3,1𝑎1 + 𝑤4,1𝑎2 + 𝑏
𝑛1 = 𝑤1,1𝑃1 + 𝑤2,1𝑃2 + 𝑏 𝑎3 = 𝑓 𝑛3
𝑎1 = 𝑓 𝑛1 𝑎3 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑛3)
𝑎1 = ℎ𝑎𝑟𝑑𝑙𝑖𝑚(𝑛1)
Ejercicio:
- Diseñe una red neuronal de tipo Perceptrón multicapa, que tenga 5 entradas y 4 salidas. La
salida 1 corresponderá a una salida de la compuerta OR, la salida 2 a una compuerta AND, la
salida 3 a una compuerta NOR, y la salida 4 a una compuerta NAND.
La Adaline
Proviene de ADAptive Linear Neuron, utiliza una neurona similar a la del Perceptrón, pero de
respuesta lineal cuyas entradas pueden ser continuas.
Adaline incorpora un parámetro adicional llamado bias, que se puede traducir como umbral,
aunque hay que tener en cuenta que no se trata de un umbral de disparo como el perceptrón,
sino de un parámetro que proporciona un grado de libertad adicional.

𝑦𝑖 𝑡 = ෍ 𝑤𝑖𝑗 𝑥𝑗 − 𝜃𝑖 , ∀𝑖, 1 ≤ 𝑖 ≤ 𝑚
𝑗=1
Adaline: Regla de aprendizaje
LMS: Least Mean Squares o Windrow-Hoff
Conduce a actualizaciones de tipo continuo
La actualización de los pesos es proporcional al error que la neurona comete
Se ha utilizado principalmente para:
Cancelar el ruido en la transmisión de señales (supresor de ecos en comunicaciones telefónicas)

Su utilidad se ve limitada por tratarse de un sistema lineal. Así, solamente podrá separar
patrones linealmente independientes, fallando en ocasiones ante patrones linealmente
separables, que el perceptrón siempre discrimina.
Ante patrones no separables linealmente, los resultados que proporciona son en promedio
mejores que lo del perceptron
Adaline: Regla de aprendizaje
LMS: Least Mean Squares o Windrow-Hoff
La regla de Windrow-Hoff o LMS que en un caso particular es conocida como regla delta.
Utiliza un método de optimización (minimización) llamado descenso por el gradiente o
gradiente descendiente, que permite derivar de forma sistemática reglas de aprendizaje para
arquitecturas concretas.
Media cuadrática o Cuadrático Medio: a veces las variables toman valores positivos y
negativos, como ocurre, por ejemplo, en los errores de medida. En tal caso se puede estar
interesado en obtener un promedio que no recoja los efectos del signo:
𝑸
𝟏
𝒆𝟐 = ෍ 𝒆𝟐𝒒
𝑸
𝒌=𝟏
Cálculo de vector de peso
𝑊 𝑡 + 1 = 𝑤 𝑡 + ∆𝑊(𝑡)
Dónde ∆𝑊(𝑡) es proporcional al gradiente de la función de error
Adaline: Regla de aprendizaje
LMS: Least Mean Squares o Windrow-Hoff
La respuesta de una neurona de la Adalina es lineal:
𝑛

𝑦𝑖 = ෍ 𝑤𝑖𝑗 𝑥𝑗 − 𝜃𝑖 , ∀𝑖, 1 ≤ 𝑖 ≤ 𝑚
𝑗=1

Y sus salidas son continuas, por ejemplo en [0, +1]. Si definimos 𝑤𝑖0 ≡ 𝜃𝑖 𝑦 𝑥 ≡ −1, podemos
escribir la expresión de la forma siguiente:
𝑛

𝑦𝑖 = ෍ 𝑤𝑖𝑗 𝑥𝑗 = 𝑊𝑖𝑇 𝑋
𝑗=0
Adaline: Regla de aprendizaje
LMS: Least Mean Squares o Windrow-Hoff
Se descompone
Se define el error cuadrático como el por regla de la
producto punto del vector de error cadena

𝒆𝑻𝒒 𝒆𝒒 Cálculo del gradiente de F con respecto a la matriz X


Minimizar el error cuadrático para el 𝑑𝐹 𝑑𝐹 𝑑𝐹 𝑑𝐹 𝑑𝐹 𝑑𝑒𝑖 𝑑𝑒𝑖
= … = = 2𝑒𝑖 = −2𝑒𝑖 𝑋
ejemplo q 𝑑𝑊 𝑑𝑤1 𝑑𝑤𝑠 𝑑𝑤𝑖 𝑑𝑒𝑖 𝑤𝑖 𝑑𝑤𝑖
𝑊 𝑇 𝑑𝐹
𝑇
𝐹 𝑥 = 𝑒𝑞 𝑒𝑞 , donde 𝑥 = 𝑇 = −2𝑒𝑖 𝑥 … − 2𝑒𝑠 𝑥 = −2𝑥𝑞 𝑒𝑞𝑇
𝑏 𝑑𝑊
Cálculo de la
gradiente de F,
∴ ∆𝑊 𝑡 = −𝛼(−2𝑥𝑞 𝑒𝑞𝑇 )
Usando el método de Descenso por respecto a la matriz W

Gradiente Cálculo de vector de peso


𝑠 se añade el índice
𝑊 𝑡 + 1 = 𝑤 𝑡 + ∆𝑊(𝑡) de aprendizaje
𝐹 𝑤1 … 𝑤𝑠 = ෍ 𝑒𝑖2 (𝑤𝑖 ) 𝑊 𝑡 + 1 = 𝑤 𝑡 + 2𝛼𝑥𝑞 𝑒𝑞𝑇
𝑖=1 𝑇 𝑇 𝑝𝑞 𝑇
∴ 𝑊𝑇 = 𝑊𝑇 + 2𝛼
𝑞
𝑒𝑞
Peso 𝑒𝑖 𝑤𝑖 = 𝑡𝑖 − 𝑊𝑖𝑇 𝑋 𝑏 𝑏 1
sináptico de 𝑾 = 𝑾 + 𝟐𝜶𝒆𝒒 𝒙𝑻𝒒 Se descompone la
formula anterior en
las neuronas
𝒃 = 𝒃 + 𝟐𝜶𝒆𝒒 función de los pesos
Algoritmo
𝐼𝑛𝑖𝑐𝑖𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑎𝑙𝑒𝑎𝑡𝑜𝑟𝑖𝑎 𝑑𝑒 𝑤 𝑦 𝑏
𝐷𝑒𝑠𝑑𝑒 𝑖 = 1 ℎ𝑎𝑠𝑡𝑎 𝑖 = 𝑁 𝑟𝑒𝑝𝑒𝑡𝑖𝑟
◦ 𝐷𝑒𝑠𝑑𝑒 𝑞 = 1 ℎ𝑎𝑠𝑡𝑎 𝑖 = 𝑄 𝑟𝑒𝑝𝑒𝑡𝑖𝑟
◦ 𝑎𝑞 = 𝑤𝑥𝑞 + 𝑏
◦ 𝑒𝑞 = 𝑡𝑞 − 𝑎𝑞
◦ 𝑤 = 𝑤 + 2𝛼𝑒𝑞 𝑝𝑞𝑇
◦ 𝑏 = 𝑏 + 2𝛼𝑒𝑞
◦ 𝐹𝑖𝑛
𝐹𝑖𝑛
Ejemplo
El Perceptrón Multicapa (MLP)
Si añadimos capas intermedias (ocultas) a un perceptrón simple, obtendremos un perceptrón
multicapa o MLP (Multi Layer Perceptron).
Resuelve problemas de clasificación con separabilidad no lineal
Esta arquitectura suele entrenarse mediante el algoritmo denominado retropropagación de
erorres o BP, o bien haciendo uso de algunas de sus variantes o derivados.
En muchas ocasiones el conjunto de arquitectura MLP + aprendizaje BP suele denominarse red
de retropropagación o simplemente BP
Nomenclatura
𝑥𝑖 a las entradas de la red ML con una capa oculta y neuronas de salida
lineal, tiene la siguiente expresión
𝑦𝑗 a las salidas de la capa oculta matemática:

𝑧𝑘 = ෍ 𝑤𝑘𝑗 𝑦𝑗 − 𝜃𝑖′
𝑧𝑘 a las de la capa final (y globales de la red) 𝑗

𝑡𝑘 a las salidas objetivos (target) ′


= ෍ 𝑤𝑘𝑗 𝑓 ෍ 𝑤𝑗𝑖 𝑥𝑖 − 𝜃𝑗 − 𝜃𝑖′
𝑗 𝑖
𝑤𝑖𝑗 son los pesos de las capas ocultas
Siendo 𝒇(. ) de tipo sigmoideo
𝜃𝑗 los umbrales

𝑤𝑘𝑗 los pesos de las capas de salida 1
𝑓 𝑥 =
1𝑥+ 𝑒 −𝑥
𝜃𝑘′ sus umbrales 𝑒 − 𝑒 −𝑥
𝑓 𝑥 = 𝑥
𝑒 + 𝑒 −𝑥
La primera una salida en el intervalo [0, +1] y
la segunda en el [−1, +1]
Aprendizaje por retropropagación de
errores
El algoritmo se aplica para resolver problemas de reconocimiento de imágenes, clasificación y
también de aproximación de funciones.
Cálculo de pesos sinápticos
Cálculo del error:
𝑒𝑞 = 𝑡𝑞 − 𝑎𝑞 → 𝑒𝑞𝑇 𝑒𝑞
Minimizar el error cuadrático para el ejemplo q
𝐹 𝑋 1 , … , 𝑋 𝑀 = 𝑒𝑞𝑇 𝑒𝑞 , donde 𝑋 𝑚 = [𝑊 𝑚 𝑏 𝑚 ]𝑇
El algoritmo de retropropagación se basa en el método
por el descenso del gradiente para minimizar el error cuadrático
𝑚 𝑚
𝑑𝐹
𝑋 = 𝑋 − 𝛼 𝑚ቤ
𝑑𝑥 𝑥 𝑚 =𝑥 𝑚
0
𝑋 𝑚 = [𝑊 𝑚 𝑏 𝑚 ]𝑇 Sustituimos los gradientes en la matriz
jacobiana
𝑑𝐹
𝑋𝑚 = 𝑋𝑚 − 𝛼 ቚ 𝑑𝐹
𝑑𝑥 𝑚 𝑥 𝑚 =𝑥 𝑚 = 𝑧𝑠1 … 𝑧𝑠𝑠𝑚 𝑚 = 𝑧 𝑚 (𝑠 𝑚 )𝑇 =
0
𝑑𝑋 𝑚
Por comodida, 𝑚−1 𝑎𝑚−1 (𝑠 𝑚 )𝑇
= 𝑎 𝑚 𝑇
(𝑠 ) =
𝑚 𝑇
(𝑋 ) = (𝑋 ) 𝑚 𝑇 𝑑𝐹 𝑇
-𝛼 𝑑𝑋 𝑚
El gradiente es una matriz jacobiana, 1 (𝑠 𝑚 )𝑇
cada columna de la matriz es la
variación del error cuadrático medio
respecto a los pesos sinápticos y el
Transponiendo el gradiente
𝑑𝐹 𝑑𝐹 𝑑𝐹
𝑑𝑋 𝑚
= 𝑑𝑥1𝑚
… 𝑑𝑥 𝑚 umbral de la neurona correspondiente
𝑑𝐹 𝑇
𝑠𝑚 = 𝑠 𝑚 (𝑚−1 )𝑇 𝑠 𝑚
𝑑𝑋 𝑚
Se descompone a cada uno por la
regla de la cadena Sustituimos el resultado en la expresión en
el método de descenso por gradiente
𝑑𝐹 𝑑𝑛 𝑑𝐹
= 𝑑𝑥𝑖 𝑑𝑛 = z𝑠𝑖
𝑑𝑥𝑖 𝑖 𝑖
La varición de F (error 𝑊 𝑚 𝑏𝑚 = 𝑊 𝑚 𝑏𝑚 − 𝛼 𝑠 𝑚 (𝑚−1 )𝑇 𝑠 𝑚
cuadrático) con respecto a la
Dónde 𝑛𝑖 = 𝑊𝑖𝑇 𝑍 entrada neta, le vamos a
llamar sensibilidad
𝑊 𝑚 𝑏𝑚 = 𝑊 𝑚 𝑏𝑚 − 𝛼 𝑠 𝑚 (𝑚−1 )𝑇 𝑠 𝑚 Se expresa usando la regla de la cadena en
términos de la sensibilidad de la capa
Desacoplamos las ecuaciones, una para el posterior a 𝑚 − 1 es decir la capa 𝑚
peso y otra para el umbral 𝑑𝐹 𝑑𝑛𝑚 𝑑𝐹
=
𝑊 𝑚 = 𝑊 𝑚 − 𝛼𝑠 𝑚 (𝑚−1 )𝑇 𝑑𝑛𝑚−1 𝑑𝑛𝑚−1 𝑑𝑛𝑚
𝑏 𝑚 = 𝑏 𝑚 − 𝛼𝑠 𝑚 para ∀𝑚 ∈ [1, … , 𝑀] Utilizando la nomenclatura podemos sustituir
las entradas por S’s, Quedando una ecuación
Lo anterior es un resultado válido para todas recursiva,
las capas, recordemos que se introdujo la 𝑑𝑛 𝑚
variable sensibilidad. 𝑠 𝑚−1 = 𝑚−1 𝑠 𝑚
𝑑𝑛
Calcular la sensibilidad: Se obtiene una la cual se va a propagar la sensibilidad desde la
función recursiva que permita calcular cada última a la primera capa.
una de las sensibilidades de cada capa 𝑛𝑚 = 𝑤 𝑚 𝑓 𝑚−1 𝑛𝑚−1 + 𝑏 𝑚
La función de activación de la
capa anterior, varia respecto a
la entrada de esa misma capa,
es lo quee llamaremos F punto
Para lograrlo necesitamos conocer la
Usamos la regla de la cadena para computar
Derivada neta de la entrada
sensibilidad de la última capa, ya que en
la entrada de la capa n , respecto a la alguna parte se tiene que iniciar el proceso
función de activación de la de recursión.
𝑑𝑛𝑚 𝑑𝑓𝑚−1 𝑑𝑛𝑚 capa anterior
𝑑𝑛𝑚−1
= 𝑑𝑛𝑚−1 𝑑𝑓𝑚−1 = 𝑆𝑀 =
𝑑𝐹
𝑑𝑛𝑀
Quedando, F punto evaluado en n y la La función F es el producto punto del vector
transpuesta de los pesos sinapticos error
= 𝐹ሶ 𝑚−1 (𝑛𝑚−1 )(𝑊 𝑚 )𝑇 𝐹 = 𝑒𝑞𝑇 𝑒𝑞
Lo anterior lo sustituimos en la función A su vez el vector error está dada por la
recursiva, quedando: expresión:
𝒔𝒎−𝟏 = 𝑭ሶ 𝒎−𝟏 (𝒏𝒎−𝟏 )(𝑾𝒎 )𝑻 𝒔𝒎 𝑒𝑞 = 𝑡𝑞 − 𝑓 𝑀 𝑛𝑀
Para ∀𝑚 ∈ [𝑀, … , 2] Usando la regla de la cadena
Esta función recursiva permite calcular cada 𝑀 𝑑𝐹 𝑑𝑓𝑀 𝑑𝑒𝑞 𝑑𝐹
una de las sensibilidades 𝑆 = = =
𝑑𝑛𝑀 𝑑𝑛𝑀 𝑑𝑓𝑀 𝑑𝑒𝑞
Nuevamente le
llamamos F punto

Se puede computar las últimas dos derivadas Tomar en cuenta que la función de activación de la
neurona 1, solo depende de la entrada neta de la
𝑑𝑓𝑀 neurona 1, en el caso de f2 solo depende de la
= −𝐼 2𝑒𝑞 = entrada neta de la neurona 2. Por lo anterior, se
𝑑𝑛𝑀 genera una matriz diagonal
= −𝟐𝑭ሶ 𝑴 𝒏𝑴 𝒆𝒒 𝑑𝑓1𝑚 /𝑑𝑛1𝑚 0 … 0
Lo anterior es la sensibilidad de la última capa 0 𝑑𝑓1𝑚 /𝑑𝑛1𝑚 … 0
=
en términos del error ⋮ ⋮ ⋱ ⋮
0 0 … 𝑑𝑓1𝑚 /𝑑𝑛1𝑚
Ahora necesitamos calcula F punto 𝑑𝑓𝑖𝑚
Los gradientes de f1 con = 𝑑𝑖𝑎𝑔
𝑑𝑓𝑚 respecto a la entrada neta, 𝑑𝑛𝑖𝑚
𝐹ሶ 𝑚 𝑛𝑚 = 𝑑𝑛𝑚 = d2 respecto a la entrada
neta, y así sucesivamente
Esta derivada genera una matriz
𝑚
𝑑𝑓1𝑚 𝑑𝑓𝑠𝑚
= 𝑑𝑛𝑚
… 𝑑𝑛𝑚
¿Qué función de activación utilizar?
Función sigmoide logística Función lineal
1 𝑑𝑓𝑖 𝑑𝑓𝑖
𝑎𝑖 = 𝑓𝑖 𝑛𝑖 = → = 1 − 𝑎𝑖 𝑎𝑖 𝑎𝑖 = 𝑓𝑖 𝑛𝑖 = 𝑛𝑖 → =1
1 + 𝑒 𝑛𝑖 𝑑𝑛𝑖 𝑑𝑛𝑖
Si todas las neuronas tienen la misma función
Si todas las neuronas tienen la misma función
𝐹ሶ 𝑚 𝑛𝑚 = 𝑑𝑖𝑎𝑔((1 − 𝑎𝑖𝑚 )𝑎𝑖𝑚 )
𝐹ሶ 𝑚 𝑛𝑚 = 𝐼
Función sigmoide tangencial
𝑒 𝑛𝑖 − 𝑒 −𝑛𝑖 𝑑𝑓𝑖 2
Nota: No usar la lineal para todas las capas
𝑎𝑖 = 𝑓𝑖 𝑛𝑖 = 𝑛𝑖 → = 1 − 𝑎𝑖
𝑒 + 𝑒 −𝑛𝑖 𝑑𝑛𝑖
Si todas las neuronas tienen la misma función
𝐹ሶ 𝑚 𝑛𝑚 = 𝑑𝑖𝑎𝑔(1 − 𝑎𝑖𝑚 2 )

Función lineal
Multicapa: Análisis del algoritmo de
retropropagación
Minimizar el error cuadrático 𝐹 𝑋 1 , … , 𝑋 𝑀 = 𝑒𝑞𝑇 𝑒𝑞
en cada iteración mediante el método descenso por
gradiente

Ejemplos de entrenamiento
𝑝1 , 𝑡1 , 𝑝2 , 𝑡2 , … , 𝑝𝑞 , 𝑡𝑞 , 𝑝𝑄 , 𝑡𝑄
𝑑𝐹
𝑠 𝑚 = 𝑑𝑛𝑚 𝑒𝑠 𝑙𝑎 𝑠𝑒𝑛𝑠𝑖𝑏𝑖𝑙𝑖𝑑𝑎𝑑

𝐹ሶ 𝑚 𝑛𝑚 = 𝑑𝑖𝑎𝑔 1 − 𝑎𝑖𝑚 𝑎𝑖𝑚


𝐹ሶ 𝑚 𝑛𝑚 = 𝑑𝑖𝑎𝑔 1 − 𝑎𝑖𝑚 2

𝐹ሶ 𝑚 𝑛𝑚 = 1
Aplicación de la red multicapa –
Separación no lineal
Entrenar una red neuronal multicapa para realizar la función XOR
2 entradas y 1 salida (Compuerta XOR)

𝑛1 = (4.0337)𝑝1 + (−1.1193)𝑝2 + (−3.0323)


𝑛2 = (3.8614)𝑝1 + (−0.9741)𝑝2 + (0.1565)
𝑒 𝑛1 − 𝑒 −𝑛1
𝑛1 = 𝑤11 𝑝1 + 𝑤12 𝑝2 + 𝑏1 𝑎1 = 𝑛
𝑒 1 + 𝑒 −𝑛1
𝑛2 = 𝑤21 𝑝1 + 𝑤22 𝑝2 + 𝑏2 𝑒 𝑛2 − 𝑒 −𝑛2
𝑎1 = 𝑓(𝑛1 ) 𝑎2 = 𝑛
𝑒 2 + 𝑒 −𝑛2
𝑎2 = 𝑓(𝑛2 ) 𝑛3 = (−1.1451)𝑎1 + (1.2040)𝑎2 + (−0.3315)
𝑛3 = 𝑤11 𝑎1 + 𝑤12 𝑎2 + 𝑏3 𝑎3 = 𝑛3
𝑎3 = 𝑛3
3 entradas 1 Salida
#include<math.h> /* segunda capa 3 Neuronas */
byte p1,p2,p3,p4; n4=s1*(-2.9399)+s2*(-0.3278)+s3*(2.3650)+(1.0530);
float n1,n2,n3,n4,n5,n6,n7; n5=s1*(5.9230)+s2*(1.6058)+s3*(-0.1121)+(2.1177);
float s1,s2,s3,s4,s5,s6,s7; //n5=s1*(-3.0291)+s2*(4.5689)+(6.0187);
float e=2.7182;
/* Analisis Logsig */
void setup()
{
//s3=logsig(n3);
pinMode(26,INPUT); s4=tansig(n4);
pinMode(28,INPUT); s5=tansig(n5);
pinMode(30,INPUT);
pinMode(32,INPUT); /* tercera capa 1 Neurona */
pinMode(34,INPUT); n6=s4*(0.6812)+s5*(0.1668)+(0.5122);
pinMode(36,INPUT);
pinMode(33,OUTPUT);
} digitalWrite(33,n4);
// digitalWrite(35,n5);
void loop()
{
}
p1=digitalRead(26);
p2=digitalRead(28);
/* funcion tansig */
p3=digitalRead(30); float tansig(float x){
p4=digitalRead(32); float a;
p5=digitalRead(34); a=(pow(e,x)-pow(e,-x))/(pow(e,x)+pow(e,-x));
p6=digitalRead(36); return a;
}
/* primer capa 2 Neuronas */
n1=p1*(-0.3881)+p2*(-3.2531)+p3*(-3.7652)+(4.3853); /* funcion logsig */
n2=p1*(-2.6438)+p2*(-0.0919)+p3*(-3.0794)+(-0.5999); float logsig(float x){
n3=p1*(1.7998)+p2*(-1.4239)+p3*(2.3661)+(-4.2439); float a;
/* Analisis Tansig */ a=(1/(1+pow(e,-x)));
s1=tansig(n1);
return a;
s2=tansig(n2);
s3=tansig(n3);
}
Ejercicio: 5 entradas 1 salida
- Diseñe una red neuronal que sea capaz de seleccionar 3 distintos frutos (sandía, piña o
papaya), teniendo como entradas los siguientes datos:

entradas sandia papaya piña

textura 0.3 0.6 1 1=rugosa


0.6=media lisa
peso 2 1.5 1 0.3=lisa

forma 1 1 1
1=ovalada
color 1 0.5 0.5
1=verde 0.5=amarilla
madurez 0.5-1 0.5-1 0.5-1 0.5= medio
1=maduro maduro
salida 1 0.6 0.3
% Backpropagation 5 entradas 1 salidas
% Sandia, Papaya y PiÒa

p=[0.3 0.6 1.0;


2.0 1.5 1.0;
1.0 1.0 1.0;
1.0 0.5 0.5;
1.0 1.0 1.0;];
t=[1 0.6 0.3];
net=newff(minmax(p),[5 3 2 1],
{'tansig','tansig','logsig','purelin'},'traincgf');
net=init(net);
net.trainparam.goal=1e-5;
net.trainparam.epochs=1000;
net=train(net,p,t)
a=sim(net,p)
net.b{1,1}
net.iw{1,1}
net.b{2,1}
net.lw{2,1}
net.b{3,1}
net.lw{3,2}
net.b{4,1}
net.lw{4,3}
Bibliografía y referencias de internet
Redes Neuronales y sistemas Difusos, Bonifacio Martín del Brío y Alfredo Sanz Molina,
Alfaomega Ra-Ma
https://es.wikipedia.org/wiki/Perceptr%C3%B3n
https://www.youtube.com/watch?v=Woe8fXttC6E
https://www.youtube.com/watch?v=HTKd32yt7zY
https://www.youtube.com/watch?v=-PmGvcl3KHQ
http://www.benfrederickson.com/numerical-optimization/ , descenso del gradiente
El Asociador Lineal: AprendizajeHebbiano
Antes de iniciar con los modelos, estudiaremos el asociador lineal, un sencillo ejemplo de red
unidifreccional que servirá para introducir los conceptos relacionados con el aprendizaje en
redes neuronales.
El asociador lineal consta únicamente de una capa de neuronas lineales.
Denotaremos por 𝑊 = {𝑤𝑖𝑗 } a la matriz de pesos sinápticos; cada fila de 𝑊 contiene los pesos
de una neurona 𝑤𝑖
𝑊 = (𝑤1 𝑤2 … 𝑤𝑚 )𝑇
La operación del asociador lineal es simplemente
𝑦 = 𝑊𝑥
O bien
𝑛

𝑦𝑖 = ෍ 𝑤𝑖𝑗 𝑥𝑗
𝑗=1
Por lo tanto cada neurona 𝑖 del asociador lineal lleva acabo la suma ponderada de las entradas
con sus pesos sinápticos.
El Asociador Lineal: AprendizajeHebbiano
Debe aprender asociar 𝑝 pares entrada-salida, 𝑥 𝜇 , 𝑡𝜇 | 1 ≤ 𝜇 ≤ 𝑝 , ajustando sus pesos 𝑊
de modo que ante un cierto patrón de entrada 𝑥 𝜇 responda con 𝑡𝜇 , y que ante entradas
similares, (𝑥 𝜇 + 𝜀), responda con salidas también próximas (𝑡𝜇 + 𝛿) (con 𝜀 y 𝛿 cantidades
pequeñas).

El problema se centra en encontrar la matriz de pesos 𝑊 óptima.

Para ello se hace uso de una regla de aprendizaje, que a partir de las entradas y salidas
deseadas (en el caso del aprendizaje supervisado), proporciona el conjunto óptimo de pesos 𝑊.
Regla de aprendizaje de Hebb
Se denomina aprendizaje hebbiano a aquellas formas de aprendizaje que involucran una
modificación en los pesos
Δ𝑤𝑖𝑗 = 𝜀𝑦𝑖 𝑥𝑗
Siendo 𝜀 un parámetro denominado ritmo de aprendizaje, que suele ser una cantidad entre 0 y
1.
Consideremos nuestro asociador lineal. La regla de Hebb se expresa en este caso particular así
𝜇 𝜇 𝜇
Δ𝑤𝑖𝑗 = 𝑡𝑖 𝑥𝑗
Y, por lo tanto
𝑛𝑒𝑤 𝜇
𝑤𝑖𝑗 = ∆𝑤𝑖𝑗
Regla de aprendizaje de Hebb
Si los pesos de partida son nulos, el valor final de 𝑊 para las 𝑝 asociaciones será:
𝑊 = 𝑡 1 𝑥 1𝑇 + 𝑡 2 𝑥 2𝑇 + ⋯ + 𝑡 𝑝 𝑥 𝑝𝑇
Empleando la regla de Hebb para el entranamiento del asociador lineal, si los vectores de
entrada {𝑥 1 , 𝑥 2 , … , 𝑥 𝑝 } son ortonormales (ortonormales y de longitud unidad) se cumple
𝑊𝑥 𝜇 = 𝑡 1 𝑥 1𝑇 + ⋯ + 𝑡 𝑝 𝑥 𝑝𝑇 𝑥 𝜇 = 𝑡 1 𝑥 1𝑇 . 𝑥 𝜇 + ⋯ + 𝑡 𝑝 𝑥 𝑝𝑇 . 𝑥 𝜇 = 𝑡𝜇
as
Perceptrón Simple: Algoritmo de
Aprendizaje
Sea un conjunto de 𝑝 patrones 𝑥 𝜇 , 𝜇 = 1, … , 𝑝 con sus salidas deseadas 𝑡𝜇 . Tanto las entradas
como las salidas solamente pueden tomar valores -1 ó 1 (o bien, 0 ó 1, según definamos los
niveles lógicos).
Ante la presentación del patrón 𝜇 − é𝑠𝑖𝑚𝑜, si la propuesta que presenta el perceptrón es
correcta, no actualizaremos los pesos; si es incorrecta lo modificaremos según la regla de Hebb.
Por lo que se tiene:
𝜇 𝜇 𝜇 𝜇
𝜇 2𝜀. 𝑡𝑖 𝑥𝑗 , 𝑠𝑖 𝑦𝑖 ≠ 𝑡𝑖
∆𝑤𝑖𝑗 t =ቐ 𝜇 𝜇
0 , 𝑠𝑖 𝑦𝑖 = 𝑡𝑖

Que se puede reescribir del siguiente modo


𝜇 𝜇 𝜇 𝜇
∆𝑤𝑖𝑗 t = ε. (𝑡𝑖 − 𝑦𝑖 )𝑥𝑗
Que es la regla habitual de expresar la regla del perceptrón

También podría gustarte