0
$\begingroup$

Okay so, I understand that inputs are sent directly to the network (basically being multiplied to weights of the nodes, receive a bias, and gets activated) and then the network produces an output through this feed forward method.

Now, in order for the network to "learn," we determine the error by comparing the predicted output versus the "known output / answer," and then back-propagate. Right?

What I don't get it is if the output goes through some activation function, say Sigmoid (results to a value between 0.0 - 1.0), how can it ever learn if the known output is a continuous value such as "Salary", "Number of Something", or in the use-case I have, "Volume of Orders" which ranges from anywhere between 300 to 1500.

// Example I have 7 inputs
// They go through a hidden layer that consists 16 hidden neurons
// and my output is a single neuron that's supposed to be "Volume of Orders"
//
// MyInputLayers[] --> HiddenLayers[] --> Output=0.123
// 
// Since I learn from tutorials that Output layers go through an activation,
// I think it's impossible for the network to learn because a
// prediction of 0.123 compared to the "known output" that is, say 615
// is almost ridiculous

Should I apply Sigmoid to the "known output" as well? If so, how can I remap it when the network has already learned and is ready to do some predictive magic?

I must be missing / not understanding something here. Thank you in advance.

p.s. My dataset is composed of 6 months of records; an Excel file that has 200,000+ rows and 8 columns (7 leading, 1 lagging).

| improve this question | | | | |
$\endgroup$
1
$\begingroup$

The sigmoid function is usually used for classification tasks. Basically, it converts a continuous value into a binary variable (0 or 1) based on a certain threshold. An example is predicting breast tumor as malignant (1) or benign (0) based on whether or not the output is greater than the threshold value (typically, 0.5).

If you want to use ANN for regression, first you'll have to change your cost function into something more appropriate, like mean squared error (MSE). Then adapt the network to provide continuous output, by using a linear activation function, for example.

Source: https://www.quora.com/Can-Deep-Learning-and-Neural-Networks-be-useful-for-regression-problems-where-the-output-variable-has-an-unknown-or-varying-in-real-time-upper-bound

| improve this answer | | | | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.