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 h2openalized GLM (R and Python)- Monotonic gradient boosting machine (GBM):
h2oandxgboost(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
$ pythonat 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_profilefile. 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.6is not a real path. You must replace it with the path topython3.6on 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
$ pythonat 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.
