Perceptron es Definición del término, características, aplicación

Tabla de contenido:

Perceptron es Definición del término, características, aplicación
Perceptron es Definición del término, características, aplicación
Anonim

En el aprendizaje automático, un perceptrón es un algoritmo de aprendizaje supervisado para clasificadores binarios. A menudo también se le llama perceptrón. Un clasificador binario es una función que puede decidir si una entrada, representada por un vector de números, pertenece a alguna clase en particular. Este es un tipo de clasificador lineal, es decir, un algoritmo de clasificación que hace sus predicciones basándose en una función predictora lineal que combina un conjunto de pesos con un vector de características.

Fórmulas de perceptrón
Fórmulas de perceptrón

En los últimos años, las redes neuronales artificiales han llamado la atención debido a los avances en el aprendizaje profundo. Pero, ¿qué es una red neuronal artificial y en qué consiste?

Conoce al perceptrón

En este artículo, echaremos un vistazo rápido a las redes neuronales artificiales en general, luego veremos una sola neurona y finalmente (esta es la parte de codificación) tomaremos la versión más básica de una neurona, el perceptrón, y clasificar sus puntos enavión.

¿Alguna vez te has preguntado por qué hay tareas que son tan fáciles para cualquier persona, pero increíblemente difíciles para las computadoras? Las redes neuronales artificiales (ANN, por sus siglas en inglés) se inspiraron en el sistema nervioso central humano. Al igual que su contraparte biológica, las ANN se basan en elementos simples de procesamiento de señales que se combinan en una gran cuadrícula.

Las redes neuronales deben aprender

A diferencia de los algoritmos tradicionales, las redes neuronales no se pueden "programar" ni "ajustar" para que funcionen según lo previsto. Al igual que el cerebro humano, deben aprender a completar la tarea. En términos generales, hay tres estrategias de aprendizaje.

Se puede usar la forma más fácil si hay un caso de prueba (lo suficientemente grande) con resultados conocidos. Luego, el entrenamiento es así: procesa un conjunto de datos. Compare el resultado con el resultado conocido. Configure la red y vuelva a intentarlo. Esta es la estrategia de aprendizaje que usaremos aquí.

Aprendizaje no supervisado

Útil si no hay datos de prueba disponibles y si es posible derivar alguna función de costo del comportamiento deseado. La función de costo le dice a la red neuronal qué tan lejos está del objetivo. La red puede entonces ajustar sus parámetros sobre la marcha, trabajando con datos reales.

Aprendizaje reforzado

El método del "palo y la zanahoria". Se puede utilizar si la red neuronal genera una acción continua. Con el tiempo, la red aprende a preferir las acciones correctas y a evitar las equivocadas.

Bien, ahora sabemos un poco sobrenaturaleza de las redes neuronales artificiales, pero ¿de qué están hechas exactamente? ¿Qué veremos si abrimos la tapa y miramos dentro?

Las neuronas son los componentes básicos de las redes neuronales. El componente principal de cualquier red neuronal artificial es una neurona artificial. No solo reciben el nombre de sus contrapartes biológicas, sino que también se modelan según el comportamiento de las neuronas en nuestro cerebro.

Biología vs tecnología

Así como una neurona biológica tiene dendritas para recibir señales, un cuerpo celular para procesarlas y un axón para enviar señales a otras neuronas, una neurona artificial tiene múltiples canales de entrada, una etapa de procesamiento y una salida que puede ramificarse a muchos otros. neuronas artificiales.

¿Podemos hacer algo útil con un solo perceptrón? Hay una clase de problemas que un solo perceptrón puede resolver. Considere el vector de entrada como coordenadas de puntos. Para un vector con n elementos, este punto vivirá en un espacio n-dimensional. Para simplificar la vida (y el código a continuación), supongamos que es 2D. Como un trozo de papel.

A continuación, imagina que dibujamos algunos puntos aleatorios en este plano y los dividimos en dos conjuntos dibujando una línea recta en el papel. Esta línea divide los puntos en dos conjuntos, uno arriba y otro debajo de la línea. Los dos conjuntos se denominan entonces linealmente separables.

Un perceptrón, por simple que parezca, es capaz de saber dónde está esta línea, y cuando ha terminado de entrenarse, puede determinar si un punto determinado está por encima o por debajo de esta línea.

Historiainventos

El algoritmo para este método fue inventado en 1957 en el Laboratorio de Aviación de Cornell por Frank Rosenblatt (a menudo llamado así por él), financiado por la Oficina de Investigación Naval de EE. UU. El perceptrón estaba destinado a ser una máquina, no un programa, y aunque su primera implementación fue en software para IBM 704, posteriormente se implementó en hardware personalizado como "Mark 1 Perceptron". Esta máquina fue diseñada para el reconocimiento de imágenes: tenía una matriz de 400 fotocélulas conectadas aleatoriamente a las neuronas. Los pesos se codificaron en potenciómetros y la actualización del peso durante el entrenamiento se realizó mediante motores eléctricos.

En una conferencia de prensa organizada por la Marina de los EE. UU. en 1958, Rosenblatt hizo declaraciones sobre el perceptrón que provocaron un acalorado debate entre la comunidad joven de IA; basado en las afirmaciones de Rosenblatt, el New York Times informó que el perceptrón es "la computadora electrónica embrionaria que la Marina espera poder caminar, hablar, ver, escribir, reproducirse y ser consciente de su existencia".

Segmentos de perceptrón
Segmentos de perceptrón

Otros desarrollos

Aunque inicialmente el perceptrón parecía prometedor, rápidamente se demostró que los perceptrones no podían ser entrenados para reconocer muchas clases de patrones. Esto condujo a un estancamiento en el campo de la investigación con redes neuronales de perceptrón durante muchos años antes de que se reconociera que una red neuronal de avance con dos o más capas (también llamadaperceptrón multicapa) tenía mucho más poder de procesamiento que los perceptrones de una sola capa (también llamados perceptrones de una sola capa). Un perceptrón de una sola capa solo es capaz de estudiar estructuras linealmente separables. En 1969, el famoso libro "Perceptrones" de Marvin Minsky y Seymour Papert mostró que estas clases de redes no podían aprender la función XOR. Sin embargo, esto no se aplica a las funciones de clasificación no lineal que se pueden usar en un perceptrón de una sola capa.

Perceptrón Rosenblatt
Perceptrón Rosenblatt

El uso de tales funciones amplía las capacidades del perceptrón, incluida la implementación de la función XOR. A menudo se supone (incorrectamente) que también asumieron que un resultado similar se mantendría para una red de perceptrones multicapa. Sin embargo, este no es el caso, ya que tanto Minsky como Papert ya sabían que los perceptrones multicapa eran capaces de producir una función XOR. Tres años más tarde, Steven Grossberg publicó una serie de artículos en los que presentaba redes capaces de modelar funciones diferenciales, funciones de mejora de contraste y funciones XOR.

Obras publicadas en 1972 y 1973. Sin embargo, el texto de Minsky/Papert, a menudo pasado por alto, provocó una disminución significativa en el interés y la financiación de la investigación con el perceptrón de redes neuronales. Pasaron otros diez años antes de que se reviviera la investigación de redes neuronales en la década de 1980.

Características

El Algoritmo Kernel Perceptron fue introducido en 1964 por Yzerman et al. Mori y Rostamizadeh (2013), quienes amplían los resultados anteriores y dan nuevos límites L1.

Perceptron es un modelo simplificado de una neurona biológica. Si bien a menudo se requiere la complejidad de los modelos neuronales biológicos para comprender completamente el comportamiento neuronal, la investigación muestra que un modelo lineal similar a un perceptrón puede inducir algunos de los comportamientos observados en las neuronas reales.

El perceptrón es un clasificador lineal, por lo que nunca llegará a un estado con todos los vectores de entrada correctamente clasificados si el conjunto de entrenamiento D no es linealmente separable, es decir si los ejemplos positivos no pueden separarse de los ejemplos negativos por un hiperplano. En este caso, ninguna solución "aproximada" pasará paso a paso a través del algoritmo de aprendizaje estándar, sino que el aprendizaje fallará por completo. Por lo tanto, si no se conoce a priori la separabilidad lineal del conjunto de entrenamiento, se debe utilizar una de las siguientes opciones de entrenamiento.

Relaciones de perceptrón
Relaciones de perceptrón

Algoritmo de bolsillo

El algoritmo de bolsillo de trinquete resuelve el problema de robustez de aprendizaje del perceptrón al mantener la mejor solución encontrada hasta ahora "en el bolsillo". El algoritmo de bolsillo luego devuelve la solución en el bolsillo en lugar de la última solución. También se puede usar para conjuntos de datos no separables donde el objetivo es encontrar un perceptrón con pocas clasificaciones erróneas. Sin embargo, estas soluciones parecen estocásticas y, por lo tanto, el algoritmo de bolsillo no se ajusta a ellas.gradualmente a lo largo del curso del entrenamiento, y no se garantiza que se detecten después de un cierto número de pasos de entrenamiento.

Algoritmo Maxover

El algoritmo de Maxover es "robusto" en el sentido de que convergerá independientemente del conocimiento de la separabilidad lineal del conjunto de datos. En el caso de una división lineal, esto resolverá el problema de aprendizaje, opcionalmente incluso con una estabilidad óptima (máximo margen entre clases). Para conjuntos de datos no separables, se devolverá una solución con una pequeña cantidad de clasificaciones erróneas. En todos los casos, el algoritmo se acerca gradualmente a la solución durante el proceso de aprendizaje, sin recordar estados previos y sin s altos aleatorios. La convergencia radica en la optimización global para conjuntos de datos compartidos y la optimización local para conjuntos de datos no separables.

ecuación de perceptrón
ecuación de perceptrón

Perceptrón votado

El algoritmo de perceptrón votado es una variante que utiliza múltiples perceptrones ponderados. El algoritmo inicia un nuevo perceptrón cada vez que se clasifica mal un ejemplo, inicializando el vector de pesos con los pesos finales del último perceptrón. A cada perceptrón también se le otorgará un peso diferente correspondiente a la cantidad de ejemplos que clasifique correctamente antes de clasificar incorrectamente uno y, al final, el resultado será un voto ponderado en todo el perceptrón.

Solicitud

En problemas separables, el entrenamiento del perceptrón también puede tener como objetivo encontrar el límite de separación más grande entre las clases. Así llamadoSe puede determinar un perceptrón de estabilidad óptimo utilizando esquemas iterativos de entrenamiento y optimización como el algoritmo Min-Over o AdaTron. AdaTron explota el hecho de que el problema de optimización cuadrática correspondiente es convexo. El perceptrón de estabilidad óptima, junto con el truco del kernel, es la base conceptual de la máquina de vectores de soporte.

perceptrón multicapa
perceptrón multicapa

Alternativa

Otra forma de resolver problemas no lineales sin utilizar varias capas es utilizar redes de orden superior (bloque sigma-pi). En este tipo de red, cada elemento del vector de entrada se expande por cada combinación por pares de entradas multiplicadas (segundo orden). Esto se puede extender a una red de orden n. El Perceptrón es algo muy flexible.

Sin embargo, recuerda que el mejor clasificador no es necesariamente el que clasifica con precisión todos los datos de entrenamiento. De hecho, si tuviéramos la restricción previa de que los datos provienen de distribuciones gaussianas de variantes iguales, una división lineal en el espacio de entrada es óptima y se anula una solución no lineal.

Otros algoritmos de clasificación lineal incluyen Winnow, vector de soporte y regresión logística. Perceptron es un conjunto universal de algoritmos.

traducción al ruso del esquema
traducción al ruso del esquema

Ámbito principal del aprendizaje supervisado

El aprendizaje supervisado es una tarea de aprendizaje automático que aprende una función que asigna la entrada a la salidabasado en ejemplos de pares de E/S. Infieren una característica a partir de datos de entrenamiento etiquetados que consisten en un conjunto de ejemplos. En el aprendizaje supervisado, cada ejemplo es un par que consta de un objeto de entrada (normalmente un vector) y un valor de salida deseado (también llamado señal de control).

El algoritmo de aprendizaje supervisado analiza los datos de entrenamiento y produce una función estimada que se puede usar para mostrar nuevos ejemplos. El escenario óptimo permitiría que el algoritmo determine correctamente las etiquetas de clase para las instancias invisibles. Esto requiere que el algoritmo de aprendizaje generalice los datos de aprendizaje a situaciones no vistas de una manera "razonable".

La tarea paralela en psicología humana y animal a menudo se denomina aprendizaje conceptual.

Recomendado: