神经网络:简单的函数拟合

本文探讨了使用神经网络结合梯度下降法与最小二乘法进行函数拟合的问题。通过生成带噪声的目标函数样本,构建了一个无隐藏层的神经网络模型,并与最小二乘法进行了对比。实验结果显示,两种方法都能有效拟合目标参数,但在不同样本特征数量下,计算效率有所不同。
摘要由CSDN通过智能技术生成

目录


问题描述

数据拟合的方法有很多种,如最小二乘法、遗传算法、神经网络等,它们各有各的优缺点。函数的拟合问题本质上是一个最优化问题。
本文使用神经网络结合梯度下降法,拟合目标函数 f(x)=a+bx2+cx3 f ( x ) = a + b x 2 + c x 3 中的三个未知参数 abc a 、 b 、 c ,以使得拟合函数和目标函数的均方误差最小。

神经网络拟合

样本数据生成

预设 a=3,b=2,c=1 a = 3 , b = 2 , c = 1
通过在目标函数中加入白噪声,生成待拟合的样本:

import numpy as np
from pylab import *
x = np.linspace(0,2,500)[:,np.newaxis]
target = 3 + 2*x**2 + x**3
# 给目标函数加入高斯白噪声作为学习样本
sample = target + np.random.normal(0,1,x.shape)
plot(x,sample,'.')
show()


学习样本

构建神经网络模型

构建一个没有隐藏层的神经网络模型,包含三个输入神经元,和一个输出神经元:


神经网络结构图

该神经网络模型的输出可以表示为:

prediction(i)=a+bx2i+cx3i=[1x<
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值