Ask Slashdot: How To Get Into Machine Learning? 123
An anonymous reader writes: I know this is a vague question, but hoping to get some useful feedback anyway. I'm an experienced SW Engineer/Developer who is looking to get into the Machine Learning arena. I have an MS in CS and a solid 15 years of experience in a variety of areas, but no experience in Machine Learning.With that as background, my question is: What is the most time-efficient (and reasonable cost) way to:
(1) Decide whether Machine Learning is for me and
(2) Make myself employable in the field.
An additional constraint is that I can't afford to quit my full-time day job. Thanks.
(1) Decide whether Machine Learning is for me and
(2) Make myself employable in the field.
An additional constraint is that I can't afford to quit my full-time day job. Thanks.
Re: (Score:2)
Build a machine and ask it.
No, that wouldn't work. If he built it wrong, it might give the wrong answer. He should just ask the chatbot from the previous story [slashdot.org].
Coursera (Score:1)
Coursera have a bunch of free courses in ms that start 4th of jan.
Re:Coursera (Score:5, Interesting)
MIT has a good free intro to AI and ML [youtube.com] by Patrick Winston. I watched it for an hour a day while I was on the treadmill. I learned a lot, and burned off a few pounds.
You should also learn CUDA and/or OpenCL. That will not only help you with ML, but also with any other HPC, and make you more employable.
Re: (Score:1)
Re: (Score:1)
Yes but what to answer to such a stupid question? "Dear Slashdot, how can I learn this advanced en-vogue field (that I'm completely new to and not really interested in) and make money fast?"
Re: (Score:1)
It's Slashdot 4.0 (by my count). "What are the hot tips to get into AI and start making money fast!?!"
It's an improvement from, "Three tricks to make SystemD even faster!"
Re: (Score:2)
Yes but what to answer to such a stupid question? "Dear Slashdot, how can I learn this advanced en-vogue field (that I'm completely new to and not really interested in) and make money fast?"
You're reading into the question stuff that wasn't said. I could have easily asked this question. I have a BS in Computer Science with a minor in Psychology. I worked with neural networks and genetic algorithms in High School and planned on going into AI (thus the minor in psych). Somewhere along the lines I got into backend web development and had a couple kids. I have now been out of the AI field for almost 20 years. I also would have a hard time quitting my day job because I have a family to suppo
Re:Coursera (Score:4, Informative)
...or he's just bored with the various employment he's had over the years and looking to something that superficially interests him. Machine Learning from the outside seems like a fun field to get into (whether it is or is not on the practical side) so that's where he wants to turn his attention.
I'm sorry but a lot of your generalizations only apply to someone living in a certain box of life. 15 years of experience "approaching paying off your mortgage"... are you kidding me? Sure for some people but that's certainly not the average. Even with more people getting 15 year mortgages 15 years out of school doesn't necessarily put you into the position to be at the end of that and those first few years you weren't necessarily making that kind of cash anyway. Add in things like Student loan payments, car payments, family, eating and well maybe even living your life outside of the office and being at the end of your mortgage term is SO not to be expected at this point.
Failed engineer? Maybe but certainly not clearly from his description. The only dig I would say is with a MS in CS and 15 years in the field I would think he would have figured out how to explore new technologies by now without asking /. As for not being able to quit his day job: I like to tell my friends I live paycheck to paycheck on *really large paychecks. That's my choice. I like to live every minute of my life outside of work to the fullest and that costs money ergo I'm not banking it away. I've managed to survive a couple employment hiccups just fine and so like living on that edge. He might have a family to feed (I don't) or huge student loans (remember the MS) or etc etc etc that are burning away those paychecks before they can be saved. Kudos to you for being extremely frugal with your money but most of the population require their paychecks to continue, even those of us with really large ones.
Anyway... I must've really felt like typing today (or avoiding that pesky day job of mine) since trolls don't typically deserve this kind of bandwidth. Thanks for providing some much needed distraction!
As for the OP's questions:
1) It might be... go try it! Google is your friend and will lead you to things like Coursera or Open Source projects or Amazon's Machine Learning tools or or or..
2) Contributing to Open Source projects is your best bet for practical experience in the field OR taking a hit to get an entryish level job in the field and proving your worth inside to get back to your 15 year salary expectations. Honestly if you've got a solid resume and that MS of yours getting a job shouldn't be the hard part.
Re: (Score:2)
Re: (Score:2)
"or he's just bored with the various employment he's had over the years and looking to something that superficially interests him"
I bet it's boredom. Most of what I do is just monkey coding boiler plate. Boring as hell. Management doesn't care about how things could be improved as long as the insane feature delivery schedule is met and I feel constantly working under my potential.
Poster is bored and wants to try something different.
Re: (Score:3)
I'm not sure that would help a failed engineer.
The GP's advice was not just directed at the submitter, but at the hundreds of other people who might have the same question. Machine Learning is a big and growing field, and everyone involved in tech should learn the basics about how ML works and what it can do.
Re: Coursera (Score:2)
There's plenty of jobs for experienced people with solid engineering skills. It's harder to get into this industry now than 15-20 years ago, but if you're contributing to open source, attending meetups and have decent soft skills you can still get in to the industry just fine. The market has grown; the influx of new "engineers" is much larger, which just means there's more competition, but there's plenty of jobs out there make no mistake about that.
Re: (Score:2)
And is CS the same thing as engineering?
As a software developer with many years of experience I have to point out, engineering is a specific type of discipline. For example if you think "waterfall" is a bad word, you're not an engineer.
If he was a real person and not a dice employee acting a role, he'd have to be a complete tool to be looking for jargon with an Ask Slashdot. A person with an advanced degree AND 15 years of experience in the field would simply read a few glossaries and be a lot farther ahead
Re: (Score:2)
Wow, that is a truly autistic comment. Pretty much spot on and completely accurate though, just very insensitive. But True.
https://www.youtube.com/watch?... [youtube.com]
Re: (Score:2)
Wow, you take the time to post complaining that I was insensitive, and yet you use "autistic" as your descriptive word for that. Why do you need to bring people with disabilities into it, and turn them into a pejorative, when you could use a more sensitive and demographic-neutral term like "asshole?"
Start Small (Score:1)
First start small like a game.
Teach a computer how to win a Tic-Tac-Toe, or 8 queens.
Re: (Score:2)
"First start small like a game.
Teach a computer how to win a Tic-Tac-Toe, or 8 queens."
Then teach it Poker and run it on 250 Online Poker sites and forget that job change.
Start by using the tools available... (Score:2, Informative)
....Coursera, MIT Distance learning classes, etc. to get a feel for what "machine learning" actually is. Also, bone up on your math skills...it's a math intensive field.
this is how I'm approaching things and I'm looking at it from a doctoral programme standpoint.
my 2 cents
Re: (Score:2)
The courses are pretty far lagging the state of the art.
Watch every youtube video by Hinton, LeCun, etc. Read the fundamental papers.
Once you understand the ideas, write a simple NN program. It's like 100 lines of python/numpy. Train in on MNIST. Compare your results with the published results. Understand where your code is failing. Try to make it better. Get a 2-layer RBM to actually learn better than a 1-layer RBM.
That's like two months of evenings total work. Do that, and you can at least know if you lik
Re: (Score:3)
Once you understand the ideas, write a simple NN program.
How can I put this politely? Err... this is extremely bad advice. If you want to get into machine learning, steer clear of neural networks for the foreseeable future.
They're just not that useful for the vast majority of problems. For problems of simple-to-moderately complexity, their performance (both accuracy and speed) is atrocious compared to other methods, but more to the point, the model itself is uninformative. You almost always want to use a technique where examining the model will give you insight i
Re: (Score:1)
As an outsider looking in and with great curiosity, I'd say that NN would *really* be something that they'd need to steer clear of assuming they had the chops to get back into academia. Barring that, I'd agree entirely. There might be some big hitters (e.g Google, Microsoft, Apple) poking in that direction and with a limited interested but, from what I'm seeing, they're pulling those employs from academia and not off the street.
I suppose, with some work, they could *build* something and then seek to hawk it
Re: (Score:2)
There might be some big hitters (e.g Google, Microsoft, Apple) poking in that direction and with a limited interested but, from what I'm seeing, they're pulling those employs from academia and not off the street.
The main reason why it's the big hitters working in the neural network space is that they have ambitious problems (where there is no "understanding" that can be applied), more data to throw at the problem than we mere mortals, and more people to assign to one project than you do.
Re: (Score:1)
Absolutely. It's actually a little something that I miss about my old company. I am biased but I like to say that I built the greatest traffic simulation game of all time. It lacked graphics (though we* did add that eventually but it was on smaller data sets, limited in scope, and very compute cycle expensive). It was great having that much horsepower to play with.
I had a whole server room full of clustered blade servers with giant blinking switches and pretty lights. I had disk arrays that were mind blowin
Re: (Score:2)
I can't say I really work in AI as such, but I am the sort of person who gets paid to (amongst other things) apply machine learning to real-world problems, so I'm not really sure that I could say where all this is headed.
Right now, I'm more scared of people than I am of machines. The biggest forseeable risk of having a crapload of data and a lot of hardware to throw at it is that it will be used against people by people.
Re: (Score:1)
Thanks. When I was young, I was born in 1957, there was actually a group of people who were scared of "the big brain." The worried about things like automation taking over their jobs, taking over their lives, and making choices for them. This was not just a recurring theme in science fiction of that era but there were several television shows that touched on it and even a few non-science fiction works. Well, not traditional, era-specific, or hard science fiction works...
I remember one show, I think it was a
Re: (Score:2)
I remember one show, I think it was a movie, where there were a couple of office ladies who worked in accounting. They were losing their jobs due to computers taking over the industry.
I think you're talking about Desk Set. Katharine Hepburn and Spencer Tracy.
It's certainly true that technology is a challenge for some jobs, but it also creates new jobs. The speed of revolution just happens to be faster than it ever was. Some industries (e.g. service industries, such as aged care) are booming.
My biggest concern of all, and it's a concern shared by a lot of Slashdotters I suspect, is that the promise of a better tomorrow won't happen (or won't happen until much later) for reasons unrelated
Re: (Score:2)
Also, bone up on your math skills...it's a math intensive field.
Although ML has a lot of math, the math is not all that deep. If you have taken calculus (up to partial derivatives) and linear algebra (matrices), you have enough math to get started. But you need to be comfortable quickly reading and understanding a lot of mathematical notation. Many of the important ML research papers have more math than text.
Re: (Score:2)
What you really need for ML is statistics. Lots of statistics.
How much statistics do you need? It's hard to say, but a good rule of thumb is that if you know what a conjugate prior is and where to look them up, then you certainly have enough.
Certification? (Score:5, Informative)
Re: (Score:2, Informative)
Coursera's Data Science track, through Johns Hopkins' Biostatistics department, has a machine learning course late in the 10-course program. Lot of work to get there; you learn a good bit of R and some statistics along the way. Depends on whether you want to pursue it in such a context.
Re: (Score:2)
How do you get experience if you don't have experience?!
Coursera, Andrew Ng (Score:5, Interesting)
Re:Coursera, Andrew Ng (Score:4, Funny)
It's excellent (took it twice).
If it was that good, you'd've only had to take it once!
Ba-dum-pum-pum.
Re: (Score:2)
Re: (Score:1)
I agree. It's one that I wouldn't mind taking again. You may need to hone up your maths a bit, back to high school level (some calculus and matrices/vectors). Fortunately I took Calculus One also on Coursera just before the machine learning course.
Re: (Score:3, Informative)
Re: (Score:2)
Re: (Score:1)
I am from the US, hold a Ph.D in Applied Mathematics, and call it maths, mathematics, or sometimes math.
I am doing math.
I studied mathematics.
We're learning the maths.
Those are some examples. I'd not say that I'm an authority on the subject but others might indicate that I am. I'd argue with them and say that the authorities on that subject would actually be those with a background in linguistics.
Re: (Score:2)
Yup - I did it way back when moocs where a new thing. It was a good course then. Presumably the content is much the same now.
Re: (Score:1)
After looking at TensorFlow [tensorflow.org], I realized I'm not very prepared to use it, so I started taking Ander Ng's course and I'm in my 5th week now, and I feel like I'm getting a lot of it. I like the way he seems to have created this course to be fairly self-contained. Fors instance, although calculus shows frequently in the course, he is fairly open that he doesn't consider it to be a prerequisite and derived version of the equation is usually given whenever it comes up. Linear algebra is certainly required in the
Andrew Moore's Data Mining Tutorials (Score:1)
Andrew Moore's Data Mining Tutorials are a great resource. http://www.autonlab.org/tutorials/
Get a H1B to get the job! (Score:1)
Get a H1B to get the job!
Why do you have to ask? (Score:3)
http://opencog.org/
http://wiki.opencog.org/w/The_Open_Cognition_Project
I am sure there is more than OpenCog. Google is your friend on this one.
Stanford Online Learning (Score:5, Interesting)
Forget it (Score:2)
If you want to earn money with it, forget it. A software engineer is a completely different type of computer scientist than data mining and machine learning. You could get another master program on that. But why wasting your 15 years of experience? You need to relearn all the logic stuff from university and couple it with statistics and signal processing. All in all this is heavy duty math stuff.
Re: (Score:3)
I would more go in the direction that a software engineer (a real one) needs to know the following:
- Modeling
- Software Architecture
- Requirement Engineering
- Enough to talk to the database guys what he wants as data model stored
- Project management
- Programming
- Continuous integration and delivery
- Software versioning and building
As a FB programmer you need to know only a subset mainly programming and using the tools in CI and VCS. In modern companies also modeling.
For AI a total different skill set is req
Just do it (Score:2)
If you actually want to do research, you'll probably need a PhD, no matter where you start working though.
Re: (Score:2)
I read that YCombinator startups that do AI do not like job candidates who have interest in machine learning -- they want good programmers interested in solving a problem, where AI happens to be a means to an end. So maybe the best thing to do would actually be to quit your day job and get a job at a place that does AI and hires regular programmers!
Re: (Score:2)
Re: (Score:2)
In the 80s, there was a huge push to use machine learning in automated diagnosis in medicine, although I don't know if anything practical ever came of that.
I've also read that machine learning has been effective in determining what chemicals are in unknown substances using a spectrometer.
Re: (Score:3)
Look at the competitions on Kaggle to see what people are up too.
ML can be used to do OCR, detect diseases from scans or measurements, use sensor data to figure out preventive maintenance, optimize the navigation of websites, voice recognition, marketing (duh, but there's a lot to it), recommendation systems (like netflix and amazon), network analysis (social, electrical...).
That's all I got right now, but there's more.
Udacity Nanodegree (Score:1)
Time Efficiency is the answer (Score:5, Insightful)
Turn off the TV. Go into online learning fast & hard.
Bust your ass and eventually join some of the OSS project/s and volunteer to help.
It gets your name out there and the right people do notice that.
Re: (Score:2)
I've been thinking about this comment all day. I can't endorse the sentiment more. Especially when machine learning is looming on the horizon.
Everyone reading this now better be continually expanding their skill set and experience. The promise of machine learning is to make those who aren't doing this obsolete in the workforce. If you think domain knowledge makes you irreplaceable, that's exactly the target of machine learning.
Udemy has really we
Kaggle (Score:2)
The single most motivating thing for me, personally, was to find real problems to solve and real examples and help on how to solve them. Bonus points for variety and competition and even prizes.
Enter Kaggle [kaggle.com] -- data mining competitions with an absurd amount of examples, datasets, community posts, forums, curated examples. I really cannot emphasize how much I've learned in this community. Join and try one of the example competitions -- the Titanic one is popular, follow the getting started guides and go fr
Combine On the Job with some education (Score:1)
Use machine learning (Score:4, Funny)
Machine learning is meant to learn itself on its own, right?
How Motovated Are You? (Score:2)
Ask the question, "what will get me hired?" Easiest way to find that out is searching the 'net using "Jobs Machine Learning"
Do you have passion in it? (Score:2)
If you have already worked 15 years, life is short; start enjoying things which money can't bring. Cut down expenses, manage finances better and hope we reach post-scarcity and you can live off with less money. The point is
Five Tribes of Machine Learning (Score:1)
I would view this ACM webinar on the five sub-disciplines in machine learning (assuming you can) and then investigate the listed resources:
http://event.on24.com/wcc/r/10... [on24.com]
do the math (Score:1)
Try the netflix data set (Score:1)
Deep Learning (Score:3)
If you want to start playing with some deep learning models, I would highly recommend this [stanford.edu] page. It provides some basic examples that run right in your browser. Also, this [github.io] page provides a great guide to working with neural networks without getting bogged down in a bunch of mathematical equations.
Another great resource is Caffe [berkeleyvision.org]. Caffe is a deep learning framework that will let you define a wide variety of neural networks by just writing a text file. You can run Caffe applications in CPU or GPU mode (a lot of open source deep learning code will only work with GPUs, so being able to run things either way is a nice feature).
If you want to do computer vision, make sure that you read up on fully convolutional neural networks, because they are the big thing right now.
Remember that story about a program that was able to learn how to play just about any Atari game? That is called reinforcement learning, and that's a big thing right now too. Udacity has a great course [udacity.com] on reinforcement learning.
Re: Deep Learning (Score:2)
Very nice pointers. I also recommend the other two intro ML courses at Ga Tech on supervised and unsupervised learning (that precede the reinforcement learning course you recommended). IMHO these three are perhaps the most comprehensive and in-depth video intro to ML available.
Another great resource is the intro to ML video series (course) from Tom Mitchell at Carnegie Mellon. His textbook remains my favorite intro to ML for those who aren't math whizzes.
Machine Learning Litmus Tests (Score:1)
anecdotal (Score:3)
I worked in a machine learning shop for 2 years (doing machine learning...). In my experience, which is entirely anecdotal and limited, machine learning shops resembled academia more closely than industry. By that I mean:
1) They valued credentials that most software shops find almost meaningless (PhD level credentials, Masters at least)
2) The ones I encountered were extremely clique-y. They didn't associate with non-machine learning people.
3) There was an insane amount of dead weight (people doing lots of work but accomplishing nothing) and a general disinterest in practical application. The cliche of "herding cats" was extremely relevant here.
I got away from machine learning and more general AI as quickly as I could because I didn't like the culture. It reminded me too much of academia.
How I came to work in ML (Score:3)
Here are some points that the OP needs to understand.
1. There are two different levels of expertise with working on machine learning: either as a library/tool user, or as a ML algorithm developer. It is EXACTLY analogous to how one approaches SQL: You can make a great living being a SQL user and knowing how to write efficient queries and build indexes, or you can go deeper and build the SQL engine itself along with its query optimizer, storage layer, etc. If you want to use ML as a library/tool user, you can have a great career as long as you know what tools and algorithms to use. If you want to be a ML algorithm developer, that means you want to work on the innards, such as using new SVM kernels or building new deep learning networks; for this role, you'll usually need a PhD-calibre background heavy in math. I personally started out as a library/tool user with Weka and Mallet, but as I used them more, I was able to understand the math behind them.
2. ML is an abstract field, and it's best to approach it from an applications point of view. Pick a problem that needs ML, such as natural language processing or image recognition. It's important to pick a problem that has an abundant amount of labelled data. There are some fields such as voice recognition where it is terribly difficult to get real labelled data. For NLP (aka computational linguistics), you can start with some basic problems such as document classification (e.g. for this document, is it about sports, business, entertainment, etc.?) or sentiment analytics (e.g. for this Twitter tweet, is it positive or negative?). There are lots of good datasets in the NLP field.
3. You can explore datasets from the Kaggle competitions and the University of California, Irvine, repository: http://archive.ics.uci.edu/ml/ [uci.edu]
4. Pick a tool and stick with it. I have used Weka, Mallet, and R. You can also use Python and Matlab.
5. When you read the literature, you will find two nearly-synonymous terms: "machine learning" and "data mining". Both are closely related. Machine learning historically comes from the AI community and generally focuses on building better ML algorithms and solving supervised ML problems. Data mining historically comes from the database community and generally focuses on using tools and solving unsupervised ML problems (e.g. finding clusters of similar customers).
6. At the end of the day, creating a better solution does not come down to the ML algorithms themselves. Rather, the better solution comes from the amount of data and what features you are able to extract. As for the many ML algorithms for supervised learning: at the end of the day, your main responsibility will come down to picking the one that best suits your application. It is just like picking which sorting algorithm to use: when do you use Quicksort, and when do you use Mergesort?
7. Here are some really good books that I have personally read:
Beginner level:
- Programming Collective Intelligence by T. Segaran.
- Introduction to Data Mining by P.-N. Tan and M. Steinbach.
Intermediate level:
- Data Mining: Practical Machine Learning Tools by I. Witten and E. Frank. (goes with the Weka tool)
Advanced level:
- Artificial intelligence: A Modern Approach by S. Russell and P. Norvig. (touches on all aspects of AI, such as tic-tac-toe algorithms with minimax and First Order Logic)
- Introduction to Machine Learning by E. Alpaydin
PROTIP: How to tell if you're reading an advanced machine learning book -- if the index contains reference to Vapnik–Chervonenkis dimension or shattering, then the book is hardcore.
Re: (Score:2)
Write a US AI history book (Score:2)
1980's 1990's with grants, funding, emerging private sector, academia. The onto the huge early data sets with internet search results been offered for sale.
Follow the data, cash, science and projects. What was done, was expected, never worked, was never mentioned much in public again but got a lot of funding...
Back over the decades that end u
Microsoft offers a quick taste of ML for free (Score:2)
Microsoft has a browser Ml app GUI that is useful and slick. Makes it easy to try many different approaches and get a feel for munging your own data quickly. Find a free trial as part of azure and or Cortana analyics
Weka Mooc (Score:2)
About a year ago I completed the Weka Mooc (https://weka.waikato.ac.nz/explorer). Weka is an opensource machine learning / data mining tool that has many different machine learning tools and algorithms.
The mooc part is the course. It was free at the time I did it, but I don't know if it still is. The mooc is run by an experienced machine learning professor. Weka is also maintained and developed in the same department as his.
I highly recommend this course, it was informative, gave me a grasp of machine l
Here's how (Score:2)
Take your hand and hit it with a hammer. Still here? Ok. You passed the first test. Next test is hit your head with that hammer.
Machine is very unforgiving. Those that are good at it are close to being artists. They're also very cleaver. The reason for my first comments is because it'll beat you. Everything has to be exactly right or you get nothing.
My advice is to start with something small. A 6502, if they're still around. An IBM AT class machine is wonderful. Start with a keyboard driver. You can replac
Re: (Score:1)
Why mod this down? It's fairly accurate. As a 20 year veteran in the field I really do understand where the article poster is coming from and as a 20 year old veteran I also know where the OP of this thread is coming from.
Not to say that people over the age of 40 can't move in the technical world but it's difficult and if pay is a question then it's that much harder. I've been considering moving into other areas of IT myself and I already know that to expect more than 80% of my current pay rate is u
Re: (Score:3)
This is pretty much an entire different branch of mathematics, similar only in tha
Re: (Score:2)
Indeed. Machine learning is the trendy term of the whole decade.
Here's your handy guide to the field:
Re: (Score:2)
Why mod this down? It's fairly accurate. As a 20 year veteran in the field I really do understand where the article poster is coming from and as a 20 year old veteran I also know where the OP of this thread is coming from.
It was modded down because it didn't do anything other than insult the article poster. You provided enough substance to start an actual discussion, but the original AC just acted like a troll.
Not to say that people over the age of 40 can't move in the technical world but it's difficult and if pay is a question then it's that much harder.
This is quite true, especially the last part about pay. I am higher paid than most of my coworkers, but only because of some highly specialized skills I have. If I took a developer job in a completely different technology stack it would be hard to keep my senior developer title and senior developer salary. I assume I w