This is that time of year, when you reflect on the year gone by. 2017 has been a year of growth for us at Analytics Vidhya. By any means / metric – we have seen growth, be it web traffic, number of hackathons, number of discussions, team size, a journey of meetup to the large-scale summit.
This year, we covered breadth as well as depth on various data science topics including machine learning, deep learning, and reinforcement learning. You will see lot more articles coming your way in 2018. It gives us immense satisfaction to be able to create something which is helping more and more people every day.
Whether you are charting your learning plan for 2018 or reflecting back on your learning this year – curation of best resources can be immensely helpful. This is why, we present our first curation on best AV articles published on Deep Learning in 2017. If you missed these articles, you should go through them. If you are new to deep learning – this is going to be the best resources curated at a single place for you.
To help you, we have also mentioned the level of article and the tools used in the article.
So stay warm, keep your machines running and keep learning as the new year sets in. If you followed any other resources on deep learning this year, please feel free to mention them in the comments below.
Top 11 Deep learning articles from Analytics Vidhya in 2017
Neural networks are believed to be black boxes. People run far away from understanding their inner working. Reading this article would completely change that.
This article simplifies the architecture of a neural network beginning from what a perceptron is going all the way to code them in numpy and in R.
By end of this article, you will understand how Neural networks work, how do we initialize weights and how do we update them using back-propagation. It’s a must read article for those who wish to completely understand the working of neural networks in and out.
Tools Used: Python(numpy), R
It has always been a debatable topic to choose between R and Python. The Machine Learning world has been divided over the preference of one language over the other. But with the explosion of Deep Learning, the balance shifted towards Python as it had an enormous list of Deep Learning libraries and frameworks which R lacked (till now).
With launch of Keras in R, this fight is back at the center. Python was slowly becoming the de-facto language for Deep Learning models. But with the release of Keras library in R with tensorflow (CPU and GPU compatibility) at the backend as of now, it is likely that R will again fight Python for the podium even in the Deep Learning space.
In this article, you will see how to install Keras with Tensorflow in R and build your first Neural Network model on the classic MNIST dataset in RStudio.
Library used – keras in R
Level – Intermediate
In this article we discussed the architecture behind Convolutional Neural Networks, which are designed to address image recognition and classification problems. Every image is an arrangement of pixels arranged in a special order. If you change the order or value of a pixel, the image would change as well.
To understand an image for a network it’s extremely important to understand how the pixels are arranged. Convolutional networks are designed specifically to conserve the arrangement of these pixels and obtain various features from the images. This article would help you understand the various layers in a convolutional neural network and would also enable you to implement an image classification task using CNNs.
Library used: Keras
It is one thing to learn data science by reading or watching a video / MOOC and other to apply it on problems. You need to do both the things to learn the subject effectively. If you are questioning, why learn or apply deep learning – you have most likely come out of a cave just now.
Deep learning in already powering face detection in cameras, voice recognition on mobile devices to deep learning cars. This article encourages you to solve fun and interesting problem – to detect the age of a person using Deep Learning.
Library Used: keras
If you have tried to train a neural network, you must know the plight of figuring out why does it not converge. It could range from a simple data transformation issue to a model creation issue.
This article focuses on a workflow to debug a neural network. The purpose is guide to you as to how would you approach to solve the problem. The article also introduces a tool which is a useful addition to the deep learning toolbox – TensorBoard.
Library used: Keras, TensorBoard
In today’s world, RAM on a machine is pretty cheap and is easily available with little investment. You need hundreds of GBs of RAM to run a super complex supervised machine learning problem. On the other hand, access to GPUs is not that cheap. If you need access to a hundred GB VRAM on GPUs – it won’t be straight forward and would involve significant costs.
When we try to solve complex real life problems on areas like image and voice recognition, once you have a few hidden layers in your model, adding another layer of hidden layer would need immense resources and time. There is something called “Transfer Learning” which enables us to use pre-trained models from other people for our own problems by some tweaking. In this article, I am going to tell how we can use pre-trained models to accelerate our solutions and use pre-trained models like VGG16 for image classification.
Library used: Keras
There are multiple such cases wherein the sequence of information defines the data itself. If we are trying to use such data for any reasonable output, we need a network which has access to some prior knowledge about the data to completely understand it. Recurrent neural networks thus come into play.
In this article we introduce recurrent neural networks. To make things simple for you we have shown the working for a recurrent neuron in Excel. We also discuss the Backpropagation in time along with some shortcomings of the recurrent neural networks. To say in a few words it’s an introductory guide that shall enable you to understand and to use recurrent neural networks in a problem of your own.
Library used: Keras
When we look at an example such as typing a sentence in google translate in English and getting an equivalent Chinese conversion, we see an application of text processing. Text processing deals with humongous amount of text to perform different range of tasks like clustering, classification and Machine Translation. Humans can deal with text format quite intuitively but provided we have millions of documents being generated in a single day, we cannot have humans performing these tasks. Whereas for a computer, it is very hard to perform the tasks which humans can do quite effectively. Sure, a computer can match two strings and tell you whether they are same or not. But how do we make computers tell you about football or Ronaldo when you search for Messi?
The answer to the question lies in creating a representation for words that capture their meanings, semantic relationships and the different types of contexts they are used in. All of these are implemented by using “Word Embeddings” or numerical representations of texts so that computers may handle them. In the article, you will see formally what are Word Embeddings and their different types and how we can actually implement them to perform the tasks like returning efficient Google search results.
Library used – gensim
Level – Advanced
When you get started with data science, you start simple. You go through simple projects like Loan Prediction problem or Big Mart Sales Prediction. These problems have structured data arranged neatly in a tabular format. In other words, you are spoon-fed the hardest part in data science pipeline. The datasets in real life are much more complex. You first have to understand it, collect it from various sources and arrange it in a format which is ready for processing. This is even more difficult when the data is in an unstructured format such as image or audio. This is so because you would have to represent image/audio data in a standard way for it to be useful for analysis.
Interestingly, unstructured data represents huge under-exploited opportunity. It is closer to how we communicate and interact as humans. For example, if a person speaks; you not only get what he / she says but also what were the emotions of the person from the voice. In this article, an overview of audio / voice processing with a case study is covered so that you would get a hands-on introduction to solving audio processing problems.
Library used: Keras
Neural Networks have made great progress. They now recognize images and voice at levels comparable to humans. They are also able to understand natural language with a good accuracy. But even then, the talk of automating human tasks with machines looks a bit far fetched. After all, we do much more than just recognizing image / voice or understanding what people around us are saying – don’t we? Let us see a few examples where we need human creativity (at least as of now):
- Train an artificial author which can write an article and explain data science concepts to a community in a very simplistic manner by learning from past articles on Analytics Vidhya
- You are not able to buy a painting from a famous painter which might be too expensive. Can you create an artificial painter which can paint like any famous artist by learning from his / her past collections?
Do you think, these tasks can be accomplished by machines? Well – the answer might surprise you 🙂 These are definitely difficult to automate tasks, but Generative Adversarial Networks (GANs) have started making some of these tasks possible.
If you feel intimidated by the name GAN – don’t worry! You will feel comfortable with them by end of this article. This article introduces you to the concept of GANs and explains how they work along with the challenges. It will also let you know of some cool things people have done using GANs and give you links to some of the important resources for getting deeper into these techniques.
Library used: Keras
Deep Learning has been the most researched and talked about topic in data science recently. And it deserves the attention it gets, as some of the recent breakthroughs in data science are emanating from deep learning. It’s predicted that many deep learning applications will affect your life in the near future. However, if you have been looking at deep learning from the outside, it might look difficult and intimidating. Terms like TensorFlow, Keras, GPU based computing might scare you. But it’s actually not that difficult! While cutting edge deep learning will take time and effort to follow, applying them in simple day to day problems is very easy.
This article showcases 6 such applications – which might look difficult at the outset, but can be achieved using Deep Learning implementation in less than an hour, to give you a taste of how they work.
Tools Used: Deep Learning APIs and Open source Deep learning software
I hope you found the resources useful. Deep learning is spreading its wings and this year has made us learn a lot in this domain. I hope that we have been helpful on your journey to learn this year and we promise to do so in the coming year as well.
The Analytics Vidhya family wishes you Merry Christmas and very happy new year. May the new year bring the best of health, wealth and knowledge for you. In the meanwhile, if you have any suggestions / feedback, do share them with us. If you have any questions, feel free to drop your comments below.