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

1.3 分类

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

一个分类器模型在它诞生(初始化)的时候其实是不具备这种功能的,只有通过给予它大量的图片以及图片所对应的标签分类,让它自己进行充分地总结和归纳,才能具备这样一种能力。
在刚刚看到的逻辑回归这种方式中,我们已然看到了一些端倪。逻辑回归和普通的线性回归不同,它的拟合是一种非线性的方式。而最终输出的“标签值”虽然是一种实数变量,而最终分类的结果却期望是一种确定的值“是”(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个步骤,我们从前面最简单的机器学习的例子中已经总结出来一个最为有概括性的科学性流程。这种流程广泛使用,并且在其他机器学习的场景中也是可以顺利落地的。
分类器的训练和工作过程就是这个样子了,听起来分类器的工作过程非常简单,但是要知道人的智能行为其实就是一种非常精妙或者称为完美的分类器。他能够处理极为复杂、极为抽象的输入内容——不管是文字、声音、图像,甚至是冷、热、刺痛感、瘙痒感这种难以名状的刺激,并且能够在相当短的时间内进行合理的输出——例如对答、附和、评论,抑或是尖叫、大笑等各种喜怒哀乐的反应与表现。从定义的角度上来说,人其实就是一种极为复杂的且极为智能的分类器。而我们在工业上使用的分类器则通常是非常片面的,只研究一种或几个事物的“专业性”的分类器,这和我们人类的分类能力区别就太大了。

时间: 2024-07-29 16:02:31

《白话深度学习与TensorFlow》——1.3 分类的相关文章

《白话深度学习与TensorFlow》——1.5 小结

1.5 小结 一言以蔽之,机器学习就是人类定义一定的计算机算法,让计算机根据输入的样本和一些人类的干预来总结并归纳其特征与特点,并用这些特征和特点与一定的学习目标形成映射关系,进而自动化地做出相应反应的过程.这个反应可能是做出相应的标记或判断,也可能是输出一段内容--图片.程序代码.文本.声音,而机器自己学到的内容我们可以描述为一个函数.一段程序.一组策略等相对复杂的关系描述.在我看来,机器学习是大数据的一个子范畴.因为凡是基于对客观事物的量化认知的科学都是数据科学的范畴,也就是广义的大数据的范

《白话深度学习与TensorFlow》——导读

**前言**为什么要写这本书近些年来,伴随着计算机计算能力的不断升级,很多原来只有在科幻电影里才有的桥段越来越多地出现在我们身边了,并给了我们更多的想象空间与期待.在2016年,人工智能界最令人瞩目的事情莫过于谷歌的AlphaGo以4:1的悬殊比分轻松击败韩国著名九段围棋大师李世石.之后化名"Master"的AlphaGo更是一路大开杀戒,分别在对弈网站"弈城"和"腾讯围棋"登录,先后打败了柯洁九段.朴廷桓九段.陈耀烨九段以及创造日本大满贯传奇的

《白话深度学习与TensorFlow》——2.2 深度神经网络

2.2 深度神经网络 2016年3月,随着Google的AlphaGo以4∶1的悬殊比分战胜韩国的李世石九段,围棋--这一人类一直认为可以在长时间内轻松碾压AI的竞技领域已然无法固守,而深度学习(deep learning)这一象征着未来人工智能领域最重要.最核心的科技也越来越成为人们关注的焦点.这里所谓的深度学习实际指的是基于深度神经网络(deep neural networks,DNN)的学习,也就是深度人工神经网络所进行的学习过程,或称作Deep Learning.这个Deep指的是神经网

《白话深度学习与TensorFlow》——3.3 其他特点

3.3 其他特点 TensorFlow有很多的特点,当然这些特点不见得都是独一无二的. 1 .多环境与集群支持 首先,TensorFlow支持在PC的CPU环境.GPU环境甚至是安卓环境中运行.它不仅可以支持在单个计算单元(一颗CPU的多核心或一颗GPU的多核心)上进行运算,也支持一台机器上多个CPU或多个GPU上并行计算. 2016年4月14日,Google发布了分布式TensorFlow,能够支持在几百台机器上并行训练.分布式的TensorFlow由高性能的gRPC库作为底层技术支持.Ten

《白话深度学习与TensorFlow》——第1章 1.0机器学习是什么

第1章 1.0机器学习是什么 机器学习是一个跟"大数据"一样近几年格外火的词汇.我们在了解深度学习之前,还是有必要了解和认识机器学习这个词的.机器学习究竟是一个什么过程或者行为呢? 机器学习--我们先想想人类学习的目的是什么?是掌握知识.掌握能力.掌握技巧,最终能够进行比较复杂或者高要求的工作.那么类比一下机器,我们让机器学习,不管学习什么,最终目的都是让它独立或至少半独立地进行相对复杂或者高要求的工作.我们在这里提到的机器学习更多是让机器帮助人类做一些大规模的数据识别.分拣.规律总结

《白话深度学习与TensorFlow》——第2章 深度学习是什么 2.1 神经网络是什么

第2章 深度学习是什么 2.1 神经网络是什么 要说深度学习(deep learning),就必须先说神经网络,或者称人工神经网络(artificial neural network,ANN).神经网络是一种人类由于受到生物神经细胞结构启发而研究出的一种算法体系. 人的神经细胞就像图上这样,枝枝杈杈很多,远远看上去一边比较粗大一边比较纤细.最上端粗大的这一边就是细胞体的所在,细胞体上有一些小枝杈叫做树突,细长的这一条像尾巴一样的东西叫做轴突.不同细胞之间通过树突和轴突相互传递信息,它们的接触点叫

《白话深度学习与TensorFlow》——2.4 深度学习应用

2.4 深度学习应用 我们在第1章所介绍过的谷歌无人驾驶汽车仅仅是深度学习的一个典型应用,深度学习的应用领域越来越多,而且是几乎在任何一个产业中都有其落地的身影.我们先来看几个有趣的应用.2.4.1 围棋机器人--AlphaGo 击败李世石的谷歌AlphaGo就不用说了,它已经进入我们的视线很久了. 它由谷歌旗下DeepMind公司的戴维·西尔弗(David Silver).艾佳·黄和戴密斯·哈萨比斯(Demis Hassabis)与他们的团队开发,这个程序利用价值网络(value networ

《白话深度学习与TensorFlow》——3.2 与其他框架的对比

3.2 与其他框架的对比 1)?TensorFlow:深度学习最流行的库之一,是谷歌在深刻总结了其前身 DistBelief 的经验教训上形成的:它不仅便携.高效.可扩展,还能在不同计算机上运行:小到智能手机,大到计算机集群:它是一款轻量级的软件,可以立刻生成你的训练模型,也能重新实现它:TensorFlow有强大的社区.企业支持,因此它广泛用于从个人到企业.从初创公司到大公司等不同群体. 2)?Caffe:卷积神经网络框架,专注于卷积神经网络和图像处理,是用C++语言写成 的,执行速度非常快.

《白话深度学习与TensorFlow》——2.3 深度学习为什么这么强

2.3 深度学习为什么这么强 神经网络,尤其是深度神经网络之所以这么吸引人,主要是因为它能够通过大量的线性分类器和非线性关系的组合来完成平时非常棘手的线性不可分的问题.2.3.1 不用再提取特征前面我们说过,在以往我们使用的朴素贝叶斯.决策树.支持向量机SVM这些分类器模型中,提取特征是一个非常重要的前置工作,也就是说人类在驱使这些分类器开始训练之前,先要把大量的样本数据整理出来,"干干净净"地提取其中能够清晰量化的数据维度.否则这些基于概率和基于空间距离的线性分类器是没办法进行工作的