Re:Reverse-engineering facial recognition
by bane on Saturday November 29, 2014 @09:47AM
(#8673827)
This is really cool. This work, along with the previous work of reverse engineering handwritting recognizers is important for us to better understand what our tools are actually doing. A lot of what happens inside these ML algorithms is not terribly well understood, even by the creators, this work gives us a really good insight into what the mind of a machine is actually thinking. When I was a teacher, I used to try to make sure students understood things going both ways. This is very important work in this respect.
For people struggling to understand, it's a little like having a tool that uses automatically generated regular expressions to find things in text, except you don't know what regex the computer is actually using. For my name it could be as simply as "bane" or something crazy that a human would never think up, say b[a-z]+e. It matches my name, but it's interesting to explore what else it matches: "barserphursnatche" is also perfectly acceptable. Remember, you don't know what the computer is using to recognize things, so you have to simply probe: randomly generate strings, use some kind of genetic algorithm etc.
In the end, you probably won't find b[a-z]+e, but you'll find some expression with a sizable intersection like b[a-y][b-z]*e. Once you have that you can use the expression as a generator and build a list of all the possible names it will match with something like Microsoft's Rex [1]
What we find is that lots of the stuff the computer likely matches are not my name at all, or even look like a name (e.g. "baghuadsoadshasdguoasdughasdgaodsguafdghaufogafuhgafduoe") and it gives us insight into what it's doing.
I think why I like this work is that it makes me think of a sci-fi short story:
- A boy encounters an alien civilization
- The boy befriends a robot from the civilization
- They go off on some adventures together
- During a scene of doubt in their relationship, during a stressful final adventure, the boy asks the robot what he thinks of him. The robot 3d-prints off one of these heads and gives it to the boy.
For people struggling to understand, it's a little like having a tool that uses automatically generated regular expressions to find things in text, except you don't know what regex the computer is actually using. For my name it could be as simply as "bane" or something crazy that a human would never think up, say b[a-z]+e. It matches my name, but it's interesting to explore what else it matches: "barserphursnatche" is also perfectly acceptable. Remember, you don't know what the computer is using to recognize things, so you have to simply probe: randomly generate strings, use some kind of genetic algorithm etc.
In the end, you probably won't find b[a-z]+e, but you'll find some expression with a sizable intersection like b[a-y][b-z]*e. Once you have that you can use the expression as a generator and build a list of all the possible names it will match with something like Microsoft's Rex [1]
What we find is that lots of the stuff the computer likely matches are not my name at all, or even look like a name (e.g. "baghuadsoadshasdguoasdughasdgaodsguafdghaufogafuhgafduoe") and it gives us insight into what it's doing.
I think why I like this work is that it makes me think of a sci-fi short story:
- A boy encounters an alien civilization
- The boy befriends a robot from the civilization
- They go off on some adventures together
- During a scene of doubt in their relationship, during a stressful final adventure, the boy asks the robot what he thinks of him. The robot 3d-prints off one of these heads and gives it to the boy.
1 - http://research.microsoft.com/en-us/downloads/7f1d87be-f6d9-...