Ask HN: Is there really a market for deep learning skills without a Ph.D?
Earlier I was intrigued by an crash-course posted on here titled "Learn Tensorflow and deep learning without a Ph.D", linking to a GCP page here: https://cloud.google.com/blog/big-data/2017/01/learn-tensorflow-and-deep-learning-without-a-phd
Would those offering jobs related to deep learning really be comfortable offering the a position building / using these kinds of models without an advanced degree?
Those who have gotten a job in deep learning / machine learning without an advanced degree, could you share your experience?
61 comments
[ 3.1 ms ] story [ 147 ms ] threadIf you will find use cases for your newly obtained knowledge the you will be able to secure a job. It's all about practicality. You most likely will get hired to solve a specific problem and if you will be able to market yourself and showcase how your skills can boost revenues, you'll be okay.
That's where "domain-diverse" mindset is important. I don't think Ph.D is required anywhere outside of R&D. Ph.D is certainly a plus, but not a requirement.
It also depends on what you mean by "advanced degree". I have an undergraduate degree in physics/math and a master's in economics/finance, and I find between those two things I've been able to follow developments in machine learning and also to apply them to my work. In fact, I used to get a bit annoyed with those who would imply that I "must" do a PhD ... I would say that's certainly true if I wanted to invent new estimators etc., but otherwise not so much. A PhD can be great for other reasons but it's not the sort of thing required for actually doing my job.
I don't think the emphasis should be on Ph.D so much as on demonstrating your competence. A thesis is a way to do that. Kaggle is another. A startup is another. So is doing some interesting crunching on data sets and writing blog posts or articles. Another way is to work up from Analyst to Data Scientist to ML (or other jobs -- you might be able to start in ML at a startup at a low salary).
But if you have no track record, you'll need to get one somehow. A single course degree isn't sufficient. That's 1/32nd of a Bachelor's degree, 1/8th of a Master's, or 1/25th of a Ph.D.
The situation reminds me of the first dotcom bubble, when folks were getting hired to write web apps with little formal training. I can only imagine the technical debt that is accumulating right now in the industry.
Yes, well, at the time, most people with formal training wouldn't go near a web app project with a ten foot pole ("it'll all end in tears", they said). And old-school Unix hackers versed in Perl weren't necessarily any more likely to have a related degree.
> I can only imagine the technical debt that is accumulating right now in the industry.
Don't worry about it. Most technical debt will get wiped out with the failure of the company (usually for reasons unrelated to technical debt). Companies that survive will do so despite the technical debt, and will have the resources to rewrite things (hopefully avoiding Second System Syndrome).
OTOH, I can only imagine the future pain that low quality DL software patents are going to cause when IP from failed companies gets sold off.
My view is that Machine Learning is a deep field which could take decades to fully appreciate, but which is also easily accessible, especially if one is interested in building applications.
I think that a good litmus test for ML expertise is asking someone what % of all NIPS papers from last year they'd be able to understand well enough to reproduce after a quick reading.
https://nips.cc/Conferences/2016/AcceptedPapers
Even though I have ~7 years of experience doing ML, I would say that I could probably only fully appreciate ~10% of all NIPS papers.
And I'm also wondering about going back to university: Is it difficult to get into a good ML PhD program if you've been in the industry for some years?
It is not impossible to work at these labs as an engineer without a PhD, but I don't have a deep understanding of these roles.
"Overall, machine learning systems can be thought of as a machine learning core — usually an advanced algorithm which requires a few chapters from Ian’s book to understand — surrounded by a huge amount of software engineering."
[0] https://blog.gregbrockman.com/define-cto-openai
So that's what I mostly do - write code, try new ideas :) Surely, I had to refresh my knowledge in some areas like probabilities, and have a general understanding how math works, but anyone can do that.
My advice:
Let me know if you need help![1] https://static.googleusercontent.com/media/research.google.c...
There is a difference between doing deep learning research and building a product powered by deep learning. (with some amount of correlation of the respective success in both categories depending on the possession of a PhD). In my experience, the engineers are far, far better at building a product which can create value in the market place. Deep learning algorithms / architectures cannot do this alone. A product encapsulates a user experience which is often completely separated from the particular learner powering the experience. However, engineers without the understanding of basic ML practices (which apply more generally) cannot build great products. (they tend to violate ML theory, i.e. they make dirty data or draw causation where there is correlation). You can see why Google is putting all of their engineers through a 6 month ML course.
Yes, we allow remote work. You'll mainly be implementing fast deep learning algorithms such as FFT convolutions, quantization, etc.
My observation is that it's much more important to be clever with identifying possible inputs to train on rather than focusing too much on the machine learning itself. A crappy ML implementation that was trained on 20 data sets which are highly relevant and well curated does better than a highly tuned ML system with half the inputs and bad outliers.
In most data science/mining/analytics companies there are PhD's working as chief scientist, senior analytical lead etc. Below that there can be junior analytic positions that are more programming oriented, but they require good mathematical backround. There are also junior positions for programmers who do mostly programming and as a part of the team. In larger companies there are senior engineer positions that concentrate on numerical programming and implementing company specific algorithms etc. Understanding the terminology and software is very valuable and helps getting into these positions (software developer, engineer) even without deep domain knowledge. Someone who knows ins and outs of low level graphics and game programming might be valuable asset and his knowledge might transfer.
Recognizing distributions you have seen in the book is book knowledge. Seeing a distribution and being able to mentally see what kind of thing it might be when drawn into x,y-axis and figure it out is working knowledge.
Your post strikes me as annoyingly pretentious.
Training model itself takes maybe 10-20% of overall engineering effort. You need to have at least one person on the team, who grinded their teeth on training deep learning models. My co-founder says at least half a year of full time experience. I would say that there is nothing that would fundamentally require the PhD, just that very few people without the PhD have the sufficient experience right now. What's the most important is an intuition what method will help the most in your situation.
Within model training there are many tasks that can be off-loaded to someone without heavy deep learning expertise - e.g. data augmentation or evaluation statistics. Someone with deep learning experience is still required to know which tasks will have the highest impact.
Except the model training there is lots of work on everything around it. Inference pipeline, web server, data gathering, hardware. Majority is "plain engineering", but there is a few engineering skills specific to deep learning - e.g. inference pipeline or hardware to train models. What's more, even within the domain like computer vision, "classic" methods are sometimes still more cost effective than deep learning.
A PhD doesn't teach you a method, it teaches you this.
That intuition comes from years of specialized training that no crash-course or bootcamp can teach.
On the other hand, training deep learning models was very different world two years ago. From a few examples in the field I know of, someone reasonably talented with decent math fundamentals can catch up with the state of the art in 6-12 months.
Being able to parrot what is known, is far far far different from being able to ask what comes next.
I am talking about the training it takes to develop a critical and creative mind that can ask and answer novel questions.
I'm surprised there are hardly any PhDs specifically in "deep learning", given the youth of the term. Would a PhD in some related area of statistics count for something?
E.g. consider these two similar points on a resume: "improved loading times tenfold by using compound indexes and denormalization" would reflect an improvement from a problematic situation to a better situation. Whereas "designed schema and implemented indexed database" does not explicitly name a problem and its solution.
I hope my point makes sense, and I am wondering if little differences in the wording make a big impact in how you perceive someone's ability to identify and solve problems.
Honestly, I think we're already there, with frameworks like TensorFlow/Keras, Torch, and others.
As a software engineer with 25+ years of experience, these frameworks take a ton of the pain out of writing ML applications (particularly neural networks, which is where they are mainly focused). They also make it easy to integrate GPU and other multi-core-based training into the mix with almost zero effort.