下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、线性回归-梯度下降法梯度下降法求解最小二乘咚警二茲(外用嘗1狙七乙區(0-0)垠八梯度下降(GD)是最小化风险函数、损失函数的一种常用方法,随机梯度下降和批量梯度下降迭代求解思路,下面从公式和实现的角度对两者进行分析下面的h(x)是要拟合的函数,J(theta)是损失函数,theta是参数,要迭代求解的值,theta求解出来了那最终要拟合的函数h(theta)就出来了。其中n是训练集的样本数量,j是参数的个数。1、批量梯度下降法构造损失函数求梯度对J(theta)关于theta求偏导,得到损失函数关于每个theta对应的的梯度咚警丄茲的丫)嘗1狙设置参数1.学习率:学习率不能设置过大,否则每次
2、theta改变的太快,可能会跳过全局最优解。而陷入局部最优解,但是也不能设置的过小,否则要经过很多次迭代才能收敛到全局最优解2最大迭代次数:即梯度下降法迭代的最大次数3误差阈值:和迭代次数一样是用来控制迭代的结束条件的,当误差小于某个阈值或者迭代次数大于最大迭代次数时就结束迭代迭代更新theta梯度是函数增长最快的方向,因此最小化损失函数,要沿着梯度的反方向进行寻优,来更新每个thetaJ叫=弓j=nj-1从上面公式可以注意到,每迭代一步,都要用到训练集所有的数据,如果样本数量n很大,那么批量梯度下降的迭代速度会很慢!所以,这就引入了另外一种方法,随机梯度下降。python的实现#coding
3、=UTF-8importnumpyasnpimportmatplotlib.pyplotaspitclasslinear_regression_gradient_descent:def_init_(self,x,y,eps,alpha,max_iter_times):HIinitalizefeature、dependentvariable、learningrate、iterationtimes:paramx:paramy:paramalpha:parammax_iter_times:HIself.x=xself.y=yself.n=len(self.x)self.w=np.zeros(x.sh
4、ape1,1)self.alpha=alphaself.iteration=max_iter_timesself.eps=epsself.cost_review=np.zeros(0,0)deferror_function(self):HIcomputeerroroftrainingdataineveryiteration:return:avectoroferrorHI#step1computecostfunctionn=len(self.x)y_pred=np.dot(self.x,self.w)error=y_pred-self.yreturnerrordefpartial_devativ
5、e(self):HIcomputethepartialderivativesofcostfunctionsonthetaineveryturn:return:HIn=len(self.x)error=self.error_function()delta_w=np.dot(self.x.T,error)/nreturndelta_wdefbatch_gradient_descent(self):HIgradientdescenttosolvetheparameteroflinearregression:return:HIn=len(self.x)itera=0error=self.error_f
6、unction()cost=np.sum(error*2)/2*nwhile(iteraself.eps):#step1computethepartialderivativesofcostfunctionsonthetadelta_w=self.partial_devative()#step2updatethetaself.w=self.w-self.alpha*delta_w#step3computecostfunctionerror=self.error_function()cost=np.sum(error*2)/2*n#printcostself.cost_review=np.appe
7、nd(self.cost_review,cost)itera+=1returnself.w_name=main:x=np.array(1,2,2,0,1,3,4,2,0,1,2,5,1,0,2,2,3,5,1,3,1,4,2,3,1,3,4,2,2,1)x_thetaO=np.ones(x.shape0)#insertafull-1colinthefirstcolofXmatrixtogetthedesignmatrixdesign_matrix=np.insert(x,0,values=x_theta0,axis=1)y=np.array(1.2,0.4,0.6,2.1,0.9,0.3).r
8、eshape(len(design_matrix),1)Ir=linear_regression_gradient_descent(design_matrix,y,0.15,0.01,100)w=lr.batch_gradient_descent()printparameteroflinearregression:+str(w)printiterationtimesare:+str(len(lr.cost_review)#showthecurveofcostfunctionfig=plt.figure(1)plt.plot(lr.cost_review,color=r)plt.ylim(ymi
9、n=np.min(lr.cost_review),ymax=np.max(lr.cost_review)plt.xlim(xmin=0,xmax=len(lr.cost_review)+1)plt.ylabel(costfunction)plt.xlabel(idofiteration)plt.title(costfunctionoflinearregression)plt.grid()plt.show()costfunctionoflinesrregression匸口一4uun445OU02004QD600800idofiterationcost_function.png可以看出:虽然迭代次
10、数设置了100次,但是因为误差一直没有达到设置的阈值0.15以内,因为一直在迭代,大约迭代了将近1000次才结束,在迭代的过程中,可以看到误差一直在不断减小,直至达到阈值要求2、随机梯度下降法构造损失函数上面批量梯度下降对应的是所有的训练样本,可以写成如下这种形式:损失函数此时的损失函数对应的是训练集中每个样本的损失函数,是样本粒度的求梯度对每个样本的损失函数关于theta求偏导得到梯度梯度设置参数参照批量梯度下降法迭代更新theta迭代更新公式3.SGD与BGD的比较相同点:都是全局寻优的:BGD是最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小;S
11、GD是最小化每条样本的损失函数,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。但是大的整体的方向是向全局最优化的,最终的结果往往是在全局最优解附近。总之,SGD和BGD都是在整个参数区间上进行搜索,学习率越大,每次参数的变动越大,那么可能容易陷入局部最小值,但是整体思想是全局寻优的不同点:效率上:随机梯度下降(SGD)是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经将theta迭代到最优解了;对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要
12、遍历训练样本10次。因此SGD在计算的效率上要高于BGD局部最小值问题因为SGD是通过每次对部分样本进行迭代,是对BGD的一个随机近似,那么当目标函数有多个局部极小值时,SGD比BGD反而更可能避免进入局部极小值中。学习率n的选择对于步长n的取值,一般BGD的n比SGD的大。因为GD的是使用准确的梯度,理直气壮地走,SGD使用的是近似的梯度,就得小心翼翼地走,怕一不小心误入歧途南辕北辙了。4梯度下降法和最小二乘法求解线性回归的比较梯度下降法是迭代算法,通过每一次迭代不断沿着函数减小最快的方向来改变代价函数的自变量theta,进而减小代价函数值,这一过程我们可以看出:梯度下降法是全局寻优的过程,只要theta设置合理,就不会陷入局部最小值,我们会逐渐收敛到全局最优值;(2)最小二乘法是对代价函数直接求偏导令其为0,因此是局部寻优,实践表明在属性或者样本数目比较多时,梯度下降法效果更好,且在参数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广西钦州市统计局面向社会招聘编外人员2人备考题库及参考答案详解【能力提升】
- 2026宁夏银川永宁县卫生健康系统专业技术人员自主招聘59人备考题库及答案详解(全优)
- 2026云南曲靖市宣威市虹桥街道社区卫生服务中心、宣威市龙场镇卫生院、宣威市热水镇中心卫生院、宣威市羊场镇中心卫生院招聘8人备考题库【夺分金卷】附答案详解
- 2026西藏萨迦融媒体中心招聘农村电影放映员2人备考题库及完整答案详解【名师系列】
- 2026广东佛山市顺德区大良外国语学校招聘校医1人备考题库含完整答案详解【历年真题】
- 钢结构工程进场材料检验方案
- 2026四川宜宾酒股份有限公司下属子公司第一批员工招聘9人备考题库含完整答案详解【典优】
- 建筑材料市场调研方案
- 2026湖北黄冈罗田县教育系统面向国内普通高校招聘教师41人备考题库及参考答案详解【新】
- 2026江西省人力资源有限公司招聘生产服务一线人员16人备考题库【夺冠】附答案详解
- 3.1公民基本权利 课件(34张幻灯片)+内嵌视频 道德与法治统编版八年级下册
- 零碳园区白皮书系列-苏州工业园区-
- 数字乡村规划方案
- 2025年江苏食品药品职业技术学院单招综合素质考试试题及答案解析
- 2026年六安职业技术学院单招职业适应性考试题库带答案详解(达标题)
- 2026年上海建桥学院单招职业适应性考试题库附参考答案详解(满分必刷)
- 交警网格化管理考核制度
- 2026年伊春职业学院单招职业适应性测试题库含答案详解(新)
- 水土保持项目施工组织设计方案
- 2025年宁波城市职业技术学院单招职业技能测试题库带答案解析
- 2025-2030全球与中国棉籽蛋白行业发展现状及趋势预测分析研究报告
评论
0/150
提交评论