神经网络如何工作:为什么直线不够用

神经网络如何工作:为什么直线不够用

💡 原文英文,约2300词,阅读约需9分钟。
📝

内容提要

文章以数学老师预测学生成绩为例,说明现实数据常呈非线性关系。分段线性函数可在不同区间采用不同规则,ReLU即属此类,将负值归零;S形曲线过渡更平滑,sigmoid函数把输入映射到0至1,适合表示概率。文中用简单神经网络演示:隐藏层用ReLU处理学习时长,输出层分别用线性变换预测分数、用sigmoid预测及格概率,说明非线性使网络能学习复杂关系。

🔎

延伸解读

从直线到分段:非线性如何捕捉数据中的规则变化

文章用数学老师预测学生成绩的例子说明,现实数据往往不是一条直线能描述的。学习时长与分数之间可能存在分段关系:初期分数不变,中期随学习时间增加而上升,后期又趋于平缓。分段线性函数允许在不同区间采用不同规则,这正是神经网络引入非线性的直观起点。它提醒我们,当数据关系随输入范围变化时,单一线性模型会失效,需要能切换规则的函数。

ReLU与Sigmoid:两种非线性激活函数的分工

ReLU将负输入归零、正输入保持不变,本质是分段线性函数,适合在隐藏层中让神经元对不同输入范围做出不同响应。Sigmoid则将任意实数映射到0到1之间,曲线平滑过渡,适合输出概率。文中预测及格概率的网络正是先用ReLU处理学习时长,再用Sigmoid将输出转换为概率。两者结合展示了隐藏层引入非线性、输出层适配任务需求的典型结构。

示例网络的局限:手动参数与未训练状态

文章中的两个神经网络均为未训练状态,权重和偏置是手动设定的,仅用于演示计算过程。作者明确说明,现实中参数应通过训练、反复比较预测值与实际值并调整以最小化误差来学习。此外,预测分数的网络在输入超过一定值后输出持续上升,未能反映数据后期平缓的趋势。因此,这些例子适合理解非线性机制,但不应被视为实际可用的预测模型。

❓

Q&A

为什么神经网络不能只用直线方程来建模?

因为现实数据往往不遵循直线模式,输入和输出之间的关系可能在不同区间发生变化。例如,学生成绩随学习时间的变化并非始终成正比:初期可能不变,中期上升,后期又趋于平缓。单一线性方程无法描述这种分段变化的行为,因此需要引入非线性。

ReLU函数是什么?它如何为神经网络引入非线性?

ReLU(Rectified Linear Unit)的数学形式为 y = max(0, x),即保留正输入不变,将负输入变为0。它本质上是一个分段线性函数:当x<0时输出恒为0,当x≥0时输出等于x。虽然每段都是线性的,但整体上函数在不同区间遵循不同规则,从而引入了非线性,使神经元能对不同范围的输入做出不同响应。

sigmoid函数有什么特点?在神经网络中有什么用途?

sigmoid函数将任意实数输入映射到0到1之间,公式为 σ(x) = 1 / (1 + exp(-x))。它的曲线呈S形,缓慢上升后快速增加,最后趋于平缓。在神经网络中,sigmoid不仅引入非线性,还能将输出限制在0到1之间,因此特别适合表示概率,例如学生考试及格的可能性。

分段线性函数和sigmoid函数在拟合数据时有什么不同?

分段线性函数由多个直线段组成,在不同输入区间采用不同线性规则,转折处是尖锐的;而sigmoid函数是一条平滑的S形曲线,过渡是逐渐且连续的。分段线性函数(如ReLU)实现简单,但可能产生突变;sigmoid函数更平滑,适合表示概率,但计算稍复杂。两者都能捕捉非线性关系。

能否举例说明神经网络如何用ReLU预测学生分数?

可以。假设网络输入为学习小时数x,隐藏层计算 z = x - 3,然后应用ReLU得到 h = max(0, z),输出层再计算 ŷ = 10h + 40。例如学生学了5小时:z = 5 - 3 = 2,h = max(0,2)=2,预测分数 ŷ = 10*2 + 40 = 60。实际分数为58,预测值接近。这展示了ReLU如何帮助网络拟合非线性关系。

神经网络如何同时使用ReLU和sigmoid来预测考试是否及格?

网络在隐藏层先用ReLU处理输入:z₁ = x - 4,h = max(0, z₁);输出层再对h进行线性变换 z₂ = 2h - 1,然后通过sigmoid得到概率 p = σ(z₂)。若p≥0.5则预测及格,否则不及格。例如学习3小时:z₁ = -1,h = 0,z₂ = -1,p ≈ 0.269 < 0.5,预测不及格;学习5小时:z₁ = 1,h = 1,z₂ = 1,p ≈ 0.731 > 0.5,预测及格。

🏷️

标签

➡️

继续阅读