2325 字
12 分钟
机器学习笔记:神经网络——“老北京炸鸡店”的绩效纠错学

前言#

上一篇中,我们靠决策树的层层 if-else 找到了心仪的炸鸡店。但对于炸鸡店老板来说,真正的挑战在于:如何让一堆零基础的学徒,稳定地炸出让万千吃货满意的金牌炸鸡?

这就涉及到了机器学习中最具统治力的算法——神经网络(Neural Networks)。它不是在造人脑,它是在构建一套严密的数学优化系统。


神经元模型:后厨里的“加权学徒”#

神经网络的基本单位是 M-P 神经元模型。我们可以把每个神经元看作后厨里负责单一工序的学徒。

学徒的工作逻辑可以用这个数学式子概括:

y=f(i=1nwixiθ)y = f(\sum_{i=1}^{n} w_i x_i - \theta)
  • 输入 (xix_i):进场的原料。比如鸡肉、腌料、裹粉。
  • 权重 (wiw_i):师傅交代的重点。师傅说:“腌料的重要性 w1w_1 是鸡肉 w2w_2 的两倍。”
  • 阈值 (θ\theta):合格线。原料的加权总分必须超过 θ\theta,学徒才会“激活”,把半成品传给下一工位。
  • 激活函数 (ff):学徒的情绪。通常用 Sigmoid 等函数,它能把输出映射到 (0,1)(0, 1) 之间,代表学徒对这份产品的满意评价。

感知机与多层网络:从路边摊到大饭店#

感知机 (Perceptron) 就像只有两层工序的小摊,它由两层神经元组成:

其分类逻辑是寻找一个超平面

y=ε(wTxθ)y = \varepsilon(\mathbf{w}^T \mathbf{x} - \theta)

感知机在处理普通顾客的“辣 vs 不辣”这种线性可分的问题时像快刀切豆腐,很容易就可以给出判断是要辣还是不辣,可要是有客人的口味比较复杂呢?

2.1 线性不可分情况#

现在口味变复杂了。顾客提出了一个逻辑:“我要么只要辣,要么只要蒜,但如果两样都加(太串味)或者两样都不加(没味道),我都不吃。”

我们把这个需求画在坐标轴上:

辣椒 (x1)大蒜 (x2)顾客评价 (y)坐标点
无 (0)无 (0)不喜欢 (0)(0,0)
有 (1)无 (0)喜欢 (1)(1,0)
无 (0)有 (1)喜欢 (1)(0,1)
有 (1)有 (1)不喜欢 (0)(1,1)
挑战来了

请你尝试在下图中画一条直线,把那两个“不喜欢”的点 (0,0) 和 (1,1) 跟那两个“喜欢”的点 (1,0) 和 (0,1) 分开。

你会发现:无论你怎么划线,都做不到。 这就是“线性不可分”。

碎碎念

我有点讨厌国内线代课程,总是把一些线性不可分或者线性可分用全部公式或者概念的方式教授,这很难去理解线性代数到底有什么用。其实它在讲一件很浪漫的事:有些矛盾,在低维空间是死结,但只要你提升一个维度,一切都将迎刃而解。

2.2 隐藏层——通过改变自由度#

为什么加入“隐藏层”就解决了?你可以把隐藏层理解为后厨里的 “调味预处理站”

  • 初级学徒(输入层):只负责递原料(辣不辣?蒜不蒜?)。
  • 中级厨师(隐藏层):他不直接出餐,但他会进行复合加工
    • 厨师 A 专门负责判断:“是不是至少有一种味道?”
    • 厨师 B 专门负责判断:“是不是两样都加了?”
  • 主厨(输出层):汇总中级厨师的信息。如果“至少有一种味道”且“并没有两样都加”,才出餐。

这就是隐藏层的魔力: 它把原始的辣椒和大蒜数据,映射到了一个新的“逻辑维度”。通过这种“多层加工”,原本在平面上切不开的四个点,在更高维的空间里被扭曲、对折,最终主厨只需要轻轻挥刀,就能实现完美分类

2.3 感知机 vs 多层神经网络#

特性感知机 (路边摊)多层神经网络 (大饭店)
层数仅输入、输出两层包含一层或多层隐藏层
逻辑能力只能处理线性问题 (OR, AND, NOT)能处理非线性问题 (XOR)
复杂度计算开销极低随着深度增加,参数呈几何倍数增长
角色定义单工序员工:只能做简单判断协同团队:具备多层次的抽象思维能力

BP 算法:后厨的“客诉追责绩效系统”#

当饭店规模变大,纠错就成了难题。如果炸鸡难吃,到底是哪一环出的问题?究竟是炸的过程中是指挥部还是具体落实做出来的徒弟?

误差逆传播算法 (Backpropagation) 通过链式法则解决了这个“甩锅”难题。

3.1 误差计算:顾客的差评#

炸鸡出锅预测值为 y^jk\hat{y}_j^k,实际标准为 yjky_j^k,算出均方误差

Ek=12j=1l(y^jkyjk)2E_k = \frac{1}{2} \sum_{j=1}^{l} (\hat{y}_j^k - y_j^k)^2

3.2 逆向追责 (Gradient Descent)#

经理要根据 EkE_k,从出餐口往回捋,调整每个人的权重:

  • 惩罚输出层学徒 (gjg_j):直接负责撒盐的学徒。

    gj=y^jk(1y^jk)(yjky^jk)g_j = \hat{y}_j^k (1 - \hat{y}_j^k) (y_j^k - \hat{y}_j^k)
  • 惩罚隐层厨师 (ehe_h):腌肉的厨师,他的责任由徒弟(输出层)传回。

    eh=bh(1bh)j=1lwhjgje_h = b_h (1 - b_h) \sum_{j=1}^{l} w_{hj} g_j

通过不断迭代,学徒们会根据“差评”自动修正自己的配方权重,直到误差最小化。


卷积神经网络 (CNN):自带“扫描仪”的质检员#

全连接网络像死记硬背的厨师,试图记住照片里的每个像素。而 卷积 (Convolution) 让质检变得极其聪明。

4.1 卷积层:拿着模板找特征#

卷积核(Kernel)就像一个 3x3 的移动模具。质检员拿着它在炸鸡照片上滑动,寻找“金黄色鳞片”等局部特征。

数学表达为:

S(i,j)=(IK)(i,j)=mnI(i+m,j+n)K(m,n)S(i, j) = (I * K)(i, j) = \sum_m \sum_n I(i+m, j+n) K(m, n)
  • 权值共享:无论鳞片在左上角还是右下角,寻找它的“模具”都是同一套,这极大减少了参数量。

4.2 池化层 (Pooling):写摘要的经理#

卷积扫完后数据量还是太大,池化层负责提炼。最大池化 (Max Pooling) 只保留区域内“最像金黄色”的高分,剔除杂音。


深度学习:从“人工配方”到“自学成才”#

这是这场工业革命的核心转变:

  • 传统机器学习 (ML):老板(人)手工写配方(人工特征工程)。比如:色泽必须大于 80,重量要在 200g。
  • 深度学习 (DL):老板只管喂照片(数据)。
维度传统机器学习 (Traditional ML)深度学习 (Deep Learning)
数据依赖小样本地头蛇:即使数据量较少,也能通过精细的算法(如决策树、SVM)表现良好大数据贪婪者:需要海量数据才能发挥威力,数据越多,效果上限越高
特征工程人工配方:依赖专家经验手动提取特征(比如:根蒂、色泽、敲击声)自学成才:算法自动从原始数据(如像素、波形)中提取多层次特征
硬件依赖经济实惠:普通电脑 CPU 即可流畅运行,计算开销相对较小重型军火:极度依赖高性能 GPU/TPU 进行大规模并行计算
训练耗时快进快出:训练时间通常在几秒到几小时之间旷日持久:深度网络的训练可能需要几天甚至数周时间
可解释性白盒决策:逻辑清晰(比如决策树的层层判断),容易理解为什么得出结论黑盒艺术:内部数百万个参数在跳动,人类很难解释具体哪一个参数起到了决定性作用
算法表现边际效应:数据量达到一定规模后,性能会进入平台期,难以再提升持续进化:性能随着数据规模和模型深度的增加而持续攀升,几乎没有天花板
炸鸡店角色老师傅的经验:靠的是几十年总结出来的固定配方和手感(规则明确)智能流水线:只要喂给它足够多的成功案例,它能自己总结出最完美的油温与裹粉配比

神经网络通过层层堆叠,自动学会了提取特征:底层看线条,中层看纹理,高层看“酥脆感”。

结论:深度学习让机器实现了从“被动执行配方”到“主动领悟规律”的质变。


结语:寻找“全局最小”的秘方#

在后厨经理调整参数的过程中,最大的敌人是局部极小点。我们以为现在的配方已经最好了,其实只是掉进了一个“还不错”的小坑里,而错过了真正的黄金秘方。

虽然我们可能会遇到过拟合(学徒太迎合某一个奇葩顾客的口味),但通过卷积的降维打击与 BP 的精准追责,这家连锁店终将炸出泛化能力最强的“金牌炸鸡”。

机器学习笔记:神经网络——“老北京炸鸡店”的绩效纠错学
https://loners.site/posts/machinelearning5/
作者
Mongxin Chan
发布于
2026-01-24
许可协议
CC BY-NC-SA 4.0