Materials for a technical, nuts-and-bolts course about increasing transparency, fairness, security and privacy in machine learning.
- Lecture 1: Self-explainable Machine Learning Models
- Lecture 2: Post-hoc Explanation
- Lecture 3: Discrimination Testing and Remediation
- Lecture 4: Machine Learning Security
- Lecture 5: Machine Learning Model Debugging
- Lecture 6: Responsible Machine Learning Best Practices
Corrections or suggestions? Please file a GitHub issue.
Source: Simple Explainable Boosting Machine Example
- Syllabus
- Lecture Notes
- Assignment 1
- Software Examples:
- Python PiML-Toolbox
- Python explainable boosting machine (EBM)/GA2M
- R
gam
h2o
penalized GLM (R and Python)- Monotonic gradient boosting machine (GBM):
h2o
andxgboost
(R and Python) - R
rpart
- Python
skope-rules
-
Introduction and Background:
- Designing Inherently Interpretable Machine Learning Models
- Psychological Foundations of Explainability and Interpretability in Artificial Intelligence
- Responsible Artificial Intelligence - Sections 2.1-2.5, Chapter 7
- Stop Explaining Black Box Machine Learning Models for High Stakes Decisions and Use Interpretable Models Instead
-
Self-explainaing Machine Learning Techniques:
- Interpretable Machine Learning - Chapter 5
- Accurate Intelligible Models with Pairwise Interactions
- This Looks Like That: Deep Learning for Interpretable Image Recognition
Source: Global and Local Explanations of a Constrained Model
- Lecture Notes
- Software Examples:
- Assignment 2
- Python:
- R:
-
Introduction and Background:
-
Post-hoc Explanation Techniques:
- Interpretable Machine Learning - Chapter 6 and Chapter 7
- Towards Better Understanding of Gradient-based Attribution Methods for Deep Neural Networks
Source: Lecture 3 Notes
- Lecture Notes
- Software Example: Testing a Constrained Model for Discrimination and Remediating Discovered Discrimination
- Assignment 3
Python:
-
Introduction and Background:
- Fairness and Machine Learning - Introduction
- NIST SP1270: Towards a Standard for Identifying and Managing Bias in Artificial Intelligence
- Fairness Through Awareness
-
Discrimination Testing and Remediation Techniques:
- Certifying and Removing Disparate Impact
- Data Preprocessing Techniques for Classification Without Discrimination
- Decision Theory for Discrimination-aware Classification
- Fairness Beyond Disparate Treatment & Disparate Impact: Learning Classification Without Disparate Mistreatment
- Learning Fair Representations
- Mitigating Unwanted Biases with Adversarial Learning
Source: Responsible Machine Learning
- Lecture Notes
- Software Example: Attacking a Machine Learning Model
- Assignment 4
Python:
-
Introduction and Background:
-
Machine Learning Attacks:
- Membership Inference Attacks Against Machine Learning Models
- Stealing Machine Learning Models via Prediction APIs
- Model Inversion Attacks that Exploit Confidence Information and Basic Countermeasures
- Hacking Smart Machines with Smarter Ones: How to Extract Meaningful Data from Machine Learning Classifiers
-
Links from Lecture 4:
Source: Real-World Strategies for Model Debugging
- Lecture Notes
- Software Example: Debugging a Machine Learning Model
- Assignment 5
DALEX
(R)SALib
(Python)themis-ml
(Python)What-if Tool
(Browser)
-
Introduction and Background:
-
Links from Lecture 5:
A Responsible Machine Learning Workflow Diagram. Source: Information, 11(3) (March 2020).
-
Introduction and Background:
-
Links from Lecture 6:
Preliminaries:
-
Install
homebrew
:$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
-
Install Java:
brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8
-
Install Graphviz:
$ brew install graphviz
-
Install Git:
$ brew install git
-
Clone this repository with the examples:
$ git clone https://github.com/jphall663/GWU_rml.git
-
Install Anaconda Python 5.1.0 from the Anaconda archives (Anaconda3-5.1.0-MacOSX-x86_64.pkg) and add it to your system path. (This means when you type
$ python
at the command prompt, you will start a Python 3.6 session. You should probably check for a line like thisexport PATH="/Users/phall/anaconda/bin:$PATH"
in your.bash_profile
file. You may also need to close and restart your terminal session.) -
Install
virtualenv
:$ pip install virtualenv
-
Change directories into the cloned repository:
$ cd GWU_rml
-
Create a Python 3.6 virtual environment:
$ virtualenv -p /path/to/anaconda3/bin/python3.6 env_rml
(/path/to/anaconda3/bin/python3.6
is not a real path. You must replace it with the path topython3.6
on your system. This can be as simple as$ virtualenv -p python3.6 env_rml
.) -
Activate the virtual environment:
$ source env_rml/bin/activate
-
Install the correct packages for the example notebooks:
$ pip install -r requirements.txt
-
Start Jupyter:
$ jupyter notebook
-
When you are finished, deactivate the environment:
$ deactivate
If you get stuck, try this link: Mac Setup: Virtualenv.
-
Install Git (
$ sudo apt-get install git
), Graphviz ($ sudo apt-get install graphviz
) and Java ($ sudo apt-get install openjdk-8-jdk
). They must all be added to your system path. -
Clone this repository with the examples:
$ git clone https://github.com/jphall663/GWU_rml.git
-
Install Anaconda Python 5.1.0 from the Anaconda archives (Anaconda3-5.1.0-Linux-x86_64.sh) and add it to your system path. (This means when you type
$ python
at the command prompt, you will start a Python 3.6 session.) -
Install
virtualenv
:$ pip install virtualenv
-
Change directories into the cloned repository:
$ cd GWU_rml
-
Create a Python 3.6 virtual environment:
$ virtualenv -p /path/to/anaconda3/bin/python3.6 env_rml
-
Activate the virtual environment:
$ source env_rml/bin/activate
-
Install the correct packages for the example notebooks:
$ pip install -r requirements.txt
-
Start Jupyter:
$ jupyter notebook
-
When you are finished, deactivate the environment:
$ deactivate
.
Some materials Copyright Patrick Hall and the H2O.ai team 2017-2020.