AI & ML 推荐

1. Python 入门篇

  • 廖雪峰的 Python 教程
    推荐看到 正则表达式就可以了,前面如果不懂,可以利用丰富的网上资源查找资料,不用只局限一篇博客
  • 书籍: Learning Python
    这本书非常值得推荐,感觉写的很详细,但可能对初学者不太友好。
    我在学了 Python 很久后才看到这本书的,感觉很多原先不懂的地方这里都解释得很清楚
    我的博客中关于 Python 部分 大多数都是总结自这本书

  • Numpy, Scikit-learn, Matplotlib 学习: Scipy Lecture Note (很遗憾缺少 Pandas 库)

  • Python 可视化: Python graph gallery
    注: 我的博客中讲解 seaborn 的部分来自这个网址

这里强烈建议读完前两个,后面关于库的使用,可以在项目中学,后面在 Kaggle 篇会解释

Continue reading “AI & ML 推荐”

Ubuntu 16.04 cuda + pytorch

1. 安装 Ubuntu 16.04

这一步就不说了,网上很多教程,几点建议:

  1. 请不要尝试 Ubuntu 18.04,新版本 bug 比较多
  2. 下载地址: Ubuntu 16.04 Desktop (64-bit)
  3. 系统语言选英文,主要是有助于 shell 切换目录
  4. 请设置开机密码

安装好可以更新一下,

sudo apt-get update
sudo apt-get upgrade

Continue reading “Ubuntu 16.04 cuda + pytorch”

利用 matrix derivative 思考 back propagation

在之前 矩阵偏导 一文中提到,我们通常采用 numerator layout 的格式表示 偏导矩阵。

但是 !!!!!!

在 back propagation 中,我们应当采用 denominator layout 的格式,理由有两点 :

  1. 损失函数 \(J\) 一般是标量,而 权重 \(\mathbf {W}\) 和 偏置 \(\mathbf {b}\) 均为矩阵, 我们求解 \(\cfrac {\partial J}{\partial \mathbf {W}}\)\(\cfrac {\partial J}{\partial \mathbf {b}}\) 矩阵,大小和分母保持一致更合适
  2. 梯度下降中,\(\mathbf {W} = \mathbf {W} – \alpha \cfrac {\partial J}{\partial \mathbf {W}}\) ,如果我们采用 denominator layout,可以进行矩阵减法运算,而不用转置后再运算

本文的网络结构参考吴恩达老师的 Deeplearning.ai 课程

Continue reading “利用 matrix derivative 思考 back propagation”