前言

我一直是做应用开发的,幸运的是,平时在工作里我能经常和 AI 打交道。最近一年,我主导或参与了一些 AI 应用的落地实践,比如 RAG 系统、智能客服的工作流编排;在一些传统业务场景里,我也常常借助 AI 来提升效率。可以说,我已经在实际项目里尝到了 AI 的“甜头”,或者说我认为自己算是赶上了风口,非常幸运的进入了 AI 领域的开发,得到过一些真实的经验。

光会调 API 是远远不够的。如果想真正把 AI 用好、用深,就需要对它的底层机制有更多理解。过去看别人讲神经网络,满屏的公式和符号,像天书一样,常常让我打退堂鼓。直到最近,我硬着头皮重新学了一下,换个角度去理解,才发现里面其实挺有意思。

这篇文章就记录一下我对 神经网络五个核心概念 的理解:前向传播、损失函数、反向传播、梯度下降、激活函数。希望你看了之后有所收获。

神经网络

先来做一句话总结,神经网络的训练过程,其实就是:
“机器先乱算 → 老师打分 → 机器自己改 → 慢慢学会规律”。

我们可以把神经网络想象成一个“学徒工”:

  1. 前向传播:学徒先尝试做一道题,比如输入 [2, 3],随便给出一个答案。
  2. 损失函数:师傅告诉他,答案和标准答案差多少。
  3. 反向传播:学徒复盘自己步骤里哪一步错了。
  4. 梯度下降:根据复盘,学徒改进一点点做法。
  5. 激活函数:这相当于给学徒增加更复杂的思维方式,不然他只会算直线问题。

日复一日,学徒就能越来越接近正确答案。

如果你和我一样是后端出身,可以把训练过程类比成 接口压测和自动调优:

  1. 前向传播 = 一次请求调用(输入 → 输出)。
  2. 损失函数 = 压测报告(预测和真实差多少)。
  3. 反向传播 = 日志分析(哪一步出了问题)。
  4. 梯度下降 = 自动改配置(调优参数)。
  5. 多轮训练 = 压测 → 调整 → 再压测,直到指标下降。

代码示例:让网络学会加法

下面是一个最小可运行的 PyTorch 示例。我让网络去学“两个数相加”的规律,最后它能预测出接近正确的结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import torch
import torch.nn as nn
import torch.optim as optim

# 1. 定义一个小网络:输入2个数 -> 输出1个数
class TinyAddNN(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(2, 4) # 2维 -> 4维
self.relu = nn.ReLU()
self.fc2 = nn.Linear(4, 1) # 4维 -> 1维

def forward(self, x):
x = self.relu(self.fc1(x))
x = self.fc2(x)
return x

# 2. 准备数据:希望学会 y = x1 + x2
X = torch.randn(100, 2) # 100行,每行2个数
y = X.sum(dim=1, keepdim=True)

# 3. 定义模型、损失函数和优化器
model = TinyAddNN()
loss_fn = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.1)

# 4. 训练
for step in range(30):
pred = model(X) # 前向传播
loss = loss_fn(pred, y) # 计算损失

optimizer.zero_grad() # 清空梯度
loss.backward() # 反向传播
optimizer.step() # 梯度下降

if step % 5 == 0:
print(f"Step {step}, Loss={loss.item():.4f}")

# 5. 测试一下:2+3 ≈ ?
test = torch.tensor([[2.0, 3.0]])
print("预测结果 (应该接近5):", model(test).item())

运行效果

控制台输出类似这样:

1
2
3
4
5
6
7
Step 0, Loss=3.0751
Step 5, Loss=1.8498
Step 10, Loss=1.0602
Step 15, Loss=0.2336
Step 20, Loss=0.0624
Step 25, Loss=0.0499
预测结果 (应该接近5): 4.1164

可以看到 Loss(误差)一步步下降,说明网络在“学”。最后预测 [2,3] 得到 4.1,已经很接近标准答案 5 了。

总结

神经网络就是一个自动调优的函数系统:输入数据,输出预测,算出误差后自动修正参数。简单来说是学徒学手艺;严格来说是前向传播、损失函数、反向传播和梯度下降的循环。