This guide is designed mostly for those who already know what problems they want to solve, but don't know how to start or where to look for high quality and up-to-date educational resources. Also this is designed for those who want to do research in this area and just want to develop better shovels (that was me 2 years ago).
Regarding datasets, each course we suggest in the guide has its own way of dealing with datasets. Most of them teach how to work with MNIST, which is pretty good for many purposes.
I agree that another guide on datasets could be useful for some people.
I will mention that you can get surprisingly far with just a little bit of labeled training data now. Transfer learning is a pretty powerful technique.
Undoubtedly. However there are three sets of data you need to a functional system: Training Data and Validation data sets (a lot of sources exist already) and the data set you want to get insights from (Novel data sets usually).
These of course work together in reinforcement scenarios.
So for example if you want to build a tool that tells you what kind of objects are in any given image you can use ImageNet to Train and Validate your CNN. At that point you have a classifier. But for an actual useful application you need a user to submit new images to actually give some kind of valuable output.
It's that second data set that is super hard to get - because it's novel.
I think the idea is that, for example, you start with some pre-trained visual object-identification network, remove the final logistic-regression layer, and replace with a layer which you train your problem on.
Everyone's into deep learning, but what would I actually do with it? With some other field, like computer graphics, one can fairly quickly get a 3D cube spinning on their screen and know it has some relation to the special effects in the Star Wars movie they just saw. No one makes it obvious what the hobbyist can expect to do with deep learning or how it relates to the broader world.
Everyones into Graphics programming, but what would I actually do with it?
The uses are myriad, you can build Star Wars Movies, you can build computer games. You can do CAD and 3D modelling and printing, you can visualize fluid simulations
But each is an entire field.
The same with Deep Learning -
You can do image classification for medical diagnosis. Self Driving Cars. Realtime Translation. OCR. You can model chemical reactions by doing latent space exploration. You can model gene-gene interactions. You can build a image recogniser to tell if your cat is on the couch. You can build an AI that plays GO, or any other system or game where the rewards are time-delayed and sparse. You can make it play Atari games.
You can stitch satellite images together. You can reconstruct parts of photos that are missing. You can colour black and white images. You can de-noise wind sounds from microphones. You can search for comets. You can monitor deforestation. You can count cars in car parks. You can search vast ocean areas for survivors. You can build security drones that fly around at night and look for anomalies. You can turn a webpage of unstructured text into structured query-able forms (see named entity recognition). You can create visual art (google: neural style transfer)
These are just a small drop of some of the cool things that are going on - and while it might be difficult for you to advance state of the art without a GPU cluster (just as it would be difficult to advance state of the art in Graphics programming) the hobbiest can certainly start in any of these fields, just pick one that inspires you.]
EDIT: I run a Deep Learning startup - if you want some pointers or help getting started, or would like advice don't hesitate to email me - it's in my profile :)
One of my partner's tasks as a legal assistant is to go through mountains of OCRed PDFs and classify them and extract pieces of data so that lawyers and paralegals can go through them more easily. Do you imagine deep learning would be an appropriate means of automating that, or is it overkill?
No not overkill at all - I think the first step is to augment the human so the machine helps them, then it can totally replace all of the laborious stuff as time passes.
Imagine something like:
A deep network reduces a 20 page document to a summary of 4 or 5 sentences, you can click on these sentences to "expand" them out, eventually getting to the original text. Saving them from reading the whole document
A separate classifier automatically classifies the document into one of say, 20 categories (or whatever is appropriate).
A Deep Learning named entity recogniser extracts the Human names, Dates and times, Email addresses, Company Names, email addresses, Money amounts, and numbers from each document, then off to elasticsearch for indexing and easy searching.
Then we can start to play with higher level legal concepts that (for example) set precedent, or search for certain logical fallacies.
(the next step past machine learning is machine reasoning - and it's starting to be possible now)
Not overkill at all, but youy should know that there are a lot of competitors in the e-discovery software category, and they do a lot besides classification, starting from the ingestion of email archives, through extraction of attachments (recursively, because Outlook PSTs get mailed as attachments too), identifying and attributing quoted text, deduplication of messages and documents, SNA, clustering, normalization, canonicalization, NER, synonym identification (aside from correctly identifying people referred to by nicknames, advanced implementations can also figure out when people are using a code-word to evade filters), etc.
deep learning is where databases where 20 years ago.
you can easily imagine putting data in a db like server, and querying that data asking things about that model in respect to other things at your disposal in different times.
One area I find interesting is classification. E.g. I'm building a search engine for lectures, so I built a utility that classifies search terms based on whether they are for a speaker or not, based on the text of the term on Wikipedia.
The next stage will be to take articles posted to the various programming language subreddits, and build a classifier that classifies articles by language or topic. I did this previously for talks based on heuristics, but this will allow for a lot more categories:
https://www.findlectures.com/?p=1&class1=Technology&category...
If links are broken for you, then turn of your adblocker, because he is measuring clicks with Google analytics and he's JS is broken thanks to the missing ga function.
No one has yet won the "These are the best resources for learning ML" aggregator and a lot of people are interested in and building them. So people keep posting them.
Many people (especially students from universities) keep asking me and my coworkers at YerevaNN about good educational resources. They have different levels of math background, some want to study theory and watch visualizations, others want to play with the code before reading formulas..
At some point we understood it's better to spend some time and build a guide that will cover most of these questions (and, as always, we spent a lot more time on this than we expected)
I was looking for something that would answer common questions for some time, but couldn't find anything. Pointing students to research papers unfortunately doesn't work in most of the cases. Deep learning book is too hard for some and they want to see a comparison of different sources.
Confirmed that links are inactive on my phone as well, probably because they don't seem to be prefaced with URI schemes (i.e. their http:// and https:// prefixes).
As far as I can tell, Deep learning in practice is pretty far ahead of the theory, so people are largely following their intuition around rather than being guided by theory.
1. A purpose for utilizing it
2. A data set to train/act on
Without that, all you get are a bunch of shovels and picks, but no idea of what kind of wood/bricks you need or a plan for the house.