一、Overview
pytorch深度学习需求:基本线性代数、概率论与数据统计、python编程语言
算法设计思维方式:
1.穷举法:列出所有方法后找出最符合条件的
2.贪心法:选择当前认为最好的方法
3.分治法
4.动态规划
机器学习:数据集(DateSet)→ 算法
feature:数据集中的每一个字段
维度诅咒:feature越多,对整个样本需求越多,所需资金越多
为了避免维度诅咒,通常将高维降成低维,方法:线性映射(通过线性代数)和非线性映射
反向传播算法是神经网络重要算法,核心是计算图
二、线性模型
线性模型:
1.准备数据集
2.选择或设计模型
3.训练
4.应用推理结果
监督学习包括训练集和测试集,训练集包括训练和评估(开发集)
机器学习中最重要的是过拟合
模型泛化能力:训练集训练完成之后能够正确识别没见过的图像
损失函数(针对一个样本):
loss = (y_hat - y)^2 = (x*w - y)^2
平均平方误差(Mean Square Error,简称MSE,针对多个样本):
训练目标:找到最好的权重值w,使平均损失降到最低
三、梯度下降算法
梯度下降算法是训练模型时最常用的算法
优化问题:找使目标函数cost(w)最小的权重组合
梯度下降算法更新权重方法:
此公式为梯度下降算法的核心公式,其中α为学习率,应当取小一点,取的过大无法收敛
梯度下降算法只能找到局部最优
鞍点:梯度为0,陷入鞍点后无法再继续迭代
梯度下降算法的延伸:随机梯度下降
Batch:批量的随机梯度下降