首页 > 其他 > 详细

极简两层反传(BP)神经网络

时间:2016-03-07 13:30:11      阅读:191      评论:0      收藏:0      [点我收藏+]

说明:

  只有两层:输入层/输出层

  离线算法:样本批量计算(numpy矩阵运算的威力在此体现出来了)

  效果还蛮不错:

    技术分享

 

import numpy as np

‘‘‘极简两层反传(BP)神经网络‘‘‘

# 特征样本
X = np.array([[0, 0, 1],
              [0, 1, 1],
              [1, 0, 1],
              [1, 1, 1]])
# 类别样本
y = np.array([0, 0, 1, 1])
 
# 权值矩阵 初始化
Wi = 2 * np.random.random(3) - 1
 
for iter in range(10000):
    # 前向传播,计算误差
    li = X
    lo = 1 / (1 + np.exp(-np.dot(li, Wi))) # sigmoid函数
    lo_error = y - lo

    # 后向传播,更新权值
    lo_delta = lo_error * lo * (1 - lo)    # sigmoid函数的导数(梯度下降)
    Wi += np.dot(lo_delta, li)
    
print("训练效果:\n", lo)

 

极简两层反传(BP)神经网络

原文:http://www.cnblogs.com/hhh5460/p/5249983.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!