Notifications

Programando una red neuronal simple  

  RSS

nabuco
(@nabuco)
New Member
Registrado: hace 1 a√Īo
Respuestas: 4
19/09/2018 12:45 am  

El día de hoy toca hablar de redes neuronales. Las redes neuronales han estado empujando el horizonte de lo que se creía posible en la inteligencia artificial, y casi cada semana hay noticias nuevas de un sistema inteligente basado en redes neuronales. Hoy vamos a programar una red neuronal muuuy sencilla.

El Perceptrón

Uno de los primeros modelos artificiales de una neurona fue inventado en 1957 por Frank Rosenblatt, un profesor de psicolog√≠a en la Universidad de Cornell. Rosenblatt dise√Ī√≥ un algoritmo de clasificaci√≥n con aprendizaje supervisado, es decir, un algoritmo que aprende a clasificar nuevos datos basado en datos conocidos.

Un perceptrón es un modelo con varias entradas, que su vez son ponderadas, tiene un término independiente y una salida binaria que depende de si la suma ponderada de las entradas es mayor o menor a cero. En la figura 1 podemos ver cómo se calcula la salida de un perceptrón simple.

Figura 1. Ecuación de la salida del perceptrón.

El producto punto entre el vector w y las entradas x es el promedio ponderado de las entradas. Una visualización de nuestro perceptrón sería la siguiente:

Figura 2. Un perceptrón simple con 3 entradas ponderadas, un término independiente (observa los parámetros w) y una salida.

En la figura 2, nuestro término independiente es el parámetro w0. De esta manera, podemos reducir la salida a un producto punto entre dos vectores.

Datos

Las entradas del perceptr√≥n pueden ser n√ļmeros que cuantifiquen cualquier cosa. Por ejemplo, podemos hacer un modelo para clasificar hombres y mujeres seg√ļn su peso y su estatura*. Los siguientes datos obtuve de amigos m√≠os:

Estatura   Peso  Género 
170                56       Mujer(1)
172                63       Hombre(0)
160               50        Mujer(1)
170               63        Hombre(0)
174               66        Hombre(0)
158               55        Mujer(1)
183               80       Hombre(0)
182               70       Hombre(0)
165               54       Mujer(1)

Implementando el perceptron

Para la implementación, vamos a crear una clase Perceptron, que va a encapsular toda la funcionalidad. Vamos a hacerlo en python para que cualquiera pueda probarlo en sus propias máquinas. Primero ponemos el constructor:

import random

class Perceptron:
def __init__(self,input_number,step_size=0.1):
self._ins = input_number # N√ļmero de par√°metros de entrada

# Seleccionamos pesos aleatorios
self._w = [random.random() for _ in range(input_number)]
self._eta = step_size # La tasa de convergencia
...

Para continuar viendo el resto de contenido por favor Regístrate o Inicia Sesión

 

This topic was modified hace 1 a√Īo 9 times by admin

admin me gusta
Citar
Share: