Deep-SVDD-PyTorch
Deep-SVDD-PyTorch 是一个基于 PyTorch 框架开源实现的异常检测工具,核心算法为“深度支持向量数据描述”(Deep SVDD)。它主要解决了传统深度学习方法在异常检测领域的痛点:以往的方法往往借用生成模型或压缩任务进行间接训练,缺乏直接针对异常检测目标优化的机制。Deep-SVDD 通过构建专门的神经网络和训练流程,直接将正常样本映射到特征空间中的最小超球体内,从而高效识别偏离该区域的异常数据。
该工具的独特技术亮点在于其理论驱动的架构设计,确保了网络在深度化过程中仍能满足异常检测的数学特性,并支持使用自编码器进行参数预训练以提升效果。项目复现了 ICML 2018 获奖论文《Deep One-Class Classification》的核心成果,并在 MNIST、CIFAR-10 等经典图像数据集及对抗样本检测中验证了其有效性。
Deep-SVDD-PyTorch 非常适合人工智能研究人员、算法工程师以及需要处理工业缺陷检测、网络安全监控等场景的开发者使用。对于希望深入理解单分类学习原理或快速搭建高精度异常检测基线模型的团队来说,这是一个结构清晰、易于扩展的实验平台。用户只需配置好 Python 环境,即可利用提供的脚本轻松复现论文实验或适配自有数据集。
使用场景
某工业质检团队正在利用摄像头监控生产线上的精密零件,试图从海量正常产品图像中自动识别出罕见的缺陷品。
没有 Deep-SVDD-PyTorch 时
- 样本依赖困境:传统监督学习需要大量标注好的“缺陷样本”才能训练,但实际生产中次品率极低,难以收集足够数据构建平衡数据集。
- 泛化能力不足:若强行使用生成模型或压缩算法间接进行异常检测,模型往往专注于重构图像而非学习正常特征边界,导致对新型未知缺陷漏报率高。
- 误报成本高昂:由于缺乏针对异常检测优化的目标函数,模型容易将正常产品的细微差异(如光照变化)误判为缺陷,造成大量不必要的停机复检。
使用 Deep-SVDD-PyTorch 后
- 单类训练突破:仅需使用正常的零件图像(如 MNIST 中的数字"3")作为输入,Deep-SVDD-PyTorch 即可通过最小化特征空间体积,让模型牢牢记住“什么是正常的”。
- 精准边界界定:基于深度支持向量数据描述原理,该工具直接优化异常检测目标,能在高维特征空间中紧密包裹正常数据,对偏离中心的未知缺陷极其敏感。
- 降低运维干扰:显著减少因正常波动引发的误报警,让质检系统只关注真正的异常情况,大幅提升了生产线的自动化流转效率。
Deep-SVDD-PyTorch 的核心价值在于它打破了异常检测对负样本的依赖,让 AI 仅凭“见过的好东西”就能敏锐地揪出任何“不对劲”。
运行环境要求
- 未说明
未说明
未说明

快速开始
Deep SVDD 的 PyTorch 实现
本仓库提供了我们在 ICML 2018 论文《Deep One-Class Classification》中提出的 Deep SVDD 方法的 PyTorch 实现。
引用与联系信息
您可以在以下链接找到 ICML 2018 论文《Deep One-Class Classification》的 PDF 版本: http://proceedings.mlr.press/v80/ruff18a.html。
如果您使用了我们的工作,请同时引用该论文:
@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},
}
如需联系,欢迎发送邮件至 contact@lukasruff.com。
摘要
尽管深度学习在许多机器学习任务中取得了巨大进展,但在异常检测领域,基于深度学习的方法仍然相对匮乏。现有的方法通常依赖于经过训练以执行其他任务(如生成模型或压缩)的网络,并将其调整用于异常检测;这些方法并未直接针对异常检测目标进行训练。在本文中,我们提出了一种新的异常检测方法——Deep Support Vector Data Description——它直接基于异常检测目标进行训练。为了适应深度学习框架,我们的神经网络和训练过程必须满足某些特定性质,我们从理论上证明了这些性质。我们在 MNIST 和 CIFAR-10 图像基准数据集上,以及在检测 GTSRB 停车标志的对抗样本时,展示了该方法的有效性。
安装
此代码使用 Python 3.7 编写,并需要 requirements.txt 文件中列出的软件包。
将仓库克隆到您的本地机器和选定目录:
git clone https://github.com/lukasruff/Deep-SVDD-PyTorch.git
为运行代码,我们建议设置一个虚拟环境,例如使用 virtualenv 或 conda:
virtualenv
# 安装 virtualenv
pip install virtualenv
cd <Deep-SVDD-PyTorch 仓库路径>
virtualenv myenv
source myenv/bin/activate
pip install -r requirements.txt
conda
cd <Deep-SVDD-PyTorch 仓库路径>
conda create --name myenv
source activate myenv
while read requirement; do conda install -n myenv --yes $requirement; done < requirements.txt
运行实验
我们目前已实现了 MNIST(http://yann.lecun.com/exdb/mnist/)和 CIFAR-10(https://www.cs.toronto.edu/~kriz/cifar.html)数据集,以及简单的 LeNet 类型网络。
请查看 main.py 文件,了解所有可能的参数和选项。
MNIST 示例
cd <Deep-SVDD-PyTorch 仓库路径>
# 激活虚拟环境
source myenv/bin/activate # 或者使用 conda 的 'source activate myenv'
# 创建实验输出文件夹
mkdir log/mnist_test
# 切换到源代码目录
cd src
# 运行实验
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;
此示例训练了一个单类 Deep SVDD 模型,其中数字 3 (--normal_class 3) 被视为正常类别。使用自编码器预训练来初始化参数。
CIFAR-10 示例
cd <Deep-SVDD-PyTorch 仓库路径>
# 激活虚拟环境
source myenv/bin/activate # 或者使用 conda 的 'source activate myenv'
# 创建实验输出文件夹
mkdir log/cifar10_test
# 切换到源代码目录
cd src
# 运行实验
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;
此示例训练了一个单类 Deep SVDD 模型,其中猫 (--normal_class 3) 被视为正常类别。同样使用自编码器预训练来初始化参数。
示例
MNIST
根据 Deep SVDD 的异常分数,MNIST 数据集中每个类别的 32 个最正常(左)和 32 个最异常(右)测试样本示例。

CIFAR-10
根据 Deep SVDD 的异常分数,CIFAR-10 数据集中每个类别的 32 个最正常(左)和 32 个最异常(右)测试样本示例。

许可证
MIT
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器