深度学习笔记)
深度学习笔记反向传播通常是用梯度下降法根据链式法则根据损失函数求相关参数的偏导并进行参数更新。回归大致是给出一个输入并进行一定的运算最终得到一个数据来预测。比如给出一个公司的盈利、支出等数据估计它股票的价值得到的结果是连续值。正则化以 L2 正则化为例用以防止模型过拟合。假设原本损失函数为LoriginalL_{original}Loriginal加入 L2 正则项后新的损失函数LnewLoriginalλ2∑wi2 L_{new} L_{original} \frac{\lambda}{2} \sum w_i^2LnewLoriginal2λ∑wi2这可以防止模型在训练过程中将参数算得很大。例如数据点(1,10)、(2,20)、(3,30)、(10,1000)其中 (10,10000) 应为错误数据。正常情况下模型应拟合正常趋势但为了使原本损失更小模型可能会倾向于满足 (10,10000) 这样的异常点从而偏离正确函数。故引入正则化系数λ\lambdaλ使其在参数过大时惩罚也越大从而达到预防过拟合的效果。它的作用是控制正则化惩罚项的强度λ0\lambda0λ0不使用正则化损失函数和原始的完全一样λ\lambdaλ越大对权重参数的惩罚越强模型权重会被压得更小防止过拟合的效果更明显但过大也可能导致模型欠拟合它是一个需要人工调参的超参数通常通过交叉验证来选最优值。分类给出一个输入经过运算得到它属于哪个类别。比如说给一张图片判断是苹果还是香蕉。得到的结果是离散值。主要分为判别式模型和生成式模型。判别式模型学习成果是一个决策面并且根据这个决策面进行分类直接得到不同的类别。生成式模型学习成果是概率分布函数将数据输入之后得到属于该类别的概率再进行比较概率最大的就是这个数据的类别。GDA高斯判别分析是生成式模型的一个经典案例以二维为例。其中μ\muμ是数据的中心点通常是所有数据的重心。协方差矩阵Σ[σx2σxyσxyσy2] \Sigma \begin{bmatrix} \sigma_{x}^2 \sigma_{xy} \\ \sigma_{xy} \sigma_{y}^2 \end{bmatrix}Σ[σx2σxyσxyσy2]左上角的数字为 x 方向的离散程度右下角的数字为 y 方向的离散程度右上和左下的数字相等为协方差衡量两个变量的线性相关程度协方差解释协方差为正x 增大时y 也倾向于增大数据点整体呈“正斜率”分布协方差为负x 增大时y 倾向于减小数据点整体呈“负斜率”分布协方差为 0表示两个变量线性无关数据分布是正的、不倾斜的。不同类别可以共用一个协方差矩阵均值不同但“形状”可以相同。以两类数据为例它们的均值向量μ1\mu_1μ1、μ2\mu_2μ2明显不同说明两类数据的中心位置不一样但它们的协方差矩阵Σ1\Sigma_1Σ1、Σ2\Sigma_2Σ2数值非常接近说明两类数据的分布形态、离散程度、特征相关性几乎一致。结论协方差矩阵描述的是数据分布的**“形状”而均值描述的是分布的“位置”**。只要两类数据的“胖瘦、倾斜方向、离散程度”相似即使中心位置不同也可以用同一个协方差矩阵来描述。这样做可以减少参数简化模型。线性回归计算公式为af(∑i1nwixib)a f\left( \sum_{i1}^{n} w_i x_i b \right)af(i1∑nwixib)代表输入一个x矩阵通过计算之后得到一个预测值常用来用作简单的预测其与神经网络的一个神经元类似区别在于没有激活函数损失函数常用均方误差MSE, Mean Squared ErrorMSE1m∑i1m(y(i)−y^(i))2\text{MSE} \frac{1}{m} \sum_{i1}^{m} (y^{(i)} - \hat{y}^{(i)})^2MSEm1i1∑m(y(i)−y^(i))2逻辑回归逻辑回归本身只能处理二分类问题和线性回归在形式上只有在最后多加了一个Sigmod激活函数使其输入在010101之间损失函数通常使用交叉熵损失函数L(y^,y)−[ylog(y^)(1−y)log(1−y^)]L(\hat{y}, y) - \left[ y \log(\hat{y}) (1 - y) \log(1 - \hat{y}) \right]L(y^,y)−[ylog(y^)(1−y)log(1−y^)]其中y^σ(z)11e−z\hat{y} \sigma(z) \frac{1}{1 e^{-z}}y^σ(z)1e−z1对于二分类问题真实标签y∈(0,1)y \in (0, 1)y∈(0,1)预测概率y^P(y1∣x)∈(0,1)\hat{y} P(y1|x) \in (0, 1)y^P(y1∣x)∈(0,1)L(y^,y)−[ylog(y^)(1−y)log(1−y^)]L(\hat{y}, y) - \left[ y \log(\hat{y}) (1 - y) \log(1 - \hat{y}) \right]L(y^,y)−[ylog(y^)(1−y)log(1−y^)]为什么损失函数这么设计当实际标签为1时采用前半段让预测值y^\hat{y}y^尽可能接近1越接近1损失越小当实际标签为0时采用后半段让预测值y^\hat{y}y^尽可能接近0越接近0损失越小