1.先抛开什么神经,深度之类的不好理解的东西。

回想一下,我们是要用这个东西干什么?
答案很简单,有两种问题————对应两种模型
模型分类:回归模型和分类模型
回归模型:预测连续值,是多少的问题。北京房价是多少?食堂阿姨给我盛饭是多少?
分类模型:预测离散值,是不是的问题。这个背影是不是帅哥?这个人是不是喜欢我?

1++ **函数在深度学习中是用来干什么的?

先说下卷积层,学深度学习的应该都是知道卷积层的,那卷积层具体指什么呢?其实卷积层就是我们所做的一大堆特定的滤波器,该滤波器会对某些特定的特征进行强烈的响应,一般情况下是结果值非常大。而对一些无关特性,其响应很小,大部分是结果相对较小,或者几乎为0。这样就可以看做为**,当特定卷积核发现特定特征时,就会做出响应,输出大的数值,而响应函数的存在把输出归为0~1,那么大的数值就接近1,小的数值就接近0。因此在最后计算每种可能所占比重时,自然大的数值比重大。

2.我们说下分类问题

我们想要把一个二维图分成几类,我们之前是怎么做的?
神经网络,深度学习,为什么要用**函数?????
画一条直线,这个问题还是比较简单,一条直线解决不了两条就可以了。
神经网络,深度学习,为什么要用**函数?????
这就是我们的一个没有**函数的网络,可以看出该网络是x1和x2的线性组合,
神经网络,深度学习,为什么要用**函数?????
神经网络,深度学习,为什么要用**函数?????
你可能会说了,那再加一层呢??
再加一层变为y=w11(w1x1+w2x2+b)+w22(w1x1+w2x2+b)+b
请拆开看一下——————是不是还是线性的?这样就严重影响了我们分类的效果,我们根本无法解决非线性问题。

3.那么加上**函数(activation function)就不一样

**函数其实是对应到生物学上的定义,**状态为有信号,非**状态为无信号。然而对应到这里的**函数,其实就有些变质了,如果还在想着**为1,非**为0,那么是无法理解神经网络中的**函数的。
神经网络的**函数其实是将线性转化为非线性的一个函数,并非只是简单地给予0,或者给予1。
神经网络,深度学习,为什么要用**函数?????
神经网络,深度学习,为什么要用**函数?????
神经网络,深度学习,为什么要用**函数?????
1.对于分类问题,当然0,1就可以解决问题了,而且可以看出我们的结果也只有0~1,那想让y输出是其他呢?答案肯定是有的,先看下边**函数
神经网络,深度学习,为什么要用**函数?????神经网络,深度学习,为什么要用**函数?????
Sigmoid 非线性映射实数到[0,1]区间,右:tanh非线性映射实数到[-1,1]区间
这两种方法都有梯度消失的缺点
网上也会有很多人说——在靠近最大值和最小值时,梯度近似为0

要想解决这个问题我们需要一个问题一个问题来入手
梯度是什么?
梯度是损失函数对w的求导
为什么是这个?
因为我们需要让我们的预测结果接近真实的结果,而我们的损失函数是什么?
损失函数是(实际值-预测值)的均方差。
那么调整什么会对预测结果造成影响?
调整y=f(wx+b)的w,b,一般情况下会有这种写法:
神经网络,深度学习,为什么要用**函数?????
这是一种说法,另一种更为具体的是需要谁,就对谁求导。
神经网络,深度学习,为什么要用**函数?????
这里也可以看出来加了一个1/2,目的是在求导时候与导数的2相抵消。而前面的α是学习速率,只是一个系数,这里不着重强调了,有专门关于这个的讲解的文章。
这里提一下,为什么学习速率太大就会导致不收敛呢,梯度一直在减小的,那么梯度学习速率不是也减小了吗?
听我说吧,不是这样的,梯度确实应该随着迭代减小,可是……学习速率过大,梯度下降都困难
神经网络,深度学习,为什么要用**函数?????
从上边也可以看出,我们求导主要还是针对了**函数,当我们的结果越来越趋向于最终结果时,很有可能进入函数的饱和区,也就是s型函数近似为平行线的区域,这时我们的求解即使没有达到最优,我们的迭代也不再变化了。
这里在深度学习中还有两个概念梯度消失和梯度爆炸。
下面图片为引用,引用博客在图上
神经网络,深度学习,为什么要用**函数?????
sigmoid,梯度消失就会很明显了,梯度不大于0.25
神经网络,深度学习,为什么要用**函数?????
tanh比sigmoid要好一些,但是它的倒数仍然是小于1的
神经网络,深度学习,为什么要用**函数?????

ReLU

神经网络,深度学习,为什么要用**函数?????
f(x)=max(0,x)
把小于0的x全部移动到0
ReLU 得到的SGD的收敛速度会比 sigmoid/tanh 快很多,不过假如你的learning rate 很大,那么很有可能你网络中的40%的神经元都”dead”了。
ReLU梯度为1,只有一边又饱和的问题,因此其梯度能在深度网络中传递。这很好地解决了上面曲线**函数的梯度消失和梯度爆炸的问题,因此被广泛应用在深度学习中。
ReLU同时引入了稀疏的特性(人类在判断问题时,往往会直接去掉一大部分的无用信息),ReLU完全把小于0的项全部取0。

相关文章:

  • 2022-12-23
  • 2021-06-21
  • 2021-09-15
  • 2021-12-25
  • 2021-11-06
  • 2021-05-20
  • 2021-04-22
  • 2021-09-06
猜你喜欢
  • 2021-08-08
  • 2021-12-15
  • 2021-10-12
  • 2021-10-11
  • 2022-01-07
  • 2021-06-07
  • 2021-12-08
相关资源
相似解决方案