0. 前言

本篇博客打算通俗地说明一下神经网络的学习过程。

1. 基本原理

还是通过举例来进行说明。
假如有一种花,其花瓣长度与叶子长度成一定的比例。

花瓣长度 叶子长度
9 27
23 72
29 63
26 61
24 57
35 94
21 59
27 78
19 60
31 90

可以把上面的数据在坐标系中画出来:

简述神经网络学习过程

现在,我们知道一朵花的花瓣长度是20,想知道它的叶子长度是多少?

从上边的散点图中,可以看到实际上就是需要找到一条直线来拟合这些点,使得尽可能多的点在直线上或者直线附近。但如何寻找合适的直线就成了一个问题。

在计算机中,在给定了这些样本点之后,实际上开始它会随机找一条直线,根据预测结果与实际结果的误差来逐渐进行调整,以逐渐逼近最佳的结果。(比如在下图中,最初是随机画的黑色这条线来拟合这些点,然后会计算每个样本点与直线的误差,所有样本点的误差加起来就是总的误差,再进行加和之后发现误差很大,所以就会调整直线的斜率,此处就把斜率减小,再计算每个样本的误差,不断尝试这个过程)

简述神经网络学习过程

如果把最终所求的斜率与误差的关系也通过作图展示,则如下:

简述神经网络学习过程
在很多问题中,误差一般不能减小到0,所以一般求解的是误差的最小值,并且在实际问题中,求解误差都用了一些函数,所以更多时候误差和要求解的值是曲线的关系,如下:

简述神经网络学习过程
而这时候,要寻找的误差最小的过程就是找曲线斜率趋近于0的过程,也就是找导数趋近于0的过程。

并且在寻找最合适的解的时候,步长不能过大,不然会错过最佳解,如下图:

简述神经网络学习过程

所以,其实,神经网络的学习过程就是一个不断调整误差的过程。

2. 网络结构

单层

简述神经网络学习过程
多层
神经元相互连接就构成了神经网络

简述神经网络学习过程
上面是一个全连接,即每个神经元传到下一层,也是传给下一层的每一个神经元,在连接这条线上有一个权重,这个权重衡量了它传递到下一层神经元的大小。

下面举例来计算的过程,假如有下面的这个过程:

简述神经网络学习过程
上图中的0.7426和0.6433就是输出结果,通过输出结果和期望值的误差,返回去调整每个神经元和其他神经元的权重,使得误差不断减小,不断逼近期望值。

通过上述过程不断的训练和调整,最终会得到一组权重的合理取值,在输入数据时,得到的结果与期望值十分接近,此时的神经网络就算训练好了。

相关文章:

  • 2021-10-03
  • 2021-09-08
  • 2022-01-16
  • 2021-11-13
  • 2022-01-03
  • 2022-12-23
  • 2021-10-13
猜你喜欢
  • 2021-08-17
  • 2021-08-27
  • 2021-12-26
  • 2021-12-25
  • 2021-07-02
  • 2021-04-17
  • 2021-10-07
相关资源
相似解决方案