乐趣区

关于机器学习:技术博客丨原来模型训练可以不用标注一文全解四大机器学习方法

作者:Ta-Ying Cheng,牛津大学博士研究生,Medium 技术博主,多篇文章均被平台官网刊物 Towards Data Science 收录

即便在人工智能曾经逐步广泛的明天,有许多人对机器学习相干的概念仍是只知其一; 不知其二。尽管机器学习论文层出不穷,简直每过一阵子都有新技术和新想法发表,然而绝大多数新词只能沦为人们交口传诵的人工智能术语,至于这些词到底是什么意思则不做深究。本文将用艰深的形式,为大家介绍耳熟能详却分辨不清的四个机器学习外围概念:监督式学习、半监督学习、非监督学习和自监督学习,并将用实例简介它们试图解决的问题,心愿能带大家走出机器学习的入门迷雾!

监督式学习

图 1. 监督式学习图示
制作:作者,素材:Unsplash
图片翻译:Dataset 数据集、Input 输出、Label 标注、Dog 狗、Cat 猫、Tasks (e.g., Classification, Regression) 机器学习工作(如分类、回归等)

监督式学习(supervised learning)是最为常见的机器学习办法,个别提到机器学习指的都是监督式学习。

简而言之,监督式学习 就是给机器提供一组输出 - 输入对,这样模型可能学习一个两头零碎,使得输出映射到正确的输入。

咱们能够举一个简略的例子来阐明监督式学习的工作形式。如图所示,咱们须要确定图片中的动物是猫还是狗(也能够是其余动物),那么咱们首先就须要拿到用于训练模型的动物图片数据集以及这些图片所对应的“类”(class),也就是咱们常说的标注(labels)。

依照目前风行的办法,有了给定的输出 - 标注对之后,咱们就将间接拿这组数据来训练咱们的深度神经网络(如卷积神经网络)。训练后,模型会对已有的图片给出本人的标注预测,而后咱们须要计算模型的预测和原有的正确标注之间的差异(称作可微损失),再把这些差异反馈给模型来调整其参数并优化最终的预测后果(这个过程称为 反向流传,backpropagation)。

总的来说,监督式学习是所有机器学习办法中最显而易懂的办法,这种办法默认所有图片的标注都是给定的,由此能让机器学习的过程变得更加简略。

半监督学习

图 2. 半监督学习图示
制作:作者,素材:Unsplash
图片翻译:Dataset 数据集、Labelled 已标注、Input 输出、Label 标注、Dog 狗、Cat 猫、Unlabelled 未标注、Tasks (e.g., Classification, Regression) 机器学习工作(如分类、回归等)

监督式学习的想法很弱小也很简略,只须要咱们手头上的数据集有着残缺且正确的标注就能够了,但事实并非总是如此美妙。随着 AI 行业的倒退,人们越来越意识到标注是一个高度劳动密集型的环节,数据集的标注并非总是完满。在老本有余的状况下,手头上的数据可能只有局部有标注甚至可能齐全没有标注。

半监督学习 的诞生正是为了解决问题:咱们如何在只有一小部分数据有标注的状况下做到四两拨千斤的成果呢?

回到刚刚说的图片标注工作,假如咱们手头上的数据集只有局部图片有标注,其余那些没有标注的数据还有用吗?

答案是必定的,咱们能够用一种叫 伪标签(pseudo-labeling)的办法来利用这些数据。

对于刚刚的工作,咱们能够先依照通常的监督式学习办法用有标注的数据来训练一个分类模型,而后咱们用这个模型来为剩下的数据做标注。如果模型有充沛的把握认为本人的标注是正确的,那么咱们就把这部分预测标注当作是正确标注增加回原来的有标注数据当中(实际上这些预测标注只是伪标签)。由此,咱们再反复原来的模型训练过程,一遍遍地往返迭代,直到所有的数据都被用上并且最终的分类模型达到其最优性能。

当然,这种办法听起来十分聪慧,但在实际操作中很容易出问题。如果原有的已标注数据切实无限,那么模型很有可能会一上来就给出谬误的伪标签,导致最终的训练后果齐全失败。因而对于半监督学习来说,确定模型至多有多大的把握能力将伪标签退出训练数据中是至关重要的。

为了防止训练初期的过拟合,咱们也能够利用数据加强这一弱小技巧来减少原始训练数据的大小,为模型训练提供散布更广的数据。如果大家对数据加强感兴趣,能够参看咱们之前公布的对于 mixup 的文章。

无监督学习

图 3. 无监督学习图示
制作:作者,素材:Unsplash
图片翻译:Dataset 数据集、Tasks (e.g., Clustering) 机器学习工作(如聚类等)

既然咱们曾经晓得怎么样用起码的标注达到最大的训练成果,那么一个很天然又很大胆的想法便跃然纸上:能不能应用齐全无标签的数据进行学习呢?

无监督学习 齐全站在另一个极其,输出的数据没有任何对应的标注,训练的最终目标是要找到数据集外部的散布法则。

无监督学习就是针对齐全无标签的数据进行的学习办法,个别用在客群划分、举荐算法等各种分类工作当中。

而这时因为咱们手头上没有可能给机器进行验证的正确标注,那么咱们须要通过 聚类(clustering)的办法来找到数据集外部的法则。也就是说,对于一个给定的数据集,咱们须要找到这些数据都独特存在什么样的特色,而后依照这些特色对数据进行分类。比拟罕用的聚类办法有 K-MeansK-Medoids等。

聚类听起来仿佛非常简单,但可能为理论生产中的问题提供十分有用的信息。比方,当咱们在设计举荐算法零碎时,咱们能够间接依据用户的应用习惯来将他们进行分类,而后便能够推送用户喜爱的内容给他们。在此过程中,咱们齐全不须要去晓得每个用户具体的趣味是什么,所有分类工作都能够交由模型进行解决。

自监督学习

图 4. 自监督学习图示
制作:作者,素材:Unsplash
图片翻译:Dataset 数据集、Tasks (e.g., Classification, Regression) 机器学习工作(如分类、回归等)

自监督学习听起来和无监督学习十分像,但自监督学习更多地用来应答那些传统上应用监督式学习进行解决的工作。

自监督学习 在某种程度上也能够算作是一种无监督学习,因为它不须要利用训练数据给定的标注信息。不过,自监督学习不用于聚类工作,而是专攻像图片分类这样传统上应用监督式学习进行解决的工作。

自监督学习的指标听起来仿佛是天方夜谭,但近年来许许多多的钻研曾经提出了十分翻新的思路来实现对传统监督式学习工作的无标注的学习。其中一种思路就是驰名的 比照学习(contrastive learning),通过比拟正例和负例样本来进行学习。简略来讲,在比照学习中咱们会首先对同一图像进行数据加强操作。比方用同一张小狗图片用不同的加强形式生成多张新的小狗图片,这些图片咱们用作正例样本,而数据集中的其余图像咱们都当作是负例样本。比照学习模型在训练过程中须要做的事件,便是尽可能地在模型内让正例样本离彼此更近,同时让正负例样本之间更远。由此神经网络能够学习到这些正例样本的本质特征,这样的学习形式使得图像分类这样本来须要 ground truth(能够了解为正确标注)的工作在自监督学习中成为可能。

小试牛刀

如果你想要亲自上手来领会这些不同概念之间的区别,能够先找到本人想要训练的数据集,而后自行通过移除局部或所有标注的形式来体验这些学习办法的区别。

咱们的数据集如果是间接从 torchvision 中调用的,会带有已做好的标注。如果咱们想要尝试半监督或自监督学习,能够试着本人写一个 DataLoader(数据加载器)。另外,咱们还能够应用格物钛公开数据集平台来简略不便地获取数据集。格物钛的平台提供了机器学习最为罕用的公开数据集,能够收费下载,还能够在浏览器中间接查看数据集内容。格物钛还提供了实用的 API 供咱们将数据集的获取接口间接集成到本人的代码当中,让设计 DataLoader 变得更加简略。倡议手头上只有一台笔记本电脑的同学先用 MNIST 和 CIFAR-10 这样的数据集进行测试,因为这两个数据集须要的算力相对而言更少一些。

结语

心愿看到这里你曾经把握了这四个概念之间的分割及区别!如果想要进一步理解自监督学习方向的最新进展,能够到 paperswithcode 社区查看最新的论文及其代码。

更多信息请拜访格物钛官网

退出移动版