机器学习算法系列(八)

    最近工程上的事情比较多,所以对于相关知识理论算法的学习有所滞后。

其实机器学习相关资料非常众多,有了之前部分相关知识的原理算法的学习了解之后,也算是有些入门了。

但是自学一遍是远远不够的,最近又找出了吴恩达老师的课件/视频回味一下(为什么是“又”呢,因为确实是看了一点一点之后多次放弃了。

说实话感觉看这个视频还是需要一些相关基础知识的,否则容易看着看着就睡着了),其中涉及到的原理知识还是非常值得细细品味的。

本篇博客主要介绍了生成学习算法的相关概念及其代表算法高斯判别分析、及其与逻辑回归的相关性,加上视频/ppt相关知识部分细化补充:梯度下降、数据集分割、归一化处理

七、生成学习算法

对于不同类别根据其特性,分别进行相应建模,然后对于新样本与已建好模型进行对比从而判断其类别(建模之后利用贝叶斯规则(就是条件概率)来推导给定x的y的后验分布);

生成学习算法高斯判别分析(Gaussian discriminant analysis ,缩写为GDA):多变量高斯分布也就是n维多元正态分布。(这里其实还包括朴素贝叶斯及其优化拉普拉斯处理等相关原理、算法,这些在之前的博客已有详细介绍在此不在赘述)

假如我们有一个分类问题,其中输入特征 x 是一系列的连续随机变量(continuous-valued random variables),那就可以使用高斯判别分析模型,其中对 p(x|y) 用多元正态分布来进行建模,模型定义为:
这里写图片描述
在这里是相当于分了2类(y=0/y=1),其对应不同的均值x=u1/x=u0,而其方差在这里取值是同一个值,其在图上表示如下:
这里写图片描述
注意上面提到的协方差以及均值对于图像具体影响如下所示,方差不同其形状的扁平度是不一样的,而对于均值的不同代表着图像中心点的坐标位置的不同:
这里写图片描述
这里写图片描述
高斯判别分析与逻辑回归的相关性:
这里写图片描述
如果p(x|y)是一个多变量的高斯分布(且共享一个协方差),那么p(x|y)则必然符合一个逻辑函数(反之不立),所以可以看出高斯模型比逻辑回归具有更强的建模和假设,可以更好地拟合数据、是渐进有效的;那么相应的逻辑回归其模型假设相对来说更加健壮,且对于非高斯分布的且有限的大规模训练数据集而言逻辑回归更好(实际中,逻辑回归使用频率比高斯判别高很多)

(对于高斯分布的具体原理算法等在此不再做详细讨论学习,因为大学课程相关知识基本已经详尽,更详细形象讲解可见连接:https://zhuanlan.zhihu.com/p/21648507)

下面是一些之前相关知识细节的补充和添加(主要是来源于:吴恩达、李弘毅等相关课程知识)

1、批梯度下降
这里写图片描述
2、随机梯度下降
这里写图片描述
看到上面两个梯度下降法,首先m表示训练集样本的个数;对于批梯度下降法求参数时用到了求和公式,也就表示其参数结果只能由全部样本结果一步得出;而对于随机梯度下降法参数求解时,其是一个样本结果更新一次参数值,而不是只能一次性取决于全部样本;对于样本集较大时,随机梯度无疑更快、更高效、实时性。

**

数据集为什么分、如何分训练集、验证集和测试集:

这里写图片描述
这是一张分割数据集的图片,从上我们可以看出如何分,那为什么分呢:
模型的参数包括普通参数(权重、偏移等)和超参数(与模型设计和训练有关的一些参数,如batch、epoch、lr等),利用bp算法在训练过程中只能训练普通参数,而无法“训练”模型的超参数,因此,我们设置了验证集,通过验证集的效果进行及时反馈,根据效果看是否需要终止当前的模型训练,更改超参之后再训练,最终得到最优的模型!
PS:
1)针对超参的选择我们是根据验证集上的效果来进行调整的,因此验证集可以看做参与到“人工调参”的训练过程
2)注意训练集、验证集和测试集应该服从同一数据分布,这样我们才能进行玄学调参;
3)测试集是可以没有的,但验证集是必须有的,如果验证集具有足够的泛化代表性,是可以不需要设置测试集的;注意测试集的存在只是为了验证我们在训练集和验证集上进行模型的超参和参数训练后,验证我们得到的模型是否具有泛化性能

**

特征归一化处理:
为什么需要归一化处理及如何进行归一化处理:
这里写图片描述
如上图权重Wi的参数Xi其值相差很大,所以如参数Xi不做处理则权重Wi起到的作用将是差距很大,所以需要对参数Xi做归一化处理,一般处理如下,减去平均值除以标准差
这里写图片描述

猜你喜欢

转载自blog.csdn.net/enjoy_endless/article/details/80902453