septiembre 29, 2024


Implementación del algoritmo Perceptron en Python: un breve ejemplo

La Inteligencia Artificial (AI) y el Machine Learning (ML) son actualmente focos de innovación e investigación tecnológica. Entre los muchos tipos diferentes de algoritmos de aprendizaje automático, uno de los más básicos y fundamentales es el algoritmo Perceptron. En este artículo, exploraremos cómo implementar el algoritmo Perceptron en Python, paso a paso, usando un ejemplo. Comenzaremos con los conceptos básicos del algoritmo y luego pasaremos a la implementación. Concluiremos ofreciendo algunas reflexiones sobre la utilidad y potencial del algoritmo Perceptron en el campo del ML.

¿Qué es el Algoritmo de Perceptrón?

El algoritmo Perceptron es un algoritmo de aprendizaje supervisado, que se incluye en la categoría de clasificadores lineales. Se utiliza para la clasificación binaria, donde el conjunto de datos debe clasificarse en dos clases distintas. El algoritmo en sí se basa en la idea de un perceptrón, que es una red neuronal con una sola capa.

¿Qué es un perceptrón?

Un Perceptron es una neurona artificial, utilizada en el aprendizaje automático y el aprendizaje profundo. Por lo general, tiene varios nodos de entrada, cada uno con un peso asociado, y un solo nodo de salida. Los pesos de los nodos de entrada se ajustan durante el entrenamiento, de modo que el nodo de salida produzca la salida deseada. Esencialmente, calcula una suma ponderada de sus entradas, aplica una función de activación y genera el resultado.

El algoritmo de aprendizaje del perceptrón: guía paso a paso.

Antes de sumergirnos en el código, echemos un vistazo a los pasos involucrados en el algoritmo Perceptron:

1. Inicialice los pesos y el sesgo a 0 o pequeños números aleatorios
2. Para cada entrada en el conjunto de datos, haga lo siguiente:
1. Calcule la suma ponderada de entradas y pesos
2. Obtenga la salida aplicando una función de activación
3. Calcule el error como la diferencia entre la salida prevista y la salida real
4. Actualice los pesos y el sesgo utilizando el error y la tasa de aprendizaje
3. Repita el paso 2 hasta que el error sea pequeño

Para simplificarlo aún más, estos son los 4 pasos principales del algoritmo Perceptron:

1. Asignar pesos y sesgos aleatorios
2. Calcular la salida a través de la función de activación
3. Calcular errores y actualizar ponderaciones y sesgos
4. Repita los pasos 2 y 3 hasta que se minimice el error

Ahora que tenemos una comprensión básica del algoritmo, comencemos con la implementación.

Paso 1: importar bibliotecas y cargar datos

Primero, importaremos las bibliotecas que necesitamos para la implementación:

«`pitón
importar numpy como np
importar pandas como pd
«`

A continuación, cargaremos un conjunto de datos que usaremos para la implementación. Para este ejemplo, usaremos el conjunto de datos iris de la biblioteca scikit-learn.

«`pitón
desde sklearn.datasets importar load_iris

iris = cargar_iris()

X = iris.datos
y = iris.objetivo

X = X[y != 2]

y = y[y != 2]

«`

Este código carga el conjunto de datos del iris, separa las características de entrada y la variable de destino (etiqueta de clase) y elimina una de las clases, por lo que podemos tener un problema de clasificación binaria.

Paso 2: Definir la clase Perceptron

En este paso, definiremos la clase Perceptron en Python. Definiremos todas las funciones y atributos necesarios dentro de esta clase.

«`pitón
clase Perceptrón (objeto):

def __init__(self, no_of_inputs, epochs=100, learning_rate=0.01):
self.epochs = épocas
self.tasa_de_aprendizaje = tasa_de_aprendizaje
self.weights = np.zeros(no_of_inputs + 1)

def predecir (auto, entradas):
sumatoria = np.dot(entradas, self.weights[1:]) + pesos propios[0]

si suma > 0:
activación = 1
demás:
activación = 0
activación de retorno

def tren(auto, entradas_entrenamiento, etiquetas):
para _ en el rango (self.epochs):
para entradas, etiqueta en zip(training_inputs, etiquetas):
predicción = self.predict(entradas)
auto.pesos[1:] += self.learning_rate * (etiqueta – predicción) * entradas
auto.pesos[0] += self.learning_rate * (etiqueta – predicción)
«`

En el código anterior, hemos definido una clase Perceptron, con tres funciones: predecir, entrenar e iniciar.

La función init inicializa el número de épocas y la tasa de aprendizaje, e inicializa los pesos a cero.

La función de predicción calcula la salida tomando el producto escalar de la entrada y los pesos, y aplicando la función de activación.

La función de tren actualiza los pesos en función del error y la tasa de aprendizaje, y repite este proceso durante el número especificado de épocas.

Paso 3: entrenar al perceptrón

En este paso, usaremos la clase Perceptron para entrenar el modelo en el conjunto de datos del iris.

«`pitón
p = Perceptrón(2)
p.tren(X, y)
«`

Aquí, hemos creado una instancia de la clase Perceptron con 2 nodos de entrada y la hemos entrenado en el conjunto de datos del iris.

Paso 4: Haz predicciones

Finalmente, usaremos el modelo entrenado para hacer predicciones sobre nuevas entradas.

«`pitón
valores_de_entrada = [5.0, 2.0]

imprimir(p.predecir(valores_de_entrada))
«`

Aquí, le hemos proporcionado al Perceptron nuevos valores de entrada e impreso la salida predicha.

Conclusión

El algoritmo Perceptron puede parecer simple, pero es una herramienta poderosa en el campo del aprendizaje automático. Se puede utilizar como bloque de construcción para algoritmos más complejos, como las redes neuronales. La implementación en Python es sencilla y se puede hacer rápidamente, incluso para principiantes. Al proporcionar una guía paso a paso, se espera que este artículo haya desmitificado el algoritmo Perceptron y brindado a los interesados ​​en el aprendizaje automático una plataforma para experimentar con él.