[机器学习] Coursera ML笔记

来源:互联网 发布:网络电视直播软件2017 编辑:程序博客网 时间:2024/05/01 21:22

前言

  本文是Neural network - Learning笔记的补充,给出了神经网络的标准梯度下降算法,欢迎大家讨论。

  我在学习神经网络过程中的笔记共分为以下几个部分:
  Neural network - Representation:神经网络的模型描述 ;
  Neural network - Learning:神经网络的模型训练;
  Neural network - Learning:标准梯度下降法;
  Neural network - Code:神经网络的代码实现。

  在阅读这部分笔记之前,请先阅读《[机器学习] Coursera ML笔记 - 神经网络(Representation)》和《[机器学习] Coursera ML笔记 - 神经网络(Learning)》这两篇笔记,以了解神经网络的模型描述,激活函数,前向传播、反向传播、参数优化等基础知识。
  
  

神经网络的标准梯度下降法

  神经网络的关键是如何训练权重模型,在基于sgd的优化策略中,训练的关键是如何计算梯度。利用反向传播算法可以证明,无论损失函数(loss function)和激励函数(activation function)是什么,神经网络的梯度下降法在数学抽象形式上都是一致的。
  下面给出我总结的标准梯度下降计算规则。

  1. Deign network structure
  2. Randomly initialize weights
  Repeat {
    3. Perform forward propagation to compute a^((l))
    4. Perform back propagation to compute δ^((l))
      For each unit i in layer =L , set:
      

这里写图片描述

      For each unit i in layer =L-1,L-2,L-2,…,2 , set:
      
这里写图片描述
      
    5. Compute gradient:
    
这里写图片描述

    6. Update weight:
    
这里写图片描述

    7. Check: convergence? Or max iterations?
  } 
  

  向量化计算版本:
  1. Deign network structure
  2. Randomly initialize weights
  Repeat {
    3. Perform forward propagation to compute a^((l))
    4. Perform back propagation to compute δ^((l))
      For each unit i in layer =L , set:
      

这里写图片描述
      
      For each unit i in layer =L-1,L-2,L-2,…,2 , set:
      
这里写图片描述
      
    5. Compute gradient:
    
这里写图片描述

    6. Update weight:
    
这里写图片描述

    7. Check: convergence? Or max iterations?
  }   
  
  
  供大家参考,欢迎批评指正交流!
  后续文章会整理UFLDL-反向传播算法的笔记,会给出在不同loss function情况下的偏导数推导,可以看到,神经网络是很神奇的,可以看作是一种计算规则,无论损失函数(loss function)和激励函数(activation function)是什么,都可以归纳到一个统一的计算规则下!十分方便!也许这也是很多人批评深度学习缺少数学的原因吧!
  

原创粉丝点击