赞
踩
https://blog.csdn.net/qq_41800366/article/details/86583789
J是关于Θ的一个函数,我们当前所处的位置为Θ0点,要从这个点走到J的最小值点,也就是山底。首先我们先确定前进的方向,也就是梯度的反向,然后走一段距离的步长,也就是α,走完这个段步长,就到达了Θ1这个点!
α:学习率,不要走太快,错过了最低点
梯度前加一个负号,就意味着朝着梯度相反的方向前进!我们在前文提到,梯度的方向实际就是函数在此点上升最快的方向!而我们需要朝着下降最快的方向走,自然就是负的梯度的方向,所以此处需要加上负号。
为什么采用梯度下降?
反向传播(用于优化神网参数):根据损失函数计算的误差通过反向传播的方式,指导深度网络参数的更新优化。
采取反向传播的原因:首先,深层网络由许多线性层和非线性层堆叠而来,每一层非线性层都可以视为是一个非线性函数(非线性来自于非线性激活函数),因此整个深度网络可以视为是一个复合的非线性多元函数。
我们最终的目的是希望这个非线性函数很好的完成输入到输出之间的映射,也就是找到让损失函数取得极小值。所以最终的问题就变成了一个寻找函数最小值的问题,
梯度消失和梯度爆炸
梯度消失和梯度爆炸本质上是一样的,都是因为网络层数太深而引发的梯度反向传播中的连乘效应。
Sigmod导数图像
Sigmoid导数的取值范围在0~0.25之间,而我们初始化的网络权值通常都小于1,因此,当层数增多时,小于0的值不断相乘,最后就导致梯度消失的情况出现。
同理,梯度爆炸的问题也就很明显了,就是当权值过大时,导致 |导数 * w | > 1,最后大于1的值不断相乘,就会产生梯度爆炸。
K-Means(聚类)
分类:
有标签,根据数据已知的特点
聚类:
聚类的目的也是把数据分类,但是事先我是不知道如何去分的,完全是算法自己来判断各条数据之间的相似性,相似的就放在一起。在聚类的结论出来之前,我完全不知道每一类有什么特点,一定要根据聚类的结果通过人的经验来分析,看看聚成的这一类大概有什么特点。
K-Means
是聚类算法中的最常用的一种,算法最大的特点是简单,好理解,运算速度快,但是只能应用于连续型的数据,并且一定要在聚类前需要手工指定要分成几类。
优化:
作用:降维、升维、跨通道交互、增加非线性
https://zhuanlan.zhihu.com/p/31886934
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机
原理:求解能够正确划分训练数据集并且几何间隔最大的分离超平面
Bootstraping
助法(Bootstraping)是一种模型验证(评估)的方法。其以自助采样法(Bootstrap Sampling)为基础,即有放回的采样或重复采样。
具体做法是:在含有 m 个样本的数据集中,每次随机挑选一个样本, 将其作为训练样本,再将此样本放回到数据集中,这样有放回地抽样 m 次,生成一个与原数据集大小相同的数据集,这个新数据集就是训练集=。这样有些样本可能在训练集中出现多次,有些则可能从未出现。原数据集中大概有 36.8% 的样本不会出现在新数据集中。因此,我们把这些未出现在新数据集中的样本作为验证集。把前面的步骤重复进行多次,这样就可以训练出多个模型并得到它们的验证误差,然后取平均值,作为该模型的验证误差。
Baggging 和Boosting都是模型融合的方法,可以将弱分类器融合之后形成一个强分类器,而且融合之后的效果会比最好的弱分类器更好。
Bagging和Boosting的区别(面试准备)
Bagging:
并行化聚合方法
从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;
对回归问题:计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
Boosting:
顺序化聚合方法
AdaBoosting
方式每次使用的是全部的样本,每轮训练改变样本的权重。下一轮训练的目标是找到一个函数f 来拟合上一轮的残差。当残差足够小或者达到设置的最大迭代次数则停止。Boosting会减小在上一轮训练正确的样本的权重,增大错误样本的权重。(对的残差小,错的残差大)
Bagging和Boosting的区别:
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
5)bagging减少variance,boosting减少bias
Bagging对样本重采样,对每一重采样得到的子样本集训练一个模型,最后取平均。由于子样本集的相似性以及使用的是同种模型,因此各模型有近似相等的bias和variance。
bagging后的bias和子模型接近
另一方面,若各子模型独立,则有
若各子模型完全相同,则
bagging方法得到的各子模型是有一定相关性的,属于上面两个极端状况的中间态,因此可以一定程度降低variance。希望模型能够具有更好的鲁棒性,也就是稳定性,希望避免过拟合,显然这就是在减少variance。
boosting从优化角度来看,是用forward-stagewise这种贪心法去最小化损失函数。boosting是在sequential地最小化损失函数,其bias自然逐步下降。但由于是采取这种sequential、adaptive的策略,各子模型之间是强相关的,于是子模型之和并不能显著降低variance。所以说boosting主要还是靠降低bias来提升预测精度。
https://blog.csdn.net/tyhj_sf/article/details/79932893
为什么需要激活函数?
如果没有激活函数,每一层节点的输入都是上层输出的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合这种情况就是最原始的感知机(Perceptron)了,那么网络的逼近能力就相当有限。
引入非线性函数作为激励函数,这样深层神经网络表达能力就更加强大(不再是输入的线性组合,而是几乎可以逼近任意函数)。
特点:
它能够把输入的连续实值变换为0和1之间的输出,特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1。完成二分类
缺点:
梯度消失
(初始权值小于1)和梯度爆炸
(初始权值 * 导数 > 1)。
特点:
同sigmod,在输入很大或是很小的时候,输出都几乎平滑,梯度很小,不利于权重更新。
改进:
tanh的输出区间是在(-1,1)之间,而且整个函数是以0为中心的
优点:
梯度消失
。缺点:
优点:
多分类
该元素的softmax值,就是该元素的指数与所有元素指数和的比值。该元素的softmax值,就是该元素的指数与所有元素指数和的比值。
混淆矩阵(confusion matrix)
True Positive(真正,TP):将正类预测为正类数
True Negative(真负,TN):将负类预测为负类数
False Positive(假正,FP):将负类预测为正类数误报 (Type I error)
False Negative(假负,FN):将正类预测为负类数→漏报 (Type II error)
缺点:
在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。
精确度(Precision)/ 查准率
被分为正例中 实际有多少正例的比例
召回率(Recall)/ 查全率
在所有正例中,有多少正例实际被分为正例
查准率和查全率往往互相矛盾,无法兼顾,所有需要同时考虑二者 --> F1 score,PR曲线。
F1 Score
包含了Precision和Recall的综合评价指标。越高越好
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。