神经网络(四)—— 梯度下降和Tensorflow简介

本系列为慕课网《深度学习之神经网络(CNN/RNN/GAN)算法原理+实战》视频笔记,希望自己能通过分享笔记的形式更好的掌握该部分内容。
往期回顾:
神经网络(一)—— 机器学习、深度学习简介
神经网络(二)—— 神经元、Logistic回归模型
神经网络(三)—— 神经元多输出

神经网络训练

由于需要求解的参数众多、约束条件是数据,所以不能用直接求解的方式计算神经网络参数。

  • 下山算法:找到方向→走一步→找方向→走一步→···

在神经网络中有一个类似的算法:梯度下降算法
θ=θαL(x,y)θ\theta=\theta-\alpha\frac{\partial L(x,y)}{\partial \theta}
其中θ\theta是参数,α\alpha是学习率。整体的思路就是找到使损失函数下降最快的方向更新参数。
神经网络(四)—— 梯度下降和Tensorflow简介
在这一步,α\alpha是一个很重要的参数。α\alpha如果过大,会导致Loss上升,举个例子,一个人从太行山下山,结果步子过大,走到了喜马拉雅山。α\alpha如果过小,则下山速度太慢。α\alpha虽然不是特别大,但还是大了些,它始终走不进去往山底的小路。只有适合的α\alpha才能更好更快的走到最低点。

Tensorflow基础

Tensorflow介绍

  • Google Brain的第二代机器学习框架
  • 开源社区活跃
  • 可扩展性好
  • API健全,对用户友好

计算图模型

  • 命令式编程
    神经网络(四)—— 梯度下降和Tensorflow简介
  • 声明式编程
    神经网络(四)—— 梯度下降和Tensorflow简介
    它的计算图是:
    神经网络(四)—— 梯度下降和Tensorflow简介
    为什么要介绍计算图?由于神经网络的结构是定义好的,而x是用户输入的,所以定义神经网络的时候并不知道数据是什么,需要使用计算图。
    神经网络(四)—— 梯度下降和Tensorflow简介