利用BP神经网络逼近函数——Python实现

本文介绍了如何使用Python实现BP神经网络来逼近函数,基于MATLAB版本进行改编。通过代码示例展示对正弦函数的逼近过程,并讨论了点的数量和迭代次数对拟合效果的影响,提供改进后的参数设置以获得更好的拟合结果。
摘要由CSDN通过智能技术生成

  文章主要参考https://blog.csdn.net/john_bian/article/details/79503572,原文是matlab版本的实现。在此基础上,利用Python实现BP网络对函数y=sinx的逼近。对于BP神经网络的基本原理以及推导,这里就不再赘述,可以查阅相关文献。

代码如下:相应部分都有注释

###function approximation f(x)=sin(x)
###2018.08.15
###激活函数用的是sigmoid

import numpy as np
import math
#import matplotlib.pyplot as plt

x = np.linspace(-3,3,100)
x_size = x.size
y = np.zeros((x_size,1))
# print(y.size)
for i in range(x_size):
    y[i]= math.sin(x[i])




hidesize = 10
W1 = np.random.random((hidesize,1)) #输入层与隐层之间的权重
B1 = np.random.random((hidesize,1)) #隐含层神经元的阈值
W2 = np.random.random((1,hidesize)) #隐含层与输出层之间的权重
B2 = np.random.random((1,1)) #输出层神经元的阈值
threshold = 0.005
max_steps = 501
def sigmoid(x_):
    y_ &
评论 73
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值