机器学习分类
-
预测标签(有无标签)
- 监督式学习(Supervised Learning)——SVM, Neural Networks
- 分类(Classification)—— 所有标签式离散值,如人脸识别
- 回归(Regression) —— 所有标签是连续值,如房价、年龄
- 无监督式学习(Unsupervised Learning)——Clustering, EM, PCA
- 半监督式学习(Semi-Supervised Learning)——Auto Driving, Chess
- 监督式学习(Supervised Learning)——SVM, Neural Networks
-
预测结果
- 增强学习(Reinforcement Learning)
深度学习
深度学习基于神经网络模型和数据编程思想。
数据操作
在PyTorch中,Tensor(张量)用于存储数据和变换操作。
- 增改
view()
改变形状(仅改变了对这个张量的观察角度shape/size,内部数据并为改变)clone()
创建一个副本再使用view
- 加减乘
- mm/bmm, 矩阵乘
- t,矩阵求转置
- inverse, 矩阵求逆
- svd,奇异值分解
- 广播机制
Tensor的shape不一样时,若要进行运算,需要使用广播机制
例如:
x = torch.arange(1, 3).view(1, 2)
print(x)
y = torch.arange(1, 4).view(3, 1)
print(y)
print(x + y)
输出:
tensor([[1, 2]])
tensor([[1],
[2],
[3]])
tensor([[2, 3],
[3, 4],
[4, 5]])
解释:
由于x
和y
分别是1行2列和3行1列的矩阵,如果要计算x + y
,那么x
中第一行的2个元素被广播(复制)到了第二行和第三行,而y
中第一列的3个元素被广播(复制)到了第二列。如此,就可以对2个3行2列的矩阵按元素相加。
- 自动求梯度
PyTorch提供autograd
包,能够根据输入和前向传播过程自动构建计算图,并执行反向传播。
Q:为什么要求梯度?
A:构造神经网络,是通过实验方式获得,即通过梯度下降法(Gradient Descent Method,SGD)求得局部机制——凸优化理论
线性回归
- 模型
- 数据集
- 损失函数
- 优化函数