Cousera - Deep Learning - 课程笔记 - Week 2

2018年9月版本

Week 2

二元分类 Binary Classification

  • 特征向量 n x n_x nx,或简写为 n n n
  • 二元分类的目标:针对一个输入x,预测对应输出y是1还是0。

逻辑回归 Logistic Regression

  • 基本思想:给定一个特征向量 X \bold{X} X,得到一个概率 y ^ = P ( y = 1 ∣ X ) \hat{y}=P(y=1|X) y^=P(y=1X)
  • 已知参数: X ∈ R n x ,    W ∈ R n x ,    b ∈ R X\in{\mathbb{R}^{n_x}} ,\; W\in{\mathbb{R}^{n_x}} ,\; b\in{\mathbb{R}} XRnx,WRnx,bR
  • sigmoid函数: σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+ez1,z很大时,这个值非常接近1;z很小时,这个值非常接近0;z=0,值为0.5。
  • 基本目标:学习W和b,使得 y ^ \hat{y} y^可以很好地估计y=1的概率。
  • 基本形式: y ^ = σ ( W T x + b ) ,    w h e r e    σ ( z ) = 1 1 + e − z \hat{y}=\sigma(\bold{W}^Tx+b),\;where\;\sigma(z)=\frac{1}{1+e^{-z}} y^=σ(WTx+b),whereσ(z)=1+ez1

代价函和损失函数 Loss Function & Cost Function

  • 传统的平方差函数容易使问题非凸,这使得梯度下降不能很好地应用。
  • 交叉熵损失函数 L ( y ^ , y ) = − ( y log ⁡ y ^ + ( 1 − y ) log ⁡ ( 1 − y ^ ) ) \mathcal{L}(\hat{y},y)=-(y\log{\hat{y}}+(1-y)\log(1-\hat{y})) L(y^,y)=(ylogy^+(1y)log(1y^))
  • 代价函数 J ( W , b ) = 1 m ∑ i = 1 m L ( y ^ ( i ) , y ( i ) ) = − 1 m ∑ i = 1 m [ y log ⁡ y ^ + ( 1 − y ) log ⁡ ( 1 − y ^ ) ] J(W,b)=\frac{1}{m}\sum\limits_{i=1}^{m}\mathcal{L}(\hat{y}^{(i)},y^{(i)})=-\frac{1}{m}\sum\limits_{i=1}^{m}[y\log{\hat{y}}+(1-y)\log(1-\hat{y})] J(W,b)=m1i=1mL(y^(i),y(i))=m1i=1m[ylogy^+(1y)log(1y^)]
  • 损失函数反映了单一的优化示例,损失函数反应的是你的参数代价。
  • 整体目标就是缩小J的整体代价。

梯度下降 Gradient Descent

  • 在逻辑回归中,各种初始化方式都有效(全零或者随机都可以)。
  • 梯度下降的基本过程以及学习率的相关知识可以参考机器学习的相应部分。
  • 基本公式为KaTeX parse error: No such environment: equation at position 7: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ …

导数 Derivatives

  • 交叉熵函数的导数 − y y ^ + 1 − y 1 − y ^ -\frac{y}{\hat{y}}+\frac{1-y}{1-\hat{y}} y^y+1y^1y
  • sigmoid函数的导数 y ^ ( 1 − y ^ ) \hat{y}(1-\hat{y}) y^(1y^)

计算图 Computation Graph

计算图于导数 Derivatives with a Computation Graph

  • 求导数的过程实际上是在计算图上的一次反向转播。
  • 简记J对过程中的某个变量var的导数为dvar。

逻辑回归梯度下降 Logistic Regression Gradient Descent

  • 对于一个训练样本(针对损失函数),简记公式为(假设有两个参数):KaTeX parse error: No such environment: equation at position 7: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ …
  • L对z的导数为a-y

m个样例上的梯度下降 Gradient Descent on m Examples

  • 在简单方法中,将会使用的两个for循环:
    • 对m个样本的代价函数和导数进行累加
    • 便利每一个特征的参数
  • 显示for循环会影响代码效率

向量化 Vectorization

  • 参照机器学习的向量化部分。
  • 逻辑回归的前向传播:
    • X ∈ R n x × m X\in{\mathbb{R}^{n_x\times{m}}} XRnx×m,即每一列都是一个样本的全部特征
    • Z = [ z ( 1 )    z ( 2 )    …    z ( m ) ] = W T X + b Z=[z^{(1)}\;z^{(2)}\;\ldots\;z^{(m)}]=W^TX+b Z=[z(1)z(2)z(m)]=WTX+b
    • A = [ a ( 1 )    a ( 2 )    …    a ( m ) ] = σ ( Z ) A=[a^{(1)}\;a^{(2)}\;\ldots\;a^{(m)}]=\sigma(Z) A=[a(1)a(2)a(m)]=σ(Z)
  • 反向传播:
    • d Z = A − Y = [ a ( 1 ) − y ( 1 )    a ( 2 ) − y ( 2 )    …    a ( m ) − y ( m ) ] dZ=A-Y=[a^{(1)}-y^{(1)}\;a^{(2)}-y^{(2)}\;\ldots\;a^{(m)-y^{(m)}}] dZ=AY=[a(1)y(1)a(2)y(2)a(m)y(m)]
    • d b = 1 m s u m ( d Z ) db=\frac{1}{m}sum(dZ) db=m1sum(dZ)
    • d W = 1 m X d Z T dW=\frac{1}{m}XdZ^T dW=m1XdZT
    • W : = W − α d W W:=W-\alpha{dW} W:=WαdW
    • b : = b − α d b b:=b-\alpha{db} b:=bαdb

Python 中的广播 Broadcasting

  • 针对逐个元素的加减乘除操作
  • 对一个 m × n m\times{n} m×n矩阵,后者是一个 m × 1 m\times{1} m×1矩阵,那么后者将会按列复制n次确保维数相同
  • 对一个 m × n m\times{n} m×n矩阵,后者是一个 1 × n 1\times{n} 1×n矩阵,那么后者将会按行复制m次确保维数相同
  • 对一个 m × n m\times{n} m×n矩阵,后者是一个 1 × 1 1\times{1} 1×1矩阵(也就是一个实数),那么后者将会按列复制 m × n m\times{n} m×n次确保维数相同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值