前言
学习资料
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中一个常用的用于科学计算的库,它支持矢量化操作,允许对整个数组执行操作,而无需显式循环。这样的优化可以提高代码的效率,并降低开发者的工作负担。
总的来说,矢量化算法是一种优化计算方法,通过在向量上执行操作来提高程序的性能。
总结
以上内容是我看完鱼书以及深度学习的预备知识整理,后续继续更新,如有问题或侵权等,请联系我删除。
第一次发布博客,欢迎大家批评指正。