Python3机器学习实践:BP神经网络理论与实例
2018-07-03 本文已影响41人
AiFany
![](https://img.haomeiwen.com/i4734220/2e8353172a558904.png)
-
符号说明
-
神经网络的层数m,也就是包括一个输入层,m-2个隐层,一个输出层;
-
输入层为I,其节点数等于单个样本的输入属性数N_i;
隐层输出为Hh,h为1到m-2,每一个隐层的节点数为Nh;
输出层为O,其节点数等于单个样本的输出属性数N_o;
样本真实输出为R; -
层之间连接的权重为Wq,q为0到m-2,Wq矩阵的大小为(g, t), g为该隐层前一层的节点数,t为该隐层的节点数;
对应的偏置为Bq,Bq矩阵的大小为(1, t), t为该隐层的节点数; -
隐层的激活函数Ah,h为0到m-2。每一层的激活函数可以不同,但是大多数情形下设置为相同的;
常用的激活函数:Sigmoid,Tanh,ReLu。选择激活函数时一定要注意:输出层激活函数的输出尺度一定要和样本的输出数据是同一尺度。例如Sigmoid的输出是0-1,因此样本的输出也应该转化到0-1之间。
-
输出层O与样本真实输出R之间的成本函数C,回归问题用最小二乘函数, 分类问题用交叉熵函数;
-
s为子样本数,也就是一次训练过程中的样本数。当s为1是在线学习;当s为k,也就是全部样本数,为增量学习;s为小于k的其他数值为批量学习,比较常用;
-
运算符号说明:+为numpy数组的广播运算加法;×为矩阵对应元素相乘;●表示矩阵乘法;
-
-
网络结构图
nnstruct.png
-
样本数据说明
data.png
-
正向传播过程
forward.png
-
反向传播过程
-
回归问题
reg.png
-
分类问题
class.png
-
回归问题
-
梯度下降
gradient.png
image
-
回归实例:北京市Pm2.5预测
-
训练结果
ten_train.png
-
预测结果
ten_predict.png
-
训练结果
-
分类实例:Mnist手写数字识别(多类别)
-
训练结果
tensorflow.gif
-
预测结果
ten_mnist.jpg
image
-
训练结果
实例代码:回归,分类,扫描下方二维码或者微信公众号直接搜索”Python范儿“,关注微信公众号pythonfan, 获取更多实例和代码。
![](https://img.haomeiwen.com/i4734220/400e4ca0335d5858.jpg)