Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Implementación de una Sola Neurona | Red Neuronal Desde Cero
Introducción a las Redes Neuronales con Python

bookImplementación de una Sola Neurona

Note
Definición

Una neurona es la unidad computacional básica de una red neuronal. Procesa múltiples entradas y genera una única salida, lo que permite que la red aprenda y realice predicciones.

En este ejemplo, se construye una red neuronal con una sola neurona para una tarea de clasificación binaria (por ejemplo, detección de spam). La neurona recibe características numéricas y produce un valor entre 0 y 1, que representa la probabilidad de que un correo electrónico sea spam (1) o legítimo (0).

Paso a paso:

  1. Multiplicar cada entrada por su peso;
  2. Sumar todas las entradas ponderadas;
  3. Añadir un sesgo para ajustar la salida;
  4. Pasar el resultado por una activación sigmoide, que lo convierte al rango ((0,1)) para la salida de probabilidad.
Note
Nota

El sesgo de la neurona también es un parámetro entrenable.

Clase Neurona

Una neurona necesita almacenar sus pesos y sesgo, por lo que una clase es una forma natural de agrupar estas propiedades relacionadas.

Note
Nota

Aunque esta clase no formará parte de la implementación final de la red neuronal, ilustra de manera efectiva los principios clave.

class Neuron:
    def __init__(self, n_inputs):
        self.weights = ...
        self.bias = ...
  • weights: valores inicializados aleatoriamente (uno por cada entrada);
  • bias: un único valor aleatorio. Ambos se obtienen de una distribución uniforme en ([-1, 1]) utilizando np.random.uniform() para romper la simetría.

Propagación hacia adelante

El método activate() de la neurona calcula la suma ponderada y aplica la sigmoide. La suma ponderada utiliza el producto punto de los pesos y las entradas:

input_sum_with_bias = np.dot(self.weights, inputs) + self.bias

Luego se aplica la función de activación para obtener la salida final de la neurona.

El uso de np.dot() evita bucles y calcula toda la suma ponderada en una sola línea. La función sigmoide transforma este valor bruto en una probabilidad:

def activate(self, inputs):
    input_sum_with_bias = ...
    output = ...
    return output

Activación Sigmoide

Dado un resultado bruto (z), la función sigmoide es:

σ(z)=11+ez\sigma(z) = \frac{1}{1 + e^{-z}}

Asigna cualquier número a ((0,1)), lo que la hace ideal para clasificación binaria, donde la salida de la neurona debe representar una probabilidad.

Utilizando esta fórmula, la función sigmoide puede implementarse como una función simple en Python:

def sigmoid(z):
    return 1 / (1 + np.exp(-z))

La fórmula para la función ReLU es la siguiente, que básicamente establece que la salida es igual a zz si es positiva y 0 en caso contrario:

ReLU(z)=max(0,z)ReLU(z) = max(0, z)
def relu(z):
    return np.maximum(0, z)

1. ¿Cuál es el papel del término de sesgo en una sola neurona?

2. ¿Por qué inicializamos los pesos con valores aleatorios pequeños en lugar de ceros?

question mark

¿Cuál es el papel del término de sesgo en una sola neurona?

Select the correct answer

question mark

¿Por qué inicializamos los pesos con valores aleatorios pequeños en lugar de ceros?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 1

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain why we use the sigmoid function for binary classification?

How does the dot product work in the context of neural networks?

What is the difference between sigmoid and ReLU activations?

Awesome!

Completion rate improved to 4

bookImplementación de una Sola Neurona

Desliza para mostrar el menú

Note
Definición

Una neurona es la unidad computacional básica de una red neuronal. Procesa múltiples entradas y genera una única salida, lo que permite que la red aprenda y realice predicciones.

En este ejemplo, se construye una red neuronal con una sola neurona para una tarea de clasificación binaria (por ejemplo, detección de spam). La neurona recibe características numéricas y produce un valor entre 0 y 1, que representa la probabilidad de que un correo electrónico sea spam (1) o legítimo (0).

Paso a paso:

  1. Multiplicar cada entrada por su peso;
  2. Sumar todas las entradas ponderadas;
  3. Añadir un sesgo para ajustar la salida;
  4. Pasar el resultado por una activación sigmoide, que lo convierte al rango ((0,1)) para la salida de probabilidad.
Note
Nota

El sesgo de la neurona también es un parámetro entrenable.

Clase Neurona

Una neurona necesita almacenar sus pesos y sesgo, por lo que una clase es una forma natural de agrupar estas propiedades relacionadas.

Note
Nota

Aunque esta clase no formará parte de la implementación final de la red neuronal, ilustra de manera efectiva los principios clave.

class Neuron:
    def __init__(self, n_inputs):
        self.weights = ...
        self.bias = ...
  • weights: valores inicializados aleatoriamente (uno por cada entrada);
  • bias: un único valor aleatorio. Ambos se obtienen de una distribución uniforme en ([-1, 1]) utilizando np.random.uniform() para romper la simetría.

Propagación hacia adelante

El método activate() de la neurona calcula la suma ponderada y aplica la sigmoide. La suma ponderada utiliza el producto punto de los pesos y las entradas:

input_sum_with_bias = np.dot(self.weights, inputs) + self.bias

Luego se aplica la función de activación para obtener la salida final de la neurona.

El uso de np.dot() evita bucles y calcula toda la suma ponderada en una sola línea. La función sigmoide transforma este valor bruto en una probabilidad:

def activate(self, inputs):
    input_sum_with_bias = ...
    output = ...
    return output

Activación Sigmoide

Dado un resultado bruto (z), la función sigmoide es:

σ(z)=11+ez\sigma(z) = \frac{1}{1 + e^{-z}}

Asigna cualquier número a ((0,1)), lo que la hace ideal para clasificación binaria, donde la salida de la neurona debe representar una probabilidad.

Utilizando esta fórmula, la función sigmoide puede implementarse como una función simple en Python:

def sigmoid(z):
    return 1 / (1 + np.exp(-z))

La fórmula para la función ReLU es la siguiente, que básicamente establece que la salida es igual a zz si es positiva y 0 en caso contrario:

ReLU(z)=max(0,z)ReLU(z) = max(0, z)
def relu(z):
    return np.maximum(0, z)

1. ¿Cuál es el papel del término de sesgo en una sola neurona?

2. ¿Por qué inicializamos los pesos con valores aleatorios pequeños en lugar de ceros?

question mark

¿Cuál es el papel del término de sesgo en una sola neurona?

Select the correct answer

question mark

¿Por qué inicializamos los pesos con valores aleatorios pequeños en lugar de ceros?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 1
some-alt