To gain intuition and reasoning of a model is to have understanding and trust--transparency. When you strike a nail with a hammer, it's pretty predictable what might happen: the nail could get hit, the hammer could miss, or very rarely, the hammer's head may fly off of the handle. When you replace the hammer with a black box that works correctly 99.999% of the time, but for 0.001%, something completely unpredictable happens, then there's a problem with volatility because that unpredictable event may have unacceptable consequences. I think explainable AI could help with intuitive and more fine-grained risk analysis, and that's certainly a good thing in high-stakes applications such as defense.
 ISLR, Page 25: http://www-bcf.usc.edu/~gareth/ISL/ISLR%20First%20Printing.p...
Human intelligence isn't explainable, though. We can make up explanations but they're not based on our actual neural function (heck, we don't even know how that works in general, let alone how we generate specific outcomes).
A large part of human success is that we are able to transmit knowledge to each other and accumulate experience over generations. A human starting from scratch is not very much more than its ape cousins.
Human beings can explain efficiently because we must learn concepts decomposably and can take deductive shortcuts. In its purest form we have mathematical proofs as explanations. Explanations work with core concepts and generates on that basis. E.g. We want to know A and we know B, B is applicable in condition C. We will show condition C applies. With B, A can be shown in terms of...
When you give big data to machines they work with raw correlations and output predictions. But humans have to be more creative because our scratch space is so small. Newton took Brahe's big data and compressed it to a theory of universal gravitation. Darwin made a relatively small number of observations, all things considered, and came up with On the Origin of Species.
I am still not sure but after seeing Schmidhuber's talk last week, I think it is being able to find regularities/patterns, resulting in a compressed representation that allows to understand and compress some aspect of the world, and building layers (abstractions) of those compressed representations. This allows you to navigate through very large search spaces much much faster.
It's a fascinating subject, and at the core of what we are. I recommend the film.
You don't need to explain every dendritic cluster in order to extract core, composable and generative abstractions useful enough to shorten time to understanding by orders of magnitude (discovery of zero vs how quickly it can be taught).
We know a lot more about how machine learning works--since we developed it ourselves recently--but because it is so new, we feel the need for deeper understanding to mitigate risks. To go back to the suicide example, a computer-driven system will destroy itself immediately for all sorts of reasons, including incredibly trivial errors.
I firmly believe that closely integrating the raw ML internals with the user experience will yield tremendous rewards.
The coding experience, with the stack trace debug experience loop (get stacktrace -> google -> stackoverflow.com -> try a new thing) could be vastly improved, and be made to be like an Akinator session .
How about having the IDE's console output be integrated in ML pipelines? You would have boxes with questions and suggestions like:
* Please select the words in the console output that are not supposed to happen.
* Is you current goal related to the following tag: a) library_upgrade, b) first_time_library_addition, c) <tag search box>
* Please describe with tags and words the context you are in.
* Go read this stackoverflow page. Did it help?
* I see you have been doing x and y, and getting these errors. Would you be interested in this tutorial?
* Last week you had this problem. It is resolved? What things (urls, boxes I presented you, etc) did it?
* Here is another context: eclipse, java, email, library_upgrade, ConcurrentModificationException. Are you having the same issues?
* Here are statistics about people being in the same context are you are in. Here is also the top remark they have said about it.
* Here is a decision tree node your context is currently in. Here are all the child nodes (lets you explore the tree without tainting your current context)
* Would you like to do some semi-supervised clustering for trying to tie your current context to other contexts?
And then have the dataset be openly accessible, with third party being able to provide boxes, and publicly emit new features, and all boxes being rateable.
With it implementing the base stackoverflow feedback loop, it would yield a user experience superior or equal to it.
Related FAQ [PDF]: http://www.darpa.mil/attachments/XAIFAQ8-26.pdf
The contact listed in the document (http://www.darpa.mil/staff/mr-david-gunning) used to work for PARC and ran the PAL (Siri) program.
Mr. Wade Shen (Program Manager – interests: machine learning)
Dr. William Regli (Defense Sciences Office (DSO), Deputy Director – interests: artificial intelligence, robotics)
Dr. Reza Ghanadan (Defense Sciences Office (DSO), Program Manager – interests: data analytics, autonomy, machine learning and artificial intelligence in information and cyber-physical systems)
Dr. Paul Cohen (Information Innovation Office (I2O), Program Manager - interests: artificial intelligence, machine learning)
Most of them can be found on linkedin.
So this produces not so much an explanation as "hints" as to why the system made the decision (still pretty useful). The BAA also mentions another possible direction (), which is actually capable of making full-sentence explanations. For instance, it can explain the decisions of an image-to-wild-bird-name classifier with sentences like "This is a Laysan Albatross because this bird has a large wingspan, hooked yellow beak, and white belly”.
This sounds pretty impressive, but seems to depend on vocabulary provided by a user. As a result, in some cases the explanation provided may have nothing to do with how the classifier actually classified - see  for my interpretation of these issues and how they might perhaps be solved.
But still, the results are very difficult to interpret. Yes you can verify that the equation works, that it predicts the data. But why does it work? Well who knows? No one can answer that. Understanding even simple math expressions can be quite difficult. Imagine trying to learn physics from just reading the math equations involved and nothing else.
One biologist put his data into the program, and found, to his surprise, that it found a simple expression that almost perfectly explained one of the variables he was interested in. But he couldn't publish his result, because he couldn't understand it himself. You can't just publish a random equation with no explanation. What use is that?
I think the best method of understanding our models, is not going to come from making simpler models that we can compute by hand. Instead I think we should take advantage of our own neural networks. Try to train humans to predict what inputs, particularly in images, will activate a node in a neural network. We will learn that function ourselves, and then it's purpose will make sense to us. Just looking at the gradients of the input conveys a huge amount of information of which inout features are the most and least important. And by about how much.
But mostly I think the effort towards explainability is fundamentally misguided. In the domains where they are supposedly the most desirable, like medicine, accuracy should matter above all. A less accurate model could cost lives. Accuracy is easy to verify through cross validation, but explainability is a mysterious unmeasurable goal.
Also, science is unfortunately full of magic numbers - but it is pretty amazing when you feed in pendulum motion data and the resulting equation ends up being Newton's second law: http://phys.org/news/2009-12-eureqa-robot-scientist-video.ht...
Do you think people should stop working on it?
Most interesting things seem difficult to measure, until someone finds a way, and then it seems obvious. An example is search engine quality. At first this might seem too subjective to be measurable. But Google started measuring search quality using a panel of humans, and now everybody does that.
The whole idea of these challenges is to broaden the search, to hope for key insights that by their nature seem elusive at first.
The problem with unexplainable AI isn't just the lack of explanations. It's the fact that the entire model is a black box, so you cannot somehow tweak a single part of it without retraining.
Anyone else thinking this mirrors their own experimental work?
Anyone else thinking of putting in an abstract?
Abstract Due Date: September 1, 2016, 12:00 noon (ET)
Proposal Due Date: November 1, 2016, 12:00 noon (ET)
Every child will tell you that cars have eyes, and even a crow could track the direction of your gaze.
Well, I would also give away some govt. printed money to know how to make this kind of a jump from raw pixels to high-level shapes.)
The answer, by the way, is that the code (which is data) should be evolved too, not just weights of a model. This is an old fundamental idea from the glorious times of using Lisp as AI language - everything in the brain is a structure made out of conses^W neurons.
And feature extraction and heuristics should be "guided". In the process of evolution it is guided by way too many iterations of training and random selection of emerging features. Eventually a short-cut "creatures have eyes" will be found and selected as much more efficient. We need just a few millions of years or so of brute forcing.
Hey, Darpa, do you fund lone gunmen?)
I wrote about this in , but I am not a machine-learning expert (I am coming from the verification side), so would love to hear comments from other people.
JL Borges, The Library of Babel