There’s a lot of money, time and brain power going in to various machine learning techniques to take the aggravation out of manually tagging images so that they appear in searches and can be categorised effectively. However, we are strangely fault-intolerant of machines when they get it wrong – too many “unknowns” and we’re less likely to use the services but a couple of bad predictions and we’re aghast about how bad the solution is.
With a lot of the big players coming out with image categorisers, there is the question as whether it’s really worth anyone building their own when you can pay a nominal fee to use the API of an existing system. The only way to really know is to see how well these systems do “in the wild” – sure they have high precision and recall on the test sets, but when an actual user uploads and image and frowns at the result, something isn’t right. Continue reading AI for image recognition – still a way to go
Today I sat down and wrote code in python, from scratch, with intent(!), for the first time… and, it was pretty easy. After spending some time trying to alter other people’s code and feeling like I was wading through treacle, writing something from scratch allowed me to see how easy python really is.
While I’m not making any great statement about my own code architecture, diving into something complex an be an inefficient way to learn unless the code you’re looking at is designed to be followable at entry level. When you’re experienced with other languages this can be even more frustrating as it’s easy to skip over the parts you assume you know and suddenly find you’ve skipped slightly too much. Continue reading So I wrote my first Python script
A few days ago, researchers from Facebook published a paper on a deep learning technique to create “natural images”, with the result being that human subjects were convinced 40% of the time that they were looking at a real image rather than an automatically generated one. When I saw the tweet linking this, one of the comments1 indicated that you’d “need a PhD to understand” the paper, and thus make any use of the code Facebook may release.
I’ve always been a big believer in knowledge being accessible both from being freely available (as their paper is) and also that any individual who wants to understand the concepts presented should be able to, even if they don’t have extensive training in that specialism. So, as someone who does have a PhD and who is in the deep learning space, challenge accepted and here I’ll discuss what Facebook have done in a way that doesn’t require advanced degrees, but rather just a healthy interest in the field2. Continue reading Facebook’s latest deep learning research
Two months ago I hadn’t looked at a line of Python code – it was never a requirement when I was a developer and as I moved into management I worked with teams and projects using everything from C and COBOL through LAMP to .Net, while Python sat on the periphery. I’d always considered it to be a modern BASIC – something you did to learn how to code or for a quick prototype but not something to be taken seriously in a professional environment.
I’ve always believed that really good programmers understand the boundaries and strengths of multiple languages, able to choose the right tool for the job, and finding the correct compromise for consistency and maintainability. People like this are really hard to find1 although I do tend to veer away from individuals who can only evangalise a single language and say all the others are rubbish2. Due to the projects I’ve been involved with, Python ability has been irrelevant and never considered part of that toolbox. Continue reading Python: serious language or just for beginners?
At the ReworkDL conference in Boston last month I listened to a fantastic presentation by Ryan Adams of Whetlab on how they’d created a business to add some science to the art of tuning deep learning engines. I signed up to participate to their closed beta and came back to the UK very excited to use their system once I’d got my architecture in place. Yesterday they announced that they had signed a deal with Twitter and the beta would be closed. I was delighted for the team – the business side of me is always happy when a start-up is successful enough to get attention of a big corporate, although I was personally gutted as it means I won’t be able to make use of their software to improve my own project.
It’s been a while since I’ve had the time to really dedicate to gaming in the way I’d like. My XBox360 is languishing unloved, my World of Warcraft account dormant since I got the Insane achievement in Cataclysm and the most I can manage now is the odd game of Hearthstone on my Nexus 71. I still keep an eye on what’s going on as the gaming industry is pushing the development of a lot of technologies that make their way into our lives in one way or another and I always have that hope that maybe something will give me the free time to immerse myself into some of the latest games again.
I was watching the announcements for XBox at E3 as they popped up on twitter this evening and two things really stood out for me.
The first session kicked off with Kevin O’Brian from GreatHorn. There are 3 major problems facing the infosec community at the moment:
Modern infrastructure is far more complex than it used to be – we are using AWS, Azure as extensions of our physical networks and spaces such as GitHub as code repositories and Docker for automation. It is very difficult for any IT professional to keep up with all of the potential vulnerabilities and ensure that everything is secure.
(Security) Technical debt – there is too much to monitor/fix even if business released the time and funds to address it.
Shortfall in skilled people – there is a 1.5 million shortage in infosec people – this isn’t going to be resolved quickly.
So, day one of the ReWork Deep Learning Summit Boston 2015 is over. A lot of interesting talks and demonstrations all round. All talks were recorded so I will update this post as they become available with the links to wherever the recordings are posted – I know I’ll be rewatching them.
Following a brief introduction the day kicked off with a presentation from Christian Szegedy of Google looking at the deep learning they had set up to analyse YouTube videos. They’d taken the traditional networks used in Google and made them smaller, discovering that an architecture with several layers of small networks was more computationally efficient that larger ones, with a 5 level (inception-5) most efficient. Several papers were referenced, which I’ll need to look up later, but the results looked interesting.
If you’ve been following this blog you’ll know that I’ve started a new role that requires me to build a deep learning system and I’ve been catching up on the 10+ years of research since I completed my PhD. With a background in computing and mathematics I jumped straight in to what I thought would be skimming through the literature. I soon realised that it would be better all round to jump back to first principles rather than be constrained with the methods I had learned over a decade ago.
So, I found a lot of universities who had put their machine learning courses online and have decided to work through what’s out there as if I was an undergraduate and then use my experience to build on top of that. I don’t want to miss an advantage because I wasn’t aware of it.
I’m four weeks in to my new role and one of the threads of work I have is looking into machine learning and how this has advanced since my own thesis. The current approach to machine intelligence is via learning networks where the data is abstracted: rather than recognising specifics about the problem, the algorithm learns the common elements of the problem and solution to match an input to the expected output, without needing an exact match. Our brains are very good at this: from a very early age we can recognise familiar faces from unfamiliar ones and quickly this progresses to identification in bad light, different angles, when the face is obscured. Getting machines to do the same has been notoriously difficult. Continue reading Machine intelligence – training and plasticity