美文网首页
深度学习 第2次作业 神经网络基础

深度学习 第2次作业 神经网络基础

作者: S_Valley_DiDa | 来源:发表于2018-11-03 20:11 被阅读0次

    1.二分分类
    举例一个典型的二分类问题。一般来说,彩色图片包含RGB三个通道。例如下图所示:cat图片的尺寸为(64,64,3)。在神经网络模型中,我们首先要将图片输入x(维度是(64,64,3))转化为一维的特征向量。方法是每个通道一行一行取,再连接起来。由于64x64x3=12288,则转化后的输入特征向量维度为(12288,1)。此特征向量x是列向量,维度一般记为nx

    二分分类.png

    如果训练样本共有m张图片,那么整个训练样本X组成了矩阵,维度是(nx,m)。注意,这里矩阵X的行nx代表了每个样本x(i)特征个数,列m代表了样本个数。这里,Andrew解释了X的维度之所以是(nx,m)而不是(m,nx)的原因是为了之后矩阵运算的方便。所有训练样本的输出Y也组成了一维的行向量,写成矩阵的形式后,它的维度就是(1,m)。

    1. logistic 回归
      如何使用逻辑回归来解决二分类问题。使用线性模型,引入参数w和b。权重w的维度是(nx,1),b是一个常数项。这样,逻辑回归的线性预测输出可以写成:
      y^=wTx+b
      逻辑回归要求输出范围在[0,1]之间,所以还需要对上式的线性函数输出进行处理。方法是引入Sigmoid函数,让输出限定在[0,1]之间。这样,逻辑回归的预测输出就可以完整写成:
      Sigmoid函数是一种非线性的S型函数,输出被限定在[0,1]之间,通常被用在神经网络中当作激活函数使用。Sigmoid函数的表达式和曲线如下所示:
      逻辑回归预测图.png 从Sigmoid函数曲线可以看出,当z值很大时,函数值趋向于1;当z值很小时,函数值趋向于0。且当z=0时,函数值为0.5。还有一点值得注意的是,Sigmoid函数的一阶导数可以用其自身表示:

    3.logistic 回归损失函数

    损失函数,它是衡量错误大小的,损失函数越小越好。
    m个样本的损失函数的平均值,反映了m个样本的预测输出y^与真实样本输出y的平均接近程度。损失函数可表示为:

    逻辑回归问题可以看成是一个简单的神经网络,只包含一个神经元。

    4.梯度下降值
    根据损失函数的表达式,接下来将使用梯度下降算法来计算出合适的w和b值,从而最小化m个训练样本的损失函数,即J(w,b)。


    梯度下降值.png 梯度下降算法每次迭代更新,w和b的修正表达式为:

    5.计算图
    整个神经网络的训练过程实际上包含了两个过程:正向传播和反向传播。正向传播是从输入到输出,由神经网络计算得到预测输出的过程;反向传播是从输出到输入,对参数w和b计算梯度的过程。用计算图的形式来理解这两个过程。

    举例:损失函数为J(a,b,c)=3(a+bc),包含a,b,c三个变量。用u表示bc,v表示a+u,则J=3v。它的计算图(正向传播)可以写成如下图所示: 正向传播.png 计算输出对输入的偏导数,即反向传播: 反向传播.png 6.逻辑回归的梯度计算 单个样本梯度计算.png m个样本的逻辑回归梯度计算: m个样本的逻辑回归梯度计算示意图.png 7.向量化逻辑回归

    8.Python中的广播
    一个向量加上一个数的时候,python会自动把这个数变成向量再一一相加。用一个mn的矩阵加(减乘除)上1n的向量时,python会自动把1n的向量竖直复制变成mn再相加。用一个mn的矩阵加上m1的向量时,python会自动把m1的向量水平复制变成mn再相加。

    9.python / numpy中的向量说明 代码示例.png

    相关文章

      网友评论

          本文标题:深度学习 第2次作业 神经网络基础

          本文链接:https://www.haomeiwen.com/subject/lwokxqtx.html