Neurona de McCulloch

download Neurona de McCulloch

of 11

description

Las redes neuronales artificiales son objetos matemáticos o computacionales que se definen en un intento de simular el cerebro humano en un ordenador. Computacionalmente suponen un modelo distinto a la tradicional máquina de Turing o de procesamiento en serie. Una red neuronal artificial permite un procesamiento altamente paralelo, al menos en teoría (es claro que si se implementan en un ordenador convencional con su procesamiento en serie, el procesamiento de la información deja de ser realmente paralelo).

Transcript of Neurona de McCulloch

  • Neurona de McCulloch-Pitts

    Ms. Ing. Jairo E. Mrquez D.

    Introduccin

    Las redes neuronales articiales son objetos matemticos o computacionales quese denen en un intento de simular el cerebro humano en un ordenador.Computacionalmente suponen un modelo distinto a la tradicional mquina deTuring o de procesamiento en serie. Una red neuronal articial permite unprocesamiento altamente paralelo, al menos en teora (es claro que si seimplementan en un ordenador convencional con su procesamiento en serie, elprocesamiento de la informacin deja de ser realmente paralelo).

    Una red neuronal tiene capacidad para aprender y adaptarse a nuevascondiciones del entorno, como las redes reales; en nuestro caso, esas condicionesde contorno vienen dadas por los valores en las seales de entrada de la red. Sepueden distinguir modelos de redes neuronales con diversos tipos de aprendizaje:el aprendizaje puede ser no guiado o guiado, y dentro de que sea guiado, elmodelo de profesor puede variar.

    Como el cerebro humano, un red neuronal articial ha de ser un sistema robusto,al que la prdida de algunas de sus unidades constituyentes (las neuronas) noafecte de forma signicativa a efectos de resolver los problemas para los que sedisee.

  • El primer modelo de neurona, propuesto por McCulloch y Pitts en los aos 40, esun combinador lineal: la neurona realiza una combinacin lineal de las seales deentrada, cada una de las cuales tiene su peso, jo o no, y en funcin del valorobtenido puede activarse o no (si supera un cierto valor umbral, se activa ydevuelve una salida; si no, devuelve otro). El modelo puede mejorarse aplicando lasalida de la combinacin lineal a una cierta funcin, generalmente diferenciable,aunque ello no es imprescindible, y comparar el valor que toma la funcin con elvalor umbral para determinar si la neurona se activa o no.

    Una red neuronal se puede representarmediante un grafo dirigido, donde cada nodorepresenta una neurona, y las aristasrepresentan las conexiones entre lasmismas. Es claro que el grafo es dirigido,pues las seales que se envan las neuronasentre s son siempre en el mismo sentido (ypor tanto, tiene sentido que las aristas seandirigidas). Lo que s puede ocurrir, y dehecho ocurre en todos los modelosrecurrentes de redes neuronales, es que lasalida de una neurona inuya en sus propiasentradas; es decir, una neurona se puederealimentar.

    Una red neuronal puede ser entrenada para que realice unas determinadastareas. Una de las formas ms comunes de realizar dicho entrenamiento esproporcionar a la red un determinado conjunto de entradas y las correspondientessalidas que se esperan para esas entradas. De ese modo las neuronas de la redpodran, si por ejemplo estuviramos trabajando con una red formada porneuronas de McCulloch-Pitts, ajustar sus pesos para conseguir obtener losresultados deseados. Adems, si se trabaja previamente sobre el problema aresolver, se puede disear la estructura de la red de forma que resulte mssencillo el tratamiento del mismo.

    En general, se espera de una red neuronal articial que responda de forma similarante entradas parecidas; es decir, que la red tenga capacidad de generalizacin.Para comprobar si dos entradas son parecidas se puede medir la distancia(vectorial) entre ambas, o utilizar cualquier otro tipo de medida que tenga sentidoen el contexto del problema que estemos resolviendo.

    El modelo neuronal de McCulloch y Pitts fue el primer modelo neuronal moderno, yha servido de inspiracin para el desarrollo de otros modelos neuronales. Sinembargo, en muchos de los estudios en que refieren a este modelo, no seinterpreta correctamente el sentido que quisieron dar originalmente McCulloch yPitts, atribuyndole caractersticas o funciones que no fueron descritas por susautores, o restndole importancia a la capacidad de procesamiento del modelo.Por otro lado, el modelo McCulloch-Pitts por s mismo est retomando importancia

  • debido a que es uno de los pocos modelos digitales en tiempo discreto y, comopara realizar implantaciones electrnicas o computacionales de las neuronasartificiales en la actualidad se utilizan sistemas digitales, con la mayora de losmodelos analgicos actuales es necesario realizar ciertas adaptaciones a losmodelos al momento de implantarlos, lo que dificulta y hace imprecisa a dichaimplantacin con respecto al comportamiento terico derivado del modelo.

    Definicin

    En trminos generales, la neurona deMcCulloch-Pitts es una unidad de clculo queintenta modelar el comportamiento deuna neurona "natural", similares a las queconstituyen del cerebro humano. Ella es launidad esencial con la cual se construye unared neuronal artificial.

    El resultado del clculo en una neuronaconsiste en realizar una suma ponderada delas entradas, seguida de la aplicacin de unafuncin no-lineal, como se ilustra en lasiguiente figura

    Esto se expresa matemticamente como

    Donde

    es la suma ponderada. es el valor de la i-sima entrada (input). es el peso (weights) de la conexin entre la i-sima entrada y la

    neurona.

  • es el valor umbral (threshold) o es la salida (output) de la neurona. s es la funcin no-lineal conocida como funcin de activacin.

    La funcin de activacin que se usa es

    La suma ponderada se puede expresar de una manera ms compacta usando elproduto de matrices:

    Con y .

    y son los vectores extendidos de pesos y de entrada, respectivamente.

    Tambin se puede simplificar la representacin grfica de la siguiente manera:

    La estructura matemtica formal en trminos de tablas de verdad de este tipo deneurona son:

  • En este modelo tansencillo puede verseque la activacin de laneurona depende delvalor que tomen lospesos y las entradas, deforma que la variacinde stos originandistintas salidas para lamisma entrada a laneurona. En la prctica,los pesos de las

    neuronas se modifican sometiendo a la red a un entrenamiento, permitiendo que lared realice una funcin determinada. Esta es la caracterstica que diferencia a unared neuronal de una mquina algortmica clsica: una red neuronal no seprograma, se educa.

  • La red es capaz de retener y asociar elconocimiento a travs de la adaptacin de lospesos de las neuronas siguiendo una regla deaprendizaje. Estas reglas son ecuacionesexpresadas en funcin de las entradas ysalidas de las neuronas y describen la formade variacin de los pesos. En definitiva, son elinstrumento empleado por las neuronas paraadaptarse a la informacin que se lepresenta.

    Usos de las neuronas

    Permite hacer funciones lgicas Primera aproximacin a las redes neuronales Capacidad de computacin universal (puede simular cualquier programa

    computable)

    Autmatas finitos (AF) equivalentes a clulas

    Para cada clula existe un AF equivalente, para ello tenemos que:

    1. Que del AF y la clula etiquetada con h = 2y se crea una entrada activadoraexterna al circuito.

    2. Se aade una rama excitadora para cada clula (a) que contenga h.3. Aadir clula (a) con h=1 y que recibe 1 nica entrada del exterior,

    correspondiente al smbolo inicial de la cadena.4. Se aade una rama excitadora desde la salida de la clula (a) a cada una

    de las clulas cuya etiqueta contenga a h.5. Se introduce una clula con etiqueta F, con h = 2 y que recibe una nica

    entrada externa, correspondiente al smbolo final de cadena.6. Se aade una rama excitadora hacia la clula F desde cada una de las

    clulas del circuito que enve al menos una rama excitadora hacia cualquierclula cuya etiqueta contenga uno de los estados finales.

    Perceptrn simple

    Es un modelo de red neuronal propuesto por Rosemblatt (1959), es una redmonocapa con alimentacin hacia adelante. As que este tipo de red, es unacoleccin de neuronas similares a McCulloch-Pitts, con entradas continuas [0, 1],umbral Tj y salida bipolar {1, 1}.

    Tambin, puede entenderse como perceptrn la neurona artificial y unidad bsicade inferencia en forma de discriminador lineal, que constituye este modelo de redneuronal artificial, esto debido a que el perceptrn puede usarse como neuronadentro de un perceptrn ms grande u otro tipo de red neuronal artificial.

  • El concepto ms bsico que permite comenzar a entender un perceptrn esasociarlo a un sensor, ya sea de temperatura, humedad, nivel de lquidos, gradode acidez, coloracin, densidad, etc. Es, en esencia, un dispositivo que, dada lapresencia de uno o varios fenmenos de entrada, permite representarlo(s)mediante una seal de salida fcilmente reconocible. Ahora bien, si dotamos aeste simple dispositivo de varios canales de entrada (dos o ms), le habremosagregado una notable mejora ya que podr discriminar o diferenciar entredistintos fenmenos de entrada variables y entregarnos una salida querepresentar el criterio diferenciador o resultado de la interaccin entre lasentradas.

    El modelo biolgico ms simple de un perceptrn es una neurona y vice versa. Esdecir, el modelo matemtico ms simple de una neurona es un perceptrn, Laneurona es una clula especializada y caracterizada por poseer una cantidadindefinida de canales de entrada llamados dendritas y un canal de salida llamadoaxn. Las dendritas operan como sensores que recogen informacin de la regin

  • donde se hallan y la derivan hacia el cuerpo de la neurona que reaccionamediante una sinapsis que enva una respuesta hacia el cerebro, esto en el casode los seres vivos.

    Este tipo de red es capaz de aprender a clasicar patrones linealmenteseparables.

    Salida +1 si pertenece a la clase, 1 si no pertenece

    Pesos determinan zonas de clasicacin separadas por un hiperplano (en elcaso de 2 entradas, la separacin sera una lnea)

    Ejemplo: con dos entradas:

    Minsky y Papert (1969) mostraron esta limitacin del perceptrn pararepresentar/aprender funciones no separables linealmente (ejemplo: XOR noseparable linealmente, necesita ms de 1 capa).

    Cdigo de perceptrn en java para correrlo y probarlo, es slo una muestra, no esgeneral, est hecho para dos caractersticas, lo que deben hacer es ajustarlo y/ocompletarlo.

    import java.text.DecimalFormat;

    public class Perceptron {

    /** Vector de Pesos */private double weights[] = {0.5,-0.1,0.2};

    /*** Patrones aumentados de nuestra Muestra de Entrenamiento:* {Caracterstica #1, Caracterstica #2, Bias}*

    * */private double entries[][] = {{1.5,3,1},{3.5,4,1},{1,2,1},

    {4,2,1}};

    /** Clases a las que pertenecen los vectores de la variableentries*/

    private double outputs[] = {0,1,0,1};

    /** Razn de aprendizaje */

    private double learningRate = 0.9;

  • public double[] getWeights(){return weights;

    }

    public double[][] getEntries(){return entries;

    }

    public double[] getOutputs(){return outputs;

    }

    /** Funcin para calcular el net */public double computeNet(double[] entrie){

    double net = 0;

    for(int i = 0; i < entrie.length; i++)net += entrie[i] * weights[i];

    if(net > 0)return 1;

    elsereturn 0;

    }

    /** Funcin para corregir pesos */public void adjustWeights(double[] entrie,double net, double

    output){double e = (output - net) * learningRate;

    for(int i=0; i < entrie.length; i++){weights[i] = roundTwoDecimals(entrie[i] * e +

    weights[i]);}

    }

    /** Funcin para entrenar */public void train(){

    boolean mistake;do{

    mistake = false;for(int i = 0; i < entries.length; i++){

    double net = computeNet(entries[i]);if(net != outputs[i]){

    mistake = true;

    adjustWeights(entries[i],net,outputs[i]);}

    }

  • }while(mistake);}

    public void outputFinalWeights(){for(int i = 0; i< weights.length; i++){

    System.out.println("Peso " + (i+1) + "=" +weights[i]);

    }}

    public double roundTwoDecimals(double d) {DecimalFormat twoDForm = new DecimalFormat("#.##");

    return Double.valueOf(twoDForm.format(d));}

    public Perceptron(){

    }

    public static void main(String args[]){Perceptron p = new Perceptron();p.train();p.outputFinalWeights();

    }

    }

    Referencias

    1. D. Michie, D.J. Spiegelhalter, C.C. Taylor (eds). Machine Learning, Neuraland Statistical Classification, 1994. [1]

    2. R. Rojas. Neural Networks: A Systematic Introduction, Springer, 1996 .ISBN3-540-60505-3.

    3. Freund, Y. and Schapire, R. E. 1998. Large margin classification using theperceptron algorithm. In Proceedings of the 11th Annual Conference onComputational Learning Theory (COLT' 98). ACM Press.

    4. Gallant, S. I. (1990). Perceptron-based learning algorithms. IEEETransactions on Neural Networks, vol. 1, no. 2, pp. 179-191.

    5. Rosenblatt, Frank (1958), The Perceptron: A Probabilistic Model forInformation Storage and Organization in the Brain, Cornell AeronauticalLaboratory, Psychological Review, v65, No. 6, pp. 386-408.

    6. Minsky M L and Papert S A 1969 Perceptrons (Cambridge, MA: MIT Press)7. Novikoff, A. B. (1962). On convergence proofs on perceptrons. Symposium

    on the Mathematical Theory of Automata, 12, 615-622. Polytechnic Instituteof Brooklyn.

  • 8. Widrow, B., Lehr, M.A., "30 years of Adaptive Neural Networks: Peceptron,Madaline, and Backpropagation," Proc. IEEE, vol 78, no 9, pp. 1415-1442,(1990).