PERCEPTRÓN SIMPLE

 

 ¿QUÉ CONOCEMOS SOBRE PERCEPTRÓN SIMPLE?

 

Fue en 1957 que Frank Rosenblatt inventó el perceptrón en el laboratorio aeronáutico de Cornell, Nueva York. Basándose en los primeros conceptos de neuronas artificiales, propuso la “regla de aprendizaje del perceptrón”. Un perceptrón es una neurona artificial, y, por tanto, una unidad de red neuronal. 

El propósito de la investigación fue el de diseñar un cerebro electrónico con la capacidad de analizar y desarrollar patrones con diferentes ftextunciones como la percepción, la capacidad de entender conceptos, la orientación por ejemplo. Este enfoque relacionado con Machine Learning, con un sistema binario, es decir es falso o verdadero, pero no ambas salidas; posteriormente en 1986 se presenta el modelo de retropropagación con capacidad de realizar ajustes y optimizar la predicción. (1)

Les muestro el siguiente enlace de la publicación y una completa descripción del artículo en:

https://telefonicatech.com/blog/historia-de-la-ia-frank-rosenblatt-y-e 

CONCEPTO  

El perceptrón es un concepto fundamental en el campo de la inteligencia artificial y el aprendizaje automático. Se trata de un modelo matemático inspirado en el funcionamiento de las neuronas en el cerebro humano. El perceptrón simple es la forma más básica de este modelo, y se utiliza comúnmente para problemas de clasificación binaria.

A continuación, se detallan algunos conceptos teóricos relevantes:

  1. Neurona Artificial (Perceptrón):

    • Un perceptrón es una unidad básica de procesamiento en una red neuronal artificial.
    • Está compuesto por entradas, pesos, una función de suma ponderada y una función de activación.
  2. Entradas y Pesos:

    • Las entradas representan las características de un conjunto de datos.
    • Cada entrada está asociada con un peso que indica su importancia relativa para el modelo.
    • Cada entrada está asociada con un peso que indica su importancia relativa para el modelo.
    • El perceptrón realiza una suma ponderada de las entradas multiplicadas por sus pesos.
    •  
    3. Función de suma ponderada:
      • La función de suma ponderada calcula la suma de las entradas multiplicadas por sus pesos, incluyendo un sesgo (bias) que permite ajustar el resultado.
      • Matemáticamente, la salida z se calcula como z=i=1n(wixi)+b, donde wi son los pesos, xi son las entradas, n es el número de entradas y b es el sesgo. (Chat GPT)
      4.Función de Activación:
      • La función de activación decide si el perceptrón debe activarse o no, basándose en la salida de la función de suma ponderada.
      • En el perceptrón simple, una función de escalón es común para la activación. Si la suma ponderada es mayor o igual a cero, la salida es 1; de lo contrario, es 0.
      5. Aprendizaje y Ajuste de Pesos:
      • Durante el entrenamiento, los pesos y el sesgo se ajustan para minimizar la diferencia entre las predicciones del perceptrón y las etiquetas reales del conjunto de entrenamiento.
      • Se utiliza un algoritmo de aprendizaje, como el Perceptrón Learning Algorithm (PLA), para realizar estos ajustes iterativos.
      •  En la imagen se observan las capas, pesos respectivamente:
      •  
      • Fuente: Google imágenes
         

       COMPETENCIAS PARA INTERPRETAR

      Para comprender y analizar el ingreso de los datos, la relación con los pesos, cálculo del sesgo y las predicciones, copiamos un script generado en Chat GPT:

      import numpy as np
      
      class Perceptron:
          def __init__(self, input_size):
              # Inicializar pesos y sesgo de manera aleatoria
              self.weights = np.random.rand(input_size)
              self.bias = np.random.rand()
      
          def predict(self, inputs):
              # Calcular la suma ponderada de las entradas y aplicar la función de escalón
              weighted_sum = np.dot(inputs, self.weights) + self.bias
              return 1 if weighted_sum >= 0 else 0
      
          def train(self, training_inputs, labels, learning_rate, epochs):
              for epoch in range(epochs):
                  for inputs, label in zip(training_inputs, labels):
                      # Calcular la salida predicha por el perceptrón
                      prediction = self.predict(inputs)
      
                      # Actualizar pesos y sesgo usando el algoritmo de aprendizaje del perceptrón
                      self.weights += learning_rate * (label - prediction) * inputs
                      self.bias += learning_rate * (label - prediction)
      
      # Generar datos de ejemplo
      np.random.seed(42)  # Para reproducibilidad
      num_samples = 100
      input_size = 2
      learning_rate = 0.1
      epochs = 100
      
      # Creamos datos de entrada y etiquetas
      training_inputs = np.random.rand(num_samples, input_size)
      labels = np.random.randint(2, size=num_samples)
      
      # Instanciar el perceptrón y entrenarlo
      perceptron = Perceptron(input_size)
      perceptron.train(training_inputs, labels, learning_rate, epochs)
      
      # Realizar predicciones en nuevos datos
      new_data = np.array([[0.5, 0.3], [0.8, 0.2]])
      predictions = [perceptron.predict(data) for data in new_data]
      
      # Imprimir resultados
      print("Pesos finales:", perceptron.weights)
      print("Sesgo final:", perceptron.bias)
      print("Predicciones para nuevos datos:", predictions)
      El enlace de la página de Chat GPT, es el siguiente: 

      https://chat.openai.com/share/f2d02be5-ec28-4533-8d23-cd303b7fc1ac

      En términos más generales, en una red neuronal, la capa de salida se refiere a la capa que produce las predicciones finales del modelo. En el caso del perceptrón simple, la función de predict(inputs) calcula la salida del perceptrón, que es una predicción binaria (0 o 1) basada en la función de escalón:

       # Imprimir resultados
      print("Pesos finales:", perceptron.weights)
      print("Sesgo final:", perceptron.bias)
      print("Predicciones (capa de salida) para nuevos datos:", predictions)
       

       COMPETENCIAS DE SABER SER

      •  Contar con la capacidad de actuar con lógica y pensamiento analítico.
      • Tener la capacidad de familiaridad con conceptos básicos de álgebr lineal.
      • Contar con la capacidad de entender los mensajes de error y corregirlos.
      • Tener una actitud proactiva de comunicación y colaboración.
      • Contar con una actitud investigativa constante, en relación al tema.
       
    • Bibliografía:

      1.Ramírez, F. (19 de Julio de 2018). Telefónica Tech. Obtenido de Historia de la IA: Frank Rosenblatt y el Mark I Perceptrón, el primer ordenador fabricado específicamente para crear redes neuronales en 1957: https://telefonicatech.com/blog/historia-de-la-ia-frank-rosenblatt-y-e

      2. Chat GPT, 

      https://chat.openai.com/share/f2d02be5-ec28-4533-8d23-cd303b7fc1ac

    •  

 

Comentarios

Entradas populares de este blog

PERCEPTRÓN MULTICAPA

REDES NEURONALES CONVOLUCIONALES

REFLEXIONES SOBRE REDES NEURONALES