# A “Weird” Introduction to Deep Learning

There are amazing introductions, courses and blog posts on Deep Learning. But this is a different kind of introduction.

### How to get started with Deep Learning?

It’s not easy to get started but I’ll try my best to guide you through this process. Check out this resources, but remember, this is not only watching videos and reading papers, it’s about understanding, programming, coding, failing and then making it happen.

**-1. Learn Python and R ;)**

**0. Andrew Ng and Coursera (you know, he doesn’t need an intro):>**

**Deep Learning | Coursera**

*Deep Learning from deeplearning.ai. If you want to break into AI, this Specialization will help you do so. Deep…*

**Siraj Raval**: He’s amazing. He has the power to explain hard concepts in a fun and easy way. Follow him on his YouTube channel. Specifically this playlists:

**1. The Math of Intelligence:**

**2. Intro to Deep Learning:**

**3. ****François Chollet**’s book: Deep Learning with Python (and R):

**Deep Learning with Python**

*The clearest explanation of deep learning I have come across...it was a joy to read.*

**Deep Learning with R**

*The clearest explanation of deep learning I have come across...it was a joy to read.*

**Deep Learning Fundamentals**

*About This Course Get a crash course on the what there is to learn and how to go about learning more. Deep Learning…*

**Deep Learning with TensorFlow**

*This Deep Learning with TensorFlow course focuses on TensorFlow. If you are new to the subject of deep learning…*

**5. ****DataCamp**:

**Deep Learning in Python**

*Deep learning is the machine learning technique behind the most exciting capabilities in diverse areas like robotics…*

**keras: Deep Learning in R**

*As you know by now, machine learning is a subfield in Computer Science (CS). Deep learning, then, is a subfield of…*www.datacamp.com

### Distributed Deep Learning

Deep Learning is one of the most important tools and theories a Data Scientist should learn. We are so lucky to see amazing people creating both research, software, tools and hardware specific for DL tasks.

DL is computationally expensive, and even though there’s been advances in theory, software and hardware, we need the developments in Big Data and Distributed Machine Learning to improve performance and efficiency. Great people and companies are making amazing efforts to join the distributed frameworks (Spark) and DL libraries (TF and Keras).

Here’s an overview:

**1. ****Databricks**: Deep Learning Pipelines (Soon will be merge to Spark)

**Overview - Deep Learning Pipelines 0.2.0 Documentation**

*Deep Learning Pipelines 0.2.0 documentation homepage*

**2. Elephas: Distributed DL with Keras & PySpark:**

**maxpumperla/elephas**

*elephas - Distributed Deep learning with Keras & Spark*

**3. Yahoo! Inc.**: TensorFlowOnSpark:

**yahoo/TensorFlowOnSpark**

*TensorFlowOnSpark brings TensorFlow programs onto Apache Spark clusters*

**4. ****CERN** Distributed Keras (Keras + Spark):

**cerndb/dist-keras**

*dist-keras - Distributed Deep Learning, with a focus on distributed training, using Keras and Apache Spark.*

**5. ****Qubole** (tutorial Keras + Spark):

**Distributed Deep Learning with Keras on Apache Spark | Qubole**

*Deep learning has been shown to produce highly effective machine learning models in a diverse group of fields. Some of…*

**6. ****Intel Corporation**: BigDL (Distributed Deep Learning Library for Apache Spark)

**intel-analytics/BigDL**

*BigDL: Distributed Deep Learning Library for Apache Spark*

**7. TensorFlow and Spark on Google** Cloud:

**Using Apache Spark with TensorFlow on Google Cloud Platform | Google Cloud Big Data and Machine…**

*Apache Spark and TensorFlow are both open-source projects that have made significant impact in the world of enterprise…*

### Getting stuff done with Deep Learning

As I’ve said before one of the most important moments for this field was the creation and open sourced of TensorFlow.

TensorFlow is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (**tensors**) communicated between them.

The things you are seeing in the image above are tensor manipulations working with the Riemann Tensor in General Relativity.

**Tensors**, defined mathematically, are simply arrays of numbers, or functions, that transform according to certain rules under a change of coordinates.

But in the scope of Machine Learning and Deep Learning a tensor is a generalization of vectors and matrices to potentially **higher dimensions**. Internally, TensorFlow represents tensors as n-dimensional arrays of base datatypes.

We use heavily tensors all the time in DL, but you don’t need to be an expert in them to use it. You may need to understand a little bit about them so here I list some good resources:

**Deep Learning 101: Demystifying Tensors**

*Tensors and new machine learning tools such as TensorFlow are hot topics these days, especially among people looking…*

**Learning AI if You Suck at Math — P4 — Tensors Illustrated (with Cats!)**

*Welcome to part four of Learning AI if You Suck at Math. If you missed parts 1, 2, 3, 5, 6 and 7 be sure to check them…*

After you check that out, the breakthroughs I mentioned before and the programming frameworks like TensorFlow or Keras (for more on Keras go here), now I think you have an idea of what you need to understand and work with Deep Learning.

But what have we achieved so far with DL? To name a few (from François Chollet book on DL):

- Near-human level image classification.
- Near-human level speech recognition.
- Near-human level handwriting transcription.
- Improved machine translation.
- Improved text-to-speech conversion.
- Digital assistants such as Google Now or Amazon Alexa.
- Near-human level autonomous driving.
- Improved ad targeting, as used by Google, Baidu, and Bing.
- Improved search results on the web.
- Answering natural language questions.
- Superhuman Go playing.

And much more. Here’s a list of 30 great and funny applications of DL:

**30 amazing applications of deep learning**

*Over the last few years Deep Learning was applied to hundreds of problems, ranging from computer vision to natural…*

Thinking about the future of Deep Learning (for programming or building applications), I’ll repeat what I said in other posts.

I really think GUIs and AutoML are the near future of getting things done with Deep Learning. Don’t get me wrong, I love coding, but I think the amount of code we will be writing next years will decay.

We cannot expend so many hours worldwide programming the same stuff over and over again, so I think these two features (GUIs and AutoML) will help Data Scientist on getting more productive and solving more problems.

On of the best free platforms for doing these tasks in a simple GUI is Deep Cognition. Their simple drag & drop interface helps you design deep learning models with ease. Deep Learning Studio can automatically design a deep learning model for your custom dataset thanks to their advance **AutoML**feature with nearly one click.

Here you can learn more about them:

**DeepCognition - Become an AI-Powered Organization Today**

*Design, Train, and Deploy Deep Learning Models without Coding. Deep Learning Studio simplifies and accelerates the…*

Take a look at the prices :O, it’s freeeee :)

I mean, it’s amazing how fast the development in the area is right now, that we can have simple GUIs to interact with all the hard and interesting concepts I talked about in this post.

One of the things I like about that platform is that you can still code, interact with TensorFlow, Keras, Caffe, MXNet an much more with the command line or their Notebook without installing anything. You have both the notebook and the CLI!

I take my hat off to them and their contribution to society.

Other interesting applications of deep learning that you can try for free or for little cost are (some of them are on private betas):

**Skejul - Simplify the Future...**

*If It's In The Future, It's On Skejul... Using Skejul's Context Aware Predictive ComputingTM Platform SET your meetings…*

**Seeing AI | Talking camera app for those with a visual impairment**

*A free app that narrates the world around you. Designed for the low vision community, this research project harnesses…*

**Dialogflow**

*A conversational user experience platform.*

Thanks for reading this weird introduction to Deep Learning. I hope it helped you getting started in this amazing area, or maybe just discover something new.

If you have questions just add me on LinkedIn and we’ll chat there:

**Bio: Favio Vazquez** is a physicist and computer engineer working on Data Science and Computational Cosmology. He has a passion for science, philosophy, programming, and music. Right now he is working on data science, machine learning and big data as the Principal Data Scientist at Oxxo. Also, he is the creator of Ciencia y Datos, a Data Science publication in Spanish. He loves new challenges, working with a good team and having interesting problems to solve. He is part of Apache Spark collaboration, helping in MLlib, Core and the Documentation. He loves applying his knowledge and expertise in science, data analysis, visualization, and automatic learning to help the world become a better place.

Original. Reposted with permission.

**Related:**

- My Journey into Deep Learning
- The 10 Deep Learning Methods AI Practitioners Need to Apply
- Deep Learning Made Easy with Deep Cognition