Posts

Showing posts with the label Deep Learning

The *Real* Threat of “Bad AI”

Image
/via http://www.commitstrip.com/en/2018/09/24/trolling-the-ai/ This  particular episode of CommitStrip  pretty much represents the popular take on AI. Mind you, “popular take” is, as usual,  not  the same as “realistic”. After all,  when you’re designing robust systems, one of the very first things you’ll do is correct for signs that are missing, misplaced, or mis-identified , and if/when self-driving cars actually make their way into the real world, one of the things that they  will  be is robust against errors at multiple levels. Heck, that’s pretty much the way  humans  work — our vision is pretty seriously fallible, but we correlate a lot of  other  information to make sure that we don’t f**k up! Think about how you process visual feedback when driving. You are, unconsciously, running rules like these in your head all the time • A sign saying “60 mph” in a residential neighborhood is clearly wrong •  If you are wond...

Raise the MiniBatch Size!

Image
/via https://xkcd-excuse.com/ “ Training takes time ” ← That’s just the way it is, and the way it’s always been. The thing is, it’s not just the time you spend waiting for that bloody model to train, it’s the knock-on effects thereof. It is exceedingly common to spin off multiple workflows at a time, each with it’s own tweak, and that leads to any amount of chaos when it comes to keeping track of what exactly changed.  Reproducibility is, well, a bit of a PITA in this field   . In fact,  you can even get tooling just to work around the chaos of tracking all these pipelined workflows . Ouch! The underlying issue here is that typically training is done in one of two ways 1)  Throw everything at a single server/GPU (what you do if that’s what you’ve got) 2)  Throw it at a server farm (AWS, GCE, whatever) with their concomitant GPUs/TPUs/whatever Take  ResNet-50 . You’d typically break the images up into “minibatches” of 256 images each, and then have...

“What Am I Thinking Of?” — Deep Learning Edition

Image
It’s a bit of a holy grail really — if we could, somehow, figure out what all that brain activity  actually  corresponds to, well, that  would  change everything, wouldn’t it? Control systems powered by thoughts would move from science fiction to reality  , as would the abuses to privacy  . That said, the brain has been remarkably opaque to our probing thus far, so I guess the future is still the future, right? Maybe not so far in the future though. The first crack came from  fMRI , where, to simplify things, the experimenters basically stuck people in MRI systems, showed them a picture (of, say, a leopard), and recorded what happened in the brain. The good news is that a bunch of stuff would light up in the brain, with the equivalent bad news being that   a bunch of stuff would light up in the brain, and nobody knew what it meant . Some researchers went about this a bit more scientifically, and instead of a leopard, would show the subje...

Reproducibility and Data

Image
TL;DR →   Version control for your data doesn’t mean s**t if you’re not versioning right up to the point you use it /via https://www.digital-science.com/blog/guest/digital-science-doodles-lab-life-and-experimental-reproducibility/ I’ve written about the  Reproducibility Crisis in Machine Learning  before. Without going into gory details (just go read  the post  instead), the field is a perfect storm that comes from combining huge — nay massive — data sets, jobs that take forever to run, pipelined workflows within these jobs, workflows running in parallel, and poor version control. “Poor Version Control → This one is the killer here. While you might (might! Admit it, you don’t!) have version control for your individual models and datasets, what you inevitably end up  not  doing is versioning  all  your tweaks in flight. It is, after all, easier to just tweak some of the data on the servers rather than copying all your assets up again...

Video Analytics — Deep Learning Edition

Image
There is a lot of stuff out there when it comes to doing Video Analysis based on Deep Learning (use The Googles). It’s always been a bit of a pain to setup though — as with most things Deep Learning, it’s largely a case of Do It Yourself. Install the packages, re-install them because you didn’t get it quite right, build your models, start training them, reinstall the packages because you didn’t get the GPU version…. you get the point, it takes a while to just get stuff setup before you can even start doing anything. Or, it  used  to take a while. Thanks to  Akshay Bhat ,  herewith a one-stop shop for all your  Deep Video Analytics  needs . In one single set of docker containers, you get everything you need to do DL based video analytics, from importing, to analyzing, and thence to searching. To begin with, you import all the videos you want to process, either directly, from YouTube, or S3/GS/etc. Once you’ve imported them, the project comes with a b...

Colorizing with Examples and Deep Learning

Image
/via http://bruxy.regnet.cz/web/gfx/EN/colorize/ Colorization — adding colors to gray-scale images — is deceptively tricky. The underlying issue is that the resultant image needs to be perceptually meaningful, and visually appealing. Which is all well and good, but, well,  meaningful and visually appealing to whom ? In the image above, • Is the fence painted? Or, if not, what shades of brown should the fence be? • That grass— should it be green, blue-green, straw yellow, or brown? • And the trees? And the leaves? You get it — the point here being that there really is no uniquely correct solution, and so much of what happens is about the intent of the person doing the colorizing Historically, this was all deeply manual, with the work consisting of  literally painting the image. Software did help, but there was still a lot of manual work involve — for example, humans would draw a boundary and tell the computer to fill in that boundary with a given color with shading, fad...