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

前言

本文的例子和素材均来自 www.3blue1brown.com/lessons/neu...,这篇博客通过"识别数字"的例子,介绍了什么是神经网络、神经网络的组成、数据如何在网络中传播等基础知识。

什么是神经网络

上面这张图片,就是一个简单的神经网络,他的功能是识别一个手写的数字图像,最后输出手写数字的结果。

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

如果让你通过传统的If-else,For-loop方式写一段代码来实现这个功能,想必是非常困难的。因为人为手写的数字是不确定的,每个人的写法可能不同,所以你很难用一个标准去评估何为一个数字。 但是当我们的眼睛看到上面三张图的时候,我们的脑海里立马就能知道它们都代表着数字"3",这是为什么呢?基于这样的思考,人们研究了一种模仿人类大脑工作模式的技术,它就是神经网络

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

神经网络的结构

神经网络的种类有很多种,例如卷积神经网络(CNN)、递归神经网络(RNN)等等,而他们的区别就是网络内部的结构,不同的网络有不同的侧重点和能力。在本例中,我们从最简单的全连接网络入手。

神经元

神经网络有很多层,而每一层都是由若干神经元组成。你可以理解神经元是一个包含数字的容器,这个数字称为"激活值 "(activation)。在这里你可以想象,数字越大,这个神经元越亮,越亮的神经元越活跃。 所有的信息都被存储在神经元中,在这个例子中,我们的图片如何输入到神经元当中呢。

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

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

本例中的图片大小为28 * 28,所以为了把这784个像素都传入网络中,神经网络的第一层必须包含784个神经元,才足够存储这张图片的信息。

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

在本例中,神经网络的最后一层由十个神经元组成,当图片从输入一路运行到最后一层时,此时10个神经元的激活值,就代表了图片对应那个数字的可能性。 就如上面让你想象的,激活值越大越亮,说明输入图片是对应数字的值的概率越大。打个比方:上面的这张图,在运行以后发现"4"和"9"这两个神经元的亮度差不多,说明网络在此时产生了疑惑,在4和9之间无法分辨。

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

对于中间的两层,它代表什么意思呢?人工智能有一个很大的特点,就是它具有不可解释性,也正是这一点,你不必去深究为什么中间是16个神经元,为什么中间要放两层。我们可以把中间的结果视为"隐藏层"

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

为什么要使用层次结构

我们再来看这张图,在网络中,每一层的神经元是和下一层的神经元相连的。这也就表明了,每一层的神经元它的激活值,是对下一层的神经元有影响的。

其次我们可以发现第二层的神经元在运算时,有亮有暗,而第二层的每一个神经元都是由第一层所有的神经元相连接的。

这也是全连接网络的定义

说明第一层的神经元对第二层的神经元影响是各不相同的。

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

所以我们可以把识别数字分而治之变成识别"o"、"|"这样的特征符号。 我们假设神经网络倒数第二层就是在识别"o"和"|"这样的特征形状,当"o"和"|"对应的神经元激活时,它的激活值传入最后一层,最终激活数字"9"对应的神经元。

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

这时我们又假设倒数第三层是识别这些特殊符号的,此时我们关注的特征就非常小了。

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

最后我们回到为什么要分层的问题上,分层能够让神经网络将复杂的问题简单化,将大问题拆解成小问题。(虽然你并不知道它究竟拆解成什么问题)

相关推荐
星际棋手35 分钟前
【AI】一文说清楚神经网络、机器学习、专家系统
人工智能·神经网络·机器学习
可触的未来,发芽的智生3 小时前
触摸未来2025-10-18:生成文字的小宇宙矩阵溯源
人工智能·python·神经网络·程序人生·自然语言处理
无风听海6 小时前
神经网络之链式法则
人工智能·深度学习·神经网络
生命是有光的17 小时前
【深度学习】神经网络基础
人工智能·深度学习·神经网络
信田君952718 小时前
瑞莎星瑞(Radxa Orion O6) 基于 Android OS 使用 NPU的图片模糊查找APP 开发
android·人工智能·深度学习·神经网络
StarPrayers.18 小时前
卷积神经网络(CNN)入门实践及Sequential 容器封装
人工智能·pytorch·神经网络·cnn
一水鉴天19 小时前
整体设计 逻辑系统程序 之29 拼语言+ CNN 框架核心定位、三阶段程序与三种交换模式配套的方案讨论 之2
人工智能·神经网络·cnn
ReinaXue1 天前
大模型【进阶】(六)QWen2.5-VL视觉语言模型详细解读
图像处理·人工智能·神经网络·目标检测·计算机视觉·语言模型·transformer
Blossom.1181 天前
把AI“绣”进丝绸:生成式刺绣神经网络让古装自带摄像头
人工智能·pytorch·python·深度学习·神经网络·机器学习·fpga开发
无风听海1 天前
神经网络之反向传播
人工智能·深度学习·神经网络