Perceptrón

O perceptrón é un dos algoritmos de aprendizaxe supervisada máis coñecidos dentro da disciplina do deep learning e da intelixencia artificial en xeral. Introducido por Frank Rosenblatt en 1957, serve como piar para a maior parte de arquitecturas de redes neuronais modernas. Considérase un clasificador lineal, é dicir, asigna un input (vector de números) a unha clase específica de saída. Entre as súas aplicacións no campo da aprendizaxe automática está o recoñecemento de patróns. 

A arquitectura de perceptrón aséntase sobre a neurona M-P (Neurona de McCulloch e Pitts), considerada a primeira neurona artificial da historia.

 Historia 
miniatura|300px|Mark I Perceptron, a primeira implementación do algoritmo perceptrón. 
Warren McCulloch e Walter Pitts inventaron a neurona M-P en 1943. O Mark I Perceptron foi a primeira implementación hardware do perceptrón, construído en 1957 por Frank Rosenblatt no Laboratorio Aeronáutico Cornell. A intención era aplicar o algoritmo de perceptrón para que fose posible usalo como ferramenta para interpretar fotografías. A creación da máquina foi levada a cabo con moito segredismo; de feito, non se revelou ao público ata 1960 nunha demostración. A NPIC (National Photographic Interpretation Center) estadounidense desenvolveu o Mark I Perceptron como un proxecto secreto desde 1963 ata 1966.

O propio Rosenblatt publicou en 1958 "O perceptrón: Un modelo probabilístico de almacenamento de información e organización cerebral", paper no que describe a organización do perceptrón en tres tipos de células, unidades ou neuronas:

 Al (proxección)
 All (asociación)
 R (resposta)

O paper trata de establecer unha relación entre a biofísica e a psicoloxía, especulando na forma en que a información se retén en memoria e como influencia o recoñecemento de patróns (aplicación directa do perceptrón) e o comportamento. O obxectivo final de Rosenblatt era a comprensión de sistemas cognitivos a través de técnicas estatísticas.

 Mark I Perceptron 
O mainframe IBM 704 (unha das primeiras computadoras con soporte hardware para operacións de punto flotante) recibiu unha implementación software co algoritmo perceptrón, pero o proxecto hardware Mark I Perceptron "Project PARA" para recoñecemento de imaxes foi probablemente a aplicación máis exitosa do perceptrón no momento. 
miniatura|317x317px|Perceptrón elemental de Rosenblatt.
O Mark I Perceptron contaba tres tipos de unidades ou capas, seguindo o modelo proposto por Rosenblatt en 1958:

 Unidades-S (sensores ou input)
 Unidades-A (asociación)
 Unidades-R (resposta)

Respecto ás limitacións técnicas, as Unidades-S estaban limitadas a unha malla , onde cada unha delas podía conectarse a 40 Unidades-A (análogo á conexión axón-dendrita nas neuronas biolóxicas). As 512 Unidades-A funcionaban como capa oculta (hidden layer), que conducían á capa final de saída con 8 perceptróns funcionando como Unidades-R.

 Construción 
miniatura|261x261px|Mark I Perceptron coa función de indentificar as letras do abecedario. Neste caso as Unidades-S encárganse de mostrar o input (letra "C").
A imaxe de 400 píxeles fórmase a través da malla  do Mark I. A cámara conta con fotosensores de sulfuro de cadmio que se conectan cun taboleiro de enchufes que establece as diferentes configuracións das Unidades-S (input) no proceso de asociación. Os potenciómetros implementan os diferentes pesos de asociación entre as Unidades-A e Unidades-R. Este pesos varían no proceso de aprendizaxe coa axuda de motores eléctricos.

 Funcionamento 
As Unidades-S comenzan conectadas ás Unidades-A mediante valores ou "pesos" aleatorios. Rosenblatt insistíu no carácter aleatorio destas conexións, pois intentaba replicar o funcionamento da visión humana e cría que así se conectaba a retina coa codia visual.Despois, un sistema eléctrico actualiza os pesos de asociación ata que conclúe o algoritmo. 

 Controversia 
Rosenblatt deu a coñecer o perceptrón nunha conferencia de 1958 organizada pola Armada dos Estados Unidos. A comunidade da intelixencia artificial daquel momento recibiu a existencia da máquina como unha noticia sorprendente que abría novas posibilidades no campo das computadoras intelixentes.É o embrión dunha futura computadora [o Mark I Perceptron] que os expertos da Armada consideran que será capaz de andar, falar, ver, escribir, reproducirse e ser consciente da súa propia existencia.

The New York TimesA controversia concernente á existencia do perceptrón nunha etapa temperá do desenvolvemento dos computadores podería ser considerado como un dos primeiros grandes debates sociais e éticos dentro do campo de estudo da intelixencia artificial.

 Precedente: neurona M-P 
Nesta arquitectura neuronal recibíanse unha serie de entradas (inputs) de tipo binario  coa intención de devolver unha resposta, tamén de tipo binario.

A neurona de McCulloch e Pitts estaba conformada polas seguintes partes:

 Datos binarios de entrada. Características extraídas da pregunta a responder ou modelar. No caso da neurona M-P, é obrigatorio que se poidan responder con simple si/non.
 Threshold. Valor limiar, determina a activación ou desactivación da neurona. A suma ponderada compárase con dito limiar, e o valor de threshold decide sobre a posible activación.
 Función de adición. A neurona M-P comeza procesando os datos de entrada realizando unha adición. A función  recibe os parámetros iniciais como un vector  con  compoñentes (cada un deles funciona como unha das entradas da neurona). A suma/adición de compoñentes do vector  funciona como .
 Función de activación. Computada a adición dos datos, a función de activación encárgase de devolver  pasado certo limiar (o threshold) e  noutros casos (heaviside step). O output (valor de salida) consiste no valor proporcionado pola función de activación. 
 Inhibidores e excitadores. Os excitadores activan a neurona e consisten en valores binarios  que indican a presenza ou ausencia de entradas necesarias para xerar unha resposta. Os inhibidores desactivan ou, como o propio nome indica, inhiben a neurona. Tamén se representan con valores binarios.

miniatura|Porta lóxica XOR.
As portas lóxicas sinxelas de tipo AND, OR e NOT resultan modelables pola neurona M-P xa que son linealmente separables. Con todo, portas lóxicas como a XOR non o son. É dicir, entre as limitacións da neurona M-P están:

 Valores binarios como entrada.
 Threshold definido manualmente.
 Entradas sen pesos asociados.
 Predicións só para problemas separables linealmente por un hiperplano (discriminación gráfica de elementos).

 Definición 
miniatura|Sinapse neuronal.
O modelo biolóxico máis simple dun perceptrón é unha neurona e viceversa. O análogo biolóxico do perceptrón (a neurona) consiste en entradas coñecidas como dendritas acompañadas por saídas a modo de axóns. O sinal eléctrico coñecido como sinapse transmite información ao cerebro, pero o proceso completo carece de sentido se observamos unha neurona en particular. A especialización do labor dunha célula do sistema nervioso adquire valor cando se asocia con outras neuronas e forma unha rede.

O intercambio axón-dendrita establece esa asociación entre un par de neuronas, pero é a rede neural ao completo a que dá sentido e propósito á comunicación/predición transmitida na sinapse. Así, diríase que unha neurona singular é análoga en certa medida a un perceptrón de tipo simple (similar á neurona M-P). A conclusión de Frank Rosenblatt foi que eran necesarias neuronas de tipo complexo para modelar e responder a coñecemento de maior entidade, neuronas artificiais que requerían da incorporación dunha rede.

O perceptrón diferénciase notablemente da neurona M-P en que permite valores de entrada non binarios. Ademais, iso repercute en que as respostas non teñen que ser necesariamente binarias. O perceptrón como algoritmo componse de varias neuronas artificiais, cada unha delas funcionando como unidade lóxica.

 Arquitectura 
miniatura|Capas de perceptrón.
Como rede composta por máis dunha neurona, a arquitectura de perceptrón exemplifica a construción dunha rede neural artificial. Cada neurona individual computa unha suma paramétrica das entradas recollidas no vector . Estas unidades coñécense como TLU (Threshold Logic Unit) e son as encargadas de sumar as entradas contando cos pesos, a diferenza dunha neurona M-P.

A arquitectura tradicional dun perceptrón pódese dividir en tres compoñentes principais:

 Capa de entrada (input layer). Nela recíbense os datos de entrada. Cada nodo desta capa representa unha característica dun conxunto de datos de entrada. Por exemplo, nunha clasificación de imaxes cada nodo da capa de entrada podería funcionar medindo a intensidade dun píxel.
 Capa oculta (hidden layer). A maior parte do procesamento acontece na capa intermedia. Un perceptrón simple non ten capas ocultas, pero os perceptróns multicapa (MLP, Multilayer Perceptron) incluén unha ou máis. Cada nodo da capa oculta realiza unha suma ponderada das entradas, aplica unha función de activación e pasa o resulta á seguinte capa.
 Capa de saída (output layer). Última capa da rede onde se produce a predición final. O número de nodos finais da capa corresponde ao número de posibles saídas do problema a modelar.

 Formalización 
O funcionamento de cada unidade lóxica ou neurona artificial (TLU) dentro da rede neural do perceptrón descríbese da seguinte maneira:

O vector  almacena as entradas , multiplicadas polo vector de pesos . 
miniatura|272x272px|Función de adición dun perceptrón. O resultado do sumatorio pasa a unha función de activación (neste caso denotada por ) que determina o output .
Deste modo, a función de adición  será:

  produto escalar.
  ou bias como nesgo, fixa un nivel mínimo de actividade (grao de "inhibición" da neurona).

En canto á función de activación , un exemplo sinxelo sería o heaviside step, é dicir, o "chanzo de Heaviside".

Funcións como a ReLU (Rectified Linear Unit), sigmoide ou tanh utilízanse nas redes neuronais modernas, e son moito máis complexas que o "chanzo de Heaviside". Neste caso particular, discrimínase a saída a modo de problema de clasificación binario.

O termo de bias cumpre a función dun peso máis, de modo que pode denotarse como . Deste modo:

Pode engadirse a coordenada  ao vector de entrada  para facilitar a notación.

 Aprendizaxe 
O adestramento dun perceptrón encárgase de actualizar sucesivamente os pesos  e o bias  para minimizar o erro entre a saída predita e a real. O algoritmo de descenso do gradiente optimiza tipicamente os parámetros. Entre as regras de aprendizaxe máis utilizadas está a regra delta.

 Regra de actualización de pesos 
O algoritmo de aprendizaxe característico dun perceptrón simple (ou perceptrón de 1 capa) funciona como se mostra a continuación:




miniatura|Porta lóxica XOR resolta cun perceptrón.
 inicialízase con valores aleatorios.

 Mentres non converxencia, escoller .
 Se  AND , entón . Volver a 1.
 Se  AND , entón . Volver a 1.
 Final.

Desta forma actualízanse os pesos  para que os produtos escalares  manteñan a coherencia que esixe o perceptrón. 

 Se unha entrada  pertence á clase  (inputs negativos), entón  será menor que .
 Se unha entrada  pertence á clase  (inputs positivos), entón  será maior ou igual que .

 Taxa de aprendizaxe 
O algoritmo de aprendizaxe pode empregar unha constante  para acelerar a actualización dos pesos. O proceso resulta idéntico para todas as neuronas, de modo que se pode estudar para unha célula illada como se ve a continuación:

  elemento  do vector de entrada .
  elemento  do vector de pesos .
  constante de aprendizaxe .
  saída da neurona.
  saída esperada.

 Aprendizaxe Tipo 1 
Carece de : 

 Aprendizaxe Tipo 2 
Conta con :

 Iteracións 
No algoritmo de perceptrón a aprendizaxe como tal consiste na actualización dos pesos , de modo que, con ou sen , a diferenza entre o valor real de saída  e o esperado  será o factor máis importante .

Para a actualización de  de forma iterativa, cóntase con:

  vector de entrada na iteración .
  vector de pesos na iteración .
  saída da neurona na iteración .

En cada iteración administrar  á regra de actualización e proceder con ou sen . A converxencia está asegurada nun número de iteracións finito sempre que os datos de partida sexan separables linealmente. De non ser así, é posible que o perceptrón atope unha solución, aínda que non estea asegurada a converxencia.Novikoff, Albert J. (1963). "On convergence proofs for perceptrons". Office of Naval Research.

 Converxencia 
Supóñase un conxunto de datos de adestramento da forma  onde,

 Cada  é un vector da mesma dimensión que .
  como output.

Para facilitar o desenvolvemento posterior, considérese a seguinte función de activación:

.

Dise que un  é linealmente separable se existen ,  (é dicir, pesos e bias) que cumpran para todo 

,

o que faría que todas as predicións do conxunto de datos de adestramento foran correctas (o erro de adestramento sería 0).

Polo Teorema de Converxencia do Perceptrón, se  é linealmente separable entón o algoritmo de perceptrón encontra un separador lineal.

 Marxe de punto 
A distancia dun punto  respecto ao hiperplano formado por  é

.

 A marxe dun punto  respecto ao hiperplano  é , cantidade só positiva cando o punto  clasifícase como  polo clasificador lineal do hiperplano.
 A marxe do conxunto de datos  respecto ao hiperplano  é .
A marxe de  será positiva se todos os puntos do conxunto están ben clasificados (de non estalo, a marxe dalgún punto sería negativa e tomaría o valor mínimo por baixo ). Nese caso (nunha correcta clasificación e só baixo ese suposto), a marxe de  representa a distancia do hiperplano ao punto máis próximo.

 Teorema de converxencia do perceptrón 
Por simplicidade considérase que o hiperplano pasa pola orixe (óbviase , o bias).Se:

 Existe  tal que  para todo  e algún .
 Todos os exemplos teñen magnitude acotada:  para todo .

entón:

o algoritmo de perceptrón comete como moito  erros e separa linealmente os datos.

 Notas 

Categoría:Redes neuronais artificiais
Categoría:Algoritmos