一,梯度的概念
1.什么是梯度
2.梯度下降算法
3.影响梯度下降算法的因素
①初始值
如果初始值一开始就在全局最小点的附近,那么利用梯度下降算法得到最小值的速度就会很快
②学习速率
学习速率过小会导致算法速度慢,学习速率过大又会导致如下的情况
③局部最小点
图中红色标注的部分为局部最小点,如果点从蓝色的地方开始,进行梯度下降算法,那么它很有可能会被困在局部最小点,最终返回的结果也不是我们要的全局最小点
当进入局部最小点的时候,它移动的方向是惯性向量和梯度下降算法的向量叠加起来的结果,就有可能会利用惯性冲出局部最小点
④鞍点
如图所示,该点在x维度上是极小值,在y维度上是极大值,这种点称为鞍点
鞍点是极难处理的,梯度下降的过程很有可能就会被困在鞍点,尤其是维度比较多的时候
二,常见的激活函数及其梯度
1.激活函数的引入
生物学家在研究青蛙的神经元的时候,会发现它的输入和输出不是简单的线性叠加,而是
当输入达不到某一个阈值的时候,就没有输出,当输入超过某个阈值的时候,输出也不会再变大了
2.Sigmoid激活函数
①它的方程和图像
②它的梯度推导过程
③它的优点
把值域限制在了0到1之间,而很多实际问题都需要把值域限制到0到1之间,比如概率,或者图片的RGB表示
④它的缺点
会发现,当它无线趋近于0或1时,它的梯度会变得极小,这样在进行梯度下降算法的时候,会下降不动,也就是梯度弥散现象
⑤它的用法
3.Tanh激活函数
①它的函数以及图像
②它的梯度推导
③它的优缺点
它的优缺点与sigmoid一样,因为就是由sigmoid推导过来的
④它的使用
4.relu函数
①它的函数以及图像
②它的优点
relu是最适合深度学习的激活函数,梯度也是恒定的,很适合梯度下降算法
③它的应用
三,常见的损失函数及其梯度
1.常见的两种损失函数
2.Mean Squaared Error,就是平方差
①它的公式以及与norm的关系
②它的梯度
③mse_loss函数以及两种自动求导的方式
可以利用torch.autograd.grad(tensor mse,[w1,w2...])进行求导
其中第一个参数是对哪个式子进行求导,第二个参数是一个列表,代表对哪些权值进行求偏导
但是,如果在上面的式子中,如果直接对w求grad是会报错的,因为w在创建的时候并没有设置他可以求导,因此需要下面的步骤来设置让w变成可以求导的
这种方法不会返回任何东西,它会自动把式子里设置的可以求导的权值都给求导了,然后后续可以用w.grad进行查询
3.Cross Entropy Loss损失损失函数
由于cel会在后续讲解,这就主要记录它的激活函数softmax
softmax函数的性质
以上这三条性质特别适合应用于分类问题的输出,这样分类问题的输出经过softmax函数之后可以直接表示为各个标签的概率