1. 程式人生 > >What You Know About Deep Learning Is A Lie

What You Know About Deep Learning Is A Lie

Getting started in deep learning is a struggle.

It’s a struggle because deep learning is taught by academics, for academics.

If you’re a developer (or practitioner), you’re different.
You want results.

The way practitioners learn new technologies is by developing prototypes that deliver value quickly.

This is a top-down approach to learning, but it is not the way that deep learning is taught.

There is another way. A way that works for top-down practitioners like you.

In this post, you will discover this other way.

(I teach this approach and have helped more than 1,145 developers
get their start in deep learning with python,

click to learn more)

You will believe that being successful with applied deep learning is possible. I hope it will inspire you to take your first step towards this goal.

Let’s dive in.

What You Think You Know About Deep Learning Is A Lie

What You Think You Know About Deep Learning Is A Lie
Photo by Simon Matzinger, some rights reserved.

You Want To Get Started In Deep Learning…
But You’re Different

You don’t have a Masters or Ph.D. in advanced math.

You’re not a machine learning expert.

You’re a professional or a student with a keen interest and eager to start using deep learning.

Maybe You’re a Developer

  • You want to know how to apply deep learning to solve complex problems.
  • You want deep learning skills to improve your job prospects.
  • You want to use deep learning as leverage to get into a data scientist (or similar) position.

Maybe You’re a Data Scientist

  • You want to use deep learning on a future project.
  • You have a sticky problem that you think deep learning can help with.
  • You want deep learning skills to stay relevant and on top of your field.

Maybe You’re a Student

  • You want deep learning skills to improve your prospects for getting a job.
  • You have an interesting problem for which you think deep learning will be a good fit.
  • You want to discover why deep learning is so popular.

Does one of these reasons fit you?
Let me know in the comments, I’d love to hear your reason?

Do you have a different reason for getting into deep learning?
Let me know in the comments and I will give you personal advice.

The reasons for getting into the field of deep learning are varied.

Regardless, you’re treated the same as everyone else. Like an academic.

Deep Learning Is NOT Just For The Academics

Deep Learning Is NOT Just For The Academics
Photo by Breyten Ernsting, some rights reserved.

Deep Learning Is For Academics… The Lie

Deep Learning is an academic field of study.

It has been this way for a long time. The field used to involve the study of small artificial neural networks. Now the focus is on much larger networks and more exotic network architectures. The breakthroughs in the field are still coming from academia. The field is young and this is to be expected.

This means that most of the information on deep learning is written by academics. And it is written for other academics, like Researchers, Masters and Ph.D. students.

It is not written for developers, like us.

This is why you see bad advice like:

You need a PhD to get into deep learning.

Or comments like:

You need 3 years of advanced math before you can get into deep learning.

Garbage!

This is why getting started in deep learning is such a struggle. It is a challenge that developers think they can only solve by going back to school, going into debt and investing 3-to-7 years of their life.

Madness!

You can work through deep learning tutorials in minutes. You can begin building a portfolio that you can use to show your growing skills in the field. And you can start today.

Programming Is Only For Computer Scientists (NOT)

Programming used to be hard and theoretical.

You needed to know a lot of math to understand programming before there were computers.

In the early days of programming, you had to define your own data structures and basic algorithms. This was before all the low-hanging fruit of algorithms and data structures were defined. This required a good understand of discrete math.

These theoretical topics can help you be a better programmer and engineer today. They are still taught in computer science courses.

But you and I both know that you don’t need them to get started in programming. You don’t even need these topics if you’re working in most programming jobs.

You call the sort routine,
you don’t derive a new sort operation from first principles.

Can we stretch this analogy to deep learning?

Do you need to derive the back propagation equation from first principles and implement it from scratch? Instead, we can just call model.fit() on the deep learning API.

Wait… What About The Top Engineers?

Yes, the top engineers can derive a new algorithm.

In fact, they are often hired to do just this. It’s their job. They can do the easy stuff and the harder stuff. They can call the sort routine and derive a new sort method for business data that is too big to fit into memory.

My point is that these capabilities do not have to come first, they can come later.

Top-down. Rather than bottom-up.

This is key.

Like practical programming in the real world.

The Top-Down Programmer (…that gets results)

Programming is fun in the beginning.

You learn this function. You learn that API. You stitch together your own programs and discover you can solve problems with your own ideas.

You’re productive early on and only get more productive with time. You can progress deeper into the theory to solve more challenging problems, or not. It’s up to you.

Being productive early is important for two reasons:

  1. It keeps you motivated, which keeps you engaged.
  2. It allows you to deliver value early, which feeds motivation.

It’s too easy to stop.
It’s too easy to give up.

It is a super power. Knowing that you can write a program to solve a specific problem. Then having the confidence to actually implement and deploy.

Code and design will be crappy, to begin with. Hard to maintain. Not viable for long-term operational use. But code gets better with experience, with mentors, with continual learning.

This is how the majority of IT operates. Top-down. Not bottom-up.

You don’t take a University course in computer language theory to learn Ruby on Rails for your next web development project. You work through some tutorials, make some mistakes and get familiar with the platform.

Repeat for the next framework, the next library. Again and again.

Repeat for Deep Learning.

Deep Learning Is NOT Just For The Academics

You can learn deep learning from the bottom-up.

It may take many years and a few higher degrees, but you will know a lot about the theory of deep learning techniques.

Even after all this effort, you may or may not know how to apply them in practice to real data. They generally don’t teach practical or vocational skills at University.

The academic textbooks, video courses, and journal papers are a fantastic resource to leverage. They are a gold mine of ideas. They are just not the place to begin when starting out with deep learning.

Deep Learning Is For Academics, The Lie

Deep Learning Is For Academics, The Lie
Photo by Quinn Dombrowski, some rights reserved.

Focus on Delivering Value With Deep Learning

The value in deep learning to business and other fields of study is in reliable predictions.

Learn how to model problems with deep learning.

Develop (or steal) a systematic process for working through a predictive modeling problem. Then apply it again, and again and again, until you get really good at delivering this value.

Get good at applying deep learning.
We all like the things we’re good at.

If you can do this well and reliably, you will, in turn, have a valuable skill that the market wants in great supply.

You will find yourself diving into the academic papers parsing the Greek letters and emailing or calling the authors. All to extract gold nuggets that you can use to get better model performance on your next project.

Time For You To Get Success With Deep Learning

Now, hopefully, you believe that you can get started and get good at applied deep learning.

It is time to take action. It is time to get started with deep learning.

1. Pick a Framework

I recommend the Keras platform. It supports Python. Meaning you can leverage scikit-learn and the whole SciPy ecosystem for your deep learning projects.

This is important.

You essentially get data preparation, model evaluation and hyperparameter optimization for free.

Keras also provides a practitioner-friendly API (i.e. simple and intuitive). It wraps the power (and unnecessary complexity) of the Theano and TensorFlow libraries. It gives you the speed and efficiency of bleeding edge frameworks, without the tens or hundreds of lines of code needed to make something work.

I have a ton of tutorials on Keras, as well as a free 14-day mini-course, see:

2. Pick a Process

Keep it simple, but pick a strong skeleton that you can add to and tailor to your preferred techniques and problem types.

A good set of general steps I like to use on predictive modeling projects are:

  1. Define Problem: What problem you are trying to solve and the data and framing you need to solve it.
  2. Prepare Data: What transforms to apply to the data to create views that best expose the structure of the prediction problem to the models.
  3. Evaluate Algorithms: What techniques to use to model the problem, and the metrics to filter good from bad solutions.
  4. Improve Results: What parameter tuning and even ensemble methods to use to get the most from what is working.
  5. Present Results: What results you achieved, lessons learned and the saved model or set of predictions of which you can make direct use.

For more on my process for working through predictive modeling problems, see:

3. Pick a Problem

You need practice. Lots of practice.

If you are interested in predictive modeling with image data, find all the standard machine learning problems with image data and work your way through them.

Text data? Video data? Use the same approach.

Learn how to get a result using your process.
Then learn how to get a good result.
Then a world class result.

The good thing about standard machine learning datasets is that you have a benchmark score to compare your results to.

Not sure about your preferences yet? Start with Multilayer Perceptrons on standard datasets from the UCI Machine Learning Repository (here’s a tutorial). Then try Convolutional Neural Networks on standard object recognition problems (here’s a tutorial). Move onto Recurrent Neural Networks on simple timeseries problems (here’s a tutorial).

Later, graduate to more complex problems used in machine learning competitions like those on Kaggle. Graduate further to defining your own problems and gathering data from creative commons.

Your goal is to develop a portfolio of completed projects.

This portfolio will be a resource you can leverage as you take on large and more challenging projects. It can also be a resource that you can use to show your growing skills with deep learning and ability to deliver value.

For more on developing a machine learning portfolio, see the post:

Summary

You discovered that deep learning as you know it is “deep learning for academics“. Not “deep learning for developers“.

You now know that there is a whole world of libraries and tutorials designed for you and developers like you.

You discovered a simple 3 step process that you can use to get success in deep learning as a developer, summarized as:

  1. Pick a Framework (like Keras).
  2. Pick a Process (like the one listed above).
  3. Pick a Problem (then develop a portfolio).

Has this changed your mind about deep learning?
Leave a comment and let me know.

Some more posts on deep learning that you might like to read include:

Frustrated With Your Progress In Deep Learning?

Deep Learning with Python

 What If You Could Develop A Network in Minutes

…with just a few lines of Python

It covers self-study tutorials and end-to-end projects on topics like:
Multilayer PerceptronsConvolutional Nets and Recurrent Neural Nets, and more…

Finally Bring Deep Learning To
Your Own Projects

Skip the Academics. Just Results.

相關推薦

What You Know About Deep Learning Is A Lie

Tweet Share Share Google Plus Getting started in deep learning is a struggle. It’s a struggle be

Everything You Know About Muscle Cramps Is Wrong

You’re wrapping up a morning run when one of your hamstring muscles balls into an angry fist of pain. Or it’s the middle of the night, and a sudden spasm g

What Is Deep Learning AI? A Simple Guide With 8 Practical Examples

There's a lot of conversation lately about all the possibilities of machines learning to do things humans currently do in our factories, warehouses, office

機器學習_論文筆記_1: A few useful things to know about machine learning

> 翻譯總結by joey周琦 希望把自己閱讀到的,覺得有營養的論文,總結筆記和自己想法,留給自己,也分享給大家。因為英文論文中一些專有,有難度的詞句,會給出英文原文。 這篇文章總結了有關機器學習的12條重要,簡單,明瞭的經驗。本文面對分類問題總結,但不限於分類問題。

AI Is Reshaping What We Know About Cities

Machine learning is helping urbanists confirm–or disprove–long-standing theories about cities. Why do certain neighborhoods feel safe while some feel dange

What Algorithms Know About You Based on Your Grocery Cart

Anyone who has ever visited Jones Beach on Long Island, New York, will have driven under a series of bridges on their way to the ocean. These bridges, prim

Tensorflow and deep learning without a PhD系列第一部分 數字識別問題

Tensorflow and deep learning without a PhD系列第一部分 原始連結: https://codelabs.developers.google.com/codelabs/cloud-tensorflow-mnist/#1 試驗目的: What is a

Why it's time to learn more about deep learning

Deep learning is a subset of machine learning, and chances are you've already used it whether you know it or not. While you most likely have heard the term

What’s New in Deep Learning Research: How Google Uses Reinforcement Learning to Ask All the Right…

What’s New in Deep Learning Research: How Google Uses Reinforcement Learning to Ask All the Right QuestionsThe ability of formulate questions is a fundamen

Why deep learning is an essential tool for developers

The last few years have seen amazing progress in the field of artificial intelligence. AlphaGo beat the world's Go grandmasters, a feat thought impossible.

Deep Learning Is Great, But Use Cases Remain Narrow

Deep learning is all the rage these days, and is driving a surge in interest around artificial intelligence. However, despite the advantages that deep neur

Deep Learning on a Mac? Turi Create Review.

Deep Learning on a Mac? Turi Create Review.I am a self-confessed Apple fanboy, and own both an iMac Pro and a 2018 MacBook Pro. I also own a couple of cust

5 terms to know about machine learning

Machine learning (ML) has taken imaging by storm. Though many radiologists are familiar with the concept, assessing the results of various algorithmic appr

Ask HN: What topics/subjects are worth learning for a new software engineer?

Not the person you're replying to, but I'll share one of my favorites:Given an address such as "123 Main St, Boston, MA 00215", break it up into its compon

Evaluating PlaidML and GPU Support for Deep Learning on a Windows 10 Notebook

Evaluating PlaidML and GPU Support for Deep Learning on a Windows 10 NotebookFigure 1. PlaidML Logo.PlaidML is a deep learning software platform which enab

What We Know About Autonomous Vehicles

Autonomous vehicles are currently subject to a lot of hope, hype and hysteria, especially after the recent fatality in Arizona, when a pedestrian was struc

Applied Machine Learning is a Meritocracy

Tweet Share Share Google Plus When making a start in a new field it is common to feel overwhelme

TensorFlow和深度學習入門教程(TensorFlow and deep learning without a PhD)

前言 上月導師在組會上交我們用tensorflow寫深度學習和卷積神經網路,並把其PPT的參考學習資料給了我們, 這是codelabs上的教程:《TensorFlow and deep learning,without a PhD》 當然登入需要翻牆,我也順

What's Wrong with Deep Learning? Yann LeCun

Deep learning methods have had a profound impact on a number of areas in recent years, including natural image understanding and speech recognition. Other

my reading list about deep learning

Tutorials:      0、TUTORIAL ON DEEP LEARNING FOR VISION at CVPR 2014http://bigdata.memect.com/?p=11531     1、http://ufldl.stanford.edu/wi