神经网络实验:万能函数拟合器

概述

都说神经网络是一个万能的函数拟合器,如何理解这句话呢?让我们做一些实验,去获取更直观的理解。
为了直观与方便理解,我们用神经网络去拟合一元函数,也就是y=f(x)y=f(x)

实验

1. 函数y=xy=x

训练样本

如图所示:

  • 蓝色点代表训练样本,它们都是从函数y=xy=x中取样获得
  • 橙色的直线代表神经网络所表示的函数,目前未训练,与样本偏离较大

思路

拟合一条直线,我们需要使用什么结构的神经网络去拟合它呢?为了理解透彻,我们需要理解单个神经元。

单个神经元的形式为:y=σ(wx+b)y = \sigma(wx+b)

  • wwbb为待确定的参数
  • σ\sigma为激活函数

如果去掉σ\sigma,其形式就是y=wx+by = wx+b,刚好就是一条直线。也就是说,我们使用一个不带激活函数的神经元,就可以拟合该函数。

实验

如上图所示,使用单个输出神经元,经过20步的训练,神经网络就与目标函数拟合的很好了。所得到的参数如下图所示:

对应的函数为y=1.0x+0.1y=1.0x+0.1,与目标函数极为接近,再多训练几步即可更为接近。

2. 函数y=|x|

训练样本

该函数是一个分段函数

y={xx0xx<0y = \begin{cases} x & x \ge 0 \\ -x & x < 0 \end{cases}

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享