训练集、开发集(模型评估)、测试集。
f
(
x
)
=
w
x
+
b
f(x)=wx+b
f(x)=wx+b
loss —— 一个样本
cost (Mean Square Error) —— training set
局部最优,不一定全局最优。
鞍点:梯度为0,但无法继续迭代。
w
=
w
−
α
∂
c
o
s
t
∂
w
w = w - \alpha\frac{\partial cost}{\partial w}
w=w−α∂w∂cost
SGD:
w
=
w
−
α
∂
l
o
s
s
∂
w
w = w - \alpha\frac{\partial loss}{\partial w}
w=w−α∂w∂loss
Mini-Batch:介于cost和loss之间。
Tensor:data 和 grad
w.data
w.grad.data:数值计算,不构建计算图。
w.grad.item():取出数值。
w.grad.data.zero():清零。
torch.nn.Linear(1,1) 包括 weight 和 bias。
y
=
w
T
x
+
b
y=w^Tx+b
y=wTx+b
net.parameters()
print(list(net.parameters()))
print(list(net.named_parameters()))
print(net.layer.weight.item())
print(net.layer.bias)
输出不再是估计值,而是概率。
非线性的激活函数(sigmoid)。
Mini-Batch:N个samples向量化计算。
多层:加入非线性函数。
torch.utils.data.Dataset()
torch.utils.data.DataLoader(XX, batch_size, shuffle, num_workers)
softmax:多个输出的概率分布。
最后一层softmax,其他层非线性。
nn.CrossEntropyLoss()
feature extration: convolution、subsampling
classification: fully connected
convolution: 图像RGB三个通道,每个通道配一个卷积核,然后相加,变为一个通道。patch: 3 * width * height。
n通道,m个filter(n个卷积核),相加,拼接,变为m个通道。
MaxPooling: 挑选最大值,通道数不变。
input—(conv—relu—pooling)—linear—output
1*1Conv降低运算量。
有序列关系的数据。
h
t
=
t
a
n
h
(
W
i
h
x
t
+
b
i
h
+
W
h
h
h
t
−
1
+
b
i
h
)
h_t=tanh(W_{ih}x_t+b_{ih}+W_{hh}h_{t-1}+b_{ih})
ht=tanh(Wihxt+bih+Whhht−1+bih)
torch.nn.RNNCell()
torch.nn.RNN()
One-hot vs Embedding
x—embed—RNN Cell—Linear—o
LSTM
GRU