前言
学习资料
B站视频地址:
跟李沐学AI
花书-电子书地址
其他资料:鱼书,cs231n
源代码下载地址
习题解答源代码
习题解答在线阅读地址
一、专业术语
| 中文 | 英文 |
|---|---|
| 张量 | tensor |
| 连结 | concatenate |
| 按元素 | elementwise |
| 广播机制 | broadcasting mechanism |
| 标量 | scalar |
| 变量 | variable |
| 分量 | component |
| 维度 | dimension |
| 转置 | transpose |
| 对称矩阵 | symmetric matrix |
| 通道 | channel |
| 按元素乘法 | Hadamard product |
| 点积 | dot product ⊙ \odot ⊙ |
| 范数 | norm |
| 积分 | integral calculus |
| 微分 | differential calculus |
| 损失函数 | loss function |
| 优化 | optimization |
| 泛化 | generalization |
| 梯度 | gradient |
| 自动微分 | automatic differentiation |
| 计算图 | computational graph |
| 反向传播 | backpropagation |
| 智能体 | agent |
| 事件 | event |
| 大数定律 | law of large numbers |
| 抽样 | sampling |
| 分布 | distribution |
| 多项分布 | multinomial distribution |
| 样本空间 | sample space |
| 概率 | probability |
| 互斥 | mutually exclusive |
| 随机变量 | random variable |
| 离散 | discrete |
| 连续 | continuous |
| 密度 | density |
| 标签 | label |
| 联合概率 | joint probability |
| 条件概率 | conditional probability |
| 乘法法则 | multiplication rule |
| 求和法则 | sum rule |
| 边际化 | marginalization |
| 边际概率 | marginal probability |
| 边际分布 | marginal distribution |
| 依赖 | dependence |
| 独立 | independence |
| 期望 | expectation |
| 平均值 | average |
| 标准差 | standard deviation |
| 回归 | regression |
| 预测 | prediction |
| 线性回归 | Linear regression |
| 训练数据集/训练集 | training data set /training set |
| 样本 | sample |
| 互相关运算 | cross-correlation |
| 特征映射 | feature map |
| 感受野 | receptive field |
| 填充 | padding |
| 步幅 | stride |
| 通道 | channel |
二、广播机制
autograd包
该包会自动计算微分
广播机制通过复制自己的行或列进行填充
三、高级python
类
#class 类
class Man:
def __init__(self,name):
self.name=name
print("Initialized!")
def hello(self):
print("Hello"+self.name+"!")
def goodbye(self):
print("goodbye"+self.name+"!")
m=Man("xiaoshuai")
m.hello()
m.goodbye()
Numpy
#Numpy库
import numpy as np
#一维数组
x=np.array([1,2,3,4])
print(x)
print(type(x))
print(len(x))
#多维数组
A=np.array([[1,2],[3,4]])
print(A.shape)#查看矩阵的形状
print(A.dtype)#查看矩阵元素的数据类型
print(type(A))
print(A)
X=np.array([[1,2],[3,4],[10,19]])
print(X)
Y=X.flatten()
print(Y)
Y[np.array([0,2,4])]
Y>5
Y[Y>5]
enumerate()
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。
enumerate(sequence,[start=0])
sequence 一个序列、迭代器或其他支持迭代对象
start 下标起始位置的值
返回enumerate(枚举)对象
zip拉链函数
zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回Youyou这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用*号操作符,可以将元组解压为列表。
zip([iterable, ...])
iterable 一个或多个迭代器
返回值:返回元组列表
四、线性代数
大量文献认为列向量是向量的默认方向
五、范数
norm,在线性代数中,向量范数是将向量映射到标量的函数f。
向量范数的四个性质:
1.如果按照常数因子
α
\alpha
α缩放向量的所有元素,其范数也会按照相同常数因子的绝对值缩放。
f
(
α
x
)
=
∣
α
∣
f
(
x
)
(2.3.10)
f(\alpha x)=|\alpha|f(x) \tag{2.3.10}
f(αx)=∣α∣f(x)(2.3.10)
2.三角不等式
f
(
x
+
y
)
≤
f
(
x
)
+
f
(
y
)
(2.3.11)
f(x+y)\le f(x)+f(y) \tag{2.3.11}
f(x+y)≤f(x)+f(y)(2.3.11)3. 范数必须为非负的
f
(
x
)
≥
0
(2.3.12)
f(x)\ge 0 \tag{2.3.12}
f(x)≥0(2.3.12)
4.范数最小为0,当且仅当向量全由0组成。
∀
i
,
[
x
]
i
=
0
⟺
f
(
x
)
=
0
(2.3.13)
\forall i,{[x]_i}=0 \Longleftrightarrow f(x)=0 \tag{2.3.13}
∀i,[x]i=0⟺f(x)=0(2.3.13)
L
1
L_1
L1范数
∣
∣
x
∣
∣
1
=
∑
i
=
1
n
∣
x
i
∣
(2.3.15)
{||x||_1}={\sum^{n}_{i=1}|x_i|} \tag{2.3.15}
∣∣x∣∣1=i=1∑n∣xi∣(2.3.15)
L
2
L_2
L2范数
∣
∣
x
∣
∣
2
=
∑
i
=
1
n
x
i
2
(2.3.14)
{||x||_2}=\sqrt{\sum^{n}_{i=1}x^2_i} \tag{2.3.14}
∣∣x∣∣2=i=1∑nxi2(2.3.14)
一个标量函数关于向量x的梯度是向量,并且与x具有相同的形状。
六、矢量化加速
矢量化算法是一种在计算机科学和数学领域中常见的概念,它涉及使用向量(一组有序的数值)来执行操作和计算。这种算法的设计旨在利用硬件并行性,提高计算效率。在数据处理和科学计算领域,矢量化算法通常能够显著加快程序的执行速度。
在编程中,矢量化算法通常与支持向量化操作的编程语言和库一起使用。例如,NumPy是Python中一个常用的用于科学计算的库,它支持矢量化操作,允许对整个数组执行操作,而无需显式循环。这样的优化可以提高代码的效率,并降低开发者的工作负担。
总的来说,矢量化算法是一种优化计算方法,通过在向量上执行操作来提高程序的性能。
总结
以上内容是我看完鱼书以及深度学习的预备知识整理,后续继续更新,如有问题或侵权等,请联系我删除。
第一次发布博客,欢迎大家批评指正。
本文概述了深度学习预备知识,包括专业术语解释、Python库autograd中的广播机制、高级Python类Numpy的使用,以及线性代数中的向量和范数概念,强调了矢量化加速在编程中的重要性。






