神经网络到底是什么?一探最经典的手写数字识别模型
摘要
用最简单的神经网络,电脑也能学会识别模糊的手写数字,靠的就是不断调节几万个“旋钮”。
❝"This network is just a function, one that takes in 784 numbers as input and spits out 10 numbers as output."❞
深度解读
神经网络到底是什么?一探最经典的手写数字识别模型
一句话总结:用最简单的神经网络,电脑也能学会识别模糊的手写数字,靠的就是不断调节几万个“旋钮”。
内容概览
- 主题:神经网络基础、手写数字识别、权重与偏置
- 适合人群:对AI和机器学习入门好奇的朋友,理工科学生,初级程序员
核心观点
-
人的大脑能轻松识别低像素数字,但计算机很难
虽然28×28像素的数字图像模糊且像素值差异大,但我们大脑能迅速识别。这对计算机来说是很难的任务。 -
神经网络通过“层”和“连接”的结构拆解识别难题
输入层、隐藏层、输出层之间通过权重和偏置连接,神经元激活组合成边缘、图案,最后识别数字。 -
调整成千上万个权重和偏置,就是神经网络“学习”的核心
神经网络的学习,就是找到一组合适的数字调整参数,让识别准确率最大化。
深度解读
为什么3看起来那么难算?
拿一张写着数字3的28×28像素黑白图。对你来说,这就是“3”,没错吧?但你知道吗,每张3的图像像素分布都不一样,光敏感细胞感受到的光强度层层变化,简单的数字输入下差异巨大,大脑却无视这些变异,顶住了噪声——这背后是“疯狂”的神经活动在不停运算。
电脑的世界里,这可不简单。它必须要接受这784个像素点的数据,经过复杂计算后,告诉你“这张图是数字3”。这是一个巨大挑战。
神经网络长什么样?为何管用?
想象你用一个简化版的网络:
- 输入层:又称感知层,你把这张28×28的图片展开成784个输入“神经元”,每个数字取值代表像素亮度。
- 隐藏层:它不是简单的传递,而是全连接层,每个神经元连接输入层全部784个节点。这里设置了16个隐藏神经元,随意选的,但足够示范。
每条连接都有一个“权重”,类似音量控制旋钮,调节该连接输出的强弱。每个神经元还有个“偏置”,决定激活启动的“门槛”。计算方式是这样的:
激活值 = sigmoid(权重×输入值的加权和 + 偏置)
sigmoid函数把任何数值挤压到0和1之间,方便表示神经元不激活(接近0)或者激活(接近1)的状态。
绿色的小方块表示正权重(加强信号),红色则是负权重(抑制信号);亮度则对应权重大小。比如某一个神经元,是专门“关注”图中某个小区域的边缘。正权重强化这个区域像素,负权重压制周边,这样只要有边缘出现,该神经元就会“亮起”。
一层一层抽象,从边缘到数字
隐藏层的神经元不是简单的像素直接传递,而是试图捕捉更高级的特征——边缘、角、线条。第二层神经元可能会上 “灯” 来提醒有“上方环边的存在”,然后更深层的神经元组合这些边缘形成“9”这样的数字的复杂特征。
这种分层构造让识别做了“拆解”,将大任务拆成小任务,一个神经元判断一个信息点,多个信息点组合成高层概念。
13000个调节旋钮,学习到底怎么进行?
一个输入数字图是784个像素,一层有16个神经元:
- 连接权重数是 784×16=12544
- 偏置数是 16
- 更后面层的权重和偏置加起来,总计接近1.3万个参数。
“学习”就是找到这些参数的最好设定,使得网络准确识别数字。想想看,手工调整13000个旋钮简单吗?当然不是。我们用机器辅助,根据大量数据自动微调。
数学上的优雅表达
把每层神经元的激活值看成一个向量(列),把权重看成矩阵(行列排列),那么激活值的计算变成矩阵和向量的乘积,再加上偏置向量,再通过激活函数——这样代码实现和计算效率都大幅提升。
虽然底层看上去复杂,但神经网络就是一台函数机器,输入784个数字,输出10个数字(对应数字0-9的概率),参数多到惊人,但本质就是数学函数。
小彩蛋:为何不用老式Sigmoid
Sigmoid函数看似完美,但深度神经网络训练时它容易让梯度消失,训练变慢。现代网络往往用ReLU(Rectified Linear Unit)代替:
- 计算方式: max(0, 输入数值)
- 不仅解决梯度问题,还更接近神经元“开/关”模式。
值得记住的话
"This network is just a function, one that takes in 784 numbers as input and spits out 10 numbers as output."
“Learning means finding the right settings for about 13,000 parameters so that the network actually solves the problem.”
“Every neuron is like a little function that looks at the outputs of the previous layer and spits out a number between 0 and 1.”
标签
AI 机器学习 神经网络 数学 人工智能
更多值得记住的话
“Learning means finding the right settings for about 13,000 parameters so that the network actually solves the problem.”
“Every neuron is like a little function that looks at the outputs of the previous layer and spits out a number between 0 and 1.”