深度学习 复习注意

1.梯度下降

梯度(Gradient):陡峭度,代价函数的导数,对抛物线而言即曲线的斜率。
梯度下降法:一种基于搜索的最优化方法,是训练神经网络的基本方法,它其实不是一个机器学习算法,但是在机器学习领域,许多算法都是以梯度下降法为基础的,它的主要作用是寻找目标函数的最优解。

主要原理:
1. 预测函数
深度学习 复习注意_第1张图片
2. 代价函数
代价函数就是损失函数,求损失函数的最小值。在这里插入图片描述
深度学习 复习注意_第2张图片
3. 梯度计算
机器学习的目标是拟合出最接近训练数据分布的直线,也就是找到使得误差代价最小的参数w,对应在代价函数图像上就是他的最低点。而寻找这个点的过程就是梯度下降法要干的活。
梯度对抛物线而言即曲线的斜率。
4. 学习率
学习率和**stride(步长)**性质差不多。
梯度下降对学习率的设定非常敏感。学习率设置太大会造成网络不能收敛,在最优值附近徘徊,也就是说直接跳过最低的地方跳到对称轴另一边,从而忽视了找到最优值的位置。
如果学习率设置太小,网络收敛非常缓慢,会增大找到最优值的时间,也就是说从山坡上像蜗牛一样慢慢地爬下去。虽然设置非常小的学习率是可以到达,但是这很可能会进入局部极值点就收敛,没有真正找到的最优解,换句话说就是它步长太小,跨不出这个坑。
深度学习 复习注意_第3张图片
5. 循环迭代
深度学习 复习注意_第4张图片
注:实际问题中,训练样本分布千奇百怪,代价函数也可能千变万化,不太可能是一条简单的抛物线。
代价函数也有可能是一条波浪线,当有多个最小点存在时,机器学习的目标是找到最低的那个,也就是全局最优,而不是局部最优。
代价函数也有可能是起伏不定的曲面,几维都有可能,但无论有多少维都可以通过梯度下降法来寻找误差最小的点。
6. 梯度下降算法
BGD:批量梯度下降,全部训练样本参与计算,保证算法的精准度,找到全局最优解。
但训练搜索过程变得很慢,代价很大。
SGD:随机梯度下降,每次只用一个样本进行计算,提升了计算速度,牺牲了精准度
MBGD:小批量梯度下降,也叫最速下降法,每次选用一小批样本进行计算,相对较快,相对精准。

2.最小二乘(平方)法


误差(测量值与真实值之间的)平方和最小–真值

最小二乘法通过最小化误差(真实目标对象与拟合目标对象的差)的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

最小二乘法同梯度下降类似,都是一种求解无约束最优化问题的常用方法,并且也可以用于曲线拟合,来解决回归问题。

与梯度下降法对比

最小二乘法跟梯度下降法都是通过求导来求损失函数的最小值, 首先它们都是机器学习中,计算问题最优解的优化方法,但它们采用的方式不同,前者采用暴力的解方程组方式,直接,简单,粗暴,在条件允许下,求得最优解;而后者采用步进迭代的方式,一步一步的逼近最优解。实际应用中,大多问题是不能直接解方程求得最优解的,所以梯度下降法应用广泛。

最小二乘法和梯度下降法在线性回归问题中的目标函数是一样的(或者说本质相同),都是通过最小化均方误差来构建拟合曲线。

最小二乘法只适用于线性模型(这里一般指线性回归);而梯度下降适用性极强,一般而言,只要是凸函数,都可以通过梯度下降法得到全局最优值(对于非凸函数,能够得到局部最优解)。梯度下降法只要保证目标函数存在一阶连续偏导,就可以使用。

损失函数:损失函数是计算预测值和真实值的一类函数。
激活函数:引入非线性函数作为激活函数,这样深层神经网络表达能力就更强大,不再是输入的线性组合,而是可以逼近任意函数。常见的有:sigmoid函数、softmax函数、tanh函数、Relu函数及其改进型(如Leaky-ReLU、P-ReLU、R-ReLU等)。

3.交叉熵

交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。

交叉熵在分类问题中常常与softmax(多分类,各种预测结果概率之和等于1)是标配,softmax将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失,交叉熵作为损失函数。

你可能感兴趣的:(深度学习)