《Neural Networks and Deep Learning》第二周学习笔记-逻辑回归

《Neural Networks and Deep Learning》第二周学习笔记

这节课复习神经网络编程基本知识,以逻辑回归算法为例,训练数据时不会采用for循环方法

逻辑回归

1. 二进制分类

图片二元分类问题-可爱的小猫,1=猫,0不是猫,首先介绍图片识别的数据格式,图片被分为红、绿和蓝三个通道,假定每个通道的像素点为64*64,将矩阵中的像素值展开为向量 x x x作为算法输入,定义一个数据输入格式
一个通道 x x x的输入
x 1 . . . x n \begin{matrix} x_1\\ ... \\ x_{n}\\ \end{matrix} x1...xn此时输入向量的维度 n x = 64 ∗ 64 ∗ 3 = 12288 n_x=64*64*3=12288 nx=64643=12288

神经网络的输入格式:
单个样本表示为 ( x , y ) (x,y) (x,y) x ∈ R n x , y ∈ 0 , 1 x\in{R^{n_x}},y\in{{0,1}} xRnxy0,1
m m m个训练数据, n n n维,样本可表示为 ( x ( 1 ) , Y ( 1 ) ) , ( x ( 2 ) , Y ( 2 ) ) . . . , ( x ( m ) , Y ( m ) ) (x^{(1)},Y^{(1)}),(x^{(2)},Y^{(2)})...,(x^{(m)},Y^{(m)}) (x(1),Y(1)),(x(2),Y(2))...,(x(m),Y(m))
将x^1放入第一列,同时有 n x n_x nx
x输入格式为
x 11 . . . x 1 m . . . . . . . . . x n 1 . . . x n m \begin{matrix} x_{11} & ... & x_{1m} \\ ... & ... &...\\ x_{n1} & ... & x_{nm} \\ \end{matrix} x11...xn1.........x1m...xnm
python中输出X.shape= ( n x , m ) (n_x,m) nx,m ,Y.shape= ( 1 , m ) (1,m) (1,m)

2. 逻辑回归

模型输出的是输入x对应的类别的概率
线性回归中输出与参数 ω \omega ω b b b有关
y ^ = ω T x + b \hat y=\omega^Tx+b y^=ωTx+b
为了使概率有意义,对方程使用sigmoid,使其范围在(0,1)内
y ^ = s i g m o i d ( ω T x + b ) \hat y=sigmoid(\omega^Tx+b) y^=sigmoid(ωTx+b)
为了方便矩阵表示,部分研究中定义 x 0 = 1 , y ^ = θ T x x_0=1,\hat y =\theta^Tx x0=1,y^=θTx

3. 逻辑回归成本函数

利用损失函数查找参数
这部分介绍了两个概念:
损失函数:针对单个样本而言,描述每个样本预测值与真实值的差距,有多种描述方式: L ( y ^ , y ) \mathcal{L}(\hat y,y) L(y^,y)
通常表示为: L ( y ^ , y ) = − ( y l o g ( a ) + ( 1 − y ) l o g ( 1 − a ) ) \mathcal{L}(\hat y,y)=-(ylog(a)+(1-y)log(1-a)) L(y^,y)=(ylog(a)+(1y)log(1a))
代价函数 :针对样本集,描述整体预测值与标签的差距,通常取其均值
J ( ω , b ) = 1 m ∑ i = 1 m L ( y ^ , y ) J(\omega,b)={1\over m}\sum_{i=1}^m \mathcal{L}(\hat y,y) J(ω,b)=m1i=1mL(y^,y)

4. 梯度下降

模型更优秀 == 预测值与真实值更接近 == 损失函数更小 == 寻找最优参数 ω \omega ω b b b
梯度下降:利用微分方程计算极值的方法,假设数据为凸数据,通过导数可以确定最佳前进方向,数据每次会如下更新
ω : ω − α d J ( ω , b ) d ω \omega:\omega-\alpha {dJ(\omega,b)\over d\omega} ωωαdωdJ(ω,b)
b : b − α d J ( ω , b ) d b b:b-\alpha {dJ(\omega,b) \over db} bbαdbdJ(ω,b)

5. 导数

y = x y=x y=x函数为例,介绍导数:即 Δ y Δ x {\Delta y\over \Delta x} ΔxΔy,因变量增量与自变量增量的比值

6. 偏微分实例

y = x 2 y=x^2 y=x2为例,介绍 x x x不同时,导数不同的函数

7. 计算图

J ( a , b , c ) = 3 v = 3 ( a + u ) = 3 ( a + b c ) J(a,b,c)=3v=3(a+u)=3(a+bc) J(a,b,c)=3v=3(a+u)=3(a+bc)为例,直观的展示前向传播和反向传播流程:

u = b c − > v = a + u − > J = 3 v u=bc->v=a+u ->J=3v u=bc>v=a+u>J=3v

8. 基于计算图的导数

基于链式法则的反向传播
d J d a = d J d v ∗ d v d a {dJ \over da}={dJ \over dv}*{dv\over da} dadJ=dvdJdadv
d J d b = d J d v ∗ d v d u ∗ d v d b {dJ \over db}={dJ \over dv}*{dv\over du}*{dv \over db} dbdJ=dvdJdudvdbdv
d J d c = d J d v ∗ d v d u ∗ d v d c {dJ \over dc}={dJ \over dv}*{dv\over du}*{dv \over dc} dcdJ=dvdJdudvdcdv

9. 逻辑回归梯度下降

逻辑回归方程为:
z = ω T x + b z=\omega^T x+b z=ωTx+b
y ^ = a = σ ( z ) \hat y=a=\sigma(z) y^=a=σ(z)
L ( a , y ) = − ( y l o g ( a ) + ( 1 − y ) l o g ( 1 − a ) ) \mathcal{L}(a,y)=-(ylog(a)+(1-y)log(1-a)) L(a,y)=(ylog(a)+(1y)log(1a))
逻辑回归导数为:
求最小 L ( a , y ) \mathcal{L}(a,y) L(a,y),通过链式法则计算最小的 ω T 、 b \omega^T 、b ωTb

10. 梯度下降实例

针对单个样本,需要双重循环:
for 样本从 1... m 1...m 1...m
  for所有特征 x 1 、 x 2 x_1、x_2 x1x2:
z ( i ) = ω T x ( i ) + b z^{(i)} =\omega^Tx^{(i)} +b z(i)=ωTx(i)+b
a ( i ) = σ ( z ( i ) ) a^{(i)}=\sigma(z^{(i)}) a(i)=σ(z(i))
L ( a ( i ) , y ( i ) ) = − ( y ( i ) l o g ( a ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − a ( i ) ) ) \mathcal{L}(a^{(i)},y^{(i)})=-(y^{(i)}log(a^{(i)})+(1-y^{(i)})log(1-a^{(i)})) L(a(i),y(i))=(y(i)log(a(i))+(1y(i))log(1a(i)))
d z ( i ) = a ( i ) − y ( i ) dz^{(i)}=a^{(i)}-y^{(i)} dz(i)=a(i)y(i)
d ω 1 ( i ) + = x 1 ( i ) d z ( i ) d\omega_1^{(i)}+=x_1^{(i)}dz{(i)} dω1(i)+=x1(i)dz(i)
d ω 2 ( i ) + = x 2 ( i ) d z ( i ) d\omega_2^{(i)}+=x_2^{(i)}dz{(i)} dω2(i)+=x2(i)dz(i)
d b + = d z ( i ) db+=dz^{(i)} db+=dz(i)
问题:大量样本需要大量的计算力,矢量化可以提高效率,减少甚至避免循环时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值