动手学深度学习v2 - 从入门到线性回归的实现
介绍
其实挺久前就看了这个教程动手学深度学习v2,但是一直没有看完,这次趁过年想一次性过完。
花了差不多一天时间过了一遍视频和代码,完成了线性回归模型的简单实现。这算是一个基础阶段了,比起西瓜书和李宏毅的教程,这个更容易理解,更加实际,当然相对也不会那么深入。
理论
主要是线性代数,各种求导,梯度下降的理论,有个入门的概念即可。后面能看懂对应代码就行。
实践
根据.ipynb
文件,有如下代码
def sgd(params, lr, batch_size): #@save |
关键在于对每个神经元参数每轮梯度下降处理,同时别忘了先清零。
概括一下,我们将执行以下循环:
初始化参数
重复以下训练,直到完成
计算梯度$\mathbf{g} \leftarrow \partial_{(\mathbf{w},b)} \frac{1}{|\mathcal{B}|} \sum_{i \in \mathcal{B}} l(\mathbf{x}^{(i)}, y^{(i)}, \mathbf{w}, b)$
更新参数$(\mathbf{w}, b) \leftarrow (\mathbf{w}, b) - \eta \mathbf{g}$
至于训练轮数还有学习率之类的超参数,实践出真知吧,这就是炼丹!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Haostart 的个人站点!
评论