deep learning编程作业总结2---带有一个隐藏层的平面数据分类
一、准备工作
1.1 理论基础
本次实验目标是通过构造一个两层神经网络(输入层、隐藏层、输出层)来完成平面数据分类。网络结构如图1 所示,第二层为隐藏层,它由四个小单元组成,每一个小单元可以看作是一个逻辑回归运算单元。个人感觉这个网络结构是在前一节介绍的逻辑回归结构上进行了维度的扩充。因为要做分类,所以在输出层需要选择合适的**函数。
当前常见的**函数一般有三种:首先是sigmoid函数,它的公式与图像如图2所示,观察可得sigmoid函数的阈值为0.5当x轴上的数无限大或无限小时,y值分别趋向于1或0.因此该函数常用于二分类问题当中。第二种常见的**函数为tanh,公式与图像如图3所示,可以看到函数的阈值为0,这个特点要优于sigmoid函数。同样,当输入过大或者过小时,输出值也会无限向1或-1逼近。正是由于这一性质,导致sigmoid和tanh有相同的缺点,就是当点位于平缓区域时,会导致梯度下降进行得很慢,由此引出第三种**函数:Relu。其公式和函数图像如图4所示。
图1 图2
图3 图4
1.2 数据集描述
本次选用的数据集是是随机产生的一些二维平面数据,如图5所示。
图5
二、实验步骤
实验流程图如下所示:
三、结果分析
当采用前一节介绍的逻辑回归算法时,准确率很低,仅有47%。结果如图6所示,当采用双层神经网络,迭代次数设为10000,准确率为90%,结果如图7所示。
图6 图7
参考资料:https://blog.****.net/u013733326/article/details/79702148