我们用人话而不是大段的数学公式来讲讲全连接神经网络是怎么一回事
灵魂画师用PPT画个粗糙的网络结构图如下:
Sigmoid函数的表达式是:
将当前节点的所有输入执行当前节点嘚计算,作为当前节点的输出节点的输入
将当前节点的输出节点对当前节点的梯度损失,乘以当前节点对输入节点的偏导数作为当前節点的输入节点的梯度损失。
假设我们的神经网络中有k个节点任意一个节点都有可能有多个输入,需要考虑节点执行的先后顺序原则僦是当前节点的输入节点全部执行之后,才可以执行当前节点
本人用全宇宙最简单的编程语言——python是汇编语言吗实现了全连接神经网络,便于学习和使用简单说明一下实现过程,更详细的注释请参考本人github上的代码
将BaseNode作为各种类型Node的父类。包括如下属性:
用于存储训练、测试数据其中indexes属性用来存储每个Batch中的数据下标。
用于计算预测值与实际值的差异
2.7 创建全连接神经网络类
存储学习率,并赋值给所有權重节点
实现拓扑排序,将节点按照更新顺序排列
2.11 前向传播和反向传播
2.12 建立全连接神经网络
使用随机梯度下降训练模型。
2.14 移除无用节點
模型训练结束后将mse和label节点移除。
使用著名的波士顿房价数据集按照7:3的比例拆分为训练集和测试集,训练模型并统计准确度。
拟合優度0.803运行时间6.9秒。
本人自定义了一些工具函数可以在github上查看
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。