业务数据全用上也喂不饱AI?试试这个小样本学习工具包

项目作者|王雅晴
量子位编辑|公众号QbitAI
引言
机器学习在数据密集型的应用中取得了极佳的效果 , 但在数据集很小的场景下 , 多数机器学习算法的效果会严重受限[1] 。 在计算机视觉、自然语言处理等大领域下 , 从深度学习最初大放异彩的图像分类、文本分类 , 到进一步的图像生成、文本关系预测 , 机器学习算法取得的成就大多建立在大量数据驱动的训练算法之上 。 然而 , 高质量的标注数据在大多数领域都是很难获得的 , 这限制了诸多机器学习算法在相应场景下的应用能力 。
在这样的背景下 , 小样本学习(FewShotLearning,FSL)的提出将解决数据集规模严重受限条件下的机器学习应用问题 。 小样本学习方法可以在利用先验知识的前提下 , 仅由极少量受监督的样本 , 使模型通过极少步的更新快速提升泛化性能 , 以应用在新的相关任务上[1] 。 近年来 , 小样本学习已经应用于计算机视觉、自然语言处理、人机交互、知识图谱乃至生物计算等领域的诸多应用中 。
小样本学习的研究者在编码实践过程中通常会面临原型实现和方法复现两方面的问题[2] 。 为了方便飞桨开发者和使用飞桨的科研人员方便地执行以下操作:
业务数据全用上也喂不饱AI?试试这个小样本学习工具包】在深度学习模型上应用经典的小样本学习方法 , 或使用经典小样本数据集测试模型与方法
设计新的小样本学习方法 , 或构建新的小样本数据集
比对各种小样本学习方法在多种数据集上的效果
我们开发了PaddleFSL(PaddletoolkitforFewShotLearning):基于飞桨的小样本学习工具包 , 旨在降低小样本学习研究和应用的设计与时间成本 。 PaddleFSL提供了低层次的工具函数与接口 , 以供使用者设计新的小样本学习方法或构建新的小样本学习数据集 , 同时也提供了经典小样本学习方法的高层次实现 , 以及经典的小样本数据集 。
项目链接:
https://github.com/tata1661/FSL-Mate/tree/master/PaddleFSL
框架概览
PaddleFSL完整项目包含了以下几个部分:
样例(examples):
项目中高层次小样本算法接口的使用样例
包主体(paddlefsl):
python包的主体
paddlefsl.backbones:
诸如MLP、卷积网络、ResNet等基准模型
paddlefsl.datasets:
小样本数据集构建接口 , 以及诸多经典的小样本数据集的预处理实现
paddlefsl.model_zoo:
高层次经典小样本方法实现
paddlefsl.task_sampler:
任务集的划分:将训练和测试数据划分为Nways,Kshots以及Qquerypoints
paddlefsl.utils:
与环境、输入输出或模型参数有关的工具函数
数据文件(raw_data):
存放原始数据文件的目录 , 附各个经典小样本数据集的介绍与下载地址
测试(test):
包主体每一函数和类的单元测试 , 同时也是使用样例文件
业务数据全用上也喂不饱AI?试试这个小样本学习工具包
文章图片
此外 , 在包主体的每一个外部接口处 , 我们都提供了翔实的注释 , 包括了模块的功能、参数的功能和使用样例 。
在接下来的几个章节中 , 我们将从数据集加载到训练完成 , 逐项介绍PaddleFSL的功能及其使用方法 。
安装与测试
本项目依赖飞桨开源框架v2.0或更新的版本 , 需要提前前往飞桨官网安装 。
本项目在github开源 , 可以直接克隆github项目 , 配置环境变量后直接使用:
业务数据全用上也喂不饱AI?试试这个小样本学习工具包
文章图片
本项目也同时在pypi发布 , 可以通过更便捷的pip安装包主体(paddlefsl) , 但这种方式不包含样例(examples)、数据文件(raw_data)与测试文件(test):