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

深度学习:梯度下降法

损失函数 L:衡量单一训练样例的效果。

成本函数 J:用于衡量 w 和 b 的效果。

如何使用梯度下降法来训练或学习训练集上的参数w和b ?

 成本函数J是参数w和b的函数,它被定义为平均值;

损失函数L可以衡量你的算法效果,每一个训练样例都输出y\widehat{}^{(i)},把它跟真实标签y^{(i)}进行比较。

梯度下降法:从初始点开始,朝最陡的下坡方向走一步,在梯度下降一步后,或许在那里停下,或者尽可能快的向下走,这是梯度下降的一次迭代。然后继续,希望收敛到全局最优解。

Gradient Descent 梯度下降法,重复执行以下的更新操作:

  • 更新w的值(使用 := 表示更新w)。
  • Learning Rate 学习率 \alpha 可以控制每一次迭代,或者梯度下降法中的步长。
  • 这里的导数 dJ(w)/dw 就是对参数w的更新或变化量。
  • 我们写代码来实现梯度下降时,会使用变量名dw表示导数,即上图中的式子写为:
  • w := w - \alphadw
  • 新的w的值 等于 w自身 减去 学习率和导数的乘积

导数是函数在对应点的斜率,函数的斜率是高除以宽。如果J函数最开始在右边的点,那么它的斜率是正数,更新的w的值w := w - \alphadw会变小,即上图中的点会往左移;反之,如果一开始点在左上方,即斜率为负数,那么更新的w的值会变大,也就是会逐渐往右移。不论起始点在左边还是右边,最终都会到中间底部那个点。

在深度学习里,有循环会降低算法的运行效率。实现梯度下降的迭代,不使用任何循环,而是向量化(Vectorization)。使用内置函数,避免使用显式for循环,可以让程序运行速度快很多。

import numpy as npimport timea = np.random.rand(1000000)
b = np.random.rand(1000000)tic = time.time()
c = np.dot(a,b)
toc = time.time()print(c)
print("Vectorization version: " + str(1000*(toc-tic)) + "ms")c = 0
tic = time.time()
for i in range(1000000):c += a[i]*b[i]
toc = time.time()print(c)
print("For loop:" + str(1000*(toc-tic)) + "ms")

运行结果:

 由上述代码运行结果可知,使用内置函数比显式使用for循环快了200倍,所以我们尽量不要使用显示for循环。

相关文章:

深度学习:梯度下降法

损失函数 L:衡量单一训练样例的效果。 成本函数 J:用于衡量 w 和 b 的效果。 如何使用梯度下降法来训练或学习训练集上的参数w和b ? 成本函数J是参数w和b的函数,它被定义为平均值; 损失函数L可以衡量你的算法效果&a…...

`console.log`调试完全指南

大家好,这里是 Geek技术前线。 今天我们来探讨 Console.log() 的一些优点。并分析一些基本概念和实践,这些可以让我们的调试工作变得更加高效。 理解前端 log 与后端 log 的区别 前端 log 与后端 log 有着显著的不同,理解这一点至关重要。…...

ROS VSCode调试方法

VSCode 调试 Ros文档 1.编译参数设置 cd catkin_ws catkin_make -DCMAKE_BUILD_TYPEDebug2.vscode 调试插件安装 可在扩展中安装(Ctrl Shift X): 1.ROS 2.C/C 3.C Intelliense 4.Msg Language Support 5.Txt Syntax 3.导入已有或者新建ROS工作空间 3.1 导入工作…...

16 —— Webpack多页面打包

需求&#xff1a;把 黑马头条登陆页面-内容页面 一起引入打包使用 步骤&#xff1a; 准备源码&#xff08;html、css、js&#xff09;放入相应位置&#xff0c;并改用模块化语法导出 原始content.html代码 <!DOCTYPE html> <html lang"en"><head&…...

微服务即时通讯系统的实现(服务端)----(3)

目录 1. 消息存储子服务的实现1.1 功能设计1.2 模块划分1.3 模块功能示意图1.4 数据管理1.4.1 数据库消息管理1.4.2 ES文本消息管理 1.5 接口的实现1.5.1 消息存储子服务所用到的protobuf接口实现1.5.2 最近N条消息获取接口实现1.5.3 指定时间段消息搜索接口实现1.5.4 关键字消…...

.net6.0 mvc 传递 model 实体参数(无法对 null 引用执行运行时绑定)

说一下情况&#xff1a; 代码没问题&#xff0c;能成功从数据库里查到数据&#xff0c;能将数据丢给ViewBag.XXXX, 在View页面也能获取到 ViewBag.XXXX的值&#xff0c;但是发布到线上后报这个错&#xff1a; Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 …...

VUE 入门级教程:开启 Vue.js 编程之旅

一、Vue.js 简介 Vue.js 是一套构建用户界面的渐进式 JavaScript 框架。它专注于视图层的开发&#xff0c;能够轻松地与其他库或现有项目进行整合。Vue.js 的核心库只关注视图层&#xff0c;通过简洁的 API 实现数据绑定和 DOM 操作的响应式更新&#xff0c;让开发者可以高效地…...

Ubantu系统docker运行成功拉取失败【成功解决】

解决docker运行成功拉取失败 失败报错 skysky-Legion-Y7000-IRX9:~$ docker run hello-world docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head “http://%2Fvar%2Frun%2Fdocker.sock/_ping”: dial uni…...

mvn-mac操作小记

1.安装brew 如果报错&#xff0c;Warning: /opt/homebrew/bin is not in your PATH. vim ~/.zshrc&#xff0c;最后一行追加 export PATH“/opt/homebrew/bin:$PATH” source ~/.zshrc 2.安装brew install maven mvn -version查看路径 Maven home: /opt/homebrew/Cellar/mav…...

机器学习——生成对抗网络(GANs):原理、进展与应用前景分析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一. 生成对抗网络的基本原理二. 使用步骤2.1 对抗性训练2.2 损失函数 三. GAN的变种和进展四. 生成对抗网络的应用五. 持续挑战与未来发展方向六. 小结 前言 生…...

「Mac畅玩鸿蒙与硬件33」UI互动应用篇10 - 数字猜谜游戏

本篇将带你实现一个简单的数字猜谜游戏。用户输入一个数字&#xff0c;应用会判断是否接近目标数字&#xff0c;并提供提示“高一点”或“低一点”&#xff0c;直到用户猜中目标数字。这个小游戏结合状态管理和用户交互&#xff0c;是一个入门级的互动应用示例。 关键词 UI互…...

Ps:存储 Adobe PDF

在 Adobe Photoshop 中&#xff0c;将图像保存为 PDF 文件时&#xff0c; 会弹出“存储 Adobe PDF” Save Adobe PDF对话框。在此对话框中提供了多个选项&#xff0c;用于控制 PDF 文件的输出&#xff0c;包括一般设置&#xff08;选择预设、兼容性和保留编辑功能&#xff09;、…...

DDR3保姆级使用教程:ZYNQ 7010

内容:使用DDR3 IP核&#xff0c;向DDR3写入数据&#xff0c;然后再读出数据&#xff0c;通过串口打印。 设备&#xff1a;ZYNQ 7010 xc7z010clg-400-1。软件VIVADO 2018.3 &#xff08;1&#xff09;工程模块&#xff1a;一个写FIFO&#xff0c;一个读FIFO。一个ZYNQ IP核&am…...

OpenCV 模板匹配全解析:从单模板到多模板的实战指南

简介&#xff1a;本文深入探讨 OpenCV 中的模板匹配技术。详细介绍构建输入图像与模板图像的步骤&#xff0c;包括读取、截取、滤波与存储等操作。剖析 cv2.matchTemplate 语法及其参数含义&#xff0c;阐述不同匹配方法下结果值的意义。同时讲解 cv2.minMaxLoc 语法&#xff0…...

【JAVA] 杂谈: java中的拷贝(克隆方法)

这篇文章我们来介绍什么是拷贝&#xff0c;并且实现浅拷贝到深拷贝。 目录 一、浅拷贝 1.1 clone 方法 1.2 实现浅拷贝&#xff1a; 1.2.1 重写 clone方法 1.2.2 实现接口 Cloneable 1.2.3 调用克隆方法 1.2.4 原理图&#xff1a;​ 1.3 浅拷贝的不足 1.3.1 增加引用…...

使用 PDF API 合并 PDF 文件

内容来源&#xff1a; 如何在 Mac 上合并 PDF 文件 1. 注册与认证 您可以注册一个免费的 ComPDFKit API 帐户&#xff0c;该帐户允许您在 30 天内免费无限制地处理 1,000 多个文档。 ComPDFKit API 使用 JSON Web Tokens 方法进行安全身份验证。从控制面板获取您的公钥和密钥&…...

关于BeanUtils.copyProperties是否能正常复制字段【详细版】

话不多说&#xff01;先总结&#xff1a; 1、字段相同&#xff0c;类型不同&#xff08;不复制&#xff0c;也不报错&#xff09; 2、子类父类 (1)子类传给父类&#xff08;可以正常复制&#xff09; (2)父类传给子类&#xff08;可以正常复制&#xff09; 3、子类父类&#x…...

爬虫框架快速入门——Scrapy

适用人群&#xff1a;零基础、对网络爬虫有兴趣但不知道从何开始的小白。 什么是 Scrapy&#xff1f; Scrapy 是一个基于 Python 的网络爬虫框架&#xff0c;它能帮助你快速爬取网站上的数据&#xff0c;并将数据保存到文件或数据库中。 特点&#xff1a; 高效&#xff1a;支…...

鸿蒙开发-HMS Kit能力集(应用内支付、推送服务)

1 应用内支付 开发步骤 步骤一&#xff1a;判断当前登录的华为账号所在服务地是否支持应用内支付 在使用应用内支付之前&#xff0c;您的应用需要向IAP Kit发送queryEnvironmentStatus请求&#xff0c;以此判断用户当前登录的华为帐号所在的服务地是否在IAP Kit支持结算的国…...

TYUT设计模式大题

对比简单工厂&#xff0c;工厂方法&#xff0c;抽象工厂模式 比较安全组合模式和透明组合模式 安全组合模式容器节点有管理子部件的方法&#xff0c;而叶子节点没有&#xff0c;防止在用户在叶子节点上调用不适当的方法&#xff0c;保证了的安全性&#xff0c;防止叶子节点暴露…...

AI助手状态可视化:像素风办公室看板的设计、部署与集成指南

1. 项目概述&#xff1a;一个像素风的AI办公室看板如果你和我一样&#xff0c;日常工作中重度依赖AI助手&#xff0c;比如OpenClaw&#xff0c;那你可能也遇到过这样的困惑&#xff1a;当AI在后台默默执行一个长任务时&#xff0c;你完全不知道它进行到哪一步了。是卡住了&…...

2026 技术趋势预测:从 GTC 大会透视 AI 工业化,开发者机遇与全新突破

AI-Skills技能包一键调用&#xff1a;https://ai-skills.ai/?inviteCodeS2JV3NCK 摘要 以英伟达 GTC 全球技术大会为行业风向标&#xff0c;2026 年科技产业正式告别大模型概念内卷&#xff0c;全面迈入AI 工业化落地、算力架构革新、智能体普及、物理 AI 深耕的全新周期。技…...

GEE筛选行政区的两种野路子:手绘个圈圈或者随便点个点,就能搞定研究区边界

GEE自定义研究区边界&#xff1a;交互式绘图与动态筛选实战指南 当研究区域无法用标准行政区划描述时&#xff0c;传统GIS工作流程往往陷入数据准备的泥潭。本文介绍两种Google Earth Engine&#xff08;GEE&#xff09;中高效定义不规则边界的创新方法&#xff0c;特别适合生态…...

Flutter中如何显示异步数据

在开发Flutter应用时,处理异步操作是非常常见的任务之一。许多时候,我们需要将异步操作的结果展示在用户界面上,比如从服务器获取数据或执行一些耗时的计算。本文将通过一个具体的实例,展示如何在Flutter中使用FutureBuilder来处理和显示异步数据。 问题背景 假设我们有一…...

kasetto:用SQL思维操作本地CSV/JSON文件的命令行利器

1. 项目概述&#xff1a;一个被低估的本地化数据管理利器如果你经常需要在本地处理一些结构化的数据&#xff0c;比如从网页上抓取的信息、日常记账的记录、项目进度的跟踪&#xff0c;或者只是想把一些零散的笔记整理成表格&#xff0c;你可能会面临一个选择&#xff1a;是用E…...

【SITS大会技术社区交流活动深度复盘】:20年一线专家亲述3大未公开的破圈协作模型与落地工具包

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;【SITS大会技术社区交流活动深度复盘】&#xff1a;20年一线专家亲述3大未公开的破圈协作模型与落地工具包 模型一&#xff1a;异构角色动态配对机制 传统技术沙龙常陷入“讲师单向输出、听众被动接收…...

TCP 零窗口(Zero Window)是什么?一篇讲清楚成因、抓包特征、和拥塞/丢包的区别

TCP 零窗口&#xff08;Zero Window&#xff09;是什么&#xff1f;一篇讲清楚成因、抓包特征、和拥塞/丢包的区别 在很多网络故障现场里&#xff0c;业务方会一句话描述问题&#xff1a;“链路没断、带宽也不满&#xff0c;但接口就是慢&#xff0c;上传像堵住了一样。” 这类…...

【仅限奇点大会注册参会者解锁】:AIGC平台安全基线检查清单v2.6(含GDPR/网信办AIGC新规/生成溯源链三重校验),附自动扫描CLI工具下载链接(时效48小时)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生内容生成平台&#xff1a;2026奇点智能技术大会AIGC系统搭建 在2026奇点智能技术大会上&#xff0c;主办方构建了一套面向多模态协同创作的AI原生内容生成平台&#xff08;AIGC-OS&#xff09;&a…...

凤凰逆变器300W – 基于STM32的纯正弦波逆变器(增强版)

摘要&#xff1a;Phoenix Inverter 300W是一个基于STM32和μC/OS-II的开源纯正弦波逆变器&#xff0c;将12V直流电转换为220V交流电&#xff0c;具备PID闭环控制、智能保护和串口监控功能项目概述基于STM32和μC/OS-II的300W纯正弦波逆变器&#xff0c;将12V直流电转换为220V交…...

3分钟搞定Windows与Office永久激活:KMS_VL_ALL_AIO智能脚本终极指南

3分钟搞定Windows与Office永久激活&#xff1a;KMS_VL_ALL_AIO智能脚本终极指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活和Office办公软件激活而烦恼吗&#xff1f…...