一、目前我用到过的资源:
二、梯度
看到梯度我又有点搞不清楚了,于是去看了宋浩高等数学的方向导数、梯度,感觉讲的真好,真是相见恨晚啊!
梯度是一个向量,梯度方向是方向导数最大的方向!
反方向应该是方向导数值最小的方向。
三、python代码占据的书本的重要地位
python这方面倒还算轻松的,如果你学习过python数据分析、参加过相关机器学习比赛(第三章-实战kaggle比赛:房价预测)、学习过面向对象的知识(第四章-深度学习计算)等。
四、反向传播概念
最初接触到深度学习,一直就反向传播很纠结。但要理解其实也简单,不能仅仅停留在字面意思。这一个概念其实又和其他很多概念有联系。而要在脑子里重建这个概念,需要很多拼图。
- 求导遵循链式法则。但如果神经网络揉合了python控制流等情况时求梯度,我总感觉有点奇怪,这时的梯度是否准确?
- 反向传播后,需要对参数进行调整,对每一个模型参数减去学习率*对应梯度分量。梯度可通过损失函数对权重一步步求导得到,求梯度程序虽然有点黑箱,但我也管不了,只能backward一下就自动求导。
- 和正向传播(把输入代入模型得到输出)有一点相对
- 求导时首先对最后一层的权重求导,在继续往前求导时,会用到一点前面已经计算的导数和正向传播计算的每一层的输出。
五、最后的吐槽
- 另外发现,如果要创建虚拟环境并且在jupyter上使用(切换kernel),似乎电脑用户名必须是英文才行,而不用多kernerl似乎中文用户名也不就影响!可以再在电脑上注册个英文名用户,但是虽然可以用jupyter了,但好像调用不了以前账户的包
- 最后不得不说kaggle的免费gpu就是香(随便找了个加速器免费送两个小时,让我完成了注册),目前我在kaggle上安装mxnet,使用正常。