assignment 2
assignment2讲解参见:
https://blog.csdn.net/BigDataDigest/article/details/79286510
http://www.cnblogs.com/daihengchen/p/5765142.html
最后一个作业Q5基于Tensorflow和Pytorch,将会需要在GPU上运行。
1. softmax_loss:
log_probs[range(N), y]:从log_probs中取出纵值为yi,即正确标签,横值图像数,即从log_probs中取出y所指向的正确类的概率值,得到是一个[N,]数组,加和后除以N,即为softmax_loss。
2.关于batch normalization:
参见:https://www.cnblogs.com/guoyaohua/p/8724433.html
参见:https://www.cnblogs.com/skyfsm/p/8453498.html
反向传播参见:https://zhuanlan.zhihu.com/p/26138673
https://blog.csdn.net/kevin_hee/article/details/80783698
基本流程:减去均值(mini-batch mean)、除以方差(normalize)、scale and shift。
3.总结:
到这里,我们大致学完了“神经网络”基础。我们学习了:
l 一个神经网络应该有三大基础东西 - 损失函数、梯度、权值(模板)。
l 神经网络将一个函数封装成一个独立的神经元,然后将神经元分层连接,使之高效地传递信息。
l 我们认识了各种激活函数(推荐使用ReLU)。
l 我们可以对初始数据做预处理(推荐使用“减均值+除标准差”)。
l 我们还可以对隐藏层也做类似处理(Batch Normalization)。
l 我们应该对权进行初始化(推荐使用“随机数+除标准差”)。
l 如果train/val之间有gap,就是过拟合了(推荐使用“R2+Dropout”)。
l 在训练中,要对各种参数进行更新(推荐使用Adam)。
l 最后,还有对超参数进行调优的方法。