随机梯度下降:从基础到实践
在机器学习的图像分类任务中,我们最初对 3 和 7 的分类取得了不错的开端,准确率均超过 90%。例如,通过以下代码计算 3 和 7 的准确率:
accuracy_3s = is_3(valid_3_tens).float().mean()
accuracy_7s = (1 - is_3(valid_7_tens).float()).mean()
print(accuracy_3s, accuracy_7s, (accuracy_3s + accuracy_7s) / 2)
# 输出示例:(tensor(0.9168), tensor(0.9854), tensor(0.9511))
不过,目前仅对 10 个可能数字中的 2 个进行分类,且 3 和 7 外观差异较大,因此我们需要寻找更好的方法。
随机梯度下降的引入
为了提升模型性能,我们引入随机梯度下降(SGD)。传统的像素相似度方法缺乏权重分配和基于权重有效性测试的改进机制,而 SGD 则可以自动调整自身以提高性能。
我们不再寻找图像与“理想图像”之间的相似度,而是为每个像素分配一组权重。例如,对于数字 8,右下角的像素更可能被激活,因此这些像素应具有较高的权重;而对于数字 7,这些像素不太可能被激活,权重应较低。可以用以下函数表示数字 8 的概率:
def pr_eight(x, w):
return (x * w).sum()
这里, x
超级会员免费看
订阅专栏 解锁全文
1100

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



