Skip to content
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

Ph add errors #8

Closed
wants to merge 37 commits into from
Closed

Ph add errors #8

wants to merge 37 commits into from

Conversation

jphall663
Copy link
Owner

@jphall663 jphall663 commented Mar 8, 2019

New plan off attack on model debugging ...

Sensitivity Analysis:

  • Random attacks (very important actually, even though they drive me insane)
  • PDP:
  • -- w/ out of range values
  • -- w/ missing values
  • -- w/ ICE at deciles of yhat
  • -- w/ residual of PD
  • -- ALWAYS w/ histogram so you can see where data supports predictions
  • Adversarial examples:
  • -- What can change high residual points to low residual points (and vice versa)
  • -- What can change incorrectly classified points to correctly classified point (and vice versa)
  • -- record non-nonsensical features and combinations that cause problems as non-robust
  • -- train model on wrongly classified points (high-noise training set) and look for important features; score on low-noise training data and conduct activation analysis to find non-robust features

https://github.com/jphall663/interpretable_machine_learning_with_python/blob/ph_add_errors/debugging_sens_analysis_redux.ipynb

Residual Analysis:

  • Always report more than one error metric
  • Analyze w.r.t. trusted benchmark model (similarity matrix?)
  • Plots of residual vs. prediction
  • Plots of residual vs. target and top-k important inputs, by level if categorical
  • Explanation of residual: DT surrogate (trained on right/wrong), LIME (trained on right/wrong), Shap, LOCO of residual (global and local)
  • Use explanation of residuals: DT surrogate, LIME, Shap, LOCO of residual (global and local) to automatically build tests/assertions/adversaries.
  • Plots of Shap/LOCO vs. residual

https://github.com/jphall663/interpretable_machine_learning_with_python/blob/ph_add_errors/debugging_resid_analysis_redux.ipynb

For each bullet above, try to discuss in terms of:

  • accuracy
  • disparate impact
  • privacy/security

Potentially remove: https://github.com/jphall663/interpretable_machine_learning_with_python/blob/ph_add_errors/pdp_dt_surr_res_shap_loss.ipynb

Self-Healing

  • Use discovered assertions in training to prevent error states
  • Use adversarial examples to find non-robust (non-nonsensical? use explanation to decide) features or interactions that are correlated to the target and remove, or prevent these interactions from being modeled.
  • Boosting of surrogate prediction model from the underlying oracle model to the point where they are as accurate as the oracle ("Dagger").
  • Different models on robust and non-robust features and give lower weight to non-robust features model in ensemble.

@jphall663
Copy link
Owner Author

The advanced sensitivity and residual analysis notebook were merged into master in an extremely silly way, i.e. by downloading them from the branch associated with this PR and then checking out master and copying the files there. Sorry!

Good drafts for both are now done, so closing.

@jphall663 jphall663 closed this Aug 22, 2019
@jphall663 jphall663 deleted the ph_add_errors branch January 2, 2020 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant