【一文读懂】什么是神经网络?(一)

前言

本文的例子和素材均来自https://www.3blue1brown.com/lessons/neural-networks

这篇博客以“识别数字”为例,深入探讨了神经网络的概念、组成要素以及数据在网络中的传播方式等基础知识。

什么是神经网络

在这里插入图片描述
这张图片展示了一个简单的神经网络,其任务是识别手写数字图像,并输出对应的数字结果。

https://www.3blue1brown.com/lessons/neural-networks这篇文章的开头,提供了一个交互式的体验程序。可以让你直观的感受神经网络的执行过程。

要通过传统的if-elsefor-loop方式编写代码实现这个功能可能非常困难。因为人为手写的数字是不确定的,每个人的书写风格可能不同,所以很难用一个标准来准确评估何为一个数字。

在这里插入图片描述

当我们看到上面的三张图时,我们的大脑立即能够识别它们都代表着数字“3”。这是为什么呢?这种思考驱使人们研究一种模仿人类大脑工作模式的技术,即神经网络。

在这个例子中,我们无法定义一套标准去告诉神经网络应该如何识别数字,我们只是把一系列的图片和图片对应正确的数字输入神经网络,由神经网络自主调整和学习。

神经网络的结构

神经网络有多种类型,如卷积神经网络(CNN)、递归神经网络(RNN)等等。它们的区别在于网络内部的结构,每种网络都有其独特的侧重点和能力。在本例中,我们首先介绍最简单的全连接网络。

神经元

神经网络包含多个层,每一层都由多个神经元组成。你可以将神经元理解为一个容器,其中包含一个称为“激活值”的数字。你可以想象,激活值越大,神经元就越明亮,而明亮的神经元表示其活跃程度更高。
在这里插入图片描述
所有信息都存储在神经元中。在这个例子中,我们的图片如何输入到神经元当中呢?

一张图片的信息也就是每个像素点的RGB值(严格一点还有每个像素点所处的坐标,本文不讨论),所以我们要把这些RGB值都传入神经网络。由于我们的例子中是黑白图片,因此只需要传递灰度值即可。

在例子中,把灰度值通过算法压缩到了0-1之间,在后续的章节会解释,暂可不必纠结。

在这里插入图片描述
在本例中,图片大小为28 * 28,因此为了将这784个像素传入网络,神经网络的第一层必须包含784个神经元,才能充分存储这张图片的信息。
在这里插入图片描述

在将图片输入神经网络时,你可以选择按顺序将像素值从左到右依次填入神经元的激活值,也可以选择按顺序从上到下。当然这样的选择可能会影响训练效果。

在本例中,神经网络的最后一层由十个神经元组成。当图片从输入一路运行到最后一层时,这十个神经元的激活值代表了图片对应每个数字的可能性。
在这里插入图片描述
正如之前所描述的,激活值越大表示神经元越亮,意味着输入图片对应该数字的概率越高。举个例子,如果在运行后发现“4”和“9”这两个神经元的亮度相近,这表明网络此时存在疑惑,无法确定输入图片究竟是4还是9。

(你仍然可以选择一个激活值最大的进行输出,但是答案很可能是错的)

在这里插入图片描述
中间的两层代表了神经网络的隐藏层。人工智能的一个显著特点是其不可解释性,因此不必过于深究为什么中间有16个神经元或为什么要有两层隐藏层。我们可以将中间的结果视为隐藏层的输出。

中间的两层16个神经元的结构并不是固定的,它是任意选择的。因此,无法解释它代表了什么特征

为什么要使用层次结构

在这里插入图片描述
在这个网络中,每一层的神经元都与下一层的神经元相连,这意味着每一层的神经元的激活值会影响下一层的神经元。

另外,我们可以观察到第二层的神经元在进行运算时有亮有暗,这是因为第二层的每一个神经元都受到了第一层所有神经元的影响,而这些影响可能是正向的(增强激活)也可能是负向的(抑制激活)。

在讨论神经网络为什么要分层之前,我们先思考一种识别数字的方法:
在这里插入图片描述
对于数字9来说,它可能是由一个“o”加一个“|”组成,所以当我们识别到图片中有这两个特征时,这张图片是9的概率就非常大。

因此我们可以把识别数字分解为识别“o”、“|”这样的特征符号。
在这里插入图片描述
我们假设神经网络倒数第二层就是在识别“o”和“|”这样的特征形状,当“o”和“|”对应的神经元被激活时,它们的激活值传递到最后一层,最终激活数字“9”对应的神经元。

同样的,我们再细分一下,“o”由很多个圆弧组成

在这里插入图片描述

这时我们再假设倒数第三层是专门用来识别这些特殊符号的。在这一层,我们关注的特征就会更加细化和具体。

在这里插入图片描述

以上都只是假设,第二层和第三层具体关注了什么内容,是比较复杂的

最后,我们回到为什么要分层的问题上。分层能够让神经网络将复杂的问题简化,将大问题拆解成小问题。尽管我们并不知道具体是如何拆解的,但这种分层的结构能够帮助网络更有效地处理复杂任务。

总结

本文带领读者初步了解了神经网络、神经网络的分层结构以及神经元。在下一篇文章中,我们将继续介绍神经网络的其他重要概念。

  • 31
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值