神经网络-前向传播
来源:互联网 发布:淘宝商品色差严重 编辑:程序博客网 时间:2024/04/28 15:21
转载请标明出处:小帆的帆的专栏
记号
下面会用到这些记号
记号这样设计的原因是,希望产生这样的效果
上一层经过计算,产生,下一层的数据
X: 泛指样本集,不明确说明是用于,训练、验证还是测试
y: 泛指样本集的真实输出值
X_train: 训练样本集
y_train: 训练样本集的真实输出值
m: 样本集个数,也就是X的行数
n: 样本集的特征数,也就是X的列数,也等于input_size
input_size: 输入层神经元数量
hidden_size: 隐藏层神经元数量
output_size: 输出层神经元数量
特点
方向:从左往右
作用:由最左边的输入,计算出最右边的输出
推导
1、计算
在前向传播过程中,我们只使用
2、计算
首先需要算
3、计算
与计算
总结
当把X赋值给
代码实践
# coding=utf-8import numpy as npdef sigmoid(z): return 1 / (1 + np.exp(-z))# 数据准备# 假设有一个二分类问题,有4个训练样本,样本有2个特征# 参考上图,下面的网络结构与上图一样# 每个样本有2个特征,因此输入层神经元个数为2input_size = 2# 隐藏层神经元个数hidden_size = 3# 2分类问题,因此输出为0或1.只需要一个神经元output_size = 1m = 4 # 训练样本数# 生成一个4 × 2的矩阵,每一行为一个训练样本X_train = np.random.randn(m, input_size)# 4个样本,每个样本对应的真实值y_train = np.array([0, 1, 1, 0])# 随机生产参数W1 = np.random.randn(input_size, hidden_size) # (2 × 3)b1 = np.random.randn(hidden_size) # (3,)W2 = np.random.randn(hidden_size, output_size) # (3, 1)b2 = np.random.randn(output_size) # (1,)a1 = X_train # 第一层不需要任何计算,X就是a1# a1: 4 * 2# W1: 2 * 3# z2,应该是4 × 3,因为训练样本有4个,而隐藏层的神经元个数为3# 所以要想通过a1和W1点乘,得到一个4 × 3的矩阵,a1 * W1, (4, 2) * (2, 3) = (4, 3)# a1.dot(W1)是(4, 3),b1是(3,),b1会加到每一行上去z2 = a1.dot(W1) + b1a2 = sigmoid(z2)# z3,跟z2计算一样# z3,应该是4 × 1,因为训练样本有4个,而输出层的神经元个数为1# 所以要想通过a2和W2点乘,得到一个4 × 1的矩阵,a2 * W2, (4, 3) * (3, 1) = (4, 1)z3 = a2.dot(W2) + b2a3 = sigmoid(z3)print a3.shapeprint a3# 可以看出# z的计算方法,都是一样的,无论有多少个隐藏层# a的计算方法,也可以说是一样的,只是这里主要讲述前向传播,因此全部用的sigmoid,换成其他激活函数,整个过程并不会发生任何变化
0 0
- 神经网络-前向传播
- 神经网络前向传播算法
- 循环神经网络前向传播
- BP神经网络-前向传播
- 三层神经网络前向后向传播示意图
- 卷积神经网络(CNN)前向传播算法
- 卷积神经网络(CNN)前向传播算法
- 卷积神经网络(CNN)前向传播算法
- 卷积神经网络(CNN)前向传播算法
- 卷积神经网络(CNN)前向传播算法
- 卷积神经网络(CNN)前向传播算法
- 卷积神经网络(CNN)前向传播算法
- 神经网络前向后向传播公式推导
- 三层神经网络前向后向传播示意图
- 神经网络中前向传播和反向传播解析
- CNN卷积神经网络--反向传播(2,前向传播)
- 神经网络(前向传播和反向传导)
- 多层前馈神经网络的后向传播算法推导
- 第五周 项目1:建立顺序栈算法库
- Unable to add window -- token null is not for an application
- 第五周-项目五 后缀表达式
- viewpager的使用技巧
- 支付宝(一)
- 神经网络-前向传播
- 【第五周项目3-括号的匹配】
- Parajumpers Herren jacke long bear did
- How to run keystone testcase against the DB backend other than SQLITE
- 解决mysql数据库登录报1045错误,修改root密码
- Android xUtils3.0框架解析
- 第五周项目1-建立顺序栈算法库
- 细节补充
- 第五周项目3--括号的匹配