网站制作规划设计内容,北京常见网站建设推荐,冷链物流网站,如何做漂亮的网站首页目录
1 计算机视觉少样本学习
2 元学习
3 寻找最优初始参数值方法#xff1a;MAML
3.1 算法步骤
3.2 代码#xff1a;使用MAML 和 FO-MAML、任务增强完成Few-shot Classification
4 距离度量方法#xff1a;Siamese Network,ProtoNet,RN
4.1 孪生网络#xff08;Sia…目录
1 计算机视觉少样本学习
2 元学习
3 寻找最优初始参数值方法MAML
3.1 算法步骤
3.2 代码使用MAML 和 FO-MAML、任务增强完成Few-shot Classification
4 距离度量方法Siamese Network,ProtoNet,RN
4.1 孪生网络Siamese Network
算法步骤
Siamese Network代码
4.2 原型网络Prototypical Networks
算法步骤
ProtoNet代码
4.3 关系网络Relation Network
算法步骤
RN代码
5 其他应用于少样本学习的方法
6 参考资料 今天为大家总结元学习解决计算机视觉领域问题的方法先介绍少样本学习和元学习的概念然后介绍寻找最优初始参数值和距离度量方法的原理和代码希望大家看完文章后可以动手实践以便解决现实问题。
1 计算机视觉少样本学习
在工业领域解决计算机视觉问题例如质检相关工作通常会遇到样本少的情形。这时候就需要采用少样本学习方法。
少样本学习few-shot leaming或 k 样本学习(k-shot learning)指的是利用较少的数据点进行学习k表示数据集各个类别中数据点的数量。 2 元学习
元学习是学习如何学习这样设计的模型能够快速适应新任务特别是那些从未见过的新任务。
元学习可以通过较少的标记数据完成通过学习任务之间的相似性不是单独学习每个任务。
元学习能够学习到任务之间的共享知识具备更好的泛化能力。元学习模型在处理新任务时能够利用已经学习到的知识而无需从头开始。 元学习的学习过程和框架如下图所示 图片来源https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/meta_v3.pdf
感谢台湾大学李宏毅教授大家可以查看李宏毅教授的讲解 第十五节 2021 - 元学习 Meta Learning (一) - 元学习和机器学习一样也是三個步骤_哔哩哔哩_bilibili我就不重复了。
方法学习目标优点典型代表适用场景学习最优初始参数值通过在多个任务上进行训练学习到一个初始参数设置这个参数设置可以在新任务上通过少量的梯度更新进行快速适应MAML可以与任何模型一起使用只要该模型的参数可以通过梯度下降进行更新 MAML(Model-Agnostic Meta-Learning) Meta-SGD Reptile 少样本学习 强化学习 基于优化学习一个优化器该优化器可以快速适应新任务直接学习到从损失函数到模型更新的映射从而在新任务上实现快速适应 Optimization as a Model for Few-Shot Learning Learning to Learn by Gradient Descent by Gradient Descent 少样本学习基于度量学习距离度量该度量可以用于比较新任务中的样本利用所有的支持集样本来对查询集样本进行分类从而在新任务上实现快速适应 Siamese neural network Relation Network ProtoNet(Prototypical Networks) 图像分类和对象识别基于模型 学习一个模型该模型可以预测新任务的输出 可以存储和检索过去的经验从而在新任务上实现快速适应 Memory-Augmented Neural Networks 少样本学习 序列预测 强化学习 学习网络结构学习一个网络结构该网络结构可以在新任务上实现最优性能自动搜索最优的网络结构避免人工设计网络结构的复杂性Neural Architecture Search自动机器学习AutoML 李宏毅老师也总结了元学习的应用场景 图片来源http://speech.ee.ntu.edu.tw/~tlkagk/meta_learning_table.pdf
3 寻找最优初始参数值方法MAML
MAML试图找到一组模型参数这组参数能够通过少量的梯度更新步骤快速适应新的任务。
3.1 算法步骤 首先对于每个任务从模型的参数开始并计算出损失函数。然后使用梯度下降法更新模型的参数以最小化损失函数。在所有任务上重复这个过程几次这被称为内部循环。然后计算出在所有任务上的平均损失并使用这个损失来更新模型的参数这被称为外部循环。重复这个过程直到模型的性能达到满意的水平。
3.2 代码使用MAML 和 FO-MAML、任务增强完成Few-shot Classification
MAML的挑战是需要计算二阶梯度这在计算上可能会比较昂贵。有一些变体如FOMAMLFirst-Order MAML和REPTILE只需要计算一阶梯度从而降低了计算复杂性。
源代码https://github.com/virginiakm1988/ML2022-Spring/blob/main/HW15/HW15.ipynb源代码说明幻灯片https://github.com/virginiakm1988/ML2022-Spring/blob/main/HW15/HW15.pdf配套练习说明视频2022 - 作业说明 HW15_哔哩哔哩_bilibiliBuilding MAML From Scratch代码
https://github.com/PacktPublishing/Hands-On-Meta-Learning-with-Python/blob/master/Chapter06/6.5%20Building%20MAML%20From%20Scratch.ipynb
4 距离度量方法Siamese Network,ProtoNet,RN
4.1 孪生网络Siamese Network
主要用于处理少样本学习和相似性比较问题。在计算机视觉中孪生网络常常被用于面部识别、签名识别等任务。
算法步骤
首先孪生网络由两个完全相同的神经网络组成这两个网络共享相同的参数。然后将一对样本例如两个图像分别输入到这两个网络中每个网络会输出一个特征向量。接着计算这两个特征向量之间的距离或相似度。最后根据这个距离或相似度来进行分类或回归。例如如果距离小于某个阈值就认为这两个样本属于同一类别。
Siamese Network代码
https://github.com/PacktPublishing/Hands-On-Meta-Learning-with-Python/tree/master/Chapter02
4.2 原型网络Prototypical Networks
原型网络通过创建每个类的原型表示根据类原型与查询点之间的距离对查询点新点进行分类。
算法步骤
首先对于每个类别计算出该类别下所有样本的特征向量的均值这个均值向量被称为该类别的“原型”。然后对于一个新的样本计算它的特征向量与所有类别的原型之间的距离将其分类到距离最近的原型所代表的类别。在训练过程中通过优化一个目标函数来更新模型的参数这个目标函数基于新的样本与其对应原型之间的距离。
ProtoNet代码
https://github.com/PacktPublishing/Hands-On-Meta-Learning-with-Python/blob/master/Chapter03/3.3%20Omniglot%20Character%20set%20classification%20using%20Prototypical%20Network.ipynb
4.3 关系网络Relation Network
关系网络是一种特别设计用来处理少样本学习问题的元学习算法。它通过学习一个深度神经网络来度量样本之间的关系从而进行分类。关系网络的优点是它可以处理任意数量的支持集样本和查询集样本。
算法步骤 特征提取首先使用一个深度神经网络例如卷积神经网络来提取样本的特征。将这个网络称为特征提取器。 计算关系得分然后将支持集中的每个样本的特征与查询集中的样本的特征配对形成一个特征对。将每个特征对输入到另一个深度神经网络中这个网络被称为关系网络。关系网络的输出是一个关系得分表示这个特征对中两个样本的相似度。 分类最后将查询集中的样本分类到关系得分最高的支持集样本所属的类别。
注意因为需要计算支持集中的每个样本与查询集中的每个样本之间的关系得分关系网络的训练需要大量的计算资源。
RN代码
https://github.com/PacktPublishing/Hands-On-Meta-Learning-with-Python/blob/master/Chapter04/4.5%20Building%20Relation%20Network%20Using%20Tensorflow.ipynb
5 其他应用于少样本学习的方法 除了元学习数据增强、迁移学习、自监督学习和零样本学习等方法也可以应用于少样本学习。
自监督学习可以查看我的视频
【专题11:用自监督学习方法解决计算机视觉问题】1.概述和DINOv2原理
幻灯片在这里
【专题11:用自监督学习方法解决计算机视觉问题】1.概述和DINOv2_1sthalf.pdf
6 参考资料
元学习基础与应用(博文视点出品)Python元学习通用人工智能的实现 印 苏达桑·拉维尚迪兰 配套代码 https://github.com/PacktPublishing/Hands-On-Meta-Learning-with-Python Meta learning using one-shot learning, MAML, Reptile, and Meta-SGD with TensorFlowMeta-Learning | Papers With CodeA COMPREHENSIVE OVERVIEW AND SURVEY OF RECENT ADVANCES IN META-LEARNING https://arxiv.org/pdf/2004.11149.pdfYisheng Song, Ting Wang, Subrota K Mondal, Jyoti Prakash Sahoo.A Comprehensive Survey of Few-shot Learning: Evolution, Applications, Challenges, and Opportunities. https://arxiv.org/pdf/2205.06743.pdf Chelsea Finn, Pieter Abbeel, Sergey Levine. (2017). Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks.Mengye Ren, Eleni Triantafillou, Sachin Ravi, Jake Snell, Kevin Swersky, Joshua B. Tenenbaum, Hugo Larochelle, Richard S. Zemel.Meta-Learning for Semi-Supervised Few-Shot Classification.Aniruddh Raghu, Maithra Raghu, Samy Bengio, Oriol Vinyals. (2020). Rapid Learning or Feature Reuse? Towards Understanding the Effectiveness of MAML.https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/meta_v3.pdf