【研1深度学习】《神经网络和深度学习》阅读笔记(记录中......
9.27
- 语义鸿沟: 是指输入数据的底层特征和高层语义信息之间的不一致性和查一下。如果可以有一个好的表示在某种程度上能够反映出数据的高层语义特征,那么我们就能相对容易的构建后续的机器学习模型。
- 嵌入(Embedding): 将一个度量空间中的一些对象映射到另一个低维的度量空间中,并尽可能地保持不同对象之间的拓扑关系。
- 端到端的训练: 在学习过程中不进行分模块或分阶段的训练,直接优化任务的总体目标。
- 梯度消失问题阻碍神经网络的进一步发展,特别是循环神经网络。为了解决这个问题,研究人员采用两步来训练一个多层的循环神经网络:第一步为通过无监督学习的方式来逐层训练每一步循环神经网络,即预测下一个输入;第二部通过反向传播算法进行精调。
- 过拟合问题往往是由于训练数据少和噪声以及模型能力强等原因造成的。为了解决过拟合问题,一般在经验风险最小化的基础上再引入参数的正则化来限制模型能力,使其不要过渡地最小化经验风险。这种就是结构风险最小化。
- 超参数: 用来定义模型结构或优化策略的参数。
- 最简单、常用的优化算法为梯度下降,首先初始化参数,然后按照下面迭代公式来计算风险函数的最小值:
θ t + 1 = θ t − α ∂ R D ( θ ) ∂ θ \theta _{t+1}=\theta _t-\alpha \frac{\partial R_D(\theta )}{\partial \theta } θt+1=θt−α∂θ∂RD(θ),其中 α \alpha α为搜索步长,一般称为学习率。 - Early Stop: 每次迭代时,把新的到的模型在验证集上进行测试,计算错误率。如果在验证集上的错误率不再下降,就停止迭代。
- 目标函数是整个训练集上风险函数,这种方式称为批量梯度下降法(Batch Gradient Descent,BGD)。批量梯度下降法在每次迭代时需要计算每个样本上损失函数的梯度并求和。当训练集中的样本数量N 很大时,空间复杂度比较高,每次迭代的计算开销也很大。
- 为了减少每次迭代的计算复杂度,我们也可以在每次迭代时只采集一个样本,计算这个样本损失函数的梯度并更新参数,即随机梯度下降法(Stochastic Gradient Descent,SGD)
- 偏差指的是算法的期望预测与真实预测之间的偏差程度, 反应了模型本身的拟合能力。
- 方差度量了同等大小的训练集的变动导致学习性能的变化, 刻画了数据扰动所导致的影响。
9.28
| 线性模型 | 激活函数 | 损失函数 | 优化方法 |
|---|---|---|---|
| 线性回归 | – | ( y − ω T x ) 2 (y-\omega ^Tx)^2 (y−ωTx)2 | 最小二乘、梯度下降 |
| 逻辑回归 | σ ( ω T x ) \sigma (\omega ^Tx) σ(ωTx) | y l o g σ ( ω T x ) ylog\sigma (\omega ^Tx) ylogσ(ωTx) | 梯度下降 |
| Softmax回归 | s o f t m a x ( W T x ) softmax(W^Tx) softmax(WTx) | y l o g s o f t m a x ( W T x ) ylogsoftmax(W^Tx) ylogsoftmax(WTx) | 梯度下降 |
| 感知器 | s g n ( ω T x ) sgn(\omega^Tx) sgn(ωTx) | m a x ( 0 , − y ω T x ) max(0,-y\omega^Tx) max(0,−yωTx) | 随机梯度下降 |
| 支持向量机 | s g n ( ω T x ) sgn(\omega^Tx) sgn(ωTx) | m a x ( 0 , 1 − y ω T x ) max(0,1-y\omega^Tx) max(0,1−yωTx) | 二次规划、SMO等 |
- 学习率和批量大小的理解
-
在机器学习中,特别是涉及到使用梯度下降算法进行模型训练时,学习率通常被比喻成步长或者步幅。这个比喻是基于梯度下降的基本原理:通过调整参数来最小化损失函数。在每次迭代中,参数的更新量是由梯度(损失函数关于参数的变化率)与学习率的乘积决定的。因此,如果把参数空间想象成一个山丘,那么学习率就是你每一步下山时迈的步子大小。
-
如果学习率设置得太大,就像迈出了很大的步伐,可能会越过最低点,导致无法收敛或收敛速度慢。相反,如果学习率太小,则像每次只迈出一小步,虽然更有可能找到局部最小值,但是达到最小值的速度会非常慢,使得训练过程耗时过长。
-
至于批量大小(batch size),它影响的是我们计算梯度的方式。批量大小是指每次更新参数时所使用的样本数量。较小的批量大小(如随机梯度下降SGD)会导致估计的梯度有较高的方差,这可能会使下降路径更加不稳定,但有时也有助于跳出局部最小值。较大的批量大小则会产生更稳定但可能更保守的梯度估计,这有助于更平滑的收敛路径,但也可能导致陷入鞍点或局部最小值。
总结来说,学习率可以类比为你下山的步伐大小,而批量大小则是决定你是在每次只观察少数几个脚印(小批量),还是等待更多人走过之后再决定下一步的方向(大批量)。
- 反向传播的简单理解
反向传播是为了有效地计算出损失函数相对于网络中所有权重的梯度,并据此调整权重,以期最小化损失函数。之所以选择损失进行反向传播,是因为损失直接反映了模型预测的质量,通过减少损失,可以间接地提高模型的预测能力。
- 线性回归从零实现时的训练过程
- 初始化参数
* 重复以下训练,直到完成
* 计算梯度
* 更新参数
lr = 0.03
num_epochs = 3
net = linreg
loss = squared_lossfor epoch in range(num_epochs):for X, y in data_iter(batch_size, features, labels):l = loss(net(X, w, b), y) # X和y的小批量损失# 因为l形状是(batch_size,1),而不是一个标量。l中的所有元素被加到一起,# 并以此计算关于[w,b]的梯度# 只是对所有损失求和(l.sum()),然后调用 .backward() 来计算这个总和损失关于模型参数的梯度。l.sum().backward() # 计算模型参数的梯度sgd([w, b], lr, batch_size) # 使用参数的梯度更新参数with torch.no_grad():train_l = loss(net(features, w, b), labels)print(f'epoch {epoch + 1}, loss {float(train_l.mean()):f}')
9.29
《神经网络和深度学习》的第四章前馈神经网络
《动手学习深度学习》的第四章多层感知机的实现
相关文章:
【研1深度学习】《神经网络和深度学习》阅读笔记(记录中......
9.27 语义鸿沟: 是指输入数据的底层特征和高层语义信息之间的不一致性和查一下。如果可以有一个好的表示在某种程度上能够反映出数据的高层语义特征,那么我们就能相对容易的构建后续的机器学习模型。嵌入(Embedding):…...
十一不停歇-学习ROS2第一天 (10.2 10:45)
话题通信 1.1 发布第一个节点: import rclpy #导入此类模块 rcl类型 from rclpy.node import Node #从这个子模块中导入这类函数 def main(): #定义这个函数 rclpy.init() #使用初始化函数 node Node(hello_python) 将类函数里面的内容调给…...
Java高效编程(14):考虑实现 `Comparable
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 与其他方法不同,compareTo 并非 Object 类中声明的,而是 Comparable 接口的唯一方法。compareTo 方法与 equals 类似,但它不仅支持相等性比较,还允许顺序…...
华为昇腾CANN训练营2024第二季--Ascend C算子开发能力认证(中级)题目和经验分享
大家好,我是刘明,明志科技创始人,华为昇思MindSpore布道师。 技术上主攻前端开发、鸿蒙开发和AI算法研究。 努力为大家带来持续的技术分享,如果你也喜欢我的文章,就点个关注吧 正文开始 华为昇腾CANN训练营2024第二季…...
实战OpenCV之形态学操作
基础入门 形态学操作是一种基于图像形状的处理方法,主要用于结构分析,比如:边缘检测、轮廓提取、噪声去除等。这些操作通常使用一个称为“结构元素”(Structuring Element)的核来进行,结构元素可以是任何形状,但最常见的有矩形和圆形。形态学操作的核心在于通过结构元素…...
矩阵的特征值和特征向量
矩阵的特征值和特征向量是线性代数中非常重要的概念,用于描述矩阵对向量的作用,特别是在矩阵对向量的线性变换中的表现。它们帮助我们理解矩阵在某些方向上的缩放或旋转效果。 1. 特征值和特征向量的定义: 给定一个 n n n \times n nn 的…...
(11)MATLAB莱斯(Rician)衰落信道仿真2
文章目录 前言一、莱斯衰落信道仿真模型二、仿真代码与结果1.仿真代码2.仿真结果画图 三、后续:四、参考文献: 前言 首先给出莱斯衰落信道仿真模型,该模型由直射路径分量和反射路径分量组成,其中反射路径分量由瑞利衰落信道模型构…...
ComfyUI局部重绘换衣讲解
一、下载插件 ComfyUI-Impact-Pack 下载地址 https://github.com/ltdrdata/ComfyUI-Impact-Pack 主要用到sam Detector去绘制衣服蒙版和高斯模糊蒙版,高斯模糊让蒙版边缘更加柔和 sams模型 放在E:\Comfyui\ComfyUI\models\sams二、换衣思路 文生图或直接上传…...
Android——添加联系人
概述 方式一:使用ContentResolver多次写入,每次写入一个字段 第一步 往手机联系人应用中的raw_contacts表添加一条记录 raw_contacts表 ContentValues values new ContentValues();// 往 raw_contacts 添加联系人记录,并获取添加后的联…...
高级 Java Redis 客户端 有哪些?
高级Java Redis客户端主要包括以下几种: 1. Redisson (https://github.com/redisson/redisson) 特点:Redisson是一个在Redis的基础上实现的Java驻留数据网格(In-Memory Data Grid)。它不仅是一个Redis的J…...
jenkins项目发布基础
随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。Jenkins 自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,…...
前缀和算法详解
对于查询区间和的问题,可以预处理出来一个前缀和数组 dp,数组中存储的是从下标 0 的位置到当前位置的区间和,这样只需要通过前缀和数组就可以快速的求出指定区间的和了,例如求 l ~ r 区间的和,就可以之间使用 dp[l - 1…...
Android-Handle消息传递和线程通信
本文为作者学习笔记,如有误,请各位大佬指点 目录 一、同步异步 二、Java多线程通信 三、Handler是什么 四、Handler相关的类 五、Handler常用方法 1. 发送消息 2. 接收处理消息 3. 切换线程 六、使用Handler 使用Handler更新UI 使用Handler延…...
【Kubernetes】常见面试题汇总(四十七)
目录 106.考虑一种情况,公司希望通过保持最低成本来提高效率和技术运营速度。您如何看待公司将如何实现这一目标? 107.假设一家公司想要修改其部署方法,并希望构建一个可扩展性和响应性更高的平台。您如何看待这家公司能够实现这一目标以满足…...
grafana全家桶-loki promtail收集k8s容器日志
loki是grafana旗下轻量级日志收集工具,为了减少loki对集群的影响,把loki的agent日志收集端promtail部署在k8s集群中,loki server部署在集群外面。这样简单做一个解耦,避免大量读写的应用影响到集群内业务服务。 一、promtail部署…...
HTML5+CSS+JavaScript剪子石头布游戏
HTML5CSSJavaScript剪子石头布游戏 用HTML5CSSJavaScript剪子石头布游戏实现剪子石头布游戏,游戏有成绩计数,人、机输赢情况,及平局情况。 ✂代表剪刀,▉代表石头,▓ 代表布,给出人机双方的出拳情况 游戏…...
Flask-3
文章目录 ORMFlask-SQLAlchemySQLAlchemy中的session对象数据库连接设置常用的SQLAlchemy字段类型常用的SQLAlchemy列约束选项 数据库基本操作模型类定义 数据表操作创建和删除表 数据操作基本查询SQLAlchemy常用的查询过滤器SQLAlchemy常用的查询结果方法多条件查询分页器聚合…...
Redis的基本使用
简介 传统的数据库是 关系数据库,但是Redis是键值对数据库传统的数据库是基于 磁盘存储的,但是Redis是基于 内存存储的 基于内存,读写性能更高内存是不大的,只能存储热点信息 安装 绿色软件,安装即可使用 安装服务 手…...
[241004] Linux 系统中配置文件的区别 | VirtualBox 7.1.2 发布,修复多项问题并提升性能
目录 Linux 系统中 /etc/profile, ~/.bash_profile, ~/.profile, ~/.bashrc 等配置文件的区别一、配置文件类型二、配置文件作用三、交互式登录 Shell 和非登录 Shell交互式登录 shell交互式非登录 shell 四、配置文件加载顺序五、~/.bash_profile 和 ~/.bashrc 的区别 Virtual…...
hbuilderx+uniapp+Android宠物用品商城领养服务系统的设计与实现 微信小程序沙箱支付
目录 项目介绍支持以下技术栈:具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是:数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 顾客 领养…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
Python的__call__ 方法
在 Python 中,__call__ 是一个特殊的魔术方法(magic method),它允许一个类的实例像函数一样被调用。当你在一个对象后面加上 () 并执行时(例如 obj()),Python 会自动调用该对象的 __call__ 方法…...
Yii2项目自动向GitLab上报Bug
Yii2 项目自动上报Bug 原理 yii2在程序报错时, 会执行指定action, 通过重写ErrorAction, 实现Bug自动提交至GitLab的issue 步骤 配置SiteController中的actions方法 public function actions(){return [error > [class > app\helpers\web\ErrorAction,],];}重写Error…...
Axure零基础跟我学:展开与收回
亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420 课程主题:Axure菜单展开与收回 课程视频:...
