当前位置: 首页 > news >正文

钓鱼网站模板制作前端怎么接私活做网站

钓鱼网站模板制作,前端怎么接私活做网站,wordpress增加英文,柳市哪里有做网站推广文章目录 Python 梯度下降法#xff08;二#xff09;#xff1a;RMSProp Optimize一、数学原理1.1 介绍1.2 公式 二、代码实现2.1 函数代码2.2 总代码 三、代码优化3.1 存在问题3.2 收敛判断3.3 函数代码3.4 总代码 四、优缺点4.1 优点4.2 缺点 Python 梯度下降法#xff… 文章目录 Python 梯度下降法二RMSProp Optimize一、数学原理1.1 介绍1.2 公式 二、代码实现2.1 函数代码2.2 总代码 三、代码优化3.1 存在问题3.2 收敛判断3.3 函数代码3.4 总代码 四、优缺点4.1 优点4.2 缺点 Python 梯度下降法二RMSProp Optimize 结合第一篇文章一起看Python 梯度下降法一Gradient Descent-CSDN博客 一、数学原理 1.1 介绍 RMSPropRoot Mean Square Propagation是一种自适应学习率优化算法广泛用于深度学习中的梯度下降优化。它通过调整每个参数的学习率来解决传统梯度下降法中学习率固定的问题从而加速收敛并提高性能。 RMSProp 的核心思想是对每个参数的学习率进行自适应调整。它通过维护一个指数加权移动平均Exponential Moving Average, EMA的梯度平方值来调整学习率 对于梯度较大的参数降低其学习率。对于梯度较小的参数增加其学习率。 这种方法可以有效缓解梯度下降中的震荡问题尤其是在非凸优化问题中。 1.2 公式 符号说明 θ : 需要优化的参数向量 J ( θ ) : 损失函数 g t : 在第 t 次迭代时损失函数关于 θ 的梯度 ∇ θ J ( θ t ) ρ : 衰减率常用值为 0.9 η : 学习率需要手动设置 ϵ : 一个及小的参数无限趋近于零避免不会出现零 ( 1 0 − 8 ) s t : 指数加权移动平均 \begin{array}{l} \theta:需要优化的参数向量 \\ J(\theta): 损失函数 \\ g_{t}:在第t次迭代时损失函数关于\theta的梯度\nabla_{\theta}J(\theta_{t}) \\ \rho : 衰减率常用值为0.9\\ \eta:学习率需要手动设置 \\ \epsilon: 一个及小的参数无限趋近于零避免不会出现零(10^{-8}) \\ s_{t}:指数加权移动平均 \end{array} θJ(θ)gt​ρηϵst​​:需要优化的参数向量:损失函数:在第t次迭代时损失函数关于θ的梯度∇θ​J(θt​):衰减率常用值为0.9:学习率需要手动设置:一个及小的参数无限趋近于零避免不会出现零(10−8):指数加权移动平均​ 初始化参数为 θ 0 , s 0 0 \theta_{0},s_{0}0 θ0​,s0​0 迭代更新每次迭代 t t t中更新指数加权移动平均 s t ρ s t − 1 ( 1 − ρ ) g t ⊙ g t s_{t}\rho s_{t-1}(1-\rho)g_{t}\odot g_{t} st​ρst−1​(1−ρ)gt​⊙gt​ s t s_{t} st​可以理解为对梯度平方的一个平滑估计它更关注近期的梯度信息 ρ \rho ρ控制了历史信息的衰减程度。 计算自适应学习率公式为 η s t ϵ \frac{\eta}{\sqrt{ s_{t}\epsilon }} st​ϵ ​η​其中分母 s t ϵ \sqrt{ s_{t}\epsilon} st​ϵ ​起到了归一化梯度的作用使得学习率可以更具梯度的尺寸进行自适应的调整。 更新参数 θ t 1 θ t − η s t ϵ g t \theta_{t1}\theta_{t}- \frac{\eta}{\sqrt{ s_{t}\epsilon }}g_{t} θt1​θt​−st​ϵ ​η​gt​ 二、代码实现 2.1 函数代码 RMSProp优化算法实现 # 定义RMSProp优化算法 def rmsprop_optimizer(X, y, eta, num_iter1000, epsilon1e-5, rho0.9):X: 数据 x mxny: 数据 y nx1eta: 学习率 num_iter: 迭代次数epsilon 无穷小rho: 衰减率m, n X.shape theta, s np.zeros((n, 1)), np.zeros((n, 1)) # 初始参数 nx1以及指数加权移动平均 nx1loss_ [] # 存储损失率的变化便于绘图for _ in range(num_iter):# 计算预测值h np.dot(X, theta)# 计算误差error h - yloss_.append(np.mean(error**2) / 2)# 计算梯度gradient (1/m) * np.dot(X.T, error)s rho * s (1 - rho) * np.pow(gradient, 2) # 利用广播机制来进行运算每个维度上的平滑估计theta theta - np.multiply(eta / np.sqrt(s epsilon), gradient) # Hadamar productreturn theta, loss_2.2 总代码 import numpy as np import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [Microsoft YaHei] # 定义RMSProp优化算法 def rmsprop_optimizer(X, y, eta, num_iter1000, epsilon1e-5, rho0.9):X: 数据 x mxny: 数据 y nx1eta: 学习率 num_iter: 迭代次数epsilon 无穷小rho: 衰减率m, n X.shape theta, s np.zeros((n, 1)), np.zeros((n, 1)) # 初始参数 nx1以及指数加权移动平均 nx1loss_ [] # 存储损失率的变化便于绘图for _ in range(num_iter):# 计算预测值h np.dot(X, theta)# 计算误差error h - yloss_.append(np.mean(error**2) / 2)# 计算梯度gradient (1/m) * np.dot(X.T, error)s rho * s (1 - rho) * np.pow(gradient, 2) # 利用广播机制来进行运算每个维度上的平滑估计theta theta - np.multiply(eta / np.sqrt(s epsilon), gradient) # Hadamar productreturn theta, loss_# 生成一些示例数据 X 2 * np.random.rand(100, 1) y 4 3 * X np.random.randn(100, 1) # 添加偏置项 X_b np.c_[np.ones((100, 1)), X]# 设置超参数 eta 0.1# RMSProp优化算法 theta, loss_ rmsprop_optimizer(X_b, y, eta)print(最优参数 theta:) print(theta) plt.plot(range(len(loss_)), loss_, label损失函数图像) plt.title(损失函数图像) plt.xlabel(迭代次数) plt.ylabel(损失值) plt.show()可以发现其对于损失值的下降性能也较好损失率也较为稳定。 三、代码优化 3.1 存在问题 未使用小批量数据该代码在每次迭代时使用了全部的训练数据 X 和 y 来计算梯度这相当于批量梯度下降的方式。在处理大规模数据集时这种方式可能会导致计算效率低下并且可能会陷入局部最优解。可以参考之前小批量梯度下降的代码引入小批量数据的处理以提高算法的效率和泛化能力。缺乏数据预处理在实际应用中输入数据 X 可能需要进行预处理例如归一化或标准化以确保不同特征具有相似的尺度从而加快算法的收敛速度。(这里不进行解决参考特征缩放数据归一化-CSDN博客)缺乏收敛判断代码只是简单地进行了固定次数的迭代没有设置收敛条件。在实际应用中可以添加收敛判断例如当损失值的变化小于某个阈值时提前停止迭代以节省计算资源。 这里引入Mini-batch Gradient Descent以及收敛判断减少计算资源 3.2 收敛判断 # 收敛判断设定阈值进行收敛判断 # 满足条件即停止减少系统资源的使用 if len(loss_) 1 and abs(loss_[-1] - loss_[-2]) threshold:print(fConverged at iteration {_ 1})break # 注意这里不能使用return 3.3 函数代码 # 定义RMSProp优化算法 def rmsprop_optimizer(X, y, eta, batch_size32, num_iter1000, epsilon1e-5, rho0.9, threshold1e-3):X: 数据 x mxn可以在传入数据之前进行数据的归一化y: 数据 y nx1eta: 学习率 batch_size: 批量数据的大小num_iter: 迭代次数epsilon 无穷小rho: 衰减率threshold: 收敛阈值m, n X.shape theta, s np.zeros((n, 1)), np.zeros((n, 1)) # 初始参数 nx1以及指数加权移动平均 nx1loss_ [] # 存储损失率的变化便于绘图num_batchs m // batch_sizefor _ in range(num_iter):# 打乱数据集shuffled_indices np.random.permutation(m)X_shuffled X[shuffled_indices]y_shuffled y[shuffled_indices]loss_temp [] # 存储每次小批量样本生成的值for batch in range(num_batchs):# 选取小批量样本start_index batch * batch_sizeend_index start_index batch_sizexi X_shuffled[start_index:end_index]yi y_shuffled[start_index:end_index]# 计算预测值h np.dot(xi, theta)# 计算误差error h - yiloss_temp.append(np.mean(error**2) / 2)# 计算梯度gradient (1/m) * np.dot(xi.T, error)s rho * s (1 - rho) * np.pow(gradient, 2) # 利用广播机制来进行运算每个维度上的平滑估计theta theta - np.multiply(eta / np.sqrt(s epsilon), gradient) # Hadamar productloss_.append(np.mean(loss_temp))# 收敛判断if len(loss_) 1 and abs(loss_[-1] - loss_[-2]) threshold:print(fConverged at iteration {_ 1})breakreturn theta, loss_3.4 总代码 import numpy as np import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [Microsoft YaHei] # 定义RMSProp优化算法 def rmsprop_optimizer(X, y, eta, batch_size32, num_iter1000, epsilon1e-5, rho0.9, threshold1e-3):X: 数据 x mxn可以在传入数据之前进行数据的归一化y: 数据 y nx1eta: 学习率 batch_size: 批量数据的大小num_iter: 迭代次数epsilon 无穷小rho: 衰减率threshold: 收敛阈值m, n X.shape theta, s np.zeros((n, 1)), np.zeros((n, 1)) # 初始参数 nx1以及指数加权移动平均 nx1loss_ [] # 存储损失率的变化便于绘图num_batchs m // batch_sizefor _ in range(num_iter):# 打乱数据集shuffled_indices np.random.permutation(m)X_shuffled X[shuffled_indices]y_shuffled y[shuffled_indices]loss_temp [] # 存储每次小批量样本生成的值for batch in range(num_batchs):# 选取小批量样本start_index batch * batch_sizeend_index start_index batch_sizexi X_shuffled[start_index:end_index]yi y_shuffled[start_index:end_index]# 计算预测值h np.dot(xi, theta)# 计算误差error h - yiloss_temp.append(np.mean(error**2) / 2)# 计算梯度gradient (1/m) * np.dot(xi.T, error)s rho * s (1 - rho) * np.pow(gradient, 2) # 利用广播机制来进行运算每个维度上的平滑估计theta theta - np.multiply(eta / np.sqrt(s epsilon), gradient) # Hadamar productloss_.append(np.mean(loss_temp)) # 使用平均值作为参考# 收敛判断if len(loss_) 1 and abs(loss_[-1] - loss_[-2]) threshold:print(fConverged at iteration {_ 1})breakreturn theta, loss_# 生成一些示例数据 X 2 * np.random.rand(100, 1) y 4 3 * X np.random.randn(100, 1) # 添加偏置项 X_b np.c_[np.ones((100, 1)), X]# 设置超参数 eta 0.1# RMSProp优化算法 theta, loss_ rmsprop_optimizer(X_b, y, eta)print(最优参数 theta:) print(theta) plt.plot(range(len(loss_)), loss_, label损失函数图像) plt.title(损失函数图像) plt.xlabel(迭代次数) plt.ylabel(损失值) plt.show()四、优缺点 4.1 优点 自适应学习率RMSProp 能够根据参数的梯度变化情况自适应地调整学习率。对于梯度较大的参数学习率会自动减小对于梯度较小的参数学习率会相对增大。这使得算法在处理不同尺度的梯度时更加稳定有助于加快收敛速度。缓解 Adagrad 学习率衰减过快问题与 Adagrad 算法不同RMSProp 使用指数加权移动平均来计算梯度平方的累积值避免了 Adagrad 中学习率单调递减且后期学习率过小的问题使得算法在训练后期仍然能够继续更新参数。 4.2 缺点 对超参数敏感RMSProp 的性能依赖于超参数 η \eta η和 ρ \rho ρ的选择。如果超参数设置不当可能会导致算法收敛速度慢或者无法收敛到最优解。可能陷入局部最优和其他基于梯度的优化算法一样RMSProp 仍然有可能陷入局部最优解尤其是在损失函数具有复杂的地形时。
http://www.hkea.cn/news/14365303/

相关文章:

  • asp绿色简洁通用型企业网站源码事业单位网站设计
  • 个人网站备案需要哪些材料网站建设的含义
  • 苏州网站建设推荐q479185700霸屏外贸公司出口退税申报流程
  • 西安学建网站网站建设少用控件
  • 许昌小学网站建设wordpress侧边联系方式
  • 外国游戏概念设计网站新农村建设在哪个网站申请
  • php做不了大型网站做英文网站 赚美元
  • 网站建设情况汇报做企业网站不好混
  • 网站模板怎么修改教程网站设置不可粘贴
  • 站长工具同大全站wordpress浏览插件
  • 网上做牙刷上什么网站深圳电商网站设计公司
  • 中国建设银行网站用户注册谈谈你对互联网营销的认识
  • 做seo网站优化多少钱西安俄语网站建设
  • 无锡外贸网站制作富阳建设局网站首页
  • 具有价值的建网站网站建设发布
  • 网站开发职业岗位个人做当地旅游网站
  • pc网站 手机网站 微信公众平台润滑油网站怎样做效果更好
  • 企业做网站需要做哪些工作广告公司有哪些
  • 会所网站建设360建筑工程网
  • 企业网站优化方案范本wordpress没显示已发布
  • 域名申请而完成以后怎么做网站中小企业网站设计与开发目的
  • wordpress 上传网站桐柏微网站开发
  • 手机网站版面设计如何修改网站logo
  • 推广不收费的网站有哪些wordpress 搜索无效
  • 网站开发报价单.doc网站建设项目售后服务承诺
  • 国外常用的seo站长工具软件开发各阶段产生的文档
  • 网站制作涉及哪些方面html5汽车网站模板
  • 在线网站教育平台网站
  • 专注营销型网站建设公司 做网站网站备案变更单位名称
  • 凤阳网站建设哪家好广东网站备案要求