找回密码
 立即注册
搜索

什么是机器学习?


机器学习


人工智能,是使计算机具有智能的根本途径,其运用遍及人工智能的各个范畴,它次要运用归纳、综合而不是归纳,而机器学习是人工智能的核心。
“机器学习是一门人工智能的迷信,该范畴的次要研讨对象是人工智能,特别是如何在阅历学习中改善详细算法的功能
01 机器学习分类


  • 传统机器学习
  • 机器学习可以了解成是消费算法的算法。需求人来先做特征提取,然后在把特征向量化后交给机器去训练。
  • 传统机器学习分为 监督学习 和 无监督学习。
  • 深度学习
  • 深度学习是基于深度神经网络的学习(DNN)。深度学习可以自动提取特征。深度学习可以采用 End-to-End 的学习方式,只需求停止很少的归一化和白化,就可以将数据交给模型去训练。
02 机器学习中的一些概念

首先我们需求了解几个机器学习中的最少要知道是怎样回事的概念,了解了后面看代码才不会一脸懵逼。

  • 训练样本
  • 就是用于训练的数据。包括了理想中的一些信息数据,以及对应的结果,也就是标签。
  • 训练
  • 对训练样本的特征停止统计和归纳的过程。
  • 分类模型
  • 总结出的特征,判别标准。
  • 验证
  • 用测试数据集验证模型能否正确的过程。这个过程是在模型训练完后停止的,就是再用另外一些样本数据,代入到模型中去,看它的准确率如何。
2.1 聚类
聚类 是一种典型的 无监督学习 ,是把数据停止分类的过程。停止聚类的基本思想是,应用向量之间的间隔 —— 空间中的欧式间隔或曼哈顿间隔 , 根据间隔的大小判别对象能否应该归为同一类别。



上图是对3个一维向量分类的例子。分明的能看到,离得近的两个们可以近似的以为它们属于同一类别。
2.2 回归
回归简单的说就是一个 由果索因 的过程。这是机器学习中很常用的一个手腕。
回归分为:
1. 线性回归
2. 非线性回归
实践运用那种回归模型,需求根据状况而定。
2.2.1 线性回归
线性回归模型:





其中 w 是一个特征张量,储存着与每个变量x中元素对应的特征元素,x 就是输入的训练数据张量,b 是一个偏置量。
这其实就是高中概率与统计章节中常见的一个公式。就像解那时分的运用题一样,我们需求根据一堆 (x,y)求解一个合适的 w 和 b。





看看下面这个运用题,能否想起了高中时代的数学课?
2.2.2 损失Loss函数
损失函数是用来评价模型预测结果和真实状况差距的,差距越小,阐明我们的模型越好,越准确。这就是损失函数的公式!



当我们假设一个w和b后,循环计算每一个 x 所得的值和真实 x 所对应的值相减,然后将每一个差相加求和,得到一个差值之和,就是当前的损失。
损失越小,阐明所寻觅到的 w 和 b 就越合适,当 Loss 为 0 时,阐明此时模型的准确率为 100% 。
理想上,这和高中概率与统计运用题,给你一堆 x,y ,然后求一个 系数w 和 常量b 出来是一样的一样的。只不过在计算机中,由于算力比手算弱小太多了,所以我们可以一遍一遍的调整 w 和 b 这两个参数,使 Loss 不断向趋于 0 的方向移动 ,从而使模型的准确率趋于 100% 。
通常,为了使 Loss 一直保持为正 ,也会有如下损失函数:





求平方使得结果横为负数。
比如这个函数的图像能够是一个三维的碗,那么我们的义务就是找到碗底的地位,也就是极值,由于在该点有解,即损失最小。





2.2.3 梯度下降法寻觅最优解
对于复杂函数,我们要直接求解是巨困难的,甚至有时可以说是处于不可解的形状。我们需求寻觅损失函数的极值,可以运用牛顿迭代法的思想停止迭代寻觅。
那对于复杂函数是不是就只能一筹莫展了呢?在你了解 牛顿迭代法 之后就可以回到不是了,而此前对于这个成绩也许只能回答不能了。





经过迭代,我们可以逐渐的逼近索要寻觅的极值。
这里,我们还人为的引入了一个 η 参数,这个参数用于调整步长。步子迈大了能够会越过极值,迈小了有会产生很大的计算量,详细取多大合适,还是要多看看老司机们烫过的坑。
普通的梯度下降法(批梯度下降法,BGD),需求遍历一切的数据样本,在样本量不大的时分还是可以的,毕竟这么干精度最少是很高的。但是假如样本容量宏大,那每次遍历一切样本,必然都会耗费很多工夫成本。并且假如我们的损失函数不是一个凸函数误差曲面就会存在多个部分极小值(即部分碗底),那采用这种方法能够会堕入部分最优解中。





如上图就是一个非凸损失函数,有能够在梯度下降的过程中走到了一个部分最低点去,而这其实不是真正的最低点。
为了加快收敛速度,随机梯度下降法(SGD) 就诞生了。它的思想是每次仅随机的抽取样本总体中的一个样本,来决议下一步的走向。它的好处是不用遍历一切的样本,所以对于样本容量宏大的状况,可以极大的加快收敛。但可想而知,每次随意取一个样本来更新权值,最终的权值很能够并不是最优解,不过有时在思索理想状况的时分,这点精度误差也是可接受的。
那我们可不可以既要速度,又要精度呢?当 CoorChice 这么问的时分,你可就是知道套路成绩的套路答案了(也许下次 CoorChice 就不会按套路走了,啊哈哈!)。答案就是 小批梯度下降法(Mini-batch GD)。它的思想是每次选取一定量的样本停止训练,然后再更新权值。即不用全部遍历,也不会由于每次更新仅由一个样本来决议而损失过多的精度。中间兼顾,当然也比较中庸。
2.2.4 交叉熵
在了解交叉熵之前,先了解一下什么是信息熵?首先看两个相关公式。
信息量公式:





没错,经过对一种状况发生的先验概率停止对数计算的结果,被用来表征这种事情发生的信息量。
信息熵公式:





就是将一切事情的信息熵停止加和。这个值越大,表明对于预测一个事情而言的不确定性就越大。
下面的公式是 信息熵 公式,它表示对于一系列事情,根据其历史发生数据可以计算出一个先验概率,根据这个先验概率,可以计算出该事情发生的信息量,再将信息量乘以先验概率,就可以得到单个事情的熵。将这些事情的熵求和,就可以得到信息熵了。它有什么作用呢?就是用来量化信息量的,假如越不确定,则其信息熵就越大。对于一个有序的系统(按部就班)来说,它的信息熵就比较小了。
假如了解了信息熵,接上去就可以更进一步的了解交叉熵了。首先,交叉熵损失函数如下:





y 表示希冀输入值,a 表示实践模型的输入。交叉熵是用来干什么的呢?它表示的训练结果和实践标签结果的差距。交叉熵函数也有这种常用的方式:





通常交叉熵会和 Softmax 激励函数一同在输入层计算输入。
03 深度学习的基本概念

深度学习是基于深度神经网络的学习。它的概念相似与人的神经结构,由神经元可链接成一个神经网络,每个神经元被作为一个网络节点。
好像一下又回到了生物课!深度学习相对于传统的机器学习来说,很分明的优势在于可以自动提取特征,可将线性不可分的成绩转变为线性可分的成绩。
运用传统机器学习,不管用朴素贝叶斯、决策树、支持向量机SVM等分类模型之前,必须对大量的模型停止处理,人工的从中提取特征用于量化。而在深度学习中,经过大量的线性分类器的堆叠,加上一些非线性要素,可以使一些特征可以自动的显现出来,而干扰要素经过过滤也能很大程度的被忽略。
总之,这种方式的机器学习一定是愈加先进的,但是需求耗费的资源也会更大。深度学习由于是自动提取特征的,所以会导致我们有时分无法判别处终究为什么会是这个模型,不便于我们分析成绩,它就像一个黑盒一样,给它数据,它给你结果,而你很难了解外面发生了什么。
3.1 神经元的组成
通常,一个神经元由一个 “线性模型” 和 一个 “激励函数” 组成。线性模型其实就是下面提到过的线性回归模型。





如图就是一个神经网络,它共有两层,一个是神经元层(隐含层),一个是输入层。通常我们在说一个网络的深度时,是不会把输入层不计入的。
在神经元中,有一个线性模型 wx + b 和 一个激活函数 f。我们的数据将会经过一个个的神经元,每个神经元都有一组权重,用于提取一类特征,相当于是我们把数据停止了一层一层的分析。
3.2 激励函数
激励函数,通常也会被称为激活函数,它是跟随在 f(x) = wx + b 函数之后,用来加入一些非线性的要素的。经过激活函数,可以将线性函数作为输入,经过激活函数后,变成非线性的,这样一来就更接近真实世界的复杂状况了。罗列几个常用的激活函数,有助了解。
3.2.1 Sigmoid函数










从函数可以看到,这个函数的值域为 (0,1),0.5值处为函数的对称中心。有时在 <-4 和 >4 的区间中,函数曲线越来越趋于程度,也就是导数很趋于0,这会导致梯度下降时,我们的对权值的更新微乎其微,也就是出现梯度消逝的成绩。
当然,它作为比较常用的激励函数,有其本人很适用的成绩范畴,比如二分类成绩。
3.2.2 ReLu函数y = max(x, 0)





这是个很受欢迎的函数,光是看看它简约的函数式你就不能回绝它!这个函数在 > 0 的时分,输入就等于输入,计算量会小很多,所以收敛速度会快很多。
3.2.3 Softmax





这个函数看起来比较复杂,它通常被用于处理多分类成绩。可以看看它的定义式,就是个体在总体中的占比状况。





从图中可以很直观的看出这个函数的功能,就是各种分类的概率啊。
3.3 独热编码
对于多分类成绩,标注分类可以运用运用 独热编码 来停止,比如这样一个例子:





就是说,有几个类型就定义一个几维的向量,然后向量中只要一个元素为1,其他均为0,经过1在向量中的地位来表示类型。
3.3 过拟合和欠拟合
在训练过程中,能够会由于过拟合或者欠拟合而导致最终训练出来的模型准确率不足或者因泛化性差而导致准确率低。

  • 欠拟合
  • 样本过少,无法归纳出足够的共性
  • 过拟合
  • 参数过多,导致在训练集上准确率很高,但换新样本会严重误判。
总结

在了解了机器学习是干什么的之后,又了解了一些基本概念在机器学习中会被常常用到的,置信你对机器学习也不会保持一种敬畏感了,知道它很凶猛,但是不知道为什么凶猛。
如今末尾,可以试着到 TensorFlow 官网看一些入门的 code 例子,然后结合这些概念了解下每个步骤是在干什么,为什么要这么做?
在后面,大家也会看到,在机器学习中用到了很多统计学的知识,所以很多人会以为机器学习其实就是统计学而已。
实践上 CoorChice 以为,机器学习只是用了统计学作为工具,去研讨处理成绩,实践上它是有一套本人的实际和套路的,就像物理用数据作为工具去处理成绩一样。
机器学习在处理实践成绩的过程中,会需求很多学科的交叉来分析成绩,构建模型。当然,总体的思想看起来还是很简单的,只不过面对真世界中的复杂状况下,其探寻求解过程会比较复杂。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评3

……
回复

使用道具 举报

vcd1977 2019-7-14 07:46:43 显示全部楼层
LZ帖子不给力,勉强给回复下吧
回复

使用道具 举报

没有去办棕 2019-7-14 22:43:40 来自手机 显示全部楼层
没人回帖。。。我来个吧
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies