private const double w13 = 1.9;
private const double w14 = 0.6;
private const double w23 = -0.5;
private const double w24 = 1.9;
private const double w35 = 1;
private const double w45 = -0.2;
private const double p03 = 1.3;
private const double p04 = 0.2;
private const double p05 = -0.6;
private const double x1 = 1;
private const double x2 = 1;
private const double a = 0.1;
private static double Sigmoid(double value)
return 1 / (1 + Math.Pow(Math.E, value * (-1)));
public static void Main()
double y3 = Sigmoid(x1 * w13 + x2 * w23 - p03);
double y4 = Sigmoid(x1 * w14 + x2 * w24 - p04);
double y5 = Sigmoid(y3 * w35 + y4 * w45 - p05);
double d5 = y5 * (1 - y5) * e;
double d_w35 = a * y3 * d5;
double d_w45 = a * y4 * d5;
double d_p05 = a * (-1) * d5;
double d3 = y3 * (1 - y3) * d5 * w35;
double d4 = y4 * (1 - y4) * d5 * w45;
double d_w13 = a * x1 * d3;
double d_w23 = a * x2 * d3;
double d_p03 = a * (-1) * d3;
double d_w14 = a * x1 * d4;
double d_w24 = a * x2 * d4;
double d_p04 = a * (-1) * d4;
double n_w13 = w13 + d_w13;
double n_w14 = w14 + d_w14;
double n_w23 = w23 + d_w23;
double n_w24 = w24 + d_w24;
double n_w35 = w35 + d_w35;
double n_w45 = w45 + d_w45;
double n_p03 = p03 + d_p03;
double n_p04 = p04 + d_p04;
double n_p05 = p05 + d_p05;
Console.WriteLine("y3: {0}", y3);
Console.WriteLine("y4: {0}", y4);
Console.WriteLine("y5: {0}", y5);
Console.WriteLine("e: {0}", e);
Console.WriteLine("d5: {0}", d5);
Console.WriteLine("d_w35: {0}", d_w35);
Console.WriteLine("d_w45: {0}", d_w45);
Console.WriteLine("d_p05: {0}", d_p04);
Console.WriteLine("d3: {0}", d3);
Console.WriteLine("d4: {0}", d4);
Console.WriteLine("d_w13: {0}", d_w13);
Console.WriteLine("d_w23: {0}", d_w23);
Console.WriteLine("d_p03: {0}", d_p03);
Console.WriteLine("d_w14: {0}", d_w14);
Console.WriteLine("d_w24: {0}", d_w24);
Console.WriteLine("d_p04: {0}", d_p04);
Console.WriteLine("d_p04: {0}", d_p04);
Console.WriteLine("w13: {0}", n_w13);
Console.WriteLine("w14: {0}", n_w14);
Console.WriteLine("w23: {0}", n_w23);
Console.WriteLine("w24: {0}", n_w24);
Console.WriteLine("w35: {0}", n_w35);
Console.WriteLine("w45: {0}", n_w45);
Console.WriteLine("03: {0}", n_p03);
Console.WriteLine("04: {0}", n_p04);
Console.WriteLine("05: {0}", n_p05);