  Deep machine unlearning is the problem of `removing' from a trained neural
network a subset of its training set. This problem is very timely and has many
applications, including the key tasks of removing biases (RB), resolving
confusion (RC) (caused by mislabelled data in trained models), as well as
allowing users to exercise their `right to be forgotten' to protect User
Privacy (UP). This paper is the first, to our knowledge, to study unlearning
for different applications (RB, RC, UP), with the view that each has its own
desiderata, definitions for `forgetting' and associated metrics for forget
quality. For UP, we propose a novel adaptation of a strong Membership Inference
Attack for unlearning. We also propose SCRUB, a novel unlearning algorithm,
which is the only method that is consistently a top performer for forget
quality across the different application-dependent metrics for RB, RC, and UP.
At the same time, SCRUB is also consistently a top performer on metrics that
measure model utility (i.e. accuracy on retained data and generalization), and
is more efficient than previous work. The above are substantiated through a
comprehensive empirical evaluation against previous state-of-the-art.
