机器学习实验之神经网络基础实验

一、实验要求

在计算机上验证和测试多层神经网络的原理和算法实现,测试多层神经网络的训练效果,同时查阅相关资料。

  • 实验目的

1、掌握多层神经网络的基本原理;

2、掌握多层神经网络的算法过程;

3、掌握反向传播的算法过程;

三、实验内容

实验步骤

  1. 请阅读和测试神经网络类代码,调节神经网络结构和参数,使二分类效果足够好。

机器学习实验之神经网络基础实验_第1张图片

  1. 增加神经元的数量
  2. 增加层数
  3. 改变激活函数
  4. 增加迭代次数
  5. 改进梯度下降(SGD,ADANL)
  6. 损失函数(最小二乘 交叉熵)
  7. 学习率

所调整的有:

隐藏层神经网络的层数改为100层;

初试学习率改为0.2;

迭代次数增加至10000;

最后的拟合效果还不错。

  1. 请对比测试ReLU激活函数与Sigmoid激活函数,两个作为中间层激活函数的差异。

用ReLU函数

机器学习实验之神经网络基础实验_第2张图片

单用一个sigmoid函数

机器学习实验之神经网络基础实验_第3张图片

Sigmoid函数反向传播时,容易出现梯度消失的情况,造成信息的丢失,无法完成分类。

ReLUctant会使一部分神经元的输出为0

四、实验总结

                   激活函数的作用:为了增加神经网络模型的非线性

ReLU优点:relu函数在大于0的部分题图为常数,所以不会产生梯度弥散现象。对于sigmoid    函数,在正负饱和区的梯度都接近0,可能会导致梯度消失现象。ReLU函数的导数计算更快,所以使用梯度下降比Sigmoid收敛起来快得多。

ReLU缺点:ReLU死亡问题。当x小于0的时候,那么从此流过的神经元的梯度都变成0,这个时候ReLU单元在训练中将死亡(参数无法更新),造成了数据多样化的丢失。

Sigmodi优点:具有很好的解释性,将线性函数的组合输出为0,1之间的概率

Sigmoid缺点:激活函数计算量大,反向传播求梯度时,求导设计除法 反向传播,在饱和区两边导数容易为0,即容易出现梯度消失的情况,从而无法完成训练。

                  

你可能感兴趣的:(机器学习,神经网络,深度学习)