您的位置:首页 > 理论基础 > 计算机网络

吴恩达Deeplearning.ai专项课程笔记(一)-- 神经网络基础

2017-11-02 18:42 681 查看

  吴恩达深度学习专项课程Deeplearning.ai共开设五门课,目前已经学了大半,想起来忘了整理课程笔记,这几天抽空补上。

1.基础概念

神经网络 :输入一些数据,经过隐藏层,最终得到输出,圆形节点为神经元。

 


神经网络样例 :(标准神经网络/卷积神经网络/循环神经网络)

  

 

结构化数据与非结构化数据 :结构化数据通常指数据库数据(每个特征都有清晰定义),非结构化数据如音频、原始音频、图像、文本等。

2.Logistic回归(二分类)

特征向量构建

exm.图像特征向量的提取,把每个像素上的RGB数值(假设共nx个)提取出来排列入一个向量中,就得到一个nx维的特征向量;

  


  

深度学习符号约束

1.样本:

  对(x,y)表示一个单独样本,其中x为nx维特征向量,y∈{ 0,1} (二分分类)。

  

2.训练集:

  对于训练集中的单个样本,用圆括号加上标进行标注,如:(x(1),y(1)),(x(2),y(2)),…(x(m),y(m)) 其中m表示训练集样本个数,即:m=Mtrain。

  

3.矩阵符号约束:

  训练集矩阵X的约定形式,将样本横向排列,写成矩阵X的列,因此矩阵维度为(nx,m),输出矩阵Y的约定形式,将样本对应标签依旧横向排列,写成矩阵Y的列,因此输出矩阵维度为(1,m)。



 

logistic回归

  对于单个样本x,其正确标签值为y,通过logistic回归得到的预测值记为y^=P(y=1|x)(读作y hat或y帽),对应参数分别为ω,b。其中ω维数同x,为一个nx维向量,b为实数。

  给定样本x(i),logistic回归公式为:       

          y^(i)=σ(ωTx(i)+b),z(i)=ωTx(i)+b

  激发函数sigmoid函数控制y^的值在0与1之间,函数公式为σ(x)=11+e−x,函数图像如下图所示。

    


  损失函数(也叫误差函数),用于衡量预测值与实际值间的接近程度,其定义方法有多种,如L2范数平方均值等,在Logistic回归中,定义损失函数L为:

          L(y^,y)=−(ylog(y^)+(1−y)log(1−y^))

  损失函数L基于单个样本定义,衡量模型在单个训练样本上的表现,针对整个训练集,采用成本函数J(cost function)衡量基于参数的总成本。  

    1m∑mi=1L(y^(i),y(i))=−1m∑mi=1[y(i)log(y^(i))+(1−y(i))log(1−y^(i))]

  目标:找到合适的参数ω,b,使成本函数值降到最低。

  

梯度下降

  目标:学习使成本函数尽可能小的参数ω,b

  方法:首先初始化ω,b,然后进行沿最陡的下坡方向下降,直至抵达最低点(收敛到全局最优解或接近全局最优解)

  公式:ω=ω−αdJ(ω)dω, α为学习率,也称为每次下降的步长,而梯度可以理解为函数曲线/曲面的方向。

 1.单个样本的梯度下降

  由于单个样本而言,损失函数为:

      l(y^(i),y(i))=−(y(i)log(y^(i))+(1−y(i))log(1−y^(i)))

  其中:z(i)=ωTx(i)+b, y^(i)=σ(z(i))

  dldz=−(y(i)1σ(z)σ(z)(1−σ(z))+(1−y)11−y^(i)σ(z)(σ(z)−1))  

  化简结果为:σ(z)−y(i)

  →dldω=dldzdzdω=(σ(z)−y(i))x(i)

  →dldb=dldzdzdb=σ(z)−y(i)=dldz

 2.m个样本的梯度下降

  对成本函数L(ω,b)=1m∑mi=1l(y^(i),y(i)):

  →dLdω=1m∑mi=1(σ(z)−y(i))x(i)

  →dLdb=1m∑mi=1(σ(z)−y(i))

  

3.向量化

  在实际编程过程中,由于在训练大数据集时,采用显式for循环导致程序运行时间复杂度过高。采用向量化的方法将消除显式for循环,加快代码运行速度。

  

  1、举例

  调用numpy包,实现逻辑回归的乘法部分:z=np.dot(ω.T,x)

  对向量v中每个元素做指数运算:np.exp(v)

  对向量v中每个元素做对数运算:np.log(v)]

  将向量v中每个元素变为绝对值:np.abs(v)

  求v中每个元素和0相比的最大值:np.maximum(v,0)

  对向量v中所有元素求和:np.sum(v)

  

  2、logistic回归中向量化的实现

  初始化:

    参数ω初始化:ω=np.random.rand((nx,1)),维度为(nx,1)

    参数b初始化,b=0,numpy的广播机制将在计算时扩充b的维度为(nx,1)

    训练集矩阵:X,大小为(nx,m) 

    训练集样本标签: Y,大小为(1,m)

  预测:

    定义矩阵Z,大小为(1,m),z=np.dot(ω.T,x)+b:

        Z=[ωTx(1)+b,...,ωTx(m)+b]=[z(1),z(2),...,z(m)]

    预测值: A ,大小同Y,为(1,m),A=np.sigmoid(Z):

       A=[σ(zx(1)),σ(z(2)),...,σ(z(m))]=[a(1),a(2),...,a(m)]

  梯度下降:

   由单样本梯度下降推导结果dldz=σ(z)−y(i),及m个样本推导结果{dLdω=1m∑mi=1(σ(z)−y(i))x(i)$  dLdb=1m∑mi=1(σ(z)−y(i))

   有:

      ⎧⎩⎨⎪⎪dz=A−Ydw=1mnp.dot(dz.T,X)db=1mnp.sum(dz)

   则→{ω=ω−αdω   b=b−αdb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐