深度学习入门~激活函数③

神经网络的激活函数

双曲正切函数tanh(x)

  • 之前我们使用的神经网络,一直选择sigmoid函数作为激活函数,但实际上,激活函数可以是任何函数。
    在这里插入图片描述
    使用双曲正切函数,它的表现比sigmoid函数更好。
    tanh(x)函数公式:
    在这里插入图片描述
    函数曲线:介于(-1,1),类似于sigmoid函数的平移版本。
    在这里插入图片描述
    使用tanh(x)的好处:
    ①函数图像过原点。(sigmoid函数的图像不过原点)
    ②收敛速度快于sigmoid函数。
  • 由于双曲正切函数介于(-1,1)之间,使用它作为激活函数好于sigmoid函数。因为使用它,激活函数的平均值更接近于0,让下一层的学习更方便。
  • 将双曲正切函数用于任何情况作为激活函数都是好的,除了将它用于输出层,因为如果y的真实值是二元分类的0或1,那么让y_hat介于0到1之间更为合理,此时使用sigmoid函数更合理。
  • sigmoid函数和tanh函数都有一个缺点,当Z很大或很小的时候,会使α十分接近1或-1,此时两个函数的斜率接近于0(以Logistic回归为例,改变参数W和b,Z的变化缓慢,导致y_hat - y的变化缓慢,降低梯度下降算法的速度),会降低梯度下降算法的速度。

ReLU函数-修正线性单元

  • ReLU函数公式:
    在这里插入图片描述
  • ReLU函数图像:
    在这里插入图片描述

激活函数的选择

  • 如果我们正在进行二元分类,理想的输出介于(0,1),那么使用sigmoid函数作为输出层的激活函数更理想。(除了用在二元分类问题中,其他情况下一定不要用)
  • tanh在任何场合下都比sigmoid函数更优越。
  • 而对于其他情况,使用ReLU函数已经变成激活函数的默认选择。如果不确定使用什么函数作为激活函数,那么就可以选择ReLU函数。
  • ReLU函数的一个缺点是,当Z<0时,ReLU函数的导数为0。在实践中,使用它仍然是没问题的。但ReLU函数还有另一个版本,叫带泄露的ReLU函数(Leaky ReLU)。
    在这里插入图片描述
    👆当Z小于零时,Leaky ReLU函数的斜率不为0。其函数表达式为:α = max(0,01z,z)

为什么神经网络需要非线性的激活函数?

如果仅仅使用线性激活函数,那么最后得到的输出,也会是输入的线性组合,在神经网络中一直在做的只是计算线性激活函数,这种情况下,不如将所有的隐藏层都去掉。

  • 基本上,在机器学习问题中,只有一种情况下会使用到线性激活函数,即在线性回归问题当中。比如说,预测房价,输出不是介于0到1,而是一个实数。
  • 神经网络中间的隐藏层不可以使用线性激活函数,它可以用ReLU、tanh、Leaky ReLU等进行激活。所以在正常的神经网络中,唯一可能用到线性激活函数的地方,通常就是输出层。 除了这种情况,使用线性激活函数非常罕见。

激活函数的导数

当对神经网络进行反向传播计算时,需要真实地计算激活函数的斜率或导数。

  • 以sigmoid函数为例:
    在这里插入图片描述
    sigmoid函数的表达式:
    在这里插入图片描述
    sigmoid函数关于z的到导数:dg(z)/dz = g(z)×(1-g(z)),于神经网络中还可以写作g'(z) = a × (1-a)
    如上,当sigmoid函数的参数z很大的时候,导数会很接近于0,相反如果z很小的时候,导数也会很接近于0,当z = 0时,导数为 1/4 。
  • 以tanh函数为例:
    在这里插入图片描述
    函数的导数g'(z) = dg(z)/dz = 1 - (tanh(z))^2。当z很大时,导数接近于0;当z很小时,导数也很接近于0。当z = 0时,导数为1。
  • 以ReLU和Leaky ReLU函数为例:
    在这里插入图片描述
    ReLU函数:g(z) = max(0,z)
    导数:g'(z) = 0,z < 0 ; g'(z) = 1,z>0。而z = 0处,ReLU函数不可导,可以令此处的导数为0。
    在这里插入图片描述
    Leaky ReLU函数:g(z) = max(0.01z,z)

神经网络的梯度下降法

  • 区分正向传播和反向传播:
    神经网络中的正向传播就是自输入矩阵X计算出输出A【2】,具体计算如下图:
    在这里插入图片描述

👆如果是一个二元分类问题,那么可以将g设置为σ函数。
未完待续。

已标记关键词 清除标记
相关推荐
<span style="font-size:16px;">"java大数据人工智能培训学校全套教材"系列课程由1000集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学校一次,完全可以找个java工程师的工作了。</span><br /> <br /> <span style="font-size:14px;"><span style="font-size:16px;">  通过学习卷积神经网络概述,为什么引入神经网络来做识别,判断,预测,</span><strong><span style="font-size:16px;">训练模型</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">激活函数</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">sigmoid激活函数</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">导数和切线</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">sigmoid激活函数如何求导</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">链式法则</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">梯度</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">梯度下降法与delta法则</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">BP(back propagation)误差逆传播神经网络</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">卷积到底有什么作用?如何做到特征提取</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">池化的名字由来</span></strong><span style="font-size:16px;">,</span><strong><strong><span style="font-size:16px;">dropout</span></strong></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">Anaconda Prompt的用法</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">Jupyter notebook的用法</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">Spyder的用法</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">建立安装Tensorflow所需的Anaconda虚拟环境</span></strong><span style="font-size:16px;">,</span><strong><span style="font-size:16px;">如何在Anaconda虚拟环境安装Tensorflow与Keras</span></strong><span style="font-size:16px;">概念等让大家对人工智能,卷积神经网络快速入门。</span></span><br /> <br /> <span style="font-size:16px;">课程特色:专业细致,偏案例,理论强。</span><br /> <br /> <span style="font-size:14px;"><span style="font-size:16px;">课程软件使用:</span><span style="font-size:14px;"><strong><span style="font-size:16px;">Anaconda,</span><span style="font-size:14px;"><strong><span><span style="font-size:16px;">Spyder,</span><span style="font-size:16px;"><strong><span style="font-size:16px;">Jupyter notebook</span></strong></span></span></strong></span></strong></span></span><br /> <br /> <span style="font-size:16px;">重要声明:</span><br /> <br /> <span style="font-size:16px;">1) 如果感觉噪音大,可以选择不用耳机,加音箱或用电脑原声 </span><br /> <br /> <span style="font-size:14px;"><span style="font-size:16px;">2) 既然我们的名字叫</span><span style="font-size:16px;">人工智能深度学习卷积神经网络入门</span><span style="font-size:16px;">,这个课程的特点就在于成本最低的, 让你最快速的,最容易的入门。</span><span style="font-size:16px;">人工智能深度学习卷积神经网络入门</span><span style="font-size:16px;">的最大的难点在于入门入不了,从而最终放弃。俗话说师傅领进门,修行在个人。只要入了门了,后面的事都好办。选课前,务必注意本章的学习目标和内容。想学更多,注意后边的课程。</span></span>
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页