zoukankan      html  css  js  c++  java
  • 《Andrew Ng深度学习》笔记4

    浅层神经网络

    1.激活函数

    在神经网络中,激活函数有很多种,常用的有sigmoid()函数,tanh()函数,ReLu函数(修正单元函数),泄露ReLu(泄露修正单元函数)。它们的图形如下:

    sigmoid()激活函数,范围是y属于{0, 1},所以0<= y <=1。但是sigmoid函数平均收敛是1,最后的效果可能不太好。

    在这个基础上有了tanh激活函数。图形如下:

    主要是把sigmoid函数平移得到的。但是这样会有了优化,最终的平均收敛值为0,训练效果更好。所以在实际中,一般是选用tanh代替sigmoid激活函数。

    常用的还有ReLu激活函数图形如下。

    ReLu激活函数的升级版是泄露ReLu激活函数,图形如下:

    通过常用激活函数的对比,在实际中调参数的时候,还要结合交叉验证来选择最优的参数。

    2.非线性激活函数

    线性激活函数就是输入线性关系输出。一半输出层是线性激活函数。但是在隐藏层单元中如果要实现复杂的神经网络要用到非线性激活函数,所以不是简单的相加,相减等关系。

    3.激活函数的导数

    sigmoid函数的导数如下。通过图形和计算得知,sigmoid函数用在神经网络中,学习速度有最大值和收敛值,而且平均收敛值是1。 

    tanh函数的导数如下。通过图形和计算得知,tanh函数通过sigmoid函数平移得到,虽然学习速度基本一样,但是最终的平均收敛值不一致,tanh是0,因此,最终的模型学习效果更好。 

    ReLu函数的导数如下。通过图形和计算得知,ReLu函数的学习速度没有收敛值,不会随着输入特征的维度增大而减低,因此,在实际中,ReLu激活函数使用很广泛。 

    4.随机初始化

    随机初始化在神经网络中很重要,有时候如果初始化参数取不对,会造成没有学习效果,因此在初始化神经网络的参数时,需要通过计算来确定大概的初始化参数。有一个方法是随机初始化。

  • 相关阅读:
    汉诺塔问题
    opencv 增强现实(二):特征点匹配
    opencv 增强现实(一):特征点检测
    opencv 边缘检测原理
    opencv 图片旋转
    opencv 图片位移
    opencv 图片剪切
    opencv 图片缩放
    opencv 仿射变换
    opencv图像融合(大头)
  • 原文地址:https://www.cnblogs.com/liangjf/p/8455844.html
Copyright © 2011-2022 走看看