Deep learning allows you to not know the answer in order to ask the program a question. Their main benefit is their finite ability and flexible nature.
The problem with procedural programing to solve problems is you have to know what the computer needs to do in order to solve the problem.
What deep learning does is remove the requirement of the programmer to know how to solve the problem by having them only need to know what the computer needs to know.
This is the entire premise of neural networks. The programmer writes the program for data points required to be known in order to solve a particular problem.
The computer is given an input it comes up with an answer.
If it's answer is wrong it needs to make the answer it gave less likely and the right answer more likely.
The goal is to get the computer to always get the right answer. If the computer always gets the wrong answer then the neural network it too small.
What deep learning is, is a neural network that is deep.
To answer this you need to know how a neural network is.
A neural network is based on a neuron:
- Finite number of `boolean' inputs (More then one)
- A weight is attached on each input to define how important
often though as a float between -1 and 1, but it's just a percentage of how likely each input changes the answer.
- One boolean output
A neuron can be a class or function the implementation really doesn't matter. The weight of each input changes as more answers are asked and responses verified.
The depth of a neural network is has one layer when there is one row of neurons between the input and output.
two layers when a few neurons make decisions on inputs and a final neuron or multiple neurons make decisions biased on those neurons.
A neural network is called deep when there are at least four layers of neurons? (do some research don't take my word for it ^_^
)
The disadvantage of deep learning is that it's ability is finite.
There is no way a deep neural network by it's self to get smarter then it's programed to be.
It has a intelligence curve similar to root time if it isn't improved somehow.
This leads to the other problem in neural networks. While the programmer has no need to know how decisions are made by the computer they still need to know what questions or nodes need to be added.
The reason this is a problem is if the nodes responsible aren't there the program will be wrong in strange cases and have no way of correcting this on it's own. The larger the network the harder it is to solve these kinds of problems.
This will lead to an inevitable solution to have the computer self improve by some type of generative algorithm.
This has it's own breadth of problems as if not built properly could grow into something unintended which wastes time and money if it fails quickly, and could be potentially dangerous if it appears to work and doesn't.
The answer to AI will be a combination of deep neural networks some generative type programing and some new ideas and innovations.