What is Deep Learning?
Deep learning is a branch of machine learning which is completely based on artificial neural networks, as neural network is going to mimic the human brain so deep learning is also a kind of mimic of human brain. In deep learning, we don’t need to explicitly program everything. The concept of deep learning is not new. It has been around for a couple of years now. It’s on hype nowadays because earlier we did not have that much processing power and a lot of data. As in the last 20 years, the processing power increases exponentially, deep learning and machine learning came in the picture.
A formal definition of deep learning is- neurons
Deep learning is a particular kind of machine learning that achieves great power and flexibility by learning to represent the world as a nested hierarchy of concepts, with each concept defined in relation to simpler concepts, and more abstract representations computed in terms of less abstract ones.
In human brain approximately 100 billion neurons all together this is a picture of an individual neuron and each neuron is connected through thousand of their neighbours.
The question here is how do we recreate these neurons in a computer. So, we create an artificial structure called an artificial neural net where we have nodes or neurons. We have some neurons for input value and some for output value and in between, there may be lots of neurons interconnected in the hidden layer.
- Deep Neural Network – It is a neural network with a certain level of complexity (having multiple hidden layers in between input and output layers). They are capable of modeling and processing non-linear relationships.
- Deep Belief Network(DBN) – It is a class of Deep Neural Network. It is multi-layer belief networks.
Steps for performing DBN :
a. Learn a layer of features from visible units using Contrastive Divergence algorithm.
b. Treat activations of previously trained features as visible units and then learn features of features.
c. Finally, the whole DBN is trained when the learning for the final hidden layer is achieved.
- Recurrent (perform same task for every element of a sequence) Neural Network – Allows for parallel and sequential computation. Similar to the human brain (large feedback network of connected neurons). They are able to remember important things about the input they received and hence enables them to be more precise.
Difference between Machine Learning and Deep Learning :
|Machine Learning||Deep Learning|
|Works on small amount of Dataset for accuracy.||Works on Large amount of Dataset.|
|Dependent on Low-end Machine.||Heavily dependent on High-end Machine.|
|Divides the tasks into sub-tasks, solves them individually and finally combine the results.||Solves problem end to end.|
|Takes less time to train.||Takes longer time to train.|
|Testing time may increase.||Less time to test the data.|
First, we need to identify the actual problem in order to get the right solution and it should be understood, the feasibility of the Deep Learning should also be checked (whether it should fit Deep Learning or not). Second, we need to identify the relevant data which should correspond to the actual problem and should be prepared accordingly. Third, Choose the Deep Learning Algorithm appropriately. Fourth, Algorithm should be used while training the dataset. Fifth, Final testing should be done on the dataset.
Tools used :
Anaconda, Jupyter, Pycharm, etc.
Languages used :
R, Python, Matlab, CPP, Java, Julia, Lisp, Java Script, etc.
Real Life Examples :
- How to recognize square from other shapes? ...a) Check the four lines! ...b) Is it a closed figure? ...c) Does the sides are perpendicular from each other? ...d) Does all sides are equal? So, Deep Learning is a complex task of identifying the shape and broken down into simpler tasks at a larger side.
- Recognizing an Animal! (Is it a Cat or Dog?) Defining facial features which are important for classification and system will then identify this automatically. (Whereas Machine Learning will manually give out those features for classification)
- Learning through observations only.
- The issue of biases.
- Best in-class performance on problems.
- Reduces need for feature engineering.
- Eliminates unnecessary costs.
- Identifies defects easily that are difficult to detect.
- Large amount of data required.
- Computationally expensive to train.
- No strong theoretical foundation.
- Automatic Text Generation – Corpus of text is learned and from this model new text is generated, word-by-word or character-by-character.
Then this model is capable of learning how to spell, punctuate, form sentences, or it may even capture the style.
- Healthcare – Helps in diagnosing various diseases and treating it.
- Automatic Machine Translation – Certain words, sentences or phrases in one language is transformed into another language (Deep Learning is achieving top results in the areas of text, images).
- Image Recognition – Recognizes and identifies peoples and objects in images as well as to understand content and context. This area is already being used in Gaming, Retail, Tourism, etc.
- Predicting Earthquakes – Teaches a computer to perform viscoelastic computations which are used in predicting earthquakes.
Co-author of this article : ujjwal sharma 1
- Introduction to Multi-Task Learning(MTL) for Deep Learning
- Deep Learning with PyTorch | An Introduction
- Deep Learning | Introduction to Long Short Term Memory
- Artificial intelligence vs Machine Learning vs Deep Learning
- Deep Q-Learning
- Differential Privacy and Deep Learning
- Implementing Deep Q-Learning using Tensorflow
- ML | Natural Language Processing using Deep Learning
- An introduction to Machine Learning
- ML | Introduction to Transfer Learning
- Introduction To Machine Learning using Python
- ML | Introduction to Data in Machine Learning
- Introduction to Thompson Sampling | Reinforcement Learning
- Neural Logic Reinforcement Learning - An Introduction
- Learning Model Building in Scikit-learn : A Python Machine Learning Library
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.