《白话深度学习与TensorFlow》——1.3 分类-阿里云开发者社区

开发者社区> 华章出版社> 正文
登录阅读全文

《白话深度学习与TensorFlow》——1.3 分类

简介: 本节书摘来自华章计算机《白话深度学习与TensorFlow》一书中的第1章,第1.3节,作者:高扬,卫峥著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.3 分类

分类是机器学习中使用的最多的一大类算法,我们通常也喜欢把分类算法叫做“分类器”。
这个说法其实也非常形象,在我们看来,这就是一个黑盒子,有个入口,有个出口。我们在入口丢进去一个“样本”,在出口期望得到一个分类的“标签”。比如,一个分类器可以进行图片内容的分类标签,我们在“入口”丢进去一张老虎的照片,在“出口”得到“老虎”这样一个描述标签;而当我们在“入口”丢进去一张飞机的照片,在“出口”得到“飞机”这样一个描述标签,这就是一个分类器最为基本的分类工作过程。

image

一个分类器模型在它诞生(初始化)的时候其实是不具备这种功能的,只有通过给予它大量的图片以及图片所对应的标签分类,让它自己进行充分地总结和归纳,才能具备这样一种能力。
在刚刚看到的逻辑回归这种方式中,我们已然看到了一些端倪。逻辑回归和普通的线性回归不同,它的拟合是一种非线性的方式。而最终输出的“标签值”虽然是一种实数变量,而最终分类的结果却期望是一种确定的值“是”(1)或“不是”(0)。其他各种分类器的输出通常也是离散的变量,体现出来也多是非线性的分类特点。
我们在编写代码教会分类器怎么做学习的时候,其实是在教它如何建立一种输入到输出的映射逻辑,以及让它自己调整这种逻辑关系,使得逻辑更为合理。而合理与否的判断也非常明确,那就是召回率和精确率两个指标——召回率指的是检索出的相关样本和样本库(待测对象库)中所有的相关样本的比率,衡量的是分类器的查全率。精确率是检索出的相关样本数与检索出的样本总数的比率,衡量的是分类器的查准率。
具体来说,譬如有一个1000个样本的训练集,是1000张照片,里面有200张是猫,200张是狗,600张是兔子,一共分成三类。我们将每个照片向量化后,加上标签:
“猫”——“0”;
“狗”——“1”;
“兔子”——“2”。
这相当于一个x和y的对应关系,把它们输入到训练集去训练(但是这个地方的标签0、1、2并不是实数定义,而是离散化的标签定义,通常习惯用one-hot独热编码的方式来表示)。经过多轮训练之后,分类器将逻辑关系调整到了一个相对稳定的程度,然后用这个分类器再对这200张猫,200张狗,600张兔子图片进行分类的时候,发现:
200张猫的图片中,有180张可以正确识别为猫,而有20张误判为狗。
200张狗的图片可以全部正确判断为狗。
600张兔子的图片中,有550张可以正确识别为兔子,还有30张被误判为猫,20张误判为狗。
你可不要觉得奇怪,在所有的机器学习或者深度学习训练的工程中,误判率几乎是没有办法消灭的,只能用尽可能科学的手段将误判率降低。不要太难为机器,其实人都没办法保证所有的信息100%正确判断,尤其是在图片大小、图片清晰程度、光线明暗悬殊的情况下,不是吗?那就更别说机器了,它更做不到。
我们还是来解释召回率和精确率的问题。就刚才这个例子来说,一共1000张图片中,200张是猫,但是只能正确识别出180张,所以猫的召回率是180÷200?=?90%,600张兔子中正确识别550张,所以兔子的召回率是550÷600≈91.7%。而在1000中图片中,当我检索狗的时候会检索出240张狗的图片,其中有200张确实是狗,有20张是被误判的猫,还有20张是被误判的兔子,所以240张狗的图片中正确的仅有200张而已,那么狗的精确率为200÷240≈83.3%。怎么样,这两个概念不难理解吧。
分类的训练过程和回归的训练过程一样,都是极为套路化的程序。
第一,输入样本和分类标签。
第二,建立映射假说的某个y?=?f(x)的模型。
第三,求解出全局的损失函数Loss和待定系数w的映射关系,Loss?=?g(w)。
第四,通过迭代优化逐步降低Loss,最终找到一个w能使召回率和精确率满足当前场景需要。注意,这里尤其指在验证数据集上的表现。
大家请注意这4个步骤,我们从前面最简单的机器学习的例子中已经总结出来一个最为有概括性的科学性流程。这种流程广泛使用,并且在其他机器学习的场景中也是可以顺利落地的。
分类器的训练和工作过程就是这个样子了,听起来分类器的工作过程非常简单,但是要知道人的智能行为其实就是一种非常精妙或者称为完美的分类器。他能够处理极为复杂、极为抽象的输入内容——不管是文字、声音、图像,甚至是冷、热、刺痛感、瘙痒感这种难以名状的刺激,并且能够在相当短的时间内进行合理的输出——例如对答、附和、评论,抑或是尖叫、大笑等各种喜怒哀乐的反应与表现。从定义的角度上来说,人其实就是一种极为复杂的且极为智能的分类器。而我们在工业上使用的分类器则通常是非常片面的,只研究一种或几个事物的“专业性”的分类器,这和我们人类的分类能力区别就太大了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接