Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma hdrstop
- #pragma argsused
- #ifdef _WIN32
- #include <tchar.h>
- #else
- typedef char _TCHAR;
- #define _tmain main
- #endif
- #include <stdio.h>
- #include <math.h>
- int i;
- const double learning_rate = 0.1;
- double node_b_cost_function, node_b_cost_function_derivative, node_b_cost_function_gradient, node_a_cost_function_gradient;
- double node_a_input, node_b_input;
- double node_a_weight, node_b_weight;
- double node_a_output, node_b_output;
- double node_b_desired_output;
- //NETWORK SIMPLE "node a" O-----------O "node b"
- double node_x_function(double x)
- {
- return 1 / (1 + exp(-(x)));
- }
- double node_x_function_derivative(double x)
- {
- return x * (1 - x);
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- node_a_input = 0.02;
- node_a_weight = 0.32; node_b_weight = 0.15;
- node_b_desired_output = 0.005;
- for (i; i < 3000000; i++) {
- node_a_output = node_x_function(node_a_input*node_a_weight);
- node_b_input = node_a_output;
- node_b_output = node_x_function(node_b_input*node_b_weight);
- //needs forward propagation in here, comes later
- //
- //backward propagation simple test
- node_b_cost_function = pow(node_x_function(node_b_desired_output) - node_b_output,2);
- //node_b_cost_function_derivative = 2*(node_x_function(node_b_desired_output) - node_b_output);
- node_b_cost_function_derivative = 2*(node_b_desired_output - node_b_output);
- node_b_cost_function_gradient = node_x_function_derivative(node_b_output) * node_b_cost_function_derivative;
- node_a_cost_function_gradient = node_x_function_derivative(node_a_output) * node_b_weight * node_b_cost_function_gradient;
- node_b_weight = node_b_weight + learning_rate * node_b_cost_function_gradient;
- node_a_weight = node_a_weight + learning_rate * node_a_cost_function_gradient;
- printf("\nout: %.15lf %.15lf %.15lf %.15lf %.15lf", node_a_input, node_b_input, node_a_output, node_b_output, node_b_desired_output);
- printf("\nout: %.15lf %.15lf", node_b_cost_function, node_b_cost_function_derivative);
- }
- scanf("%d",&i);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement