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.[1] Introducido por Frank Rosenblatt en 1957, serve como piar para a maior parte de arquitecturas de redes neuronais modernas.[2] 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
[editar | editar a fonte]Warren McCulloch e Walter Pitts inventaron a neurona M-P en 1943.[3] 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.[4]
O propio Rosenblatt publicou en 1958 "O perceptrón: Un modelo probabilístico de almacenamento de información e organización cerebral"[5], 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
[editar | editar a fonte]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"[6] para recoñecemento de imaxes foi probablemente a aplicación máis exitosa do perceptrón no momento.
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
[editar | editar a fonte]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.[7]
Funcionamento
[editar | editar a fonte]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 creía que así se conectaba a retina coa corteza visual.[8]Despois, un sistema eléctrico actualiza os pesos de asociación ata que conclúe o algoritmo.
Controversia
[editar | editar a fonte]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 recibíu 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.[9] The New York Times
A 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
[editar | editar a fonte]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.[10]
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.
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
[editar | editar a fonte]O modelo biolóxico máis simple dun perceptrón é unha neurona e viceversa.[11] 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 da 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
[editar | editar a fonte]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
[editar | editar a fonte]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 .
Deste modo, a función de adición será:
- produto escalar.
- ou bias como sesgo, fixa un nivel mínimo de actividade (grado 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
[editar | editar a fonte]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
[editar | editar a fonte]O algoritmo de aprendizaxe característico dun perceptrón simple (ou perceptrón de 1 capa) funciona como se mostra a continuació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.[12]
- 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
[editar | editar a fonte]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:[13]
- elemento do vector de entrada .
- elemento do vector de pesos .
- constante de aprendizaxe .
- saída da neurona.
- saída esperada.
Aprendizaxe Tipo 1
[editar | editar a fonte]Carece de :
Aprendizaxe Tipo 2
[editar | editar a fonte]Conta con :
Iteracións
[editar | editar a fonte]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.[14]
Converxencia
[editar | editar a fonte]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
[editar | editar a fonte]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.[15]
Teorema de converxencia do perceptrón
[editar | editar a fonte]Por simplicidade considérase que o hiperplano pasa pola orixe (óbviase , o bias).[16]
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
[editar | editar a fonte]- ↑ "Introducción al Perceptrón". Medium. Consultado o 01/09/2024.
- ↑ "Big Data & Data Science Blog: Historia de la IA: Frank Rosenblatt y el Mark I Perceptrón, el primer ordenador fabricado específicamente para crear redes neuronales en 1957". web.archive.org. 2018-07-22. Arquivado dende o orixinal o 22 de xullo de 2018. Consultado o 2024-09-01.
- ↑ "A Logical Calculus of Ideas Immanent in Nervous Activity - BibSonomy". www.bibsonomy.org. Consultado o 2024-09-02.
- ↑ O’Connor, Jack (2022-06-21). "Undercover Algorithm: A Secret Chapter in the Early History of Artificial Intelligence and Satellite Imagery". International Journal of Intelligence and CounterIntelligence (en inglés): 1–15. ISSN 0885-0607. doi:10.1080/08850607.2022.2073542.
- ↑ Rosenblatt, F. (1958). "The perceptron: A probabilistic model for information storage and organization in the brain.". Psychological Review (en inglés) 65 (6): 386–408. ISSN 1939-1471. doi:10.1037/h0042519.
- ↑ "Wayback Machine" (PDF). web.archive.org. Archived from the original on 27 de outubro de 2023. Consultado o 2024-09-02.
- ↑ Bishop, Christopher M. (2006). Pattern recognition and machine learning. Information science and statistics. New York: Springer. ISBN 978-0-387-31073-2.
- ↑ Anderson, James A.; Rosenfeld, Edward, eds. (2000). Talking Nets: An Oral History of Neural Networks (en inglés). The MIT Press. ISBN 978-0-262-26715-1. doi:10.7551/mitpress/6626.003.0004.
- ↑ Olazaran, Mikel (1996-08). "A Sociological Study of the Official History of the Perceptrons Controversy". Social Studies of Science (en inglés) 26 (3): 611–659. ISSN 0306-3127. doi:10.1177/030631296026003005.
- ↑ Romero, Valentín Valverde (2023-05-30). "McCulloch y Pitts: La pareja que encendió la chispa neuronal". Adictos al trabajo (en castelán). Consultado o 2024-09-01.
- ↑ "Perceptrón" (en castelán). 2024-07-13.
- ↑ "Algoritmo de aprendizaje Perceptron: una explicación gráfica de por qué funciona". ICHI.PRO (en castelán). Consultado o 2024-09-02.
- ↑ "Perceptron Adaline Entrenamiento Supervisado". web.archive.org. 2012-12-21. Arquivado dende o orixinal o 21 de decembro de 2012. Consultado o 2024-09-02.
- ↑ Novikoff, Albert J. (1963). "On convergence proofs for perceptrons". Office of Naval Research.
- ↑ "Introduction to Machine Learning". openlearninglibrary.mit.edu (en inglés). Consultado o 2024-09-03.
- ↑ "Perceptron and its convergence theorem". Chan`s Jupyter (en inglés). 2020-08-30. Consultado o 2024-09-03.