美文网首页
简单BP算法

简单BP算法

作者: 唯师默蓝 | 来源:发表于2019-03-29 11:14 被阅读0次
import numpy as np
def sigmoid(x):
    return 1/(1+np.exp(-x))
def derivative_sigmoid(x):
    return np.multiply(sigmoid(x), (1-sigmoid(x)))
# 输入x的值
X = np.matrix("2, 4, -2")
# 设置权重矩阵:W : 3*2
W = np.random.normal(size=(3, 2))
# label
ycap = [0]
# 训练数量
num_examples = 1
# 设置步长
h = 0.01
# 正向传播
# 1、输入层到输出层的计算   y=x*w
y = np.dot(X, W)
# 2、激活函数运算   y_0 = sigmoid(y)
y_o = sigmoid(y)
# 3、损失计算
loss = -np.sum(np.log(y_o[range(num_examples), ycap]))
# 4、输出损失结果
print(loss)


# 反向传播
temp1 = np.copy(y_o)
# 1、求损失函数对激活函数结果的偏导数
temp1[range(num_examples), ycap] = 1 / -(temp1[range(num_examples), ycap])
temp = np.zeros_like(y_o)
temp[range(num_examples), ycap] = 1
dcost = np.multiply(temp, temp1)
# 2、求从激活函数层到输出层的微分
dy_o = derivative_sigmoid(y)
# 3、矩阵中的元素相乘
dgrad = np.multiply(dcost, dy_o)
dw = np.dot(X.T, dgrad)
# 4、权重跟新
W -= h * dw
# 5、再使用更新后的权重向前传播计算新的误差值
y = np.dot(X, W)
yo = sigmoid(y)
loss = -np.sum(np.log(yo[range(num_examples), ycap]))
# 6、输出新的误差值
print(loss)

相关文章

  • 简单BP算法

  • matplotlib画图

    简单的画图操作 这里画的是bp算法迭代过程的output图

  • 解读反向传播算法(BackPropagation)

    冒泡~周末愉快鸭! 反向传播算法(BackPropagation) 概念 1.什么是BP 算法?BP算法全称叫作误...

  • BP算法

    BP算法 简介BP算法 BP算法是由学习过程由信号的正向传播与误差的反向传播两个过程组成。由于多层前馈网络的训练经...

  • BP算法

    BP算法是 ![](http://latex.codecogs.com/gif.latex?35*d_5+1(\oe))

  • BP算法

    BP算法:误差反向传播算法。通过比较输出值与标记值,将误差反向由输出层向输入层传播,利用梯度下降算法进行参数调整。...

  • BP算法

    BP算法 M-P神经元模型 激活函数 阶跃函数: 阶跃函数具有...

  • BP算法

    假设我们知道网络输出和实际输出之间的区别,我们怎样调整网络参数使他们接近一种代价函数形式 一种weight dec...

  • BP算法

    https://zhuanlan.zhihu.com/p/28821475

  • TensorFlow系列专题(五):BP算法原理

    一.反向传播算法 反向传播算法[1](Backpropagation Algorithm,简称BP算法)是深度学习...

网友评论

      本文标题:简单BP算法

      本文链接:https://www.haomeiwen.com/subject/vctlbqtx.html