训练神经网络的基本步骤

image.png
回顾逻辑回归模型的训练步骤
image.png

  • 根据给出的输出值x和参数w,b来确定训练模型
  • 确定损失函数和成本函数
  • 利用参数值的梯度下降函数,找出使得成本函数局部最小的值

训练神经网络的步骤
image.png

  • 创建神经网络的模型架构
    image.png
  • 根据模型确定损失函数和代价函数:二分类问题,回归问题
    其中二元交叉熵(binary cross entropy)
    image.png
    y是二元标签0或1,p(y)属于输出标签y的概率,即对于标签y为1的情况,loss=-log(p(y)) 如果预测值p(y)趋近于1,那么损失函数的值应当趋近于0。反之,如果此时预测值p(y)趋近 于0,那么损失函数的值应当非常大,y=0时,损失函数loss=-log(1-p(y))
    image.png
    image.png
  • 对于交叉熵损失函数的补充:
    image.png
    image.png
    对图像牛、鹿、猴做出预测,通过softmax函数输出各种可能的预测值,然后在one-hot中的label值。label中只有一个类别为1,其他都为0,再把对应的概率的对数和标签值相乘累加求负数得到损失函数,对真实值预测概率越大,loss函数越接近0,反之loss函数越大,损失越大
    使用交叉熵函数的原因
    极大似然估计,信息熵,详情看链接:https://www.bilibili.com/vide...
  • 调用Tensorflow的反向传播函数和二元交叉熵函数来确定梯度下降

    sigmoid函数的替代函数

    image.png

    如何选择sigmoid函数

    output layer:

  • 处理的是binary classification问题,选择sigmoid函数
  • 处理的是线性回归问题,比如预测股票的涨跌问题,可以选择线性激活函数,如果预测值必须是非负值,则可以选择ReLu函数

    hidden layer:

  • ReLu函数和sigmoid函数,一般选择ReLu函数,原因如下:ReLu函数的计算更快,效率更高,而且ReLu函数没有平坦的曲线,而sigmoid函数有两端较为平坦的部分,这使得sigmoid函数的w的梯度下降更为缓慢。一般选择ReLu函数作为隐藏层的默认函数
    image.png

选择激活函数

一般在隐藏层不选择线性函数而是ReLU函数,为了引入多元

多类分类问题及Softmax函数

  • 是指可能有两个及以上的输出标签
    image.png
    image.png
    image.png
  • 逻辑回归与Softmax函数的代价函数的比较
    image.png
    其中,Softmax的y只能取一个值,损失函数只根据所取的y值来进行计算

    神经网络的Softmax输出

    image.png
    在Softmax函数中的输出向量an的值与Z1到Zn的值都有关系
    image.png

    Softmax的改进实现

    在逻辑回归中的改进:
    image.png
    在Softmax中的改进:
    image.png
    疑问:为什么输出层的激活函数是线性函数image.png
    image.png

多标签分类问题

image.png
image.png
学习率的高级优化方法:
Adam Algorithm Intuition:
image.png
如果梯度沿着同一个方向移动,说明需要增加学习率
如果梯度来回震荡,难以收敛吗,说明需要减小学习率
代码实现:
image.png

其他的网络层类型

convolutional Layer:卷积层
image.png
以观察病患的心电图为例子,以心电图的每一个波动值为一个输入变量x,x1-x20输入到一个神经元,x11-x30输入到一个神经元,以此类推,隐藏层共9个神经元,再输入到下一个隐藏层的时候,只需关注前一层的5个激活值,一个神经元接收5个激活值,共3个神经元,最后再输入到只有一个神经元的sigmoid层,来输出可能的判断
优点:更少的计算量以及需要更少的训练数据


Tired
1 声望1 粉丝

新手小白,力争成为c++大佬,c++永远滴神!!!