大蜕

Coursera 第一阶段第二课总结

binary-classification 二元分类

  • 深度学习在进行m个训练集计算的时候,其实并不需要使用for循环
  • 神经网络的计算过程分为:正向传播反向传播两个分开的过程
  • 该课程主讲逻辑回归:用于二元分类的算法
  • 识别猫咪的图片
    • RED GREEN BLUE 三个像素值矩阵
    • 定义一个X的向量矩阵成为特征向量
  • 在二元分类问题中, 目标是训练出一个分类器
    • 输入: 上面的X
    • 输出: 结果标签Y:1|0

logistic-regression 逻辑回归

  • 是一个学习算法: 用在监督学习问题中, 用于二元分类问题
  • 输出Y’值更像是一个概率, 趋近于1的[0, 1)
  • 参数是w, n_x维向量, b是一个实数 这个公式??不太合理, 因为我们希望Y’[0, 1)区间之内
  • sigmoid函数出场了

logistic-regression-cost-function 逻辑回归损失函数

  • 为了训练wb, 你需要定义一个成本函数
  • 训练样本m
  • 损失函数(误差函数)用来衡量算法运行情况
  • 函数不太合适的话, 会有优化问题, 会造成多个局部最优解, 那么运用梯度下降法会找不到全局最优解
  • 损失函数是针对单个训练样本
  • 成本函数是在全体训练样本上的表现

gradient-descent 梯度下降法

  • 用梯度下降法来训练或者学习训练集的w, b
  • w其实是可以为高维
  • 任意初始值都可以, 一般用0, random也可以但一般不用因为函数是凹的. 所以不论初始值是多少都应该能到达同一点
  • 通过迭代朝最陡的下坡方向走一步
  • 导数(斜率)就是针对w的导数, 即对参数w更新或者变化量
  • α是学习率, 以后会学习, 它控制每一次迭代, 也可称作步长

derivatives 导数

  • 微积分 导数
  • 对于一条直线 斜率永远都一样

computation-graph 流程推导图

  • 一个神经网络的计算都是按照正向或者反向过程传输操作
  • 反向一般用来计算对应的梯度或者导数
  • 这个视频的流程图解释了正向反向
  • 从左向右可以计算出函数J的结果
  • 从右往左是计算导数的最自然的方式, 下个视频介绍

derivatives-with-a-computation-graph 流程推导图的导数计算

  • 计算出函数J的导数
  • 首先 计算Jv的导数, 也就做完了一个反向步
  • 计算函数J对变量a的导数, 即a的改变量
  • 计算函数J对变量u的导数

logistic-regression-gradient-descent 逻辑回归的梯度下降法

  • 怎样通过计算偏导数来实现逻辑回归的梯度下降算法
  • 核心关键: 记住相关的几个重要公式来实现上面的算法
  • 用流程图计算逻辑回归的梯度下降, 虽然大材小用但能更清晰的理解神经网络
  • 链式法则 微积分

gradient-descent-on-m-examples m个样本的梯度计算

  • m个训练样本
  • 记住逻辑回归的重要公式
  • 初始化0, 循环m个求和
  • 显式for低效
  • 向量化技术摆脱显式for循环, 在深度学习发展初期表现很棒, 可大大加速运算效率
  • 深度学习里的向量化技术相当重要, 因为数据集越来越大, 需要高效的解决方案
  • 甚至一个for都不需要

相关链接: 网易云课堂-神经网络和深度学习 Coursera