《深度学习基础Mchapter1ALL (3).pdf》由会员分享,可在线阅读,更多相关《深度学习基础Mchapter1ALL (3).pdf(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、(Linear Regression Model and Its Solution)线性回归模型及其求解方法1什么是回归?什么是回归?利用训练数据,使用回归模型(如线性模型)去拟合变量之间的关系。因此训练任务就是利用数据,来学习模型中的参数parameter(如线性模型中的斜率和截距)。在本例中,训练完毕后,输入一个披萨的尺寸,模型就可以预测出其价格应该为多少。给定一组数据X?,?研究X和之间关系的统计分析方法称之为回归回归。X是自变量,是因变量。回归和分类的区别和联系回归和分类的区别和联系 区别:区别:分类:使用训练集推断输入所对应的离散类别类别(如:+1,-1)。回归:使用训练集推断输入所
2、对应的输出值输出值,为连续实数。联系:联系:利用回归模型进行分类利用回归模型进行分类:可将回归模型的输出离散化以进行分类,即?。利用分类模型进行回归利用分类模型进行回归:也可利用分类模型的特点,输出其连续化的数值。线性模型线性模型 狭义线性(狭义线性(linear)模型:)模型:通常指自变量与因变量之间按比例、成直线的关系,在数学上可理解为一阶导数为常数的函数,如?;线性通常表现为一次曲线。广义线性(广义线性(generalizedlinearmodel,GLM):):是线性模型的扩展,主要通过联结函数?(linkfunction),使预测值落在响应变量的变幅内。例如逻辑回归?(括号内为线性函
3、数)非线性模型非线性模型 非线性nonlinear模型:非线性一般指不按比例、不成直线的关系,一阶导数不为常数 常见的非线性模型常见的非线性模型 2次以上的多项式 y?+,+?幂函数模型?指数函数模型?对数函数模型:?等等线性回归线性回归 线性回归模型中,假设自变量和因变量满足如下形式:?问题:已知一些数据,如何求里面的未知参数,给出一个最优解。因此通常将参数求解问题转化为求最小误差问题。一般采用模型预测结果与真实结果的差的平方和作为损失函数:?.即求?min?概率解释概率解释 设预测结果?与真实结果?之间误差为?,即?+?通常误差满足平均值为0的高斯分布,即正态分布。那么在一个样本上和的概率
4、密度公式为?;?exp?模型在全部样本上预测的最大似然估计为?12exp?2?2?2?从而,需要?最小求解参数求解参数 接下来,就是求解使得?最小的参数。解法有:矩阵解法。scikitlearn中的LinearRegression类使用的是矩阵解法(有时也称为最小二乘法)。可以解出线性回归系数。梯度下降法。梯度下降(Gradientdescent)是利用一阶的梯度信息找到函数局部最优解的一种方法。参数的矩阵解法参数的矩阵解法例如,设?,即为线性关系?通过通过使 最小,即可确定?,?。根据数学知识我们知道,函数的极值点为偏导为0的点,即?2?1?0?2?0?参数的梯度下降求解法参数的梯度下降求解
5、法梯度下降(Gradientdescent)是利用一阶的梯度信息找到函数局部最优解的一种方法,也是机器学习里面常用的一种优化方法。其基本思想是,要找代价函数最小值,只需要每一步都往下走,也就是每一步都可以让误差损失函数小一点。对于线性回归,参数的更新方法一般为:?1?如何求梯度?Cost()?线性回归的梯度下降线性回归的梯度下降(接上文)?,是如何得出的?对于某个实例i:?12?2?先初始化一组,在这个值之上,用梯度下降法去求出下一组的值。当迭代到一定程度,?的值趋于稳定,此时的即为要求得的值。Thanks!12(Multivariate Regression and Polynomial R
6、egression)多元回归与多项式回归13Sklearn的一元线性回归在scikit-learn中,所有的估计器都带有fit()和predict()方法。fit()用来拟合模型,predict()利用拟合出来的模型对样本进行预测。本例中本例中根据模型,预测12英寸披萨的价格为$13.68from sklearn.linear_model import LinearRegression#创建并拟合模型model=LinearRegression()X=6,8,10,14,18y=7,9,13,17.5,18model.fit(X,y)print(预测12英寸匹萨价格:$%.2f%model.p
7、redict(12)0)用scikit-learn来构建一元线性回归的例子:线性回归的参数 对于刚才的例子,LinearRegression类的fit()方法学习线性回归模型:?线性回归模型学习到的参数是截距和权重系数。下图中的直线就是匹萨直径与价格的线性关系。残差(residual)残差:估计值(拟合值)与实际观察值之间的差。多元线性回归X?,?输出结果:输出结果:Predicted:10.06250019,Target:11Predicted:10.28125019,Target:8.5Predicted:13.09375019,Target:15Predicted:18.14583353
8、,Target:18Predicted:13.31250019,Target:11R-squared:0.77from sklearn.linear_model import LinearRegressionX=6,2,8,1,10,0,14,2,18,0y=7,9,13,17.5,18model=LinearRegression()model.fit(X,y)X_test=8,2,9,0,11,2,16,2,12,0y_test=11,8.5,15,18,11predictions=model.predict(X_test)for i,prediction in enumerate(pred
9、ictions):print(Predicted:%s,Target:%s%(prediction,y_testi)print(R-squared:%.2f%model.score(X_test,y_test)R方计算步骤设 是测试集第个样本的价格,?是真实价格的均值,?是模型对第 个样本的预测价格,n是样本数量。则R方计算步骤为:1).计算残差平方和:?11?9.775?+?8.5?10.75?+?11?13.68?19.192).计算样本总离差平方和:?11?12.7?+?8.5?12.7?+?11?12.7?56.83).最后得到R方:?1?1?.?.?0.66R方是0.66说明测试集中
10、过半数的价格都可以通过模型解释。测试样本真实价格 预测价格?1119.77528.510.7531512.7041817.5851113.68R方可以用于评估回归模型对现实数据拟合的程度。多项式回归用适当幂次的多项式来近似反映因变量与自变量之间的关系。什么是多项式模型?它是由常数与自变量 经过有限次乘法与加法运算得到。例如?+,+?就是多项式函数。多项式回归的步骤:1.生成多项式特征。例如输入样本是维的如?,?,则二阶多项式的 特 征 集 为?1,?,?。在 sklearn 中 可 以 使 用生成多项式特征。2.利用得到的多项式特征,使用线性分类器处理。二次回归(QuadraticRegres
11、sion)最高次为2次。仍以披萨的直径和价格之间的关系的回归为例。则此时二次回归的表达式为?。#训练集数据X_train=6,8,10,14,18y_train=7,9,13,17.5,18线性回归(R方=0.81)二次回归(R方=0.87)#测试集数据X_test=6,8,11,16y_test=8,12,15,18更高次的多项式回归结论:结论:高次多项式容易发生过拟合(过拟合(overfitting),),即模型在训练集上效果较好,但在测试集上效果较差。三次回归:拟合效果如右图:二次回归 r-squared 0.87三次回归三次回归 r-squared 0.84七次回归:拟合效果如右图:二
12、次回归 r-squared 0.87七次回归七次回归 r-squared 0.49Thanks!22(Regularization of loss function)损失函数的正则化23向量范数向量范数向量范数,假设向量有个元素。,L1范数:即向量元素绝对值之和。?L2范数:Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方。?范数:即所有向量元素绝对值中的最大值。?max?范数:即所有向量元素绝对值中的最小值。?min?p范数:即向量元素绝对值的p次方和的1/p次幂。?矩阵范数矩阵范数假设矩阵A为m*n,即m行,n列。L1范数:列和范数,即矩阵的所有列向量元素
13、绝对值之和的最大值。?max?L2范数:谱范数,即ATA矩阵的最大特征值的开平方。?,?为?的最大特征值 范数:行和范数,即矩阵的所有行向量元素绝对值之和的最大值。?max?F范数:Frobenius范数,即矩阵元素绝对值的平方和再开平方。?线性回归的正则化线性回归的正则化应对过拟合(Overfitting)。因为在某些情况下,学习得到的模型在训练集上也许误差较小。但是对于测试集中之前未见样本的预测却未必有效。为此可以在损失函数中加入正则化项。以线性回归为例,?.其中是正则化参数(regularizationparameter),用于控制两个不同的目标的平衡。I.第一个目标是使假设更好地拟合训
14、练数据。II.第二个目标是要正则化处理,使得模型不要太复杂。正则化项线性回归正则化后的梯度更新方法线性回归正则化后的梯度更新方法 新的损失函数?新的梯度更新公式:?=?2 =?2 =?1?举例:为什么回归要正则化?(1)本例中使用一个2次函数加上随机的扰动来生成500个点。然后尝试用1、2、100次方的多项式对该数据进行拟合。拟合的性能如下:一次方:R2=0.82二次方:R2=0.88100次方:R2=0.89举例:为什么回归要正则化?(2)结果表明,高次多项式过度拟合了训练数据。高次多项式的过拟合现象的观察:高次多项式的过拟合现象的观察:下面我们从500个样本中去掉2个。而在测试时使用所有5
15、00个样本。此时,多项式拟合结果为:一次:一次:R2=0.85二次:二次:R2=0.90100次:次:R2=0.57举例:为什么回归要正则化?(3)通过查看,会发现100次多项式拟合出的系数数值通常很大。因此在拟合过程中可以限制这些系数数值的大小来避免生成畸形的拟合函数。具体做法就是在损失函数中加入正则化项,以抑制这些系数的数值。如:Lasso回归(使用L1正则化)、岭(Ridge)回归(使用L2正则化)、弹性网(Elasticnet,使用L1+L2正则化)等回归。下面以岭回归为例看看100次多项式的拟合是否有效。一次:R2=0.78二次:R2=0.87100次次:R2=0.90岭回归中正则权
16、重的作用 alpha值越大(即越偏左),weights(即回归权重参数)变得较小,即对权重的约束越大。alpha值越小(即越偏右),权重系数weights的取值表现出较大的震荡。特别是当接近最右侧(1010?0)时,相当于没有对权重参数进行约束。图片来自sklearn岭回归中权重系数weights(纵轴)的取值与正则强度alpha(横轴)的关系weightsalpha通过交叉验证找到最佳超参数alpha 可以通过交叉验证的方式设置调整超参数alpha。Sklearn提供了RidgeCV,可以允许输入一系列的alphas,然后sklearn通过交叉验证得到适合的alpha。举例程序如下:举例程序
17、如下:from sklearn import linear_modelclf=linear_model.RidgeCV(alphas=0.1,1.0,10.0)clf.fit(0,0,0,0,1,1,0,.1,1)RidgeCV(alphas=0.1,1.0,10.0,cv=None,fit_intercept=True,scoring=None,normalize=False)clf.alpha_ 0.1Thanks!33(Logistic Regression)逻辑回归逻辑回归34逻辑回归(LogisticRegressionLogisticRegression)线性回归的输出值的范围通常
18、是无法限定的。逻辑回归通过使用函数(或称为函数)将其转化为?0,1?区间 的数值。函数形式为:?其中?变量的范围为?到?,值域限制在0?1之间。逻辑回归可以被理解为是一个被函数归一化后的线性回归。也可以被视为一种广义线性模型。逻辑回归应用举例:垃圾短信分类垃圾短信的数据集:UCIMachineLearningRepository(http:/archive.ics.uci.edu/ml/datasets/SMS+Spam+Collection)。总共5574条,其中4827条是ham,747条是spam。可以用TF-IDF来抽取短信的特征向量,然后用逻辑回归分类:如果逻辑回归响应变量等于或超过
19、指定的临界值(如0.5),预测结果就是正例,否则为反例。逻辑回归中的损失函数优化方法即如何找到能使损失函数取值尽可能小的模型参数。class sklearn.linear_model.LogisticRegression(solver=liblinear)。其中的solver参数决定了逻辑回归损失函数的优化方法。Solver的常见取值包括:sag:即随机平均梯度下降,是梯度下降法的变种,和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度,适合于样本数据多的情况。liblinear:使用了开源的liblinear库实现,内部使用了坐标轴下降法CD来迭代优化损失函数。其他取值,如lbfg
20、s、newtoncg等坐标下降法 Sklearn中逻辑回归的优化解决方案“liblinear”使用基于Liblinear 的coordinate descent CD(坐标下降)算法。CD是一种非梯度优化算法。在每次迭代中,在当前点处沿一个坐标方向进行一维搜索以求得一个函数的局部极小值。在整个过程中循环使用不同的坐标方向。如果在某次迭代中,函数得不到优化,说明一个驻点已经达到。https:/en.wikipedia.org/wiki/Coordinate_descent举例:如何找到能使,?5?6?5?较小值的x和y取值对?坐标下降法(续)对于非平滑函数,CD法可能会遇到问题。即函数等高线非平滑时,算法可能在非驻点中断执行。https:/en.wikipedia.org/wiki/Coordinate_descentThanks!40