前馈神经网络
前馈神经网络(Feedforward Neural Network, FNN)也称多层感知机(MLP)。信息从输入层逐层流向输出层,不存在循环连接。
概念详解
对第
其中
常见激活函数包括:
反向传播推导
以均方误差为例:
输出层误差项为:
隐藏层误差项由链式法则得到:
参数梯度为:
应用代码
python
import torch
from torch import nn
class MLP(nn.Module):
def __init__(self, in_dim=4, hidden=16, out_dim=3):
super().__init__()
self.net = nn.Sequential(
nn.Linear(in_dim, hidden),
nn.ReLU(),
nn.Linear(hidden, out_dim)
)
def forward(self, x):
return self.net(x)
X = torch.randn(32, 4)
y = torch.randint(0, 3, (32,))
model = MLP()
loss_fn = nn.CrossEntropyLoss()
optim = torch.optim.Adam(model.parameters(), lr=1e-3)
for step in range(100):
logits = model(X)
loss = loss_fn(logits, y)
optim.zero_grad()
loss.backward()
optim.step()
print("loss:", loss.item())小结
前馈网络是深度学习最基础的模块。后续 CNN、RNN、Transformer 中的大量子结构,本质上仍然依赖线性层、激活函数和反向传播。