什么叫做神经网络(科普向)

什么叫做神经网络(科普向)

本文写于 2020 年 12 月 11 日

之前讲了什么叫做机器学习,不理解的可以移步《什么叫做机器学习》

神经网络的最重要用途就是 classification。

对于我们人来说,前面跑过的四脚兽是猫还是狗、是狼还是虎,我们都可以判断出来(一般)。我们虽然没有探究清楚人脑究竟是怎么思考的,可是简化出了「神经网络」,通过机器学习实现人工神经网络。

关于 classification 有几个典型的例子:

  1. 邮箱判断邮件是否是垃圾邮件;
  2. 判断四脚兽的照片到底是猫还是狗、狼还是虎;
  3. 根据病症判断疾病类型
  4. ……

这都是 classification。我们写一个程序能够进行分类,那他就是「分类器」。在神经网络里,一个神经元就是一个「分类器」。

我们会将事物的 「特征」 作为输入,经由「分类器」得到输出。比如 0 表示是猫、1 表示是狗;0 表示是垃圾邮件、1 表示不是。

我们高中都学过线性回归,线性回归是对数据进行拟合,然后画出一条直线。

如果我们利用线性回归进行分类,可以说:在直线一边的是 A,在直线的另一边的是 B。

平面上直线的方程是 ax + by + c=0,所以根据 ax1 + by1 + c > 0 还是 ax1 + by1 + c < 0 就可以判断 (x1, y1) 在直线的哪一边。

神经元的实质就是把特征空间一切两半,一边是一个类型。

实际工作中我们并不知道怎么画这一条直线,我们可以利用 Hebb 算法:

我们把直线放上去,然后把样本拿过来,如果说分错了,就把直线移动一点,让他更靠近样本……最终让他跑到直线正确的一侧。

因此训练神经元的过程就是不断的在移动直线,最终到一个恰当的位置。

但有一个问题——如果我的范围是一个圆怎么办?或者说,我需要砍两刀怎么办?

神经元只能切一刀呀

一刀是非常有局限性的,所以人们发明了 「多层神经网络」,底层神经元的输出是高层神经元的输入,这样我们就可以砍很多很多刀了!

  • 我们每砍一刀,就是使用了一个神经元;
  • 把砍下的不同的块做交、并运算就是把这些神经元的输出当作输入;
  • 再连接后面的神经元。

根据极限的思想,只要我们砍的刀数足够多,那么什么样的边界神经网络都能砍出来。

神经网络的训练依靠的是 「反向传播算法」

  • 输出层发现输出的结果和训练数据不符合;
  • 调整自己的参数(即移动直线);
  • 调整上一层的参数;
  • 层层向上;
  • 如果还是不对,就会重新从最后一层开始。

(完)

原文地址:https://www.cnblogs.com/xhyccc/p/14120191.html