-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Suggestion - Make Machine Learning Models explainable by design with ML.NET #511
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
This issue is for ML.NET keeping an audit of decisions, evaluating bias/fairness and scores given by ML.NET The following related issues raise some of the points I've highlighted but not all... |
@rogancarr can you please look into this issue. |
Hi @tauheedul , Thanks for the suggestions. There are a lot of great ideas in here. Let me try to decompose them into specific issues.
For classification, we have probabilistic classifiers that already satisfy this need (e.g.
Ask: Add metadata to the model with bias and fairness metrics for the training dataset. This is helpful for analysis when developing the model, but the bias in the training data doesn't always translate evenly to the bias and fairness of the models themselves, so what we probably actually want is: And of course, we probably also want the usual set of evaluation metrics as well: And implicit in the discussion is this idea that people are handing off models to each other, so we may want a way of signing a model to guarantee that the metadata and model parameters haven't been modified.
Ask: Allow VS to pull out metadata on the model and display it during editing. (Attached to #1915)
Ask: Allow runtime logging and auditing. I think this is a great set of feature requests for both debugging purposes, explainability, and the bigger concepts of bias, fairness, accountability, and transparency in ML. I'll file separate issues on each of these. |
@tauheedul Do these issues represent what you have proposed, or have I missed anything? |
Hello @rogancarr thank you for building these into actionable work items. These cover them perfectly for Classical Machine Learning models. From the perspective of a Deep Learning model e.g. a TensorFlow or ONNX model, would it be possible to peek into the neural network nodes? (not only a high-level feature importance score but peek into what each node is doing e.g. you can view feature importance at each node level) In the Visual Studio IDE we could have a Model with a tree of neurons (maybe thousands)... each neuron can be expanded and the evaluation of what each node is doing can be inspected. This can open up the opportunity to allow developers to create custom graphing for visual feedback and monitor the progression of a decision in real-time. It allows you to trace which neurons are fired in any given execution of the model and how a given set of data impacted the score and at what stage it changed. Michał Łopuszyński - Data Scientist, University of Warsaw has built up a list of excellent resources covering these topics |
@tauheedul Thanks for the great feedback on this. I'm passing your comments on visualization to @rustd for ModelBuilder. I'll close this issue now. Feel free to re-open if you want to discuss more. |
Hi @rogancarr @rustd I have created a new issue for the visualization suggestions in #2879 |
It's often difficult to understand how Machine Learning applications come to a decision. Some Developers reuse model samples without knowing how it works and is considered a black box to many.
This is an opportunity for ML.NET to stand out and automatically make models explainable.
A framework that automatically keeps a self-audit of decisions would be way ahead of the rest and could help developers understand what the model is doing under the hood. Especially if they are relying on models supplied by third parties.
This could boost the development of ML using ML.NET and is exactly the kind of thing that made .NET such an easy framework to work with.
The text was updated successfully, but these errors were encountered: