当前位置: 首页 > news >正文

从机器学习基础到 MLP(下):神经网络为什么能起作用?

从机器学习基础到 MLP(下):神经网络为什么能起作用?

🔥星恒随风:个人主页
❄️个人专栏: 《指针合集》《c语言基础》《数据结构》《机器学习导论》《前端基础》
✨数据即知识,压缩即智能

书接上回。
如果说上篇解决的是“机器学习在做什么”,那么这一篇要解决的是更关键的问题:

神经网络为什么能起作用?

  • 为什么几层线性层加激活函数,就能学会复杂任务?
  • 为什么反向传播真的能把模型训好?
  • 神经网络和生物学习过程,到底有哪些相似之处?

目录

  • 从机器学习基础到 MLP(下):神经网络为什么能起作用?
    • 一、从一个根本问题开始:神经网络到底为什么有效?
    • 二、从生物学习过程类比:人是怎么学会识别事物的?
      • 1. 人类学习,不是靠写规则,而是靠经验积累
      • 2. 生物学习中的“连接强弱变化”,对应神经网络中的“权重更新”
    • 三、人工神经元:把复杂问题拆成无数个“小判断”
    • 四、为什么一个神经元不够,而多层网络就更强?
      • 1. 单个神经元能力有限
      • 2. 多层网络的核心价值:组合简单判断
    • 五、为什么一定要有激活函数?——让“组合”变得有意义
      • 1. 激活函数的本质:引入非线性
      • 2. 理解激活函数
    • 六、神经网络真正强大的地方:表示学习
      • 1. 什么叫“表示”?
      • 2. 为什么表示学习很重要?
    • 七、前向传播:像人在“看”和“理解”
    • 八、损失函数:相当于“老师批改作业”
      • 1. 类比:反馈驱动学习
    • 九、反向传播:它到底在解决什么问题?
      • 1. 反向传播不是“倒着算一遍”,而是“责任归因”
      • 2. 为什么反向传播有用?
    • 十、梯度下降
    • 十一、为什么神经网络不会只是“死记硬背”?
      • 1. 生物类比:死记硬背 vs 举一反三
      • 2. 为什么神经网络有可能泛化?
    • 十二、MLP
    • 十三、一个极简训练框架:只看流程,不陷入代码细节
    • 十四、过拟合与正则化:让模型学会“理解”而不是“死背”
      • 1. 什么是过拟合?
      • 2. 正则化的本质是什么?
    • 十五、总结:神经网络为什么能起作用?
      • 1. 它能表示复杂函数
      • 2. 它能逐层提炼特征
      • 3. 它能通过反馈修正内部连接
      • 4. 它和生物学习过程在直觉上有相似性
      • 5. 它不是简单记忆,而是努力学习规律
    • 十六、全文收束

一、从一个根本问题开始:神经网络到底为什么有效?

很多初学者第一次接触神经网络时,都会有一种感觉:

这东西看起来像“黑箱”。
输入数据进去,
中间做几层变换,
最后就输出结果了。

但如果我们换一个角度,它其实没有那么神秘。

神经网络之所以有效,本质上依赖于下面四件事:

  1. 它能表示复杂函数;
  2. 它能把简单特征逐层组合成复杂特征;
  3. 它能通过误差反馈不断调整参数;
  4. 它能在大量数据中学到“对任务有用的表示”。

你可以把神经网络理解为一个可训练的多层函数系统

  • 输入层负责接收原始信息;
  • 中间层负责逐步提炼信息;
  • 输出层负责做最终判断。

而“训练”这件事,就是不断修改这个函数系统里的参数,让它的判断越来越准确。


二、从生物学习过程类比:人是怎么学会识别事物的?

要理解神经网络为什么有效,一个很自然的办法就是做类比。

虽然人工神经网络并不是真正还原大脑,但它的灵感确实来自生物神经系统。


1. 人类学习,不是靠写规则,而是靠经验积累

假设你让一个小朋友学习“什么是猫”。

你不会这样教:

  • 猫的耳朵长度必须是多少厘米;
  • 猫的眼睛和鼻子的比例必须是多少;
  • 猫的毛发颜色必须满足某种公式;

现实中我们更常做的是:

  1. 给他看很多猫的图片;
  2. 告诉他:这张是猫,这张不是猫;
  3. 不断纠正;
  4. 最后他自己就会形成判断能力。

这其实就是一种“监督学习”。

对应到机器学习里,就是:

  • 输入:图片
  • 标签:猫 / 非猫
  • 学习方式:看大量样本并不断纠错

也就是说,不管是人还是机器,很多时候都不是靠“硬编码规则”学习,而是靠:

反复看样本 不断接收反馈 逐渐修正内部判断标准

这正是神经网络训练的核心思想。


2. 生物学习中的“连接强弱变化”,对应神经网络中的“权重更新”

在生物神经系统里,一个常见直觉是:

神经元之间的连接不是固定不变的, 而是会随着刺激、经验和反馈不断变化。

如果某种刺激反复出现,并且总能带来正确反应,那么相关连接就会被强化

如果某种连接总导致错误判断,它的作用就会减弱

这个直觉和神经网络中的参数更新非常像。

神经网络里有很多参数:

w1, w2, w3, ... b1, b2, b3, ...

这些参数本质上就像“连接强度”。

训练前,它们是随机的,所以模型判断基本是乱的。

训练过程中,如果模型预测错了,损失函数就会告诉它:

你错了,而且大概错在什么方向上。

然后优化算法会去调整这些连接强度:

该增强的增强, 该削弱的削弱。

所以从直观上看:

生物学习:经验改变神经连接强弱
神经网络:误差改变参数大小

这也是为什么“学习”这个词是合理的——它确实是在不断修正内部连接结构。


三、人工神经元:把复杂问题拆成无数个“小判断”

神经网络最基本的组成单元是“人工神经元”。

一个人工神经元做的事情,其实很朴素:

1看多个输入
2给不同输入不同权重
3做加权求和
4再经过一个非线性函数
5输出结果

写成形式就是:

z = w1x1 + w2x2 + ... + b a = activation(z)

比如你想判断一张图片里是否有某种纹理,一个神经元可能在做类似这样的事情:

如果左上区域偏亮, 中间区域边缘明显, 右下区域对比度较大, 那么某种特征更可能出现。

当然,它不会真的用自然语言这么想,但数学形式上就是这个意思。


四、为什么一个神经元不够,而多层网络就更强?

这是理解神经网络最关键的一步。

1. 单个神经元能力有限

单个神经元本质上只能做一个比较简单的划分。

比如在二维空间中,它可以学出一条直线,把数据分成两边。

就比如说它可以划分一边是猫另一边不是猫,但这样一来就不能识别其他物体了。

泛化能力大大降低了

这意味着:

单个神经元擅长处理“线性可分”的问题,
但面对复杂模式时就不够了。

最经典的例子是 异或的 问题:

x1x2y
000
011
101
110

这个问题不能用一条直线分开。

所以单层感知机无能为力。


2. 多层网络的核心价值:组合简单判断

多层神经网络强大,不是因为某一个神经元突然变“聪明”了,而是因为:

很多简单判断可以层层组合, 最终形成复杂判断。

这里蕴含着分而治之的思想。

这有点像人类识别事物的过程。

比如你识别一张人脸,通常不是一步完成的,而是一个层次化过程:

先感知边缘 再感知局部轮廓 再感知眼睛、鼻子、嘴巴等局部结构 最后把这些局部结构组合成人脸概念

神经网络也是类似的。

在图像任务里,经常会出现这种层次结构:

第一层:学边缘、亮暗变化、简单纹理 第二层:学角点、局部图案 第三层:学更复杂的局部结构 更深层:学高层语义特征

虽然 MLP 没有 CNN 那么适合图像,但“逐层抽象特征”的思想是一样的。

所以,神经网络有效的一个根本原因就是:

它能把低级特征逐层组合成高级特征。

五、为什么一定要有激活函数?——让“组合”变得有意义

很多同学学到这里会问:

如果一层不够,那我多堆几层 Linear 不就行了吗?

答案是不行。

因为如果没有激活函数,多层线性层叠起来,本质上还是一次线性变换。

例如两层:

h = W1x + b1 y = W2h + b2

代入后:

y = W2(W1x + b1) + b2 = (W2W1)x + (W2b1 + b2)

你会发现,它本质还是:

y = Wx + b

也就是说:

没有激活函数来引入非线性因素, 无论你堆多少层, 本质上都只是“换汤不换药”。

1. 激活函数的本质:引入非线性

激活函数让每一层不再只是机械地做线性变换,而是具备了“弯曲决策边界”的能力。

你可以把它理解成:

激活函数让神经网络从“直线世界”走向“曲线世界”。

这一步非常关键,因为现实任务大多数都不是线性的。

例如:

  • 猫和狗的图片区分不是一条直线;
  • 学生成绩是否及格也不是简单单变量直线关系;
  • 水稻病害识别更不可能是线性问题。

所以神经网络之所以能学复杂任务,很大程度上就是因为:

多层线性变换 + 非线性激活 = 可以拟合非常复杂的函数

2. 理解激活函数

如果继续做生物类比,激活函数可以理解为一种“是否激活/激活程度”的机制。

现实中,神经元并不是“看到输入就原样输出”,而是会有一种门槛效应:

刺激太弱,不太响应;
刺激足够强,才会明显激活;
不同强度刺激,反应程度不同。

人工神经网络里的激活函数,虽然和真实神经元不完全一样,但在直觉上可以理解为:

决定“这个神经元要不要被激活、激活到什么程度”。

六、神经网络真正强大的地方:表示学习

如果只说“它是很多层函数”,还是不够深入。

神经网络真正厉害的地方在于:

它不仅在学“如何分类”, 还在学“怎样表示输入数据”。

这叫做:

表示学习 Representation Learning

1. 什么叫“表示”?

举个例子。

假设输入是一张图片,本质上只是很多像素值:

[12, 24, 18, 255, 90, ...]

这些原始像素本身并不直接等于“猫”“狗”“病害”“健康”。

模型需要把这些原始数字,逐步变成更有意义的内部表示。

例如第一层可能把原始像素表示成:

边缘强弱 局部亮暗模式 简单纹理响应

再往后几层,表示可能变成:

耳朵轮廓 叶脉结构 病斑边缘模式 局部形状组合

再深一点,可能变成:

更抽象的语义特征

所以神经网络并不是“直接从像素跳到答案”,而是:

在中间构造出一层层越来越有意义的表示。

2. 为什么表示学习很重要?

因为很多任务难,不是难在“最后怎么分类”,而是难在:

原始数据太杂乱, 必须先把它变成更适合判断的形式。

例如在病害识别中,真正关键的往往不是原始 RGB 值,而是:

病斑分布 纹理变化 边缘形状 颜色异常模式 局部区域组合关系

这些东西如果靠人工手工设计,很难穷尽。

而神经网络可以通过训练自动学到这些表示。

这就是它为什么强。


七、前向传播:像人在“看”和“理解”

前向传播可以理解为模型的“观察和思考过程”。

如果类比人类识别过程,可以想成:

先看到原始信息 再逐步提炼重点 最后做出判断

在神经网络中,这个过程叫前向传播。

例如一个简单的 MLP:

输入层 → 隐藏层1 → 隐藏层2 → 输出层

它的含义是:

第 1 层:对输入做第一次解释 第 2 层:在前一层基础上做更抽象解释 输出层:根据前面的解释做最终决策

所以前向传播不是单纯的“算数学”,它更像是:

逐层加工信息 逐层抽取含义 最后形成判断

八、损失函数:相当于“老师批改作业”

神经网络训练为什么能不断变好?

因为它不是盲目乱调,而是有“反馈”。

这个反馈就是损失函数。

你可以把损失函数理解成:

老师给模型打分

如果模型预测得很准:

loss 小

如果模型预测得很差:

loss 大

所以损失函数回答的是:

你这次错了多少?

1. 类比:反馈驱动学习

人类学习也需要反馈。

例如小朋友看图识别动物:

他说“这是狗” 老师说“不对,这是猫”

这个“纠错反馈”会让他下次更注意某些特征。

神经网络也是一样:

模型给出预测 损失函数告诉它错了多少 优化算法根据这个反馈去调整参数

所以训练的本质并不是神秘的“智能觉醒”,而是:

不断犯错 不断收到反馈 不断修正

九、反向传播:它到底在解决什么问题?

很多同学觉得反向传播难,是因为一开始就被一堆链式法则公式淹没了。

其实从概念上,它解决的是一个很朴素的问题:

模型错了, 那到底该怪谁?

更准确一点说:

输出错了, 中间每一层、每一个参数, 各自应该承担多少责任?

这就是反向传播的意义。


1. 反向传播不是“倒着算一遍”,而是“责任归因”

前向传播解决的是:

根据当前参数,模型会输出什么?

反向传播解决的是:

输出误差是如何由每一层参数造成的?

也就是说,它在做一种“归因分析”。

如果最终预测错了,反向传播会层层往回追踪:

输出层哪些参数导致了错误? 上一层哪些神经元对这些错误有贡献? 再上一层哪些连接又影响了这些神经元?

最后,它会得到每个参数对错误的影响程度,也就是梯度。

所以反向传播的本质可以理解为:

一次系统化、可计算的“责任分配”过程。

2. 为什么反向传播有用?

因为只有知道“哪里错、错多少”,模型才知道怎么改。

如果没有反向传播,模型就只能乱试:

这个参数加一点试试? 那个参数减一点试试?

但神经网络参数很多,可能几万、几百万、几千万。

乱试根本不现实。

反向传播的价值就在于:

它提供了一个高效的方法, 告诉每个参数应该往哪个方向改、改多少更合适。

十、梯度下降

有了梯度之后,还需要一个更新规则。

最基本的更新思想就是梯度下降。

它的直觉特别简单:

如果把损失函数想象成一座山, 训练模型就是想办法往山下走。

当前位置对应当前参数,海拔对应当前损失。

梯度告诉我们:

哪里上升最快

所以如果我们想下降,就应该朝相反方向走。

因此更新规则是:

参数 = 参数 - 学习率 × 梯度

这里:

  • 梯度告诉方向
  • 学习率决定步子大小

你可以把学习率理解成:

每次改得激进一点,还是保守一点

十一、为什么神经网络不会只是“死记硬背”?

很多初学者会怀疑:

模型是不是只是把训练集背下来了?

这个问题很好,因为它直指“泛化能力”。

神经网络如果只是记忆训练数据,那当然没意义。

真正有价值的是:

在未曾见过的情况下也能做出较好判断。

这就叫泛化。


1. 生物类比:死记硬背 vs 举一反三

如果一个学生只是把习题答案背下来,那么一旦题目稍微变一下,他就不会了。

这叫:

死记硬背

如果他真正理解了知识点,那么遇到相似但不同的新题,也能做出来。

这叫:

举一反三

神经网络也一样。

  • 过拟合:像死记硬背
  • 泛化良好:像真正掌握规律

所以训练神经网络,不只是让它“记住训练样本”,更重要的是让它:

学到更一般化的规律。

2. 为什么神经网络有可能泛化?

从本质上说,是因为它不是直接存储样本,而是在学习一种参数化函数。

这个函数在训练时会被数据约束,逐步形成某种规律性结构。

当新数据和训练数据来自相似分布时,这种规律就有机会继续有效。

当然,这并不总是自动成立,所以我们还需要:

更多数据 合理模型复杂度 正则化 验证集调参

十二、MLP

MLP 的全称是:

Multi-Layer Perceptron

中文叫:

多层感知机

它的意义不在于“最先进”,而在于“最基础”。

MLP 把神经网络中最核心的思想几乎都包含了:

  • 线性变换
  • 激活函数
  • 多层组合
  • 前向传播
  • 损失函数
  • 反向传播
  • 梯度下降
  • 泛化与正则化

也就是说,学懂 MLP,你就抓住了后来 CNN、RNN、Transformer 的共同骨架。

所以我一直认为:

MLP 不是“过时模型”, 而是理解现代深度学习的第一扇门。

十三、一个极简训练框架:只看流程,不陷入代码细节

你前面已经有一定 PyTorch 基础了,所以这里我不再给很长的完整代码,而只保留一个“骨架级理解”。

神经网络训练的核心流程,其实就是下面这几步:

forepochinrange(epochs):# 1. 前向传播y_pred=model(x)# 2. 计算损失loss=criterion(y_pred,y_true)# 3. 清空旧梯度optimizer.zero_grad()# 4. 反向传播loss.backward()# 5. 更新参数optimizer.step()

这几行代码背后,对应的概念其实是:

看一眼数据 → 做出判断 → 计算错误 → 分析错因 → 调整连接 → 再看下一轮

如果你真的把这几步背后的意义理解透了,那么代码反而会变得简单。


十四、过拟合与正则化:让模型学会“理解”而不是“死背”

前面提到,神经网络并不总能自动泛化得很好。

它也可能出现过拟合。


1. 什么是过拟合?

过拟合就是:

训练集上表现很好, 测试集上表现不好。

这说明模型更像是在记忆训练数据,而不是学习一般规律。

类比到学生学习,就是:

作业题全背下来了, 考试一变形就不会。

2. 正则化的本质是什么?

正则化的本质不是“让模型更复杂”,而是:

约束模型不要学得太任性。

常见正则化方法包括:

L2 正则化 Dropout Early Stopping 数据增强

它们的共同目标可以概括为:

抑制死记硬背, 鼓励学习更稳定、更通用的模式。

这和老师教学中“不要只背答案,要理解方法”其实是一个道理。


十五、总结:神经网络为什么能起作用?

现在我们回到这篇文章最开始的问题:

神经网络为什么能起作用?

可以把答案归纳成下面几点。


1. 它能表示复杂函数

多层结构加非线性激活,让神经网络不再局限于简单的线性关系,而能够拟合复杂模式。


2. 它能逐层提炼特征

神经网络不是直接把原始输入变成答案,而是逐层构造更有意义的内部表示。

这就是表示学习的力量。


3. 它能通过反馈修正内部连接

损失函数提供“错了多少”的反馈,反向传播负责“把责任分回去”,梯度下降负责“据此修改参数”。

于是模型能够不断进步。


4. 它和生物学习过程在直觉上有相似性

虽然人工神经网络远远不等于真正的大脑,但它确实借鉴了一个重要思想:

学习 = 连接强度在反馈作用下不断调整

这正是神经网络中的参数更新机制。


5. 它不是简单记忆,而是努力学习规律

一个好的神经网络模型,不只是记住训练样本,而是通过训练学到对新样本也有效的规律。

这就是泛化。


十六、全文收束

所谓神经网络 = 多层可训练函数系统

它的工作方式可以概括为:

输入数据
→ 每层提炼表示
→ 最终给出预测
→ 用损失衡量错误
→ 用反向传播分配责任
→ 用梯度下降调整参数
→ 不断重复

而这,恰恰就是“学习”的本质。


http://www.jsqmd.com/news/899056/

相关文章:

  • 2026年全国校园餐智慧监管平台品牌深度调研榜单(最新版) - 资讯快报
  • 网球手链品牌TOP5实测:戴过才知道这3款最值得入! - 资讯纵览
  • 这款 Gitee 低代码平台太狠了!零代码搭建系统,Java 程序员要失业了?
  • 落地复盘:AI Coding 助手在 50 人研发团队中的 6 个月实战报告
  • 论文榨汁机 · 用多智能体对话榨干每篇论文的精华
  • 强品牌,真赋能:嘉宝莉石艺漆两场渠道推广会圆满收官 - 资讯快报
  • 观察在ubuntu环境下通过taotoken调用大模型的延迟与稳定性表现
  • 终极指南:5分钟掌握webMAN MOD,让你的PS3变身全能游戏中心
  • Codex 桌面版 使用国内大模型系列一 | EchoBird
  • 小米 MiMo-V2.5 最高降价 99%:Token 战争背后,是一套押注 Agent 的工程算盘
  • Java 文件操作与 IO 流入门:从基础到实战,新手必看全攻略
  • MCP博客园工具集成测试v3
  • AI Coding 助手的未来:从补全到自主编程的演进与工程准备
  • 2026上海二奢回收避坑指南|6大维度实测,这几家零投诉门店公开 - GrowthUME
  • 2026年5月惠州设计装修行业研究报告:高性价比排行榜揭晓 - 资讯纵览
  • 2026年夹钳式超声波流量计十大品牌:十家优选深度解析 - 科技焦点
  • FPGA实现ANU轻量级密码:4位到32位数据路径架构的权衡与实践
  • 热度暴跌 99%!基于OpenClaw的腾讯套壳QClaw还值得用吗?
  • 2026年中山全屋照明灯具采购厂家筛选标准出炉 宏盟照明凭综合实力稳居行业优选首位 - 资讯纵览
  • 2026年宿迁木门厂家推荐榜:宿迁木门定做、宿迁铝门定做厂家选择指南,成艺门业的场景化工艺切入 - 海棠依旧大
  • 求解全局优化问题几类填充罚函数及算法【附代码】
  • 2026海南代理记账怎么选?5家靠谱机构实测排行榜,做账报税不踩坑 - 资讯快报
  • 2026替换液压油缸的优选方案:耐高温工业推杆推荐 - 资讯快报
  • 2026年5月工程信息平台革命:中项网助工程企业获客转型 - GrowthUME
  • 2026年活性炭厂家深层解析 - 资讯快报
  • 电力工程项目信息平台的数据价值:中项网如何提升设备企业获客效率 - GrowthUME
  • 2026年罗斯蒙特差压变送器国产平替:五家优选深度解析 - 科技焦点
  • 微信匿名投票小程序:[云帆投票简单又便捷的设置指南] - 投票小程序
  • 选变频器风机品牌怎么选?2026年5月推荐TOP5评测工业场景防过载专业选择指南
  • 如何快速修复损坏的视频文件?Untrunc终极指南