深度学习中的关键技术与应用
1. 模型训练基础
在深度学习训练过程中,通常会进行如下操作来更新模型参数:
epoch_loss = 0.0
for x, y in zip(xs, ys):
predicted = net.forward(x)
epoch_loss += loss.loss(predicted, y)
gradient = loss.gradient(predicted, y)
net.backward(gradient)
optimizer.step(net)
accuracy = fizzbuzz_accuracy(101, 1024, net)
t.set_description(f"fb loss: {epoch_loss:.2f} acc: {accuracy:.2f}")
# Now check results on the test set
print("test results", fizzbuzz_accuracy(1, 101, net))
经过1000次训练迭代后,模型在测试集上可达到约90%的准确率。若增加训练次数,准确率可能会进一步提高。不过,仅使用25个隐藏单元可能难以达到100%的准确率,而增加到50个隐藏单元时则有可能实现。
2. Softmax与交叉熵
在分类问题中,传统的以Sigmoid层结尾的神经网络,其输出是0到1之间的向量,可能出现全为0或全为1的情况,这在分类任务中难以解释。为了输出各类别的实际概率分布,通常会舍弃最后的Sigmoid层,转而使用softmax
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



