Web Analytics
Avisos
Vaciar todo

¡Bienvenido a zonaia 😀!


Un foro de ayuda para aprender a crear chatbots.


Aprende ManyChat, Chatfuel y Dialogflow.


¡No esperes más y únete a nosotros hoy!


Programando una red neuronal simple  

 

nabuco
(@nabuco)
Miembro Nuevo
Registrado: hace 2 a帽os
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聽 聽PesoG茅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 Crea Una Cuenta o Inicia Sesi贸n


admin me gusta
Citar
Compartir:
Sitio web hecho con 鉂 para el mundo