公会网站建设,wordpress样式错乱,备案域名租用,下载建程网前言
因为各种各样的原因要开始学习深度学习了#xff0c;跟着吴恩达老师的深度学习视频#xff0c;自己总结一些知识点#xff0c;以及学习中遇到的一些问题#xff0c;以便记录学习轨迹以及以后复习使用#xff0c;为了便于自己理解#xff0c;我会将一些知识点用以个…前言
因为各种各样的原因要开始学习深度学习了跟着吴恩达老师的深度学习视频自己总结一些知识点以及学习中遇到的一些问题以便记录学习轨迹以及以后复习使用为了便于自己理解我会将一些知识点用以个人的理解用通俗的语言表达出来如果有错误请大家指出。
线性回归
说到逻辑回归不得不提一下与逻辑回归思想相类似的线性回归
定义 线性回归是一种用于建立输入特征和输出之间线性关系的统计学和机器学习算法。它的目标是通过已知的特征值和相应的输出值或称为标签、响应变量拟合一条直线在一维情况下或超平面在多维情况下以最好地预测未知样本的输出值。 用处
那么线性回归要解决一个什么问题呢线性回归可以用于预测一个或多个连续数值型的目标变量。例如预测房价温度销售额。
条件 目标变量是连续的 特征与目标变量之间存在线性关系 什么叫线性相关呢举一个只包含一个自变量和一个因变量的例子例如房价与房子面积控制其他变量的情况下房子面积越大房价越高且如果将 面积作为x房价作为y在坐标轴上画出函数曲线将是一条直线。 房价不仅仅只是由于一个因素影响因此光通过面积来预测房价显然是不准确的可能还有地理位置客厅数层高等等而这些因素里面可能包含着因变量和自变量非线性关系的因素例如层高过低和过高房价较低层高在中间段的房价较高显然这不是一个线性关系线关系至少应该是单调的。因此我们不能将层高作为参数放在线性回归模型中。 综上判断一个问题是否适合线性回归法的时候因先估测 自变量 与 因变量之间的关系是否符合线性相关。 特征之间相互独立 线性回归要求特征之间相互独立。如果特征之间存在较强的相关性可能会影响线性回归模型的稳定性和解释性。举例 假设我们有一个数据集其中包含学生的学习成绩和每周学习时间两个特征以及他们最终考试成绩作为目标变量。数据可能如下所示 学习时间小时/周学习成绩分最终考试成绩分58085690883707847580在这个例子中学习时间和学习成绩之间可能存在一定程度的相关性因为通常情况下学习时间越长学习成绩可能越好。然而如果学习时间和学习成绩之间存在高度的相关性比如说学习时间和学习成绩完全线性相关一个完全可以由另一个预测得出那么这两个特征就不是相互独立的。 相互独立的特征在线性回归中是非常重要的因为线性回归模型是基于特征之间的线性组合来建模的。如果特征之间存在多重共线性高度相关那么模型就可能变得不稳定而且在预测新数据时可能会产生较大的误差。 对于上述例子如果学习时间和学习成绩之间存在高度的线性相关性那么线性回归模型可能会过度依赖其中一个特征而忽略另一个特征的影响。这将导致模型失去泛化能力对新的未知数据表现较差。 数据的误差项满足常态分布 数据中不存在明显的异常值 线性回归对异常值敏感特别是在样本量较小时更容易受到影响。因此在使用线性回归之前需要对数据进行异常值检测和处理。 数据量较大 线性回归通常在大样本量下表现较好。样本量较小时模型可能过于简单拟合效果不佳。 问题的复杂性 线性回归适用于简单的问题当问题非常复杂且特征与目标之间存在非线性关系时其他更复杂的模型可能更为合适。
公式 y w T x b y w^T x b ywTxb
以上为线性回归的矩阵形式的公式其中 w x b都是向量 y是输出 x 是输入特征的向量表示为 [ x 1 , x 2 , . . . x m ] [x_1,x_2,...x_m] [x1,x2,...xm] w 是权重参数的向量表示为 [ w 1 , w 2 , . . . w n ] [w_1,w_2,...w_n] [w1,w2,...wn] w T w^T wT是权重参数向量的转置 b 是偏置参数截距
为什么w要转置呢w与x都是行向量矩阵乘法的规则要求第一个矩阵的列数和第二个矩阵的行数相等因此要将w转置才可以进行矩阵运算 y w 1 × x 1 w 2 × x 2 . . . w n × x n b y w1 \times x1 w2 \times x2 ... w_n \times x_n b yw1×x1w2×x2...wn×xnb 。不使用矩阵的公式 结果更易于理解 w n w_n wn越大代表第n个特征在y中的权重越高即因素n对于预测y越重要。
训练方法
最小二乘法通过最小化预测值与实际观测值之间的残差平方和来拟合回归系数。
思路找到一条直线使得所有数据点到这条直线的距离之和最小也就是使得所有数据点的残差平方和最小
逻辑回归
定义 逻辑回归是一种用于解决二分类问题的监督学习算法。在逻辑回归中我们试图建立一个线性模型将自变量特征与因变量目标变量之间的关系映射为一个概率值然后根据概率值进行分类预测。 用途
解决二分类问题即预测样本属于两个类别中的哪一个例如判断一封电子邮件是垃圾邮件还是非垃圾邮件判断患者是否患有某种疾病等。
公式 z w T x b z w^T x b zwTxb
逻辑回归的前提与线性回归类似需要特征与目标变量之间存在线性关系可以看出与线性回归是完全相同的由此函数得出的是一个数值该数值可以是任意实数。
由于我们要解决一个二分类问题实现的手段是需要样本在经过模型计算后输出是否属于该类的概率值。概率的取值范围是**[0-1]**因此需要将线性函数映射到一个值域范围为0-1的函数上因此我们需要使用 sigmoid函数,其函数表达式与图像如下 σ ( x ) 1 1 e − t \sigma(x) \frac{1}{1e^{-t}} σ(x)1e−t1
使用 sigmoid函数的原因
概率解释**sigmoid函数是一个将实数映射到 0 到 1 之间的函数。**在逻辑回归中我们希望输出的结果可以解释为样本属于某一类别的概率。通过sigmoid函数线性模型的输出值可以被解释为样本属于正类的概率。例如当sigmoid函数的输出值为0.7时表示样本属于正类的概率是0.7属于负类的概率是0.3。易于分类通过设定一个阈值通常是0.5我们可以将sigmoid函数的输出结果二值化使得样本可以被分为两个类别0或1。当sigmoid函数的输出大于阈值时将样本预测为正类1否则预测为负类0。这样逻辑回归可以用于二分类问题。平滑性sigmoid函数具有平滑的性质在0和1两端有平缓的曲线。这样的平滑性使得逻辑回归在数值计算和优化过程中更加稳定和高效。可微性sigmoid函数是一个可微函数这在梯度下降等优化算法中是必要的。逻辑回归使用梯度下降来估计回归系数使得模型能够逐步优化拟合训练数据。凸性逻辑回归的损失函数在回归系数空间中是一个凸函数这保证了在训练过程中能够找到全局最优解而不会陷入局部最优解。 y ^ σ ( w T b ) \hat{y} \sigma(w^Tb) y^σ(wTb)
将函数z映射到sigmoid函数上得到概率 y ^ \hat{y} y^ , y ^ \hat{y} y^ 代表该样本属于该类的概率这就是我们逻辑回归的模型。
训练过程
目标
目的是找出最佳的参数集合 { w 1 , w 2 , . . . , w n } \{w_1,w_2,...,w_n\} {w1,w2,...,wn}n为特征的维度以及偏差b使得 y ^ \hat{y} y^ 更接近于 实际标签 y ( i ) y^{(i)} y(i)上标(i)代表第i个特征 y ( i ) y^{(i)} y(i)代表第i个特征的是否属于该类属于则数值为1不属于则数值为0。 G i v e n { ( x 1 , y 1 ) , . . . , ( x m , y m ) } , w a n t y ^ ≈ y ( i ) Given\{(x^1,y^1),...,(x^m,y^m)\},want\,\hat{y}\approx y^{(i)} Given{(x1,y1),...,(xm,ym)},wanty^≈y(i)
损失函数
损失函数用来衡量算法在单个训练样本中得表现如何通过最小化或最大化损失函数来找到模型的最优参数或最优解。
逻辑回归中要使用到的损失函数是 L ( y ^ , y ) − y log ( y ^ ) − ( 1 − y ) log ( 1 − y ^ ) L(\hat{y},y) -y\log(\hat{y}) - (1-y)\log(1-\hat{y}) L(y^,y)−ylog(y^)−(1−y)log(1−y^) 首先看这个函数 符不符合要求。
当 y 1 时 L − log ( y ^ ) L -\log(\hat{y}) L−log(y^) 如果要想使得损失函数L尽可能小则 y ^ \hat{y} y^要尽可能大由于 y ^ \hat{y} y^的取值是0-1因此 y ^ \hat{y} y^无限接近于1时此时L无限接近0
当y 0 时 L − log ( 1 − y ^ ) L -\log(1-\hat{y}) L−log(1−y^)如果要想使得损失函数L尽可能小则 y ^ \hat{y} y^要尽可能小由于 y ^ \hat{y} y^的取值是0-1因此 y ^ \hat{y} y^无限接近于0 时此时L无限接近0
该函数满足上述条件 G i v e n { ( x 1 , y 1 ) , . . . , ( x m , y m ) } , w a n t y ^ ≈ y ( i ) Given\{(x^1,y^1),...,(x^m,y^m)\},want\,\hat{y}\approx y^{(i)} Given{(x1,y1),...,(xm,ym)},wanty^≈y(i)因此可以作为损失函数使用。
损失函数推导
再看看上述损失函数是如何得出的 y ^ σ ( z ) σ ( w T x b ) 1 1 e − z \hat{y} \sigma(z) \sigma(w^Txb) \frac{1}{1e^{-z}} y^σ(z)σ(wTxb)1e−z1 上式中的 y ^ \hat{y} y^ 代表训练样本x条件下 y 1的概率
换句话说 1 − y ^ 1-\hat{y} 1−y^ 即训练样本x条件下 y 0 的概率
此时概率满足 伯努利分布0-1分布 P { X k } p k ( 1 − p ) 1 − k , k 0 , 1 P\{ X k \} p^k(1-p)^{1-k},k 0,1 P{Xk}pk(1−p)1−k,k0,1 将 p y ^ , k y p \hat{y} ,k y py^,ky 代入上式得到 p ( y ∣ x ) y ^ y ( 1 − y ^ ) 1 − y , y 0 , 1 p(y|x) \hat{y}^y(1-\hat{y})^{1-y},y 0,1 p(y∣x)y^y(1−y^)1−y,y0,1 由于假设所有的m个训练样本服从同一分布且相互独立也即独立同分布的所有这些样本的联合概率就是每个样本概率的乘积: P ( l a b e l s i n t r a i n i n g s e t ) ∏ 1 i m P ( y ( i ) ∣ x ( i ) ) P(labels\,in\,training\,set)\prod_{1i}^{m}P(y^{(i)}|x^{(i)}) P(labelsintrainingset)1i∏mP(y(i)∣x(i)) 此时对该函数进行 最大似然估计寻找一组参数使得给定样本的观测值概率最大即寻找一组 { w 1 , w 2 , . . . w n } \{w1,w2,...w_n\} {w1,w2,...wn}使得输入 { x 1 , x 2 , . . . x m } \{x1,x2,...x_m\} {x1,x2,...xm}得到 y ^ \hat{y} y^的概率最大为了方便运算取对数似然函数化乘法为加法 log P ( l a b e l s i n t r a i n i n g s e t ) log ∏ 1 i m P ( y ( i ) ∣ x ( i ) ) log ∑ i 1 m P ( y ( i ) ∣ x ( i ) ) \log P(labels\,in\,training\,set)\log\prod_{1i}^{m}P(y^{(i)}|x^{(i)}) \log\sum_{i1}^{m}P(y^{(i)}|x^{(i)}) logP(labelsintrainingset)log1i∏mP(y(i)∣x(i))logi1∑mP(y(i)∣x(i)) 我们发现对第i个样本取对数 log p ( y ( i ) ∣ x ( i ) ) log ( y ^ y ( i ) ( 1 − y ^ ) 1 − y ( i ) ) y ( i ) l o g ( y ^ ) ( 1 − y ( i ) ) log ( 1 − y ^ ) − L ( y ^ , y ( i ) ) \log p(y^{(i)}|x^{(i)}) \log(\hat{y}^{y^{(i)}}(1-\hat{y})^{1-{y^{(i)}}})y^{(i)}log(\hat{y})(1-y^{(i)})\log(1-\hat{y}) -L(\hat{y},y^{(i)}) logp(y(i)∣x(i))log(y^y(i)(1−y^)1−y(i))y(i)log(y^)(1−y(i))log(1−y^)−L(y^,y(i)) 因此对数似然估计可简化为 log P ( l a b e l s i n t r a i n i n g s e t ) − log ∑ i 1 n L ( y ^ , y ( i ) ) \log P(labels\,in\,training\,set) -\log\sum_{i1}^{n}L(\hat{y},y^{(i)}) logP(labelsintrainingset)−logi1∑nL(y^,y(i)) 为了使用梯度下降法我们需要将问题转化为最小化问题因此我们的问题转化为求 ∑ i 1 n L ( y ^ , y ( i ) ) \sum_{i1}^{n}L(\hat{y},y^{(i)}) ∑i1nL(y^,y(i))的最小值
代价函数
为了衡量算法在全部训练样本上得表现如何我们需要定义一个算法得代价函数使得算法在所有样本上表现的最好因此我们取所有样本的损失函数的平均值。 J ( w , b ) 1 n ∑ i 1 n L ( y ^ , y ( i ) ) J(w,b) \frac{1}{n}\sum_{i 1}^{n}L(\hat{y},y^{(i)}) J(w,b)n1i1∑nL(y^,y(i)) 得到上述公式后我们最后的目标就转化为了找到一组w和b使得代价函数最小。
梯度下降法
逻辑回归使用梯度下降法进行训练核心思想是沿着函数的负梯度方向进行迭代更新从而逐步接近或到达最优解。梯度是函数在某一点处的变化率和方向负梯度方向指向函数下降最快的方向。在梯度下降法中通过计算函数的梯度确定当前点的下降方向并根据**学习率步长**控制每一步的大小逐步调整自变量的取值直至找到最优解或达到迭代次数上限。
根据梯度下降法的核心思想我们可以得出公式 w : w − a ∂ J ( w , b ) ∂ w , b : b − a ∂ J ( w , b ) ∂ b w:w-a\frac{\partial{J(w,b)}}{\partial{w}},b:b-a\frac{\partial{J(w,b)}}{\partial{b}} w:w−a∂w∂J(w,b),b:b−a∂b∂J(w,b) 只考虑单个样本的情况,损失函数L对 y ^ \hat{y} y^求导得 d L d y ^ − y y ^ 1 − y 1 − y ^ ( 1 ) \frac{dL}{d\hat{y}} - \frac{y}{\hat{y}}\frac{1-y}{1-\hat{y}} \ \ (1) dy^dL−y^y1−y^1−y (1) d y ^ d z d ( 1 1 e − z ) z − 1 ( 1 e − z ) 2 ( − e ) − z 1 1 e − z × e − z 1 e − z 1 1 e − z × ( 1 − 1 1 e − z ) y ^ ( 1 − y ^ ) ( 2 ) \frac{d\hat{y}}{dz} \frac{d(\frac{1}{1e^{-z}})}{z} - \frac{1}{(1e^{-z})^2} (-e)^{-z} \frac{1}{1e^{-z}}\times\frac{e^{-z}}{1e^{-z}} \frac{1}{1e^{-z}}\times(1-\frac{1}{1e^{-z}}) \hat{y}(1-\hat{y}) \ \ (2) dzdy^zd(1e−z1)−(1e−z)21(−e)−z1e−z1×1e−ze−z1e−z1×(1−1e−z1)y^(1−y^) (2)
由12式可得 d L d z ( d L d y ^ ) ( d y ^ d z ) ( − y y ^ 1 − y 1 − y ^ ) ( y ^ ( 1 − y ^ ) ) − y ( 1 − y ^ ) y ^ ( 1 − y ) y ^ − y \frac{dL}{dz} (\frac{dL}{d\hat{y}})(\frac{d\hat{y}}{dz}) (- \frac{y}{\hat{y}}\frac{1-y}{1-\hat{y}} )(\hat{y}(1-\hat{y}) )-y(1-\hat{y})\hat{y}(1-y) \hat{y} - y dzdL(dy^dL)(dzdy^)(−y^y1−y^1−y)(y^(1−y^))−y(1−y^)y^(1−y)y^−y 由于 ∂ L ∂ w 1 ( d L d z ) ( d z d w 1 ) x 1 d L d z x 1 ( y ^ − y ) \frac{\partial{L}}{\partial{w_1}} (\frac{dL}{dz})(\frac{dz}{dw_1}) x_1 \frac{dL}{dz} x_1(\hat{y}-y) ∂w1∂L(dzdL)(dw1dz)x1dzdLx1(y^−y) ∂ L ∂ b ( d L d z ) ( d z d b ) d L d z y ^ − y \frac{\partial{L}}{\partial{b}} (\frac{dL}{dz})(\frac{dz}{db}) \frac{dL}{dz} \hat{y}-y ∂b∂L(dzdL)(dbdz)dzdLy^−y
考虑所有样本得 ∂ J ∂ w 1 1 m x 1 ( i ) ∑ i 1 m ( y ^ ( i ) − y ( i ) ) \frac{\partial{J}}{\partial{w_1}} \frac{1}{m}x_1^{(i)}\sum_{i 1}^{m}(\hat{y}^{(i)}-y^{(i)}) ∂w1∂Jm1x1(i)i1∑m(y^(i)−y(i)) 其余参数以此类推 ∂ J ∂ w n 1 m x n ( i ) ∑ i 1 m ( y ^ ( i ) − y ( i ) ) \frac{\partial{J}}{\partial{w_n}} \frac{1}{m}x_n^{(i)}\sum_{i 1}^{m}(\hat{y}^{(i)}-y^{(i)}) ∂wn∂Jm1xn(i)∑i1m(y^(i)−y(i)) ∂ J ∂ b 1 m ∑ i 1 m ( y ^ ( i ) − y ( i ) ) \frac{\partial{J}}{\partial{b}} \frac{1}{m}\sum_{i 1}^{m}(\hat{y}^{(i)}-y^{(i)}) ∂b∂Jm1i1∑m(y^(i)−y(i)) 最后带入最初的公式即为一次梯度下降的结果 w 1 : w 1 − a × 1 m x 1 ( i ) ∑ i 1 m ( y ^ ( i ) − y ( i ) ) w1:w1-a\times\frac{1}{m}x_1^{(i)}\sum_{i 1}^{m}(\hat{y}^{(i)}-y^{(i)}) w1:w1−a×m1x1(i)i1∑m(y^(i)−y(i)) 以此类推 w n : w n − a × 1 m x 1 ( i ) ∑ i 1 m ( y ^ ( i ) − y ( i ) ) w_n:w_n-a\times\frac{1}{m}x_1^{(i)}\sum_{i 1}^{m}(\hat{y}^{(i)}-y^{(i)}) wn:wn−a×m1x1(i)∑i1m(y^(i)−y(i)) b : b − a × 1 m ∑ i 1 m ( y ^ ( i ) − y ( i ) ) b:b-a\times \frac{1}{m}\sum_{i 1}^{m}(\hat{y}^{(i)}-y^{(i)}) b:b−a×m1i1∑m(y^(i)−y(i))