perceptrón multicapa

16
Algoritmos en redes neuronales Perceptrón multicapa Conocer el problema Entradas Salidas Patrones Tipos de datos (E/S) Binario Bipolar Real Algoritmos de entrenamientos Regla Delta Regla Delta Modificada

Upload: gerardo-cruz-espinosa

Post on 30-Sep-2015

249 views

Category:

Documents


4 download

DESCRIPTION

f

TRANSCRIPT

  • Algoritmos en redes neuronales

    Perceptrn multicapa

    Conocer el problema

    Entradas

    Salidas

    Patrones

    Tipos de datos (E/S)

    Binario

    Bipolar

    Real

    Algoritmos de entrenamientos

    Regla Delta

    Regla Delta Modificada

  • Funcin de Activacin (afectan la salida)

    Esta funcin de activacin debe ser la misma para cada capa, pero a la vez

    cada capa independiente de la otra puede utilizar una distinta, es decir que si la

    capa 1 utiliza la funcin sigmoide, la capa 2 puede utilizar Gaussiana.

    Capas Ocultas Capa de Salida

    Sigmoide

    Tangente Hiperblica

    Gaussiana

    Sigmoide

    Tangente Hiperblica

    Gaussiana

    Lineal

    Inicializacin de pesos y umbrales

    Estos se hacen aleatoriamente al iniciar por primera vez nuestro entrenamiento

    en caso de que nuestro problema no los tenga. Por lo general estos pesos y

    umbrales estn dentro del rango de -1 y 1.

    Parmetros de entrenamientos

    Numero de iteraciones: indica la cantidad de iteraciones que har

    internamente la red.

    Error mximo permitido: es el parmetro hasta con que error vamos a

    entrenar la red neuronal. Es el maestro.

    Rata de aprendizaje (): es la que le da la velocidad al entrenamiento y

    por lo general est dentro del rango de cero y uno (0 y 1).

    Si utilizamos el algoritmo de entrenamiento Regla Delta Modificada la rata de

    aprendizaje debe ser Dinmica.

  • Entrenamiento de una red Perceptrn multicapa

    Funciones de activacin ()

    Sigmoide

    =1

    1 +

    =

    1 + 2

    Tangente Hiperblica

    =1

    1 +

    =

    1 + +

    1

    1 + 2

    Lineal

    =

    = 1

    Gaussiana

    = 2

    = 2 2

  • Salidas de las neuronas de la primera capa oculta

    1 = 1

    =1

    =1

    Salidas de las neuronas de la segunda capa oculta

    2 = 1 2

    =1

    =1

    Salida de la red neuronal

    = 2 3

    =1

    =1

    Errores Lineales producidos a la Salida de la red neuronal

    =

    Error por patrn

    Cuando hay una salida

    =

    Cuando hay ms de una salida

    =

    Teniendo todos estos datos poder modificar los pesos y umbrales

    Para Regla Delta

    Pesos

    +1 =

    +

    +1 =

    + 1

    +1 =

    + 2

  • Umbrales

    1+1 = 1

    +

    2+1 = 2

    +

    3+1 = 3

    +

    Para Regla Delta Modificada

    Pesos

    +1 =

    + + &(

    1)

    +1 =

    + 1 + &(

    1)

    +1 =

    + 2 + &(

    1)

    Umbrales

    1+1 = 1

    + + &(1 1

    1)

    2+1 = 2

    + + &(2 2

    1)

    3+1 = 3

    + + &(3 3

    1)

    Hallamos el error Erms

    =

    #

    Hay que validar siempre que

    < max

  • Como interpretar y realizar un algoritmo para resolver

    una red neuronal Perceptrn multicapa

    Lo que primeramente debemos tener en cuenta para resolver este tipo de

    problemas, es tener claro que tenemos y que deseamos obtener. Es muy

    importante analizar la estructura de la red que deseamos implementar.

    Si podemos darnos cuenta nuestra red neuronal est compuesta por:

    4 entradas

    2 capas ocultas

    1 capa de salida

    la primera capa oculta contiene 9 neuronas por lo tanto contiene 9

    umbrales

    la segunda capa oculta contiene 5 neuronas por lo tanto contiene 5

    umbrales

    la capa de salida contiene 2 neuronas por lo tanto contiene 2 umbrales

    Por lo general este tipo de redes presentan los datos de entradas y las salidas

    correspondientes, de lo nico que debemos preocuparnos en de cmo

    configuramos nuestra red, de tal manera que sea mucho ms eficiente.

  • Para el caso de los pesos y umbrales de forma inicial son aleatorios los datos.

    Por eso solo debemos elegir que valores queremos que tomen al principio. Por

    ejemplo como estos valores no deben salir del rango de -1 y 1.

    Para el caso de los pesos notamos que son en total 36 pesos que salen de las combinaciones posibles de las entradas con la primera capa

    oculta (4x9).

    Para el caso de los pesos L notamos que son en total 45 pesos que salen de las combinaciones posibles de la primera capa oculta con la

    segunda capa oculta (9x5).

    Para el caso de L notamos que son en total 10 pesos que salen de las combinaciones posibles de la segunda capa oculta con la capa de

    salida (5x2).

    Para el caso de notamos que hay tantos umbrales dependiendo de

    la cantidad de neuronas que hayan en cada capa. 1 = 9 2 =

    5 3 = 2

    Como interpretar una ecuacin matemtica a un

    lenguaje de programacin

    Es muy comn que tengamos la lgica de programacin en nosotros, pero hay

    muchos casos que eso no es suficiente ya que cuando tenemos un sistema de

    ecuacin y lo deseamos llevar a un lenguaje de programacin nos es imposible

    hacerlo.

    Para realizar este tipo de abstraccin es indispensable tener una nocin clara

    de algunos temas de programacin como: ciclos repetitivos, manejo de

    vectores y matrices, manejo de funciones. No se necesita estrictamente un

    lenguaje de programacin especfico sino que cualquiera puede funcionar, solo

    basta que tengamos claro como es la sintaxis de cada lenguaje. Es por eso que

    se recomienda que el programador realice sus avances en el lenguaje que

    mejor domine.

  • Ejemplo

    1 = 1

    =1

    =1

    Si deseamos calcular las salidas de las neuronas de la primera capa oculta, la

    cual se calcula con ecuacin anterior. Debemos saber que significa cada uno

    de sus componentes:

    Es la funcin de activacin que hayamos escogido y como se puede notar paro los que no lo han podido ver, esta funcin afecta al resultado final que se

    produce dentro de los corchetes. Es decir que el valor que nos arroje la

    solucin del sistema de ecuacin lo llevaremos a nuestra funcin de activacin.

    Es el valor de la entrada a la red neuronal y j va tomando el valor de cada

    entrada, es decir que el valor mximo de j depende de la cantidad de entradas

    que haya. En nuestro caso tomara un valor mximo de cuatro.

    Toma el valor mximo de entradas a la red

    Son los valores de los pesos de la primera capa oculta con las entradas.

    Los ndices indican que peso hay que tomar especficamente.

    1 Indica el umbral y al igual que los pesos el ndice indica el umbral especfico. El primer nmero indica la capa a la que pertenece.

    = 1 Tomara el valor mximo de neuronas por cada capa

    Ahora bien la sumatoria dentro del sistema se puede representar dentro de un

    ciclo repetitivo en el lenguaje de programacin. Par ello el subndice indica

    donde inicia y el ndice superior indica donde termina.

    Pero como podemos notar fuera de los corchetes hay otro subndice lo cual nos

    indica inmediatamente que es necesario otro ciclo repetitivo que tiene como

    limite el subndice de la capa siguiente.

    Como en nuestro caso sabemos el tamao de los pesos y umbrales

    vamos a realizar los procesos ajustndolo a este sistema propuesto.

    Se puede ver lo siguiente:

    4,9 9,5 5,2 2

  • 1 9 2 5 3 (2)

    Utilizaremos el lenguaje de programacin Visual Basic y lo primero que

    debemos hacer es crear los vectores y matrices que componen nuestro

    sistema. Recordemos que los vectores son de una dimensin mientras que las

    matrices son de (nxm).

    Si traemos este concepto de vectores y matrices a nuestro caso podemos ver

    que los pesos corresponden a matrices mientras los umbrales son vectores.

    Digamos que tenemos la siguiente tabla que representa una compuerta lgica

    cualquiera

    X1 X2 X3 X4 Yd1 Yd2

    1 1 0 0 1 1

    1 0 1 0 0 0

    0 1 0 1 0 0

    0 0 1 1 0 0

    Declaramos primeramente nuestros vectores y matrices, esto lo hacemos de

    forma global dentro del formulario para que puedan ser utilizados en cualquier

    momento por el programa.

    Como en Visual Basic los ndices comienzan desde la posicin cero entonces

    debemos restar 1 a cada una de las posiciones que tenemos planteada en

    nuestro sistema. Ejemplo como tenemos en la primera capa 9 neuronas al

    momento de ser declaradas debemos poner 8, porque para visual basic seria

    0,1,2,3,4,5,6,7,8 y en total tendra las 9 posiciones.

  • Como ya conocemos los valores de la entradas y las salidas, las

    inicializamos directamente dentro de nuestro formulario de arranque

    No es una camisa de fuerza realizarlo de esta forma ya que la programacin

    tiene muchos caminos para llegar a una solucin, es muy probable que hayan

    muchas formas mejores de realizar este sistema.

  • Como los primeros pesos y umbrales son aleatorios los generaremos

    inicialmente.

    Teniendo ya las entradas, las salidas, los pesos y los umbrales ya

    podemos empezar a realizar el proceso interno que se presenta dentro

    de los corchetes 1

  • Hemos adicionado al cdigo anterior lo que se seala con las flechas

    Ahora aplicamos la funcin de activacin a cada uno de los valores de

    salida de cada iteracin

  • Creamos una funcin que guarde en el ComboBox las funciones de activacin,

    el ComboBox se llama FnActivacion

    Debemos iniciar esta funcin al formulario de arranque para que las pueda

    cargar al iniciar.

    Lo que hemos adicionado es lo que esta seleccionado.

    Hemos adicionado para que nos muestre los pesos y umbrales iniciales,

    tambin al final hemos declarado para que nos presente los nuevos valores

    que ha tomado las primera capa h1 dependiendo de la funcin de activacin

    que hayamos elegido. Cabe recordar que no estamos validando todo ya que

  • solamente nos estamos enfocando en la forma de cmo se interpretan este tipo

    de sistemas neuronales.

    Este ltimo bloque lo hemos introducido dentro del ciclo mayor.

    Como nos hemos dado cuenta el planteamiento para resolver el sistema para

    las salidas de la primera capa oculta ha funcionado. Las dems salidas se

    hacen de manera anloga a esta, solo basta con tener claro que ndices se

    deben tomar.

  • Cdigo completo

  • God bless