php网站建设方案/怎么百度推广

php网站建设方案,怎么百度推广,党建网站建设解决方案,现代网站开发技术简介 梯度下降(Gradient Descent)是一种常用的优化算法,广泛应用于机器学习、深度学习等领域,在这里是用于求J(w,b)局部最小值。 我自己觉得这样说有点过于抽象。换个直观点的说法就是,一个人…

简介

梯度下降(Gradient Descent)是一种常用的优化算法,广泛应用于机器学习、深度学习等领域,在这里是用于求J(w,b)局部最小值。

我自己觉得这样说有点过于抽象。换个直观点的说法就是,一个人站在了一座小土包上,这个人要去找周围的最低点,求这个局部最低点的数学过程,就是这个梯度下降算法。

基本原理

梯度下降的核心思想是基于函数的梯度信息来寻找函数的最小值。对于一个多元函数J(\theta),其中 \theta = (\theta_1, \theta_2, \cdots, \theta_n)是函数的参数向量,梯度 \nabla J(\theta)是一个向量,它的每个元素是函数J 对相应参数 \theta_i的偏导数 \frac{\partial J}{\partial \theta_i}

梯度的方向是函数在当前点上升最快的方向,那么负梯度方向就是函数下降最快的方向。算法通过不断地沿着负梯度方向更新参数,来逐步减小目标函数的值,直到达到一个局部最小值或全局最小值。

算法步骤

初始化参数

随机选择一个初始参数向量\theta^{(0)},它可以是一个随机的数值向量,也可以根据具体问题的先验知识进行初始化。

计算梯度

对于给定的参数\theta^{(t)}(t表示当前的迭代次数),计算目标函数J(\theta)在该点的梯度 \nabla J(\theta^{(t)})。这需要对目标函数进行求导,根据函数的具体形式使用相应的求导规则来计算每个参数的偏导数。

更新参数

根据计算得到的梯度,按照以下公式更新参数:\theta^{(t + 1)}=\theta^{(t)}-\alpha\nabla J(\theta^{(t)}),其中 \alpha 是学习率,它控制着每次更新的步长大小。学习率是一个重要的超参数,需要根据具体问题进行调整。

检查收敛条件

判断是否满足收敛条件,常见的收敛条件有:达到预设的最大迭代次数、目标函数的变化量小于某个阈值、参数的变化量小于某个阈值等。如果满足收敛条件,则停止迭代,输出当前的参数 \theta^{(t + 1)} 作为最优解;否则,返回步骤2继续迭代。

学习率的选择

学习率 \alpha决定了梯度下降算法的收敛速度和最终结果。如果学习率过大,可能会导致算法跳过最优解,甚至无法收敛;如果学习率过小,算法可能会收敛得非常缓慢,需要大量的迭代才能达到满意的结果。

为了选择合适的学习率,可以采用一些策略,如固定学习率、动态调整学习率(如随着迭代次数增加逐渐减小学习率)、使用自适应学习率算法(如Adagrad、Adadelta、RMSProp、Adam等,这些算法可以根据参数的更新情况自动调整学习率)。

梯度下降的变体

批量梯度下降(Batch Gradient Descent,BGD)

在每次更新参数时,使用整个训练数据集来计算梯度。优点是能够找到全局最优解的可能性较大,缺点是当训练数据集很大时,计算梯度的成本很高,导致训练速度慢。

随机梯度下降(Stochastic Gradient Descent,SGD)

每次更新参数时,随机选择一个训练样本,使用该样本的梯度来更新参数。优点是训练速度快,能够处理大规模数据集,缺点是由于每次只使用一个样本,梯度估计可能存在较大的噪声,导致收敛过程可能会有波动,不一定能准确地收敛到全局最优解。

小批量梯度下降(Mini - Batch Gradient Descent,MBGD)

结合了批量梯度下降和随机梯度下降的优点,每次更新参数时,使用一小部分训练样本(称为一个小批量)来计算梯度。小批量的大小通常在几十到几百之间。这种方法既能够利用小批量数据的统计信息来稳定梯度估计,又能够在一定程度上提高训练速度,是实际应用中最常用的梯度下降变体之一。

应用场景

梯度下降在机器学习和深度学习中有广泛的应用,例如在线性回归、逻辑回归、神经网络等模型的训练中,用于最小化损失函数,以找到最优的模型参数。通过不断地调整模型的参数,使得模型的预测结果与真实标签之间的差异最小化,从而提高模型的性能和泛化能力。在这里就是应用在J(w,b)函数上。

简单的代码示例

import numpy as np
import matplotlib.pyplot as pltdef gradient_descent(x, y, learning_rate, num_iterations):# 初始化参数m = 0  # 斜率b = 0  # 截距n = len(x)for iteration in range(num_iterations):# 计算预测值y_pred = m * x + b# 计算梯度dm = (-2 / n) * np.sum(x * (y - y_pred))db = (-2 / n) * np.sum(y - y_pred)# 更新参数m = m - learning_rate * dmb = b - learning_rate * dbreturn m, b# 生成一些示例数据
np.random.seed(0)
x = np.array([1, 2, 3, 4, 5])
y = np.array([5, 7, 9, 11, 13])# 设置超参数
learning_rate = 0.01
num_iterations = 1000# 运行梯度下降算法
m, b = gradient_descent(x, y, learning_rate, num_iterations)# 输出结果
print(f"斜率 m: {m}")
print(f"截距 b: {b}")# 绘制原始数据和拟合直线
plt.scatter(x, y, label='原始数据')
plt.plot(x, m * x + b, color='red', label='拟合直线')
plt.xlabel('x')
plt.ylabel('y')
plt.title('梯度下降线性回归')
plt.legend()
plt.show()

代码解释

gradient_descent` 函数

该函数实现了梯度下降算法的核心逻辑。它接受输入特征 `x`、目标值 `y`、学习率 `learning_rate` 和迭代次数 `num_iterations` 作为参数。在函数内部,首先初始化斜率 `m` 和截距 `b` 为 0,然后进行指定次数的迭代。在每次迭代中,计算预测值 `y_pred`,接着计算斜率和截距的梯度 `dm` 和 `db`,最后根据梯度更新斜率和截距。 (m对应w,b对应b)

示例数据生成

使用 `numpy` 生成了一些简单的示例数据 `x` 和 `y`,模拟线性关系。

设置超参数

设置学习率 `learning_rate` 为 0.01,迭代次数 `num_iterations` 为 1000。

运行梯度下降算法

调用 `gradient_descent` 函数,得到最优的斜率和截距。

输出结果和绘图

打印出最优的斜率和截距,并使用 `matplotlib` 绘制原始数据点和拟合直线,直观展示梯度下降算法的效果。

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

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

相关文章

使用JAVA-进行维吉尼亚密码的解密与加密

维吉尼亚密码 来源于百度百科 维吉尼亚密码_百度百科 具体代码 import java.util.*;public class WJMYmm {//常量 26public static final int N 26;//密码public static void main(String[] args) {//字母String ZM"abcdefghijklmnopqrstuvwxyz";char[] zm ZM.…

LeetCode 解题思路 22(Hot 100)

解题思路: 递归思路: 传入当前节点的最小值和最大值,递归判断左右子树。结束条件: 当前节点为空或不满足二叉搜索树。 Java代码: class Solution {public boolean isValidBST(TreeNode root) {return isValidBST(ro…

乐享数科:政策助推假日经济,2月普惠金融-景气指数稳中有升

数据显示,2025年2月普惠金融-景气指数达48.99点,较1月上升0.03点。 企业运行持续向好,企业信心预期和经营活力回升。“假日经济”与“政策效应”相互叠加,市场供求格局有所改善,景气水平稳步恢复。 普惠金融-景气指数…

leetcode日记(108)验证回文串

看上去很简单,其实很麻烦。 一开始写的递归,但是内存超限……搜了下发现原因是每次递归调用都会创建一个新的字符串副本,这在处理长字符串时会占用大量内存。 class Solution { public:bool isPalindrome(string s) {if(s.size()0||s.size(…

用css绘制收银键盘

最近需求说需要自己弄个收银键盘&#xff0c;于是乎直接上手搓 主要基于Vue3写的&#xff0c;主要是CSS <template><view class"container"><view class"info"><image class"img" src"" mode"">&l…

智能车间管理系统(源码+文档+讲解+演示)

引言 在现代制造业中&#xff0c;智能车间管理系统正成为推动工业4.0和智能制造的关键力量。它通过整合先进的信息技术和自动化技术&#xff0c;优化生产流程&#xff0c;提高生产效率&#xff0c;降低成本&#xff0c;并确保产品质量。 系统概述 智能车间管理系统采用前后端…

单片机开发资源分析的实战——以STM32F103C8T6为例子的单片机资源分析

目录 第一点&#xff1a;为什么叫STM32F103C8T6 从资源手册拿到我们的对STM32F103C8T6的资源描述 第二件事情&#xff0c;关心我们的GPIO引脚输出 第三件事情&#xff1a;去找对应外设的说明部分 前言 本文章隶属于项目&#xff1a; Charliechen114514/BetterATK: This is…

腾讯云MySQL数据库架构分析与使用场景

TDSQL-C for MySQL TDSQL-C MySQL 版&#xff08;TDSQL-C for MySQL&#xff09;是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势&#xff0c;为用户提供具备高弹性、高性能、海量存储、安全可靠的数据库服务。TDSQL-C MySQL 版100%兼容…

荣耀手机卸载应用商店、快应用中心等系统自带的

1.下载abd ADB Download - Get the latest version of ADB and fastboot 2.手机打开开发者选项 3.手机接电脑打开USB调试 4.下载MT管理器查看系统包名 D:\1.LFD\ADB\platform-tools-latest-windows\platform-tools>adb shell adb.exe: no devices/emulators found 这边是…

网络流基本概念及实现算法

基本概念 流网络 对于一个有向图, 抽象成水管里的水的模型, 每根管子有容量限制, 计为 G ( V , E ) G (V, E) G(V,E), 首先不考虑反向边 对于任意无向图, 都可以将反向边转化为上述形式 如果一条边不存在, 定义为容量为 0 0 0, 形式上来说就是 c ( u , v ) 0 c(u, v) 0 c(…

【css酷炫效果】纯CSS实现球形阴影效果

【css酷炫效果】纯CSS实现球形阴影效果 缘创作背景html结构css样式完整代码基础版进阶版(动态版) 效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;上传后更新 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚看到csdn出活动了&#xff0c;赶时间&#xff0…

Linux如何在设备树中表示和引用设备信息

DTS基本知识 dts 硬件的相应信息都会写在.dts为后缀的文件中&#xff0c;每一款硬件可以单独写一份xxxx.dts&#xff0c;一般在Linux源码中存在大量的dts文件&#xff0c;对于arm架构可以在arch/arm/boot/dts找到相应的dts&#xff0c;一个dts文件对应一个ARM的machie。 dtsi 值…

C++20 中的同步输出流:`std::basic_osyncstream` 深入解析与应用实践

文章目录 一、std::basic_osyncstream 的背景与动机二、std::basic_osyncstream 的基本原理三、std::basic_osyncstream 的使用方法&#xff08;一&#xff09;基本用法&#xff08;二&#xff09;多线程环境下的使用&#xff08;三&#xff09;与文件流的结合 四、std::basic_…

C/C++蓝桥杯算法真题打卡(Day8)

一、P8780 [蓝桥杯 2022 省 B] 刷题统计 - 洛谷 算法代码&#xff1a; #include<bits/stdc.h> // 包含标准库中的所有头文件&#xff0c;方便使用各种数据结构和算法 using namespace std; // 使用标准命名空间&#xff0c;避免每次调用标准库函数时都要加 std::in…

第十三次CCF-CSP认证(含C++源码)

第十三次CCF-CSP认证 跳一跳满分题解 碰撞的小球满分题解遇到的问题 棋局评估满分题解 跳一跳 题目链接 满分题解 没什么好说的 基本思路就是如何用代码翻译题目所给的一些限制&#xff0c;以及变量应该如何更新&#xff0c;没像往常一样给一个n&#xff0c;怎么读入数据&…

MySQL:数据库基础

数据库基础 1.什么是数据库&#xff1f;2.为什么要学习数据库&#xff1f;3.主流的数据库&#xff08;了解&#xff09;4.服务器&#xff0c;数据库&#xff0c;表之间的关系5.数据的逻辑存储6.MYSQL架构7.存储引擎 1.什么是数据库&#xff1f; 数据库(Database,简称DB)&#x…

【C++】二叉树和堆的链式结构(上)

本篇博客给大家带来的是用C语言来实现堆链式结构和二叉树的实现&#xff01; &#x1f41f;&#x1f41f;文章专栏&#xff1a;数据结构 &#x1f680;&#x1f680;若有问题评论区下讨论&#xff0c;我会及时回答 ❤❤欢迎大家点赞、收藏、分享&#xff01; 今日思想&#xff…

Devops之AWS:如何安装AWS CLI

AWS 命令行界面&#xff08;AWS CLI&#xff09;是一种开源工具&#xff0c;让我们能够使用命令行 Shell 中的命令与 AWS 服务进行交互。 安装步骤&#xff1a; 下载并运行AWS CLI的MSI安装程序&#xff1a; 点击如下的链接&#xff0c;即可下载MSI安装程序&#xff1a; htt…

PH2D数据集: 用人类演示数据提升人形机器人操作能力,助力跨实体学习

2025-03-18, 由加州大学圣地亚哥分校, 卡内基梅隆大学, 华盛顿大学, 麻省理工学院等机构联合收集了PH2D数据集。该数据集包含26824个任务导向的人类演示&#xff0c;采用消费者级VR设备收集&#xff0c;提供了准确的3D手部关键点姿态和语言注释。数据集覆盖了多种操作任务、不同…

Matlab 基于专家pid控制的时滞系统

1、内容简介 Matlab 185-基于专家pid控制的时滞系统 可以交流、咨询、答疑 2、内容说明 略 在处理时滞系统&#xff08;Time Delay Systems&#xff09;时&#xff0c;使用传统的PID控制可能会面临挑战&#xff0c;因为时滞会导致系统的不稳定或性能下降。专家PID控制通过结…