背景
上一期已经讲完了本系列所有涉及的数学部分,本期将开始给大家搭建机器学习及神经网络的概念框架。
相信感兴趣的朋友,会觉得机器学习有很多名词,有很多疑问:
什么是机器学习,机器学习学的是什么呢?
监督学习与非监督学习,到底是什么呢?
深度学习是什么?什么是深度?
本篇将对概念进行一个初步的梳理,和几个简单的例子。在看完此篇之后,会对机器学习、监督与非监督学习、深度学习等概念有一个初步的认识。
插一句,关于名词和概念。 概念和名词可以方便大家沟通与交流。 但是名字也不那么重要,因为叫A、叫B都一样,只是一个约定俗成的东西。所以我自己的看法是,从实践出来,尽量了解但不纠结。因为,在实践一段时间后,对概念就自然了解了。
什么是机器学习
我在刚开始学习的时候,也经常产生这些疑问:
什么是机器学习?
它学的是什么?
它怎么学的呢?
机器学习有什么不同呢?
要回答这些问题,需要设置一个问题的场景或者应用场景。还是用我之前的文章“机器学习的hello world”的例子,我们的任务是让机器学习 识别图片中的数字,如下图,我们可以看出来是数字 1.
那么这个任务是什么呢? 简单来说就是,输入一张图片,输出一个数字1. 而从第一期可以知道,图片可以用一个Matrix矩阵来表示。
那么机器学习学的是什么呢? 这个其实是一个开放性的问题,我自己个人的理解是:
人类学习
大家可以回想下,人类做判断的时候,我们会说这个图片看起肯定是1。 但是下面几个图片,实际上就不那么明显了,人类的判断会是看起来大概是4,又有点像9,不过感觉更像4一点;
还是需要回到人类学习的过程。人类学习有两个因素,1. 不同的数字有自己的结构,而且相差都比较大 2. 人类学习过程中,经常看到1和不是1的数字,有大量的样本
机器学习
对于机器来说,判断就变成了一个概率计算的过程,计算出图片对应数字的可能性。上面那个1的图,可能超过99%的概率是1;下面的图可能就不那么明显了;
同样,机器学习的过程也有两个因素。 因为图片是以数字的形式展现的,那么图片结构就会反应在数字上。机器学习的是这些数字的结构。另外,机器学习也需要大量的样本。
机器学习与传统的算法或者程序有什么不同呢?以下是个人观点。
自主性.
传统程序是典型的计算机思维,需要人来考虑各种场景、各种逻辑判断,也就是说传统程序需要人来给出逻辑判断和清晰的定义。但是现实中很多问题,非常难给出清晰的定义。如下图,我们要判断一张图片是不是猫咪,这种问题对于人类很简单,但是对于机器很难。难在给不出定义,没有严格的逻辑判断。
因为猫可以有不同的形态、不同的颜色、不同的坐姿、不同的背景、不同的个数、不同的品种。。。等等等,这个是没办法穷举的。所以,以传统方法是没办法很好的做到判断是不是猫
那么,这个时候以类似上面的数字识别的例子,“自主”学习什么是猫 才使得图片识别变得可行。
模型的重要性或者神经网络框架的重要性
传统的重要性在于逻辑判断,软件框架等等方面。那么现在如果将这部分逻辑判断,让机器自己去发现。人类在其中的作用在哪里呢?
我个人觉得,在于模型的运用和改进。 举个例子,图片识别可以用传统的神经网络,但是对于 语言,这种明显带有顺序的例子,那么就需要使用RNN循环神经网络。这些后面都会带来
易学或者容易入门
传统程序,如果你要达到一个世界领先的水平,需要很多很多资源。但是对于机器学习,如果知道对方应用的是什么类型的模型框架,并且你也有一定的原始数据,你也可以做出一个很优秀的模型。 因为,就像之前提到的,中间的逻辑判断、学习的过程都交给机器了。那么,如果你有模型框架,而且你有数据,剩下的交给机器就好了。你也做出来非常优秀、先进的模型
机器学习是怎么学习的呢?
对于这个话题,我后续会带来。前期也有很多篇关于这个的文章,比如第一篇和NLP的第四期和“机器学习的hello world”
监督学习vs非监督学习
上一部分已经大概解释了机器学习的概念。监督学习与非监督学习就相对简单很多。
监督与非监督学习的差异就在于,是否有对应的标签数据。还是以上面的例子来说,可以对于这种图片我们能面对两种任务:
任务1
我们有60000个类似下面的样本,每个样本包含(X,Y)X代表着图片对应的矩阵,Y代表着真实的数字,下图就是数字1.
我们的任务是通过对60000样本的学习,能够对新的样本做出判断
任务2
我们有60000个类似下面的样本,每个样本只有一个X,X代表着图片对应的矩阵。 我们没有Y
我们的任务是对60000个样本进行分类 0~9
监督学习与非监督学习的区别就是在于,我们是否有Y,即标签。
深度学习
深度学习,这个词听起来挺深奥的。 其实,最简单的解释就是,当我们应用神经网络时,有运用多层神经网络,有运用不同的神经元。
下图是一个CNN(卷积神经网络)多用于图片识别。大家能看来非常复杂。
本文章,第一部分,已经提到,机器学习的重点在于模型的建立。不同复杂程度的模型,可以应对不同的问题。 而深度学习是一个比较宽泛的概念,最简单的理解就是神经网络有很多层。 但是其核心是,该神经网络的复杂程度 和 特征 能够适应该问题的数据特征。
下期预告
本期稍微给大家讲解了下 机器学习的一些概念。但是对概念的理解,肯定是要在实践中生成的。 后续会给大家带来更多的例子。
后续会给大家带来,神经网络的框架和训练等等。
感兴趣的朋友,请关注下~
领取专属 10元无门槛券
私享最新 技术干货