Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Una sola neurona artificial

Calcula la salida de una neurona: suma ponderada de las entradas más un sesgo, pasada por la sigmoide.

Lo que aprenderás

  • Combinar entradas, pesos y un sesgo
  • Pasar la suma por una activación
  • Ver cómo una neurona hace una predicción

Problema

Ver original (inglés)

Una neurona artificial multiplica cada entrada por un peso, suma un sesgo y pasa el resultado por una función de activación:

z = x₁×w₁ + x₂×w₂ + … + xₙ×wₙ + bias

salida = sigmoid(z) = 1 / (1 + e^(-z))

Implementa neuron_output(inputs, weights, bias).

Entrada

inputs: Los valores de entrada.

weights: Un peso por entrada (misma longitud que inputs).

bias: El sesgo de la neurona.

Salida

Devuelve la salida de la neurona, un número decimal entre 0 y 1.

Restricciones

1 ≤ longitud de inputs = longitud de weights ≤ 100

-10 ≤ cada entrada, peso y sesgo ≤ 10

Ejemplos

Ejemplo 1
Entrada:
bias = 0.5
inputs = [1.0, 2.0, 3.0]
weights = [0.2, 0.4, 0.6]

Salida esperada:
expected = 0.964429
Entrada:
double bias = 0.5;
std::vector<double> inputs = {1.0, 2.0, 3.0};
std::vector<double> weights = {0.2, 0.4, 0.6};

Salida esperada:
double expected = 0.964429;
Entrada:
double bias = 0.5;
double[] inputs = new double[] {1.0, 2.0, 3.0};
double[] weights = new double[] {0.2, 0.4, 0.6};

Salida esperada:
double expected = 0.964429;

Explicación

z = 1×0.2 + 2×0.4 + 3×0.6 + 0.5 = 3.3, y sigmoid(3.3) ≈ 0.964429.

Ejemplo 2
Entrada:
bias = 0.0
inputs = [0.5, -1.0]
weights = [2.0, 1.0]

Salida esperada:
expected = 0.5
Entrada:
double bias = 0.0;
std::vector<double> inputs = {0.5, -1.0};
std::vector<double> weights = {2.0, 1.0};

Salida esperada:
double expected = 0.5;
Entrada:
double bias = 0.0;
double[] inputs = new double[] {0.5, -1.0};
double[] weights = new double[] {2.0, 1.0};

Salida esperada:
double expected = 0.5;

Explicación

z = 0.5×2 + (-1)×1 + 0 = 0, y sigmoid(0) = 0.5: la neurona está exactamente indecisa.

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Esto es solo una suma ponderada de las entradas más un sesgo, seguida de una sigmoid.

Pista 2

Empareja cada entrada con su peso correspondiente y acumula los productos antes de añadir el sesgo.

Pista 3

Fíjate en que la salida final pase por sigmoid, no que se devuelva la suma cruda.

Complejidad esperada

tiempo O(n), espacio extra O(1)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.