注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图,我个人记录符号说明这个部分是为了练习LaTeX公式语法,感兴趣的可自行参考【Markdown Latex 数学公式传送门】以及【LaTex常用数学符号大全】学习
符号说明
数字
- x x x:标量
- x \textbf{x} x:向量
- X \Chi X:矩阵
- X \mathsf{X} X :张量
- I \textbf{I} I:单位矩阵
- x x x𝑖 , [𝐱]𝑖 :向量 𝐱第 𝑖个元素
- x x x𝑖𝑗 , [𝐗]𝑖𝑗:矩阵 𝐗 第 𝑖 行第 𝑗 列的元素
集合论
- χ \chi χ:集合
- Z \mathsf{Z} Z:整数集合
- R \mathsf{R} R :实数集合
- R n \mathsf{R}^n Rn:n维实数向量集合
- R a × b \mathsf{R}^{a \times b} Ra×b:包含行和列的实数矩阵集合
- A ∪ B \mathcal{A}\cup\mathcal{B} A∪B:集合 A \mathcal{A} A和集合 B \mathcal{B} B的并集
- A ∩ B \mathcal{A}\cap\mathcal{B} A∩B:集合 A \mathcal{A} A和集合 B \mathcal{B} B的交集
- A ∖ B \mathcal{A}\setminus \mathcal{B} A∖B:集合 A \mathcal{A} A和集合 B \mathcal{B} B相减, B \mathcal{B} B关于 A \mathcal{A} A的相对补集
函数和运算符
- f ( ⋅ ) \mathcal{f}(\cdot) f(⋅):函数
- log ( ⋅ ) \log(\cdot) log(⋅):自然对数
- exp ( ⋅ ) \exp(\cdot) exp(⋅):指数函数
- 1 X \textbf{1}_{\mathcal{X}} 1X:指数函数
- ( ⋅ ) T (\cdot)^\mathsf{T} (⋅)T:向量或矩阵的转置
- X − 1 \mathbf{X}^{-1} X−1:矩阵的逆
- ⨀ \bigodot ⨀:按矩阵相乘
- [ ⋅ , ⋅ ] \left[\cdot,\cdot\right] [⋅,⋅]:连结
- ∣ X ∣ \vert \mathcal{X}\vert ∣X∣:集合的基数
- ∥ ⋅ ∥ p \Vert \cdot \Vert _\mathit{p} ∥⋅∥p: L p \mathit{L}_\mathit{p} Lp正则
- ∥ ⋅ ∥ \Vert \cdot\Vert ∥⋅∥: L 2 \mathit{L}_\mathit{2} L2正则
- ⟨ x,y ⟩ \lang \textbf{x,y} \rang ⟨x,y⟩:向量 x \textbf{x} x和 y \textbf{y} y的点积
- ∑ \sum ∑:连加
- ∏ \prod ∏:连乘
- = d e f \stackrel{\mathrm{def}}{=} =def:定义
微积分
- d y d x \frac{dy}{dx} dxdy: y y y关于 x x x的导数
- ∂ y ∂ x \frac{\partial y }{\partial x } ∂x∂y: y y y关于$x的偏导数
- ∇ x y \nabla_\textbf{x}y ∇xy: y y y关于 x \textbf{x} x的梯度
- ∫ a b f ( x ) d x \int_a^b \mathcal{f}(x)\ dx ∫abf(x) dx: f f f在 a a a到 b b b区间上关于 x x x的定积分
- ∫ f ( x ) d x \int f(x)\ dx ∫f(x) dx: f f f关于 x x x的不定积分
概率与信息论
- P ( ⋅ ) \mathit{P}(\cdot) P(⋅):概率分布
- z ∼ P \mathcal{z} \sim \mathit{P} z∼P:随机变量 z \mathcal{z} z具有概率分布 P \mathit{P} P
- P ( X ∣ Y ) \mathit{P}(X|Y) P(X∣Y): X ∣ Y X|Y X∣Y的条件概率
- p ( x ) \mathit{p}(x) p(x):概率密度函数
- E x [ f ( x ) ] \mathit{E}_x[f(x)] Ex[f(x)]:函数 f f f对 x x x的数学期望
- X ⊥ Y \mathit{X}\ \bot\mathit{Y} X ⊥Y:随机变量 X X X和 Y Y Y是独立的
- X ⊥ Y ∣ Z \mathit{X}\ \bot\mathit{Y}\ |\ Z X ⊥Y ∣ Z:随机变量 X X X和 Y Y Y在给定随机变量 Z Z Z的条件下是独立的
- V a r ( X ) Var(X) Var(X):随机变量 X X X的方差
- σ X \sigma_X σX:随机变量 X X X的标准差
- C o v ( X , Y ) \mathrm{Cov}(X,Y) Cov(X,Y):随机变量 X X X和 Y Y Y的协方差
- ρ ( X , Y ) \rho(X,Y) ρ(X,Y):随机变量 X X X和 Y Y Y的相关性
- H ( X ) H(X) H(X):随机变量 X X X的熵
- D K L ( P ∥ Q ) D_{KL}(P\Vert Q) DKL(P∥Q): P P P和 Q Q Q的KL-散度
环境配置
本节简单介绍一些必要的软件的安装与配置,由于不同机器软硬件配置不同,所以不详述,遇到问题请自行通过网络查找。
Anaconda
Anaconda是Python的一个开源发行版本,主要面向科学计算。我们可以简单理解为,Anaconda是一个预装了很多我们用的到或用不到的第三方库的Python。而且相比于大家熟悉的pip install命令,Anaconda中增加了conda install命令。当你熟悉了Anaconda以后会发现,conda install会比pip install更方便一些。
总的来说,我们应该完成以下几步:
- 根据操作系统下载并安装Anaconda(或者mini版本Miniconda)并学会常用的几个conda命令,例如如何管理python环境、如何安装卸载包等;
- Anaconda安装成功之后,我们需要修改其包管理镜像为国内源,这样以后安装包时就会快一些。
此外还可以安装python最好用的IDE PyCharm,专业版的应该是需要收费的,但学生用户可以申请免费使用(传送门),或者直接用免费的社区版。
以上配置可参考基于Anaconda配置Python开发环境(Windows系统)
Jupyter
在没有notebook之前,在IT领域是这样工作的:在普通的 Python shell 或者在IDE(集成开发环境)如Pycharm中写代码,然后在word中写文档来说明你的项目。这个过程很繁琐,通常是写完代码,再写文档的时候我还的重头回顾一遍代码。最蛋疼的地方在于,有些数据分析的中间结果,还得重新跑代码,然后把结果弄到文档里给客户看。有了notebook之后,世界突然美好了许多,因为notebook可以直接在代码旁写出叙述性文档,而不是另外编写单独的文档。也就是它可以能将代码、文档等这一切集中到一处,让用户一目了然。如下图所示。
Jupyter Notebook 已迅速成为数据分析,机器学习的必备工具。因为它可以让数据分析师集中精力向用户解释整个分析过程。
我们参考jupyter notebook-猴子的回答进行jupyter notebook及常用包(例如环境自动关联包nb_conda)的安装。
安装好后,我们可以在cmd使用以下命令打开一个jupyter notebook:
jupyter notebook
这时在浏览器打开 http://localhost:8888 (通常会自动打开)位于当前目录的jupyter服务。
jupyter没有代码提示功能全手打代码因为敲错出了bug真的很烦人,可以配置一下代码补全功能,建议参考这篇jupyter notebook 代码提示/代码自动补全,也可自行查阅其他方法
如果不想配环境或者电脑不带GPU的可以使用在线notebook,缺点是没有代码提示,本人使用的是Kaggle,但是Kaggle需要科学上网,Edge浏览器装Hoxx VPN插件就能访问Kaggle了
PyTorch
由于本笔记需要用到PyTorch框架,所以还需要安装PyTorch(后期必不可少地会使用GPU,所以安装GPU版本的)。直接去PyTorch官网找到自己的软硬件对应的安装命令即可(这里不得不吹一下PyTorch的官方文档,从安装到入门,深入浅出,比tensorflow不知道高到哪里去了)。安装好后使用以下命令可查看安装的PyTorch及版本号。
conda list | grep torch