zoukankan      html  css  js  c++  java
  • 神经网络的前向后向及更新

    前向目的:得到输出值 \small y_{}^{*}(即\small a^{L}

    后向目的:得到dz,dw,db(此处都是指dL/d...,损失函数对对应项的微分),进而得到梯度更新。(其中由于链式法则,dz,dw,db中都有y项)

    权重w(a,b): 维度a指本层的神经元个数,维度b指输入层X特征向量包含元素个数。

    a=\small \varphi(z), a:active function.

    程序实现时:每一个样本可以使用矩阵运算代替for循环,但是样本间的迭代还是需要for循环。

    当|z|很大时,激活函数的梯度很小,因此在这个区域内,梯度下降算法运行得很慢。实际应用中应尽量避免z落在这个区域,应使|z|尽可能限定在零值附近,从而提高梯度下降算法运算速度。因此ReLU激活函数出现了(缺点:Z<0,梯度为0),以及改进的Leaky ReLU函数。(因此在应用sigmoid函数或tanh函数,权重初始化时乘上一个小数如0.01)

    如果是分类问题:一般隐藏层采用ReLU激活函数或Leaky ReLU函数,输出层采用sigmoid函数。

    如果激活函数采用线型激活函数:则最终输出值依然是变量X的线性组合,神经网络与直接使用线性模型就没什么不同了。因此隐藏层必须是非线性的。(回归预测y连续值问题:输出层可以使用线性激活函数)

    权重必须随机初始化:如果全部初始化为0,则每个神经元的权重完全相同,隐藏层设置多个神经元失去意义。

    但是参数b可以全部初始化为0.

  • 相关阅读:
    第八篇:Vue组件传参
    第七篇:Vue的路由逻辑跳转
    第六篇:组件数据局部化处理
    第五篇:Vue项目的初始化
    第四篇:Vue的项目开发
    第三篇:Vue指令
    第二篇:Vue实例成员
    第一篇:Vue基础
    第六篇:js对象,类和函数补充
    AngularJS之jeDate日期控件基本使用
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725341.html
Copyright © 2011-2022 走看看