机器学习:几种分类识别问题

分类和识别是机器学习领域非常常见的一类问题,比如之前非常火热的 ImageNet 挑战赛,还有人脸识别,人脸表情识别等,接触机器学习的一般来说,都是从识别开始,因为识别比较简单直观,而且大家都对目前识别领域比较常见的几个数据集比如 MNIST, CIFAR-10, CIFAR-100 还有 ImageNet 等都比较熟悉了,这些都是为了解决分类识别问题而设计的数据集。

随着深度学习的蓬勃发展,在分类识别领域,又分化出来很多不同的方式,虽然这些概念在深度学习出来之前,就已经有了,但是有了深度神经网络结合大数据,以前的这些概念又被重新翻出来,不管是新瓶装旧酒,还是焕发了第二春,反正这些概念最近又开始被吵的火热了,什么 few-shot learning, zero-shot learning, incremental-learning,meta-learning 之类的又开始受到了越来越多的关注。虽然这些概念不仅仅用于分类识别,不过用分类识别问题来解释这些概念简单直白。

一般来说,给定一个数据集 X = { x i } i = 1 N \mathcal{X}=\{ \mathbf{x}_i \}_{i=1}^{N} X={xi}i=1N,这个数据集属于 K K K类,假设标签空间为 Y = { y j } j = 1 N \mathcal{Y}=\{ \mathbf{y}_j \}_{j=1}^{N} Y={yj}j=1N x \mathbf{x} x 一般表示为图像,比如手写数字的MNIST数据集,一张图就是一个数字比如 0, 1, 2, 3, 4 等等,或者ImageNet 的图像,一张图表示某一个物体,比如猫啊, 狗啊什么的, y \mathbf{y} y 表示一个标签,就是我们常说的 one-hot 向量,比如 MNIST 的标签是 10 维的向量,ImageNet 的标签是 1000 维的向量, 只有一个位置是1,其他位置都是0,每个类的标签按列拼在一起,就可以组成一个标准的单位矩阵。分类问题,简单来说,就是把属于同一类的图像聚到一起,都是手写数字 0 的图像,应该都归为一类,都是手写数字 2 的图像,应该归为另外一类,不能把手写数字 8 的图像,归到 0 这一类,所以分类问题,简单来说,就是物以类聚。

从数学的角度上来说,分类识别就是图像到标签的一个映射过程 :

X ⇒ Y \mathcal{X} \Rightarrow \mathcal{Y} XY

说了这么多,我们把什么是分类识别问题解释了,现在来看看,经过这么多年的发展,学术界把分类识别问题又做了不同的划分,根据不同的设定,着手解决不同的问题,归纳起来,主要有以下几类:

  • 有监督学习(supervised learning)
  • 无监督学习(unsupervised learning)
  • 半监督学习(semi-supervised learning)
  • 小样本学习(few-shot learning)
  • 零样本学习(zero-shot learning)
  • 增量学习(incremental learning)
  • 元学习(meta-learning)
  • open question (classification in the real-world, open environment)
有监督学习

有监督学习,应该是最常见,发展最成熟的一种分类识别问题了,所谓的有监督,那就是类别的标签是已知的,目前学术界研究的大多数分类识别问题都属于这一类,所以我们见到的数据集一般都是带着标签的,这类问题,都是希望找到一个映射,图像空间到类别空间的一个映射,借着类别标签的 “指引”,把同一类的图像尽可能的映射到一块,聚在一起,因为有标签的“指引”,所以这类问题,相对来说比较容易解决,特别是随着深度神经网络与算力的发展,各大从前的榜单都在被不断刷新,ImageNet 火了几年之后,也不再举办了,估计这榜再刷下去也没什么意思了,有监督学习,发展到现在,越来越像在烧钱,比拼的是数据和计算资源。

无监督学习

有监督学习,正如上面说的,需要有标签做“指引”,所以需要很多有标签的数据,而且深度学习需要消耗大量的数据,有标签的数据越来越难获取,需要消耗大量的人力与物力。所以,就有人想,能不能研究一种学习模式,可以不需要类别标签,也能让模型学会分类,所以就发展出了所谓的无监督学习,无监督学习,顾名思义,是不需要类别标签做“指引”的, 直接从数据图像中寻找每一类内在的联系,把同一类图像的特征耦合在一起,不过,到目前为止,这类无监督学习的效果一直不太理想,没有标签的指引,模型好像很难学好。

半监督学习

介绍了有监督学习和无监督学习,接下来介绍半监督学习,半监督学习结合了有监督学习和无监督学习,半监督学习,既不需要有监督学习那么多的有标签数据,不过与无监督学习相比,又多了一些标签数据做 “指引”,所以基本上一种把有标签数据和无标签数据混合在一起学习的一种模式。

小样本学习 (Few-shot learning)

小样本学习,在深度学习火热起来之前,也有一些人研究,最近两年,这个课题又开始受到越来越多的关注,小样本学习,应该还是属于有监督学习的一种,只是与常规的有监督学习相比,每一类的有标注的数据非常少,学术界经常说的的 1-shot, 5-shot 等等,就是说每一类都只有一个或者五个有标签的样本,这个课题的起源,是为了更好的研究模拟人的认知能力,因为人去学习识别一个东西,是不需要去看那么多的有标签的数据的,不过,从目前学术界发表的研究成果来看,基本还是基于 metric-learning 或者 meta-learning 的方式,利用 迁移学习的概念,先在大量的有标签的数据上训练网络,让网络学到一种有效的特征提取或者学到一套有效的模型参数,然后再在小样本数据集上进行训练。目前,这个方向发表出来的结果,在 Mini-Image Net 上的识别率还不是很高,还有进一步的提升空间。

零样本学习 (Zero-shot learning)

零样本学习,是比小样本学习更进一步,最近两年也变得火热起来了, 所谓零样本,那就是完全不需要样本的参考,而去推断识别新的类别,这个研究目前还处于起步阶段,用到的最多的方式,就是基于属性的识别,可以把每个类别进一步拆分成很多个不同属性的组合,某些属性的组合,可能就大概率的对应某个类别,所以,虽然新的类别,没有带标签的样本,但是,从之前的数据集上,可以让模型先学习识别不同的属性,碰到新样本的时候,先识别出该样本的属性,然后再结合不同的属性,进而判断出该样本属于什么类。

增量学习 (Incremental learning)

这个也是目前比较火热的一个研究方向,所谓增量学习,与之前见识的学习问题不太一样,早期的分类识别,都假设类别是已知的,并且是固定的,也就是说,我们会先分好训练集,测试集,并且知道训练集与测试集的类别都是已知的,但是增量学习,提出了另外一种学习问题,在真实的环境中,数据肯定不是一次性就全部给定的,而是在逐渐增加的,逐渐增加的数据,有可能是新的类别,也有可能是原来的类别,这样的话,就需要找到一种学习策略,让模型能够不断的去适应环境,增量学习最想解决的一个问题就是“参数遗忘”,我们知道,神经网络在训练的时候,都是尽可能地去拟合它所见到的数据,如果神经在学习的过程中,只能见到当前的数据,而以前的数据无法再见到的话, 那么之前学到的关于之前数据的性质,都将被遗忘,这就有点像狗熊掰棒子一样,只能顾到当下,以前的全给忘了,增量学习就是想解决这个问题,让模型随着见到的数据越来越多,模型的识别能力可以逐步提升。

元学习(meta-learning)

meta-learning, 号称,learning to learn,是目前比较火的一种学习策略,说通俗一点,就是希望让模型自己学会怎么训练,类似 auto-ML 的一些东西,这个在 few-shot learning 领域,有些研究已经结合了 meta-learning 的思想,去训练网络。

Open question

最后,说一些题外话,现在学术界,考虑分类识别的时候,更多的时候还是在一种可控的环境下来做,比如 ImageNet 1000 类,听起来似乎很多,但是与真实的环境相比,这 1000 类一点也不多,目前所有主流的测评,都是基于这 1000 类来进行比较,而忽略了其他类,这就是我们所说的开放环境,学术界是不考虑开放环境的,因为开放环境太复杂,没有办法做,如果模型在一个封闭的环境下学习,只能认识有限的类别,那这种模型永远没有办法在实际环境中工作。

所以,虽然现在 AI 引爆了一股股的热潮,但是离通用的 AI 还很遥远,即使是在简单的分类识别问题上,学术界的AI 研究,很多时候,都是基于 100% 的已知可控,数据集被研究了无数遍,但是真实环境中,可能 90% 都是未知的,如何用 10% 的已知去应对 90% 的未知,这可能是机器学习最大的难点。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值