9 ms·
How to Get a Job in Deep Learning
- stephensonsco 10y agojust wrote a blog post that I think a lot of folks will like if they are looking for a job in ML/DL. Would love to hear if I missed something!
- cdupiton 10y agoI've begun looking for resources to learn deep learning / machine learning with the hopes of getting a job in the field within the next few years, what other fields of math would you recommend brushing up on before beginning to use some of the online sources specified in your post?
- stephensonsco 10y agoI can't really add much more in the way of math. Linear algebra and calculus get you really really far.
- throw_away_777 10y agoOne minor point is that you don't mention some fundamentals of the machine learning process, like making sure to evaluate your models on a different data set than you used to train your models. Another point is that this article is really about how to learn deep learning, not how to get a job. I would really like to see some evidence that: "The good news is that basically everyone is hiring people that understand deep learning." Most data scientist jobs I have seen don't require or use deep learning.
- stephensonsco 10y agoIt's true I didn't mention this but I was hoping the coverage in the related links would be sufficient. I would loved to have had a section that points out some basic tenets though.
- bbctol 10y agoYou may not need a PhD or tons of experience to learn Deep Learning, but what about the gap between that and getting a job?
- stephensonsco 10y agoIf you are a great software engineer that can solve hard problems yourself, and then you add to that real experience solving your own nontrivial problems with DL, then people will hire with no questions asked. The reason is that not many people have experience in DL. So companies need to get good engineers that have the problem solving mindset and motivation+creativity to learn new frameworks and lick the problems they face in new awesome ways. Industry is dying for people like that. If you are that type of person then you can kill it with just a few weeks of hard study on your own.
- Chronic9q 10y ago> If you are a great software engineer that can solve hard problems yourself [...] then people will hire with no questions asked. False. Being a great software engineer is not enough to get a job in deep learning. For the same price, or a little more, you can hire an "expert" scientist or engineer with a PhD in CS/stats/ML.
- stephensonsco 10y agoGood point. Should probably say "you'll get an interview". I think you snipped out something pretty important though. The fact that you have done something nontrivial with DL is actually a big tell for the employer. If you just 'want to learn more about DL because it seems interesting' then employers aren't interested. But if you say "I am a good engineer and I have already done something nontrivial" then you have a much better chance of getting an interview and then the job.
- whamlastxmas 10y agoThis probably assumes you're willing to get a job in SV, NYC, Chicago, or Seattle. I doubt I could spend months learning deep learning and have any decent chance of a job in San Antonio (Texas). I don't live there - just an example.
- cbgb 10y agoThis is just a nit, but Andrej Karpathy was never a professor at Stanford; he received his PhD from Stanford and now works at OpenAI.
- stephensonsco 10y agogood catch. fixed it
- partycoder 10y ago"A job in deep learning". It is highly unlikely that you will get a job in which you exclusively use deep learning alone, and not any other ML/AI technique. Once you learn DL, then, "congratulations... here are 100 other topics you might need to know about before getting a job". http://scikit-learn.org/stable/tutorial/machine_learning_map/ http://scikit-learn.org/stable/tutorial/machine_learning_map...
- tostitos1979 10y agoI disagree. I think we might soon be at a point where someone might be able to get a job just knowing how to use CNNs well. Why do I think this? Well .. CNNs have basically licked the problem of image classification. They require a lot of trial and error. So .. I can totally see people packaging this up (e.g. NVidia's DIGITS or TStreamer), and CNN skills become sort of like Word/MS Office for some industrial applications. These people won't get paid 500K .. more like what web developers make. Just my personal opinion.
- rawnlq 10y agoI think you're right that the barrier is a lot lower now that there is a somewhat successful blackbox abstraction. In the past you need to know that to recognize lines: hough transform, recognize polygons: line simplification, recognize face: cascades, etc etc. Now? You can almost just feed it arbitrary labeled training data and do well without any sort of feature engineering. Just another api to glue.
- partycoder 10y agoOf course there will be more packaged applications, but I don't see them being something as low level as a CNN. More like applications of them such as speech recognition, translation, motion control, etc. Things that you can actually treat as a black box and integrate them into a system. Would someone in their right mind create a self driving car product with the help of someone who learned deep learning from a blog or youtube? probably not.
- stephensonsco 10y agoYou're definitely right that most ML jobs aren't DL all day everyday. But if you are working with data that is rich and fairly homogeneous but hard to model (like recorded speech) then you'll probably benefit a ton if you use DL due to the ability to learn underlying representations. If that's what you are up to then you do spend all of your time building and tuning DNNs (all three ML people at Deepgram are doing that at this very second :) )
- FT_intern 10y agoThis should be titled "How to Learn Deep Learning". "How to get a job in deep learning" would include: - What specific topics will be asked during interviews - What the interview question format is like - How to prepare for the interviews - How to get interviews without a PhD. What do you need to show competence in your self learned skills?
- stephensonsco 10y agoThese are definitely great points. Most companies looking for DL/ML talent aren't interested in setting up HR hoops for the applicant to jump through. They want to see if you did cool stuff before you applied for the job. If you didn't then you won't get an interview, but if you did then you have a chance no matter what your background is. Of course, the question of "what is cool stuff?" comes up. If it is building small projects with a a little bit of success, that probably won't do it (it might work for larger companies, or companies that need light ML/DL performed). But if it is "built twitter analysis DNN from scratch using Theano and that can predict the number of retweets a tweet will get: here's te accuracy, here's a link to a my write up on it and here's a link to github for the code.". Edit: added words similar to this at the end of the blog post.
- deleted 10y ago[deleted]
- throw_away_777 10y ago> So even if you're a beginner with deep learning, you're welcome to apply for one of our open positions Statements like this contradict what you are saying here - to really build a model that predicts number of retweets based on the content of the message (not something like the average number of retweets this user has) is very non-trivial. If your threshold of a side project is publishable [1], it is an unrealistic expectation. [1] http://homepages.inf.ed.ac.uk/miles/papers/icwsm11.pdf http://homepages.inf.ed.ac.uk/miles/papers/icwsm11.pdf
- namank 10y ago
- jamisteven 10y ago1st sentence should be: 1. Be a fuckin math whiz. Had it been, i would have clicked the back button.
- stephensonsco 10y agoIf you've got a lock on calculus, programming, and linear algebra, then you've got the skills to understand deep learning. Most time spent working on DL is not in the megamath part, it is in finding good network structures to optimize results.
- trapperkeeper79 10y agoI think a lot of resources out there at the moment are full of ML jargon and math. And a lot of new stuff that is coming out attacks the absolute beginner. This kind of sucks .. I started using torch, familiar with old fashioned NN and just wanted to quickly get up to speed on convolutional networks. It has been a PAIN (resources I find are either too deep or not deep enough). In any cases .. thanks for putting your links .. they were most helpful.
- stephensonsco 10y agoYou are right that most resources aren't that great at showing you the way. There is a lot of grinding to get past obstacles. We are trying to address this soon!
- nkozyra 10y agoTake a look at the primary algorithms used commonly in AI today - nothing exceeds high school level math. I posted about this earlier today but ML really should be demystified. You can write a lot of commonly used algorithms in 100 lines or fewer. The math is not complex. If you can get past the notation and buzzwords like "deep learning" (it's an artificial neural network, itself a grandiose term) you'll see it's not as daunting as most think. The reality is most "data scientists" will be working on implementation rather than creation. They'll be working on data sets and error analysis, not creating the next buzzword-laden algorithm.
- orthoganol 10y agoMy question is, it feels like machine learning is reaching its "Rails" stage. You can implement the latest Bi-directional NN or LSTM-RNN using a high level API that already sits on top of another high level framework. Even beyond the core setup it will do the peripherals - smart initializations, anti-overfitting, split up your data, etc. Do people who implement (albeit real, useful) deep learning systems, but who have no formal machine learning background, who don't really know much or care about implementing derivatives or softmax functions because the frameworks abstract all that away - are these people getting offered jobs?
- yomly 10y ago>My question is, it feels like machine learning is reaching its "Rails" stage No, I don't think so yet, but even if it did, would it even matter? There would still be world of different between the teams that can build a Twitter/LinkedIn/Github in Rails to someone who knows vaguely how to string something together because they learned it on codecademy
- orthoganol 10y agoA world of difference or a bootcamp and 6 months of difference? It's about barriers to entry, which many claim are insurmountable for mere common developers. A Rails bootcamp gets you close to being employable, and assuming you code, why not for deep learning too?
- dmix 10y agoThis sounds like you're comparing driving a car to flying an airplane. From my understanding, much like before flying, you need a lot of foundational knowledge to work with ML and be productive on your own. You could learn to drive a car, like you can learn to build a Rails CRUD app over a weekend, you'll be bad at it still but you can get to point A->B with little investment. The barrier to entry for AI stuff is quite a high. And IMO will be limited to certain kinds of people who like working on the hard science /math stuff, and have a strong enough early education to learn advanced linear algebra and statistics (for example) .
- tom_b 10y agoI am curious about demand for this skill in the market. But I just don't see it - machine/statistical/deep learning gigs just seem really rare. I know this isn't a great metric, but searches on Indeed.com: "deep learning" - 873 "machine learning" - 9,762 "statistical learning" - 65 java - 72,802 javascript - 43,785 Same searches on LinkedIn: "deep learning" - 646 "machine learning" - 6,952 "statistical learning" - 34 java - 43,845 javascript - 30,818 Even the "machine learning" search on Indeed, with 9K+ results has 1300+ from Amazon, followed by a much smaller number (in low hundreds each) from Microsoft, Google, others (including some that look like staffing companies). Even on HN's who's hiring Sept 2016 thread phrase counts: 14 "deep learning" 79 "machine learning" I completely agree with the idea that being able to use some deep/machine/statistical learning is going to be a toolset that data hackers need to have. I even think that there is a bit of the "build it and they will come" magic waiting out there. But I think the best way forward is to be working in data and figure out how to generate value with deep learning - this will be much more productive than trying to seek out a deep learning gig in terms of promoting deep learning in the workplace. Heck, that's a suggestion I would be wise to take myself . . .
- bduerst 10y agoMaybe a better metric would be growth of these jobs over time? It could be that demand for deep learning jobs is growing faster than ML jobs, or vice versa.
- throw_away_777 10y agoWhat did you search to get your numbers? Here is a graph of something similar: http://www.indeed.com/jobtrends/q-%22Data-Scientist%22-q-%22machine-learning%22-q-%22deep-learning%22-q-%22Data-analyst%22-q-%22software-engineer%22-q-%22developer%22.html http://www.indeed.com/jobtrends/q-%22Data-Scientist%22-q-%22... There is definitely more demand for data science than deep learning, and much more demand for software engineering or development than data science. Of course the supply also matters, there are many more software engineers than data scientists. But still, deep learning is a niche skill.
- phlyingpenguin 10y agoThough they are not representative of the whole, if there's 1 ML job for every ~10 java/javascript jobs (are those really related?), that doesn't sound too bad to me as far as demand for ML. Many of those other jobs are probably not senior level jobs, and every ML job will be.
- csantini 10y agoTL;DR: Deep Learning will become a commodity. Software will eat Deep Learning too. I'd like to clean up a bit the air from the hype fog: DL is giving amazing results only when you have big sets of labelled data. Hence it will be much cheaper for companies to buy Google/Microsoft Vision/Audio REST APIs rather than paying the costs of: cloud + find data + deep learning experts. So, I don't think we will see a massive growth of DL gigs. e.g. Google Vision API: https://cloud.google.com/vision/ https://cloud.google.com/vision/ Except those areas where your own CNN implementation is needed (automotive, industrial automation), Deep Learning will be another "library" in the ever increasing Software Engineering mess of gluing many open source libraries and REST apis to get something useful done. You need 1 guy training a Neural Network for every 100 software monkeys maintaining the infrastructure complexity. There are now many Software Engineering jobs because it's hard to glue and maintain publicly-available code to solve some specific business problem. I think the the same applies for many Data Scientist jobs, which are these days more about fetching/cleaning/visualizing data than making machine learning on it.
- csantini 10y agoThis is also one reason why Tensor Flow is open. Yes, Google wants it to become the standard, but it's also not a competitive advantage. The advantage is not the Deep Learning algorithm. Some theoretical progress has been made on Neural Networks lately, but largely it's the same stuff from the 90s, with much more GPUs and data. The competitive advantage is the cloud, and the software mess that keeps it alive. I think Deep Learning experts will be like Linux Kernel experts. You need 1000 kernel experts in the world, but you need 10 million javascript monkeys that code what dialog message appears when the user does something stupid in some app.
- ilostmykeys 10y agoOr backend monkeys that code what JSON to serve when the UI is managing the user interaction and using the server as dumb data source/sink...
- aws_ls 10y ago
- thefastlane 10y agoi just want to be a software engineer without having to continually burn away evenings and weekends studying the latest shiny, continually for the next two decades, just to keep my career afloat. is that even an option anymore?
- joshkpeterson 10y agoWas that ever an option?
- whenwillitstop 10y agoYeah, this
- vectorpush 10y agoThat seems like a somewhat entitled mindset. The job market is what it is and if you don't work hard to stay competitive then you'll fall behind, that's just the reality of a high paying desk job in today's economy. We'd all love to do rewarding work for great pay with a healthy work/life balance, but it's just a fact of life that this type of opportunity is not in abundant supply.
- pmyjavec 10y agoStick to understand fundamentals and the cruft on the top layer is easy to grok. Getting good jobs is about who you know most of the time, so just keep a network happening. Don't read too much hacker news, it kind of becomes stressful and I would try enjoy your weekends, don't worry too much about the market, a lot of good people just burn out and have breakdowns by trying to understand all that's going on and become useless anyway. Just know the basics well and learn what you need to in work hours, make time. What I'm finding is that in the end, most of the good / important stuff ends up condensed into a nice O'Reilly (or similar) volume that you can read at you leisure' later on when the hype has evaporated. If you invest yourself too much in the latest tech constantly, you run the risk of it being redundant / replaced anyway.
- Chronic9q 10y ago> What I'm finding is that in the end, most of the good / important stuff ends up condensed into a nice O'Reilly (or similar) volume that you can read at you leisure' later on when the hype has evaporated. If you are okay with median compensation and median project importance (internally and externally), then sure, wait a couple years when the interest has died down.
- imron 10y ago> I built a twitter analysis DNN from scratch using Theano and can predict the number of retweets a tweet will get with good accuracy I imagine a product like this could actually charge a fair bit of money helping companies and people improve the 'virality' of their tweets.
- Xcelerate 10y agoThis is applied deep learning. There's a ton of jobs available for taking someone's library on GitHub and applying it to a bunch of data. But other than DeepMind, FAIR, Google Brain, Open AI, Vicarious, and Microsoft Research, who is hiring for theoretical machine learning? That's what I'm interested in — developing better algorithms that eventually approach AGI.
- emcq 10y agoAllen Institute for AI and many other smaller companies depending on how left field you want to get.
- protomikron 10y agoMy advice: Do not label yourself as a data scientist or machine learning expert. Go for the domain, i.e. become comfortable with the actual data and the methods used there: - predict land use in aerial imagery - become comfortable with photogrammetry, geography, etc. - predict biological tissue(s) - become comfortable with specific branches of biology or medicine - predict $something_relevant I actually stole this advice from the epilogue of some text about programming, and it really stuck with me. Otherwise your expertise is just too generic and you compete with a big pool of people who call themselves machine learning experts, because they can write a for loop in Bash.
- xor1 10y ago>Speaking of math, you should have some familiarity with calculus, probability and linear algebra Curious to know if anyone has had success learning/re-learning these as a mid-20s or older adult who works fulltime, and if you could potentially provide a list of books/courses to go through. I personally never learned anything past geometry (in high school). The most advanced math class I took in college was College Algebra. That means I never learned trig or anything past it (so no calc, linear algebra, or probability), and I'm sure most people on HN surpassed me math-wise sometime in high school :) I've been able to skate by with my embarrassing lack of math knowledge/skills as a developer, but I feel like it's only a matter of time until the mathematical steamroller becomes a serious threat career-wise and I get crushed.
- mliker 10y agoWhile I did take courses in probability, linear algebra, and lots of calculus, until recently, I forgot most of the probability and all of the linear algebra I learned in school. As for calculus, I only remembered how to take basic derivatives. In any case, I've been spending the past month brushing up on my linear algebra and probability, and it's been a struggle, but now that I'm motivated and under no time pressure to relearn the material, I find it way more fascinating than I did in college. In fact, I skipped tons of my linear algebra classes because I thought the subject was dry and dull. I also rushed through my probability and stats homework just so I could get a good grade on them. I think if you're motivated, and you can do basic math, you should be able to educate yourself in calculus, probability, and linear algebra. It'll be a struggle, but with motivation, you'll be able to pick up the concepts. for probability and stats: https://www.amazon.com/Introduction-Probability-2nd-Dimitri-Bertsekas/dp/188652923X https://www.amazon.com/Introduction-Probability-2nd-Dimitri-... for linear algebra: https://www.amazon.com/Coding-Matrix-Algebra-Applications-Computer/dp/0615880991 https://www.amazon.com/Coding-Matrix-Algebra-Applications-Co... this was my college calculus textbook: https://www.amazon.com/Calculus-7th-James-Stewart/dp/0538497815 https://www.amazon.com/Calculus-7th-James-Stewart/dp/0538497.... I can't comment if it was good or not because by college, I had taken calculus twice so it was all a refresher best of luck! You sound educated enough (yes, I'm judging from the couple sentences you wrote) that I think you won't have any problems acquiring math knowledge with persistence.
- 10y ago
- max_ 10y agoWhy is the Machine Learning subreddit so toxic?
- zump 10y agoThere's so much hype. It's attracting masters of the universe type people that would otherwise be you'know, at Goldman Sachs or something