定制家具网站建设网店

pingmian/2026/1/26 16:04:49/文章来源:
定制家具网站建设,网店,做网站策划案,影视广告Gradient Descent for Linear Regression 1、梯度下降2、梯度下降算法的实现(1) 计算梯度(2) 梯度下降(3) 梯度下降的cost与迭代次数(4) 预测 3、绘图4、学习率 首先导入所需的库#xff1a; import math, copy import numpy as np import matplotlib.pyplot as plt plt.styl… Gradient Descent for Linear Regression 1、梯度下降2、梯度下降算法的实现(1) 计算梯度(2) 梯度下降(3) 梯度下降的cost与迭代次数(4) 预测 3、绘图4、学习率 首先导入所需的库 import math, copy import numpy as np import matplotlib.pyplot as plt plt.style.use(./deeplearning.mplstyle) from lab_utils_uni import plt_house_x, plt_contour_wgrad, plt_divergence, plt_gradients1、梯度下降 使用线性模型来预测 f w , b ( x ( i ) ) f_{w,b}(x^{(i)}) fw,b​(x(i)): f w , b ( x ( i ) ) w x ( i ) b (1) f_{w,b}(x^{(i)}) wx^{(i)} b \tag{1} fw,b​(x(i))wx(i)b(1) 在线性回归中, 利用训练数据来拟合参数 w w w, b b b通过最小化预测值 f w , b ( x ( i ) ) f_{w,b}(x^{(i)}) fw,b​(x(i)) 与实际数据 y ( i ) y^{(i)} y(i) 之间的误差来实现。 这种衡量为 cost, 即 J ( w , b ) J(w,b) J(w,b)。 在训练中可以衡量所有样例 x ( i ) , y ( i ) x^{(i)},y^{(i)} x(i),y(i)的cost J ( w , b ) 1 2 m ∑ i 0 m − 1 ( f w , b ( x ( i ) ) − y ( i ) ) 2 (2) J(w,b) \frac{1}{2m} \sum\limits_{i 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)})^2\tag{2} J(w,b)2m1​i0∑m−1​(fw,b​(x(i))−y(i))2(2) 梯度下降描述为: repeat until convergence: { w w − α ∂ J ( w , b ) ∂ w b b − α ∂ J ( w , b ) ∂ b } \begin{align*} \text{repeat}\text{ until convergence:} \; \lbrace \newline \; w w - \alpha \frac{\partial J(w,b)}{\partial w} \tag{3} \; \newline b b - \alpha \frac{\partial J(w,b)}{\partial b} \newline \rbrace \end{align*} repeatwb}​ until convergence:{w−α∂w∂J(w,b)​b−α∂b∂J(w,b)​​(3)​ 其中参数 w w w, b b b 同时更新。 梯度定义为: ∂ J ( w , b ) ∂ w 1 m ∑ i 0 m − 1 ( f w , b ( x ( i ) ) − y ( i ) ) x ( i ) ∂ J ( w , b ) ∂ b 1 m ∑ i 0 m − 1 ( f w , b ( x ( i ) ) − y ( i ) ) \begin{align} \frac{\partial J(w,b)}{\partial w} \frac{1}{m} \sum\limits_{i 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)})x^{(i)} \tag{4}\\ \frac{\partial J(w,b)}{\partial b} \frac{1}{m} \sum\limits_{i 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)}) \tag{5}\\ \end{align} ∂w∂J(w,b)​∂b∂J(w,b)​​m1​i0∑m−1​(fw,b​(x(i))−y(i))x(i)m1​i0∑m−1​(fw,b​(x(i))−y(i))​(4)(5)​ 这里的 同时 意味着在更新任何一个参数之前同时计算所有参数的偏导数。 2、梯度下降算法的实现 包含一个特征的梯度下降算法需要三个函数来实现 compute_gradient 执行上面的等式(4)和(5)compute_cost 执行上面的等式(2)gradient_descent利用 compute_gradient 和 compute_cost 其中包含偏导数的 Python 变量的命名遵循以下模式 ∂ J ( w , b ) ∂ b \frac{\partial J(w,b)}{\partial b} ∂b∂J(w,b)​ 为 dj_db. (1) 计算梯度 compute_gradient 实现上面的 (4) 和 (5) 返回 ∂ J ( w , b ) ∂ w \frac{\partial J(w,b)}{\partial w} ∂w∂J(w,b)​, ∂ J ( w , b ) ∂ b \frac{\partial J(w,b)}{\partial b} ∂b∂J(w,b)​. def compute_gradient(x, y, w, b): Computes the gradient for linear regression Args:x (ndarray (m,)): Data, m examples y (ndarray (m,)): target valuesw,b (scalar) : model parameters Returnsdj_dw (scalar): The gradient of the cost w.r.t. the parameters wdj_db (scalar): The gradient of the cost w.r.t. the parameter b # Number of training examplesm x.shape[0] dj_dw 0dj_db 0for i in range(m): f_wb w * x[i] b dj_dw_i (f_wb - y[i]) * x[i] dj_db_i f_wb - y[i] dj_db dj_db_idj_dw dj_dw_i dj_dw dj_dw / m dj_db dj_db / m return dj_dw, dj_db使用 compute_gradient 函数来找到并绘制cost函数相对于参数 w 0 w_0 w0​ 的一些偏导数。 plt_gradients(x_train,y_train, compute_cost, compute_gradient) plt.show()上面的左图显示了 ∂ J ( w , b ) ∂ w \frac{\partial J(w,b)}{\partial w} ∂w∂J(w,b)​即在三个点处关于 w w w 的 cost 曲线的斜率。在图的右侧导数为正而在左侧为负。由于“碗形”的形状导数将始终引导梯度下降朝着梯度为零的最低点前进。 左图中的 b b b 被固定为 100。梯度下降将同时利用 ∂ J ( w , b ) ∂ w \frac{\partial J(w,b)}{\partial w} ∂w∂J(w,b)​ 和 ∂ J ( w , b ) ∂ b \frac{\partial J(w,b)}{\partial b} ∂b∂J(w,b)​ 来更新参数。右侧的“矢量图”提供了查看两个参数梯度的方式。箭头的大小反映了该点梯度的大小。箭头的方向和斜率反映了该点处 ∂ J ( w , b ) ∂ w \frac{\partial J(w,b)}{\partial w} ∂w∂J(w,b)​ 和 ∂ J ( w , b ) ∂ b \frac{\partial J(w,b)}{\partial b} ∂b∂J(w,b)​ 的比例。梯度指向远离最小值的方向。将缩放后的梯度从当前的 w w w 或 b b b 值中减去这将使参数朝着降低cost的方向移动。 (2) 梯度下降 现在可以计算梯度了梯度下降方法如上面公式3所描述可以在下面的 gradient_descent 函数中实现。使用这个函数在训练数据上找到参数 w w w 和 b b b 的最优值。 def gradient_descent(x, y, w_in, b_in, alpha, num_iters, cost_function, gradient_function): Performs gradient descent to fit w,b. Updates w,b by taking num_iters gradient steps with learning rate alphaArgs:x (ndarray (m,)) : Data, m examples y (ndarray (m,)) : target valuesw_in,b_in (scalar): initial values of model parameters alpha (float): Learning ratenum_iters (int): number of iterations to run gradient descentcost_function: function to call to produce costgradient_function: function to call to produce gradientReturns:w (scalar): Updated value of parameter after running gradient descentb (scalar): Updated value of parameter after running gradient descentJ_history (List): History of cost valuesp_history (list): History of parameters [w,b] w copy.deepcopy(w_in) # avoid modifying global w_in# An array to store cost J and ws at each iteration primarily for graphing laterJ_history []p_history []b b_inw w_infor i in range(num_iters):# Calculate the gradient and update the parameters using gradient_functiondj_dw, dj_db gradient_function(x, y, w , b) # Update Parameters using equation (3) aboveb b - alpha * dj_db w w - alpha * dj_dw # Save cost J at each iterationif i100000: # prevent resource exhaustion J_history.append( cost_function(x, y, w , b))p_history.append([w,b])# Print cost every at intervals 10 times or as many iterations if 10if i% math.ceil(num_iters/10) 0:print(fIteration {i:4}: Cost {J_history[-1]:0.2e} ,fdj_dw: {dj_dw: 0.3e}, dj_db: {dj_db: 0.3e} ,fw: {w: 0.3e}, b:{b: 0.5e})return w, b, J_history, p_history #return w and J,w history for graphing# initialize parameters w_init 0 b_init 0 # some gradient descent settings iterations 10000 tmp_alpha 1.0e-2 # run gradient descent w_final, b_final, J_hist, p_hist gradient_descent(x_train ,y_train, w_init, b_init, tmp_alpha, iterations, compute_cost, compute_gradient) print(f(w,b) found by gradient descent: ({w_final:8.4f},{b_final:8.4f}))从上面打印的梯度下降过程可以看出偏导数 dj_dw和dj_db逐渐变小开始变得很快然后变慢。当过程接近“碗底”时由于该点的导数值较小进度会变慢。 (3) 梯度下降的cost与迭代次数 cost 与迭代次数的图是梯度下降中进展的一个有用指标。在成功的运行中cost 应该始终降低。cost的变化在最初阶段非常迅速因此将初始阶段的下降与最后阶段的下降绘制在不同的比例尺上是很有用的。在下面的图中请注意坐标轴上cost的刻度和迭代步骤。 # plot cost versus iteration fig, (ax1, ax2) plt.subplots(1, 2, constrained_layoutTrue, figsize(12,4)) ax1.plot(J_hist[:100]) ax2.plot(1000 np.arange(len(J_hist[1000:])), J_hist[1000:]) ax1.set_title(Cost vs. iteration(start)); ax2.set_title(Cost vs. iteration (end)) ax1.set_ylabel(Cost) ; ax2.set_ylabel(Cost) ax1.set_xlabel(iteration step) ; ax2.set_xlabel(iteration step) plt.show()(4) 预测 现在已经找到了参数 w w w 和 b b b 的最优值可以使用这个模型根据学到的参数来预测房屋价格。如预期的那样对于相同的房屋预测值与训练值几乎相同。此外对于没有在预测中的值它与预期值是一致的。 print(f1000 sqft house prediction {w_final*1.0 b_final:0.1f} Thousand dollars) print(f1200 sqft house prediction {w_final*1.2 b_final:0.1f} Thousand dollars) print(f2000 sqft house prediction {w_final*2.0 b_final:0.1f} Thousand dollars)3、绘图 通过在cost函数的等高线图上绘制cost随迭代次数的变化来展示梯度下降执行过程。 fig, ax plt.subplots(1,1, figsize(12, 6)) plt_contour_wgrad(x_train, y_train, p_hist, ax)在上面的等高线图中展示了 c o s t ( w , b ) cost(w,b) cost(w,b) 在一系列 w w w 和 b b b 值上的变化。cost 水平由环状图表示。用红色箭头叠加在图中表示梯度下降的路径。这条路径向着目标稳步单调地前进最初的步长比接近目标时的步长要大得多。 将梯度下降的最后步进行放大随着梯度接近零步之间的距离会缩小。 fig, ax plt.subplots(1,1, figsize(12, 4)) plt_contour_wgrad(x_train, y_train, p_hist, ax, w_range[180, 220, 0.5], b_range[80, 120, 0.5], contours[1,5,10,20],resolution0.5)4、学习率 α \alpha α 越大梯度下降就会更快地收敛到一个解。但是如果 α \alpha α 太大梯度下降可能会发散。上面的例子展示了一个很好地收敛的解。如果增加 α \alpha α 的值看看会发生什么 # initialize parameters w_init 0 b_init 0 # set alpha to a large value iterations 10 tmp_alpha 8.0e-1 # run gradient descent w_final, b_final, J_hist, p_hist gradient_descent(x_train ,y_train, w_init, b_init, tmp_alpha, iterations, compute_cost, compute_gradient)在上面的情况下 w w w 和 b b b 在正值和负值之间来回跳动其绝对值在每次迭代中增加。此外每次迭代 ∂ J ( w , b ) ∂ w \frac{\partial J(w,b)}{\partial w} ∂w∂J(w,b)​ 都会改变符号并且cost不是减小而是增加。这明显表明学习率过大导致解发散。通过图形来可视化这个情况。 plt_divergence(p_hist, J_hist,x_train, y_train) plt.show()上面的左图显示了梯度下降的前几步中 w w w 的变化情况。 w w w 在正值和负值之间振荡并且cost迅速增长。梯度下降同时对 w w w 和 b b b 进行操作因此需要右边的三维图来得到完整的图像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站策划方案实例制作公司网站 价格

昨天开始突然想在4412上面跑人QT玩,首先得跑个纯linux昨天做好第一步,把根文件系统,用make_ext4fs 打包。make_ext4fs -l 34M -s system.img minifs/然后在uboot启动命令中把启动参数修改:setenv bootargs noinitrd root/dev/mmcb…

网站设计 cdc湖南营销型网站建设磐石网络省钱

查找,又称搜索,检索。 查找运算的主要操作是关键字的比较, 通常把查找过程中的平均比较次数(也称为平均查找长度) 作为衡量一个查找算法效率优劣的标准。 平均查找长度(Average Search. Length ASL) 的计算公式为 A S L ∑ i 1 n P n C i…

网站流量刷广告公司首页

Linux Cockpit 是一个基于 Web 界面的应用,它提供了对系统的图形化管理。看下它能够控制哪些。-- Sandra Henry-stocker如果你还没有尝试过相对较新的 Linux Cockpit,你可能会对它所能做的一切感到惊讶。它是一个用户友好的基于 web 的控制台&#xff0c…

网站界面设计的发展wordpress备份到网盘

题目 给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序…

游戏网站外链建设品牌营销策略分析论文

0x01业务描述 说明: 同事搭建的业务系统,最开始使用 log4net 记录到本地日志. 然后多个项目为了日志统一,全部记录在 Elasticsearch ,使用 log4net.ElasticSearchAppender.DotNetCore. 然后搭建了 Kibanal 对 Elasticsearch 进行查询. 但是项目组开发人员众多,不是每个人…

济南公众平台网站建设建行官网个人登录

Connetction Initiation是RDP连接的第一个阶段,具体包含两个消息RDP Negotiation Request和RDP Negotiation Response,下面结合协议数据包详细分析。 (1)RDP Negotiation Request 从数据包可以清晰看到此时的协议栈依次是TCP-TPKT…

重庆长寿网站建设网站开发专员

代码随想录算法训练营第三十八天 | 理论基础,509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯 理论基础什么是动态规划动态规划的解题步骤动态规划应该如何debug 509. 斐波那契数递归解法 70. 爬楼梯746. 使用最小花费爬楼梯 理论基础 视…

网站开发技术发展企业网站设计步骤

今天是 2 月 14 日情人节,我看公众号后台有好多人在回复关键字:情人节表白代码。我想,我作为大家的校长,必须给大家送一波福利代码啊!我是真没想到,竟然很多程序员都想用代码表白,还整的挺浪漫的&#xff0…

网站建设超速云免费网页制作教程视频自学

目录 1. 修改源码,让模型能够生成出对于单个图像的标注。 2. 把数据转为yolo格式 3.把yolo格式转化为xml格式 这两天想偷懒,想让模型先在数据上标一遍,然后我再做修正,主要是图个省事。由于我们主要是利用paddle,模型也是基于p…

政务网站建设合同网站未备案可以上线吗

泛型 Generics泛型详解 使用泛型参数&#xff0c;有一个先决条件&#xff0c;必需在使用前对其进行声明&#xff1a; fn largest<T>(list: &[T]) -> T {该泛型函数的作用是从列表中找出最大的值&#xff0c;其中列表中的元素类型为 T。首先 largest<T> 对…

做网站怎么字体全部变粗了佛山营销型网站设计

本文介绍numpy数组中这四个方法的区别ndim、shape、dtype、astype。1.ndimndim返回的是数组的维度&#xff0c;返回的只有一个数&#xff0c;该数即表示数组的维度。2.shapeshape&#xff1a;表示各位维度大小的元组。返回的是一个元组。对于一维数组&#xff1a;有疑问的是为什…

医疗行业企业网站建设政企网站建设

【Arclist 标记】这个标记是DedeCms最常用的一个标记&#xff0c;也叫自由列表标记&#xff0c;其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart、autolist 这些标记都是由这个标记所定义的不同属性延伸出来的别名标记。功能说明&#xff1a;获取指定的…

南宁网站建设地方代运营有哪些套路坑

一模板&#xff1a; 模板不是数据类型&#xff0c;只能算是一种行为集合的表示。编译器在使用模板时&#xff0c;通过更换模板参数来创建数据类型。这个过程就是模板实例化(Instantiation)&#xff0c; 从模板类创建得到的类型称之为特例(specialization)&#xff0c;说白了就是…

做网站主页效果图有什么彩票网站做代理好点

在linux使用platform_driver_register() 注册 platform_driver 时&#xff0c; 需要在 platform_driver 的probe() 里面知道设备的中断号&#xff0c; 内存地址等资源。这些资源的描述信息存放在 resource 数据结构中&#xff0c; 相同的资源存放在一个树形树形数据结构中&…

sql数据库的网站迁移流程页面设计

在信息化、智能化浪潮席卷全球的今天&#xff0c;物联网SaaS平台作为推动工业数字化转型的重要工具&#xff0c;正日益受到广泛关注。那么&#xff0c;物联网SaaS平台究竟是什么&#xff1f;HiWoo Cloud作为物联网SaaS平台又有哪些独特优势&#xff1f;更重要的是&#xff0c;它…

网站推广手段有哪些cms的功能有哪些

在Java编程中&#xff0c;接口和抽象类是两个重要的概念。它们都用于实现面向对象编程中的抽象和封装&#xff0c;但在使用方式和功能上有所不同。本文将详细介绍Java中接口和抽象类的概念、用法和示例代码&#xff0c;帮助读者更好地理解和应用它们。 一、接口&#xff08;In…

建设电影网站选服务器怎么选鸿蒙os用什么语言开发app

linuxpython3.6.8uwsgipostgresqldjango部署web服务器 1.查看系统信息2.配置postgresql数据库2-1.安装postgresql数据库2-2.设置密码2-3.修改postgresql数据库配置文件 3.Python虚拟环境激活虚拟环境 4.Django4-1.Python 安装Django4-2.创建Django项目4-3.配置Django 5.uwsgi5-…

哪些经营范围可以开网站建设费用wordpress 设置显示中文字体

Jupyter Notebook是一个非常强大的工具&#xff0c;可以用于各种数据分析和机器学习任务&#xff0c;包括分类问题。在Jupyter Notebook中进行分类通常需要以下步骤&#xff1a; 导入所需的库&#xff1a;首先&#xff0c;你需要导入必要的Python库&#xff0c;例如NumPy、Pand…

微信分销网站建设比较好太原编程培训机构

本文并非基于微调训练模型&#xff0c;而是从头开始训练出一个全新的大语言模型的硬核教程。看完本篇&#xff0c;你将了解训练出一个大模型的环境准备、数据准备&#xff0c;生成分词&#xff0c;模型训练、测试模型等环节分别需要做什么。AI 小白友好~文中代码可以直接实操运…

漯河网站建设漯河wordpress pdf 打印

UNION ALL UNION ALL 用于合并两个或多个 SELECT 语句的结果。 请注意&#xff0c;UNION ALL 合并的每个 SELECT 语句必须是查询相同数量&#xff0c;相同数据类型的字段&#xff0c;且顺序也必须一致。另外结果集中的列名总是等于 UNION ALL 中第一个 SELECT 语句中的列名。 …