# PyTorch Implementation of Deep SVDD
This repository provides a [PyTorch](https://pytorch.org/) implementation of the *Deep SVDD* method presented in our
ICML 2018 paper ”Deep One-Class Classification”.
## Citation and Contact
You find a PDF of the Deep One-Class Classification ICML 2018 paper at
[http://proceedings.mlr.press/v80/ruff18a.html](http://proceedings.mlr.press/v80/ruff18a.html).
If you use our work, please also cite the paper:
```
@InProceedings{pmlr-v80-ruff18a,
title = {Deep One-Class Classification},
author = {Ruff, Lukas and Vandermeulen, Robert A. and G{\"o}rnitz, Nico and Deecke, Lucas and Siddiqui, Shoaib A. and Binder, Alexander and M{\"u}ller, Emmanuel and Kloft, Marius},
booktitle = {Proceedings of the 35th International Conference on Machine Learning},
pages = {4393--4402},
year = {2018},
volume = {80},
}
```
If you would like to get in touch, please contact [contact@lukasruff.com](mailto:contact@lukasruff.com).
## Abstract
> > Despite the great advances made by deep learning in many machine learning problems, there is a relative dearth of
> > deep learning approaches for anomaly detection. Those approaches which do exist involve networks trained to perform
> > a task other than anomaly detection, namely generative models or compression, which are in turn adapted for use in
> > anomaly detection; they are not trained on an anomaly detection based objective. In this paper we introduce a new
> > anomaly detection method—Deep Support Vector Data Description—, which is trained on an anomaly detection based
> > objective. The adaptation to the deep regime necessitates that our neural network and training procedure satisfy
> > certain properties, which we demonstrate theoretically. We show the effectiveness of our method on MNIST and
> > CIFAR-10 image benchmark datasets as well as on the detection of adversarial examples of GTSRB stop signs.
## Installation
This code is written in `Python 3.7` and requires the packages listed in `requirements.txt`.
Clone the repository to your local machine and directory of choice:
```
git clone https://github.com/lukasruff/Deep-SVDD-PyTorch.git
```
To run the code, we recommend setting up a virtual environment, e.g. using `virtualenv` or `conda`:
### `virtualenv`
```
# pip install virtualenv
cd <path-to-Deep-SVDD-PyTorch-directory>
virtualenv myenv
source myenv/bin/activate
pip install -r requirements.txt
```
### `conda`
```
cd <path-to-Deep-SVDD-PyTorch-directory>
conda create --name myenv
source activate myenv
while read requirement; do conda install -n myenv --yes $requirement; done < requirements.txt
```
## Running experiments
We currently have implemented the MNIST ([http://yann.lecun.com/exdb/mnist/](http://yann.lecun.com/exdb/mnist/)) and
CIFAR-10 ([https://www.cs.toronto.edu/~kriz/cifar.html](https://www.cs.toronto.edu/~kriz/cifar.html)) datasets and
simple LeNet-type networks.
Have a look into `main.py` for all possible arguments and options.
### MNIST example
```
cd <path-to-Deep-SVDD-PyTorch-directory>
# activate virtual environment
source myenv/bin/activate # or 'source activate myenv' for conda
# create folder for experimental output
mkdir log/mnist_test
# change to source directory
cd src
# run experiment
python main.py mnist mnist_LeNet ../log/mnist_test ../data --objective one-class --lr 0.0001 --n_epochs 150 --lr_milestone 50 --batch_size 200 --weight_decay 0.5e-6 --pretrain True --ae_lr 0.0001 --ae_n_epochs 150 --ae_lr_milestone 50 --ae_batch_size 200 --ae_weight_decay 0.5e-3 --normal_class 3;
```
This example trains a One-Class Deep SVDD model where digit 3 (`--normal_class 3`) is considered to be the normal class. Autoencoder
pretraining is used for parameter initialization.
### CIFAR-10 example
```
cd <path-to-Deep-SVDD-PyTorch-directory>
# activate virtual environment
source myenv/bin/activate # or 'source activate myenv' for conda
# create folder for experimental output
mkdir log/cifar10_test
# change to source directory
cd src
# run experiment
python main.py cifar10 cifar10_LeNet ../log/cifar10_test ../data --objective one-class --lr 0.0001 --n_epochs 150 --lr_milestone 50 --batch_size 200 --weight_decay 0.5e-6 --pretrain True --ae_lr 0.0001 --ae_n_epochs 350 --ae_lr_milestone 250 --ae_batch_size 200 --ae_weight_decay 0.5e-6 --normal_class 3;
```
This example trains a One-Class Deep SVDD model where cats (`--normal_class 3`) is considered to be the normal class.
Autoencoder pretraining is used for parameter initialization.
## Examples
### MNIST
Example of the 32 most normal (left) and 32 most anomalous (right) test set examples per class on MNIST according to
Deep SVDD anomaly scores.
![MNIST](imgs/mnist.png?raw=true "MNIST")
### CIFAR-10
Example of the 32 most normal (left) and 32 most anomalous (right) test set examples per class on CIFAR-10 according to
Deep SVDD anomaly scores.
![CIFAR-10](imgs/cifar10.png?raw=true "CIFAR-10")
## License
MIT
没有合适的资源?快使用搜索试试~ 我知道了~
Deep-SVDD-PyTorch:Deep SVDD异常检测方法的PyTorch实现
共34个文件
py:25个
gitkeep:3个
png:2个
需积分: 50 35 下载量 51 浏览量
2021-05-04
23:28:41
上传
评论 3
收藏 2.12MB ZIP 举报
温馨提示
深度SVDD的PyTorch实现 该存储库提供了我们的ICML 2018论文“深度一类分类”中介绍的Deep SVDD方法的实现。 引用与联系 您可以在找到《深层一类分类ICML 2018》论文的PDF。 如果您使用我们的作品,也请引用以下文章: @InProceedings{pmlr-v80-ruff18a, title = {Deep One-Class Classification}, author = {Ruff, Lukas and Vandermeulen, Robert A. and G{\"o}rnitz, Nico and Deecke, Lucas and Siddiqui, Shoaib A. and Binder, Alexander and M{\"u}ller, Emmanuel and Kloft, Marius}, bookti
资源推荐
资源详情
资源评论
收起资源包目录
Deep-SVDD-PyTorch-master.zip (34个子文件)
Deep-SVDD-PyTorch-master
.gitignore 1KB
requirements.txt 358B
data
.gitkeep 0B
src
datasets
preprocessing.py 1KB
__init__.py 101B
mnist.py 3KB
cifar10.py 3KB
main.py 515B
__init__.py 0B
networks
mnist_LeNet.py 2KB
__init__.py 261B
main.py 1KB
cifar10_LeNet.py 4KB
cifar10_LeNet_elu.py 3KB
optim
__init__.py 80B
ae_trainer.py 4KB
deepSVDD_trainer.py 7KB
utils
__init__.py 27B
visualization
plot_images_grid.py 781B
config.py 659B
collect_results.py 1KB
deepSVDD.py 6KB
base
base_net.py 783B
__init__.py 115B
base_trainer.py 1KB
base_dataset.py 1006B
torchvision_dataset.py 790B
main.py 10KB
log
.gitkeep 0B
LICENSE 1KB
README.md 5KB
imgs
.gitkeep 0B
cifar10.png 1.8MB
mnist.png 340KB
共 34 条
- 1
资源评论
梦小露
- 粉丝: 20
- 资源: 4640
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功