3.5 多层感知机【stanford-cs329p】


Handcrafted Features -> Learned Features

  • 神经网络需要更多的数据和计算
  • 神经网络架构去建模数据结构
    • 多层感知机
    • 卷积神经网络
    • 循环神经网络
    • Transformer

Linear Methods -> Multilayer Perceptron (MLP)

  • 一个稠密的(全连接、线性)层有参数 $W\in \mathbb{R}^{m\times n},b\in \mathbb{R}^m$,来计算出输出 $y=Wx+b\in \mathbb{R}^m$
  • 线性回归:全连接层有一个输出
  • Softmax回归:全连接层有m个输出+softmax

MLP

  • 激活函数是一个按元素的非线性函数
    • $sigmoid(x)=\frac1{1+\exp{(-x)}},Relu(x)=\max(x,0)$
    • 这导致了非线性模型
  • 堆叠多个隐藏层来获得更深的模型
  • 超参数
    • 隐藏层数
    • 每个隐藏层输出维度

Code

  • 有1个隐藏层的MLP
  • 超参数:隐藏层个数
1
2
3
4
5
6
7
8
9
10
def relu(X):
return torch.max(X,0)

W1 = nn.Parameter(torch.randn(num_inputs, num_hiddens) * 0.01)
b1 = nn.Parameter(torch.zeros(num_hiddens))
W2 = nn.Parameter(torch.randn(num_hiddens, num_outputs) * 0.01)
b2 = nn.Parameter(torch.zeros(num_outputs))

H = relu(X @ W1 + b1)
Y = H @ W2 + b2