惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
ThreatConnect
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
H
Help Net Security
T
Threat Research - Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
A
Arctic Wolf
G
Google Developers Blog
量子位
U
Unit 42
I
InfoQ
V
V2EX
F
Fox-IT International blog
P
Privacy & Cybersecurity Law Blog
V
Visual Studio Blog
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
C
CERT Recently Published Vulnerability Notes
博客园 - 三生石上(FineUI控件)
T
The Exploit Database - CXSecurity.com
T
Tailwind CSS Blog
SecWiki News
SecWiki News
Know Your Adversary
Know Your Adversary
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
The Hacker News
The Hacker News
Project Zero
Project Zero
Application and Cybersecurity Blog
Application and Cybersecurity Blog
月光博客
月光博客
Recent Commits to openclaw:main
Recent Commits to openclaw:main
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
C
Cisco Blogs
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
O
OpenAI News
Recorded Future
Recorded Future
T
Tenable Blog
W
WeLiveSecurity
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
T
The Blog of Author Tim Ferriss
www.infosecurity-magazine.com
www.infosecurity-magazine.com
D
Docker
C
Cybersecurity and Infrastructure Security Agency CISA
PCI Perspectives
PCI Perspectives

文章列表

我是如何解决将 c++ 编译成可以在 node.js 中使用的 *.node,中间出现的一大堆问题的(指纹浏览器基石篇) eSIM Plus 爱沙尼亚手机号彻底翻车?“永久有效”悄然变成了一年! 接码平台 SMS-Activate 余额可以转移到新平台使用,截止日期:2026年1月29日 是时候将 hugo-theme-kiwi 主题提交到 themes.gohugo.io 站点上了 Flux2 刚开源就凉了?Z-Image 本地部署狠狠打了个样 声音的未来:Chatterbox —— 用「夸张度旋钮」提升表现力的开源 TTS 向导 还以为那只是换个背景?Qwen-Image-Edit 在 ComfyUI 中能做到更离谱的事 Windows 结合最新版 ComfyUI 部署阿里最新开源的 Qwen-Image 图像大模型 从零样本到跨场景:Seed-VC语音转换技术的革命性突破 大语音模型轻量化革命:MegaTTS3 如何重新定义文本生成语音的技术边界(windows篇) 竞赛级编程大模型OlympicCoder-7B之本地部署(Windows篇) 阿里开源了端到端全模态大模型Qwen-2.5-Omini-7B之本地部署(windows篇) 语音识别之whisper本地部署(实时语音之开篇) 甭管是个人还是企业都能部署的Mistral-Small3.1,远超同级别的模型 文生音乐开源项目DiffRhythm,8G显存本地部署之Windows篇 阿里QwQ-32B本地部署指南:用Ollama轻松运行320亿参数大模型 基于Qwen2.5大模型的Spark-TTS,零样本语音克隆,CPU可运行之本地部署(Windows篇) 智谱开源了文生图CogView4-6B模型,支持中文提示词之本地部署(Windows篇) 基于歌词生成整首歌的开源AI音乐模型,支持中、英、日、韩等多种语言,本地化部署YuE(windows篇) 阿里云开源的文生视频万相 Wan2.1之本地部署Wan2.1-T2V-1.3B模型 互动式开源AI图像编辑神器,Windows11本地部署 MagicQuill 本地部署Qwen2.5-VL-7B-Instruct多模态视觉大模型(Windows篇) 保持角色一致性的绘本生成AI开源项目之Story-Adapter本地部署Windows篇 本地部署 Stable Diffusion 3.5(最新 ComfyUI记录篇) 谁说Win7安装不了Node.js最新版的呢?都2025年,还不更新系统到Win11 vs code远程调试Linux服务器上的php代码 浏览器定制 | Windows11 编译 Chromium 133.0.6885.0(截稿前Chromium最新版之编译篇[一]) 不说是彻底搞懂,至少让你不再惧怕c/c++指针,以及各种奇葩指针变种 解决windows下php8.x及以上版本,在Apache2.4中无法加载CURL扩展的问题 在 Windows8.1 下编译 Chromium (103.0.5060.68 之三) 安装 depot_tools 和 Windows 10 SDK 为在Windows下构建基于 chromium 的浏览器(103.0.5060.68 之二) Windows构建基于 Chromium 的浏览器之环境准备篇安装 Visual Studio(103.0.5060.68 之一) 为什么网站加载速度总是那么不尽如人意呢?(网站优化篇) 海外云服务器安装 Redis 6.2.x (Ubuntu 18.04 记录篇三) 海外云服务器安装 MariaDB 10.6.X (Ubuntu 18.04 记录篇二) 海外云服务器安装 JDK8 (Ubuntu 18.04 记录篇) 虚拟机 Linux 安装 JDK(Vagrant 之二 CentOS7 篇) 怎样快速搭建 Linux 虚拟机呢?(vagrant 篇) 个人站点迁移之gitlab.com pages 绑定自定义域名 不要你掏腰包,就能搭建个人网站之 gitlab.com Pages 托管服务 国内 gitee.com Pages 下线了,致使众多站长纷纷改用其他托管平台 canvas绘制文本时,该如何处理首行缩进、自动换行、多内容以省略号结束、竖排的呢? 其实,低成本甚至免费的,也是可以搭建个人网站的哦! 腾讯云COS托管静态网站,以及如何解决访问出现了下载网页的情况 错误分析 (Machine Learning 研习十九) 多类别分类器(Machine Learning 研习十八) 使用CSS计数器,在目录名称前加上了序号,让目录看起来更加井然有序 使用 golang 以及 Gin 框架,将上传的图片在不保存至本地的情况下添加水印,并上传至阿里云 OSS 绘制特征曲线-ROC(Machine Learning 研习十七) 网站引入 Prism,使得代码高亮显示,并一键复制代码块 精确率(召回率)的权衡(Machine Learning 研习十六) 对模型性能进行评估(Machine Learning 研习十五) 图像识别之入门案例之数字识别(Machine Learning 研习十四) 微调模型——续(Machine Learning 研习之十三) 微调模型(Machine Learning 研习之十二) 解决 github.com port 443: Timed out 的问题 选择和训练模型(Machine Learning 研习之十一) 回望这风雨飘摇的一年过后,我们终将要整束行囊继续前行 一套由 Hugo 驱动的博客主题 hugo-theme-kiwi 开源啦 机器学习中的 Transformation Pipelines(Machine Learning 研习之十) 特征缩放和转换以及自定义Transformers(Machine Learning 研习之九) 为机器学习算法准备数据(Machine Learning 研习之八) 端到端的机器学习项目之探索数据(Machine Learning 研习之七) 端到端的机器学习项目(Machine Learning 研习之六) 机器学习的主要挑战和任务(Machine Learning 研习之四) 对于大量数据集的解决方案便是在线学习或是增量学习(Machine Learning 研习之三) 现实生活中机器学习的具体示例(Machine Learning 研习之二) 让机器学习不再是过门不入,带您一起详解机器学习(机器学习 Machine Learning 研习之一) 把握住golang中的template,方能驾驭得了Hugo主题的template 云服务器到期,站点迁移,Nginx配置SSL以备后续只需! 玩以太坊链上项目的必备技能(内联汇编 [inline assembly]-Solidity之旅十八) 玩以太坊链上项目的必备技能(库 [library]-Solidity之旅十七) 玩以太坊链上项目的必备技能(Constant 和 Immutable 状态变量-Solidity之旅十六) 玩以太坊链上项目的必备技能(修改器 [modifier]-Solidity之旅十五) 玩以太坊链上项目的必备技能(错误处理以及异常-Solidity之旅十四) 玩以太坊链上项目的必备技能(函数及其可见性和状态可变性-Solidity之旅十三) 玩以太坊链上项目的必备技能(事件-Solidity之旅十二) 玩以太坊链上项目的必备技能(OOP-接口-Solidity之旅十一) 玩以太坊链上项目的必备技能(OOP-抽象合约-Solidity之旅十) 玩以太坊链上项目的必备技能(OOP-合约继承-Solidity之旅九) 玩以太坊链上项目的必备技能(流程控制-Solidity之旅八) 玩以太坊链上项目的必备技能(单位以及全局变量-Solidity之旅七) 玩以太坊链上项目的必备技能(基本类型转换以及推断-Solidity之旅六) 玩以太坊链上项目的必备技能(变量作用域-Solidity之旅五) 玩以太坊链上项目的必备技能(类型-映射类型-Solidity之旅四) 玩以太坊链上项目的必备技能(类型-引用类型-Solidity之旅三) 花了不到1块5,玩了下全网最火的ChatGPT 玩以太坊链上项目的必备技能(类型-值类型-Solidity之旅二) 玩以太坊链上项目的必备技能(初识智能合约语言-Solidity之旅一) 在构建 Web3 前,需先知道什么是区块链,毕竟 Web3 是基于区块链 Web3 来了,让我们展开双手拥抱它吧! Go 语言中的 Moduels 管理(Let's Go 三十四) Go 语言中的包(Let's Go 三十三) Go 语言中的错误处理(Let's Go 三十二) Go 语言中的带有缓冲 Channel(Let's Go 三十一) Go 语言中的单向 Channel(Let's Go 三十) Go 语言中的 Channel(Let's Go 二十九) Go 语言中的并发编程(Let's Go 二十八) Go 语言中的空接口(Let's Go 二十七) Go 语言中的类型断言(Let's Go 二十六)
机机器学习的测试和验证(Machine Learning 研习之五)
2023-08-27 · via

在此保留验证过程之后,您可以在完整的训练集(包括验证集)上训练最佳模型,这将为您提供最终模型。在这种情况下,需要记住的最重要的规则是,验证集和测试集都必须尽可能具有生产中预期使用的数据的代表性,因此它们应该完全由有代表性的图片组成:您可以对它们进行洗牌,将一半放在验证集中,另一半放在测试集中(确保在这两个集合中都没有重复或接近重复的数据)。在网络图片上对模型进行培训之后,如果您观察到模型在验证集上的性能令人失望,您将不知道这是因为您的模型超出了培训集,还是仅仅是由于网络图片和移动应用程序图片之间的不匹配。

测试和验证

了解模型对新案例的推广效果的唯一方法是在新案例上进行实际尝试。 一种方法是将模型投入生产并监控其性能。 这很有效,但如果你的模型非常糟糕,你的用户会抱怨——这不是最好的主意。

更好的选择是将数据分为两组:训练集和测试集。顾名思义,您使用训练集训练模型,并使用测试集测试模型。 新案例的错误率称为泛化错误(或样本外错误),通过在测试集上评估模型,您可以获得此错误的估计值。 该值告诉您模型在以前从未见过的实例上的表现如何。

如果训练误差较低(即您的模型在训练集上很少犯错误)但泛化误差较高,则意味着您的模型过度拟合训练数据

通常使用 80% 的数据进行训练,保留 20% 的数据进行测试。 然而,这取决于数据集的大小:如果它包含 1000 万个实例,那么保留 1% 意味着您的测试集将包含 100,000 个实例,可能足以很好地估计泛化误差。

超参数调整和模型选择

评估模型非常简单:只需使用测试集即可。 但是假设您在两种类型的模型(例如线性模型和多项式模型)之间犹豫不决:您如何在它们之间做出决定? 一种选择是训练两者并比较它们使用测试集的泛化程度。

现在假设线性模型概括得更好,但您想要应用一些正则化以避免过度拟合。 问题是,如何选择正则化超参数的值? 一种选择是使用该超参数的 100 个不同值来训练 100 个不同的模型。 假设您找到了生成具有最低泛化误差(例如,只有 5% 误差)的模型的最佳超参数值。 您将此模型投入生产,但不幸的是它的性能没有达到预期,并产生 15% 的错误。 刚刚发生了什么?

问题在于您在测试集上多次测量了泛化误差,并且您调整了模型和超参数以生成针对该特定集的最佳模型。 这意味着该模型不太可能在新数据上表现良好。

此问题的常见解决方案称为保留验证(如下图):您只需保留部分训练集即可评估多个候选模型并选择最佳模型。 新保留的集合称为验证集(或开发集或开发集)。 更具体地说,您在简化的训练集(即完整训练集减去验证集)上训练具有各种超参数的多个模型,然后选择在验证集上表现最佳的模型。 在此保留验证过程之后,您可以在完整的训练集(包括验证集)上训练最佳模型,这将为您提供最终模型。 最后,您在测试集上评估最终模型,以获得泛化误差的估计。

这种解决方案通常效果相当好。但是,若验证集过小,则模型评估将不精确:您可能最终错误地选择了一个次优模型。相反,如果验证集太大,则剩余的训练集将比完整的训练集小得多。为什么这样不 好?那么,由于最终的模型将在完整的训练集上训练,所以比较在一个小得多的训练集上训练的候选模型是不理想的。这就像选择跑得最快的短跑选手参加马拉松比赛一样。解决这个问题的一个方法是执行重复的交叉验证,使用许多小的验证集。在对其余数据进行训练后,每个模型在每个验证集评估一次。通过对模型的所有评估进行平均化,您可以更准确地衡量模型的性能。然而,有一个缺点:训练时间乘以验证集的数量。

数据不匹配

在某些情况下,很容易获得大量数据进行训练,但这些数据可能无法完美代表生产中使用的数据。 例如,假设您想要创建一个移动应用程序来拍摄花朵照片并自动确定其种类。 您可以轻松地在网络上下载数百万张鲜花照片,但它们并不能完全代表在移动设备上使用该应用程序实际拍摄的照片。 也许您只有 1,000 张代表性照片(即实际使用该应用拍摄的照片)。

在这种情况下,需要记住的最重要的规则是,验证集和测试集都必须尽可能具有生产中预期使用的数据的代表性,因此它们应该完全由有代表性的图片组成:您可以对它们进行洗牌,将一半放在验证集中,另一半放在测试集中(确保在这两个集合中都没有重复或接近重复的数据)。在网络图片上对模型进行培训之后,如果您观察到模型在验证集上的性能令人失望,您将不知道这是因为您的模型超出了培训集,还是仅仅是由于网络图片和移动应用程序图片之间的不匹配。

一个解决方案是将一些训练图片(来自网络)放在另一个集合中,AndrewNg称之为训练-开发集合(如下图)。在训练模型之后(在训练集上,而不是在train-dev集上),您可以在train-dev集上评估它。如果模 型表现不佳,那么它一定是过拟合了训练集,所以你应该尝试简化或正则化模型,获取更多的训练数据,并清理训练数据。但是,如果它在train-dev集中表现良好,那么您可以在dev集中评估模型。如果它的性能很差,那么问题一定是来自数据不匹配。你可以尝试通过预处理网页图片来解决这个问题,使它们看起来更像移动应用程序将要拍摄的图片,然后再训练模型。一旦您拥有了一个在train-dev集和dev集上都表现良好的模型,您可以在测试集上最后一次评估它,以了解它在生产中的表现可能有多好

图中所示。当真实数据稀缺时(右),您可以使用类似的丰富数据(左)进行训练,并在train-dev集中保留一部分数据以评估过拟合;然后使用真实数据评估数据不匹配(dev集)并评估最终模型的性能(测试集)。

                                    ##### 没有免费的午餐定理

模型是数据的简化表示。简化是为了抛弃那些不太可能推广到新实例的多余细节。当您选择一个特定类型的模型时,您隐含地对数据进行假设。例如,如果您选择一个线性模型,您就隐含地假设数据基本上是线性的,并且实例和直线之间的距离仅仅是噪声,可以安全地忽略它。

在1996年的一篇著名论文中,?David Wolpert证明,如果你对数据完全不做任何假设,那么就没有理由喜欢一个模型胜过任何其他模型。这就是所谓的“没有免费的午餐”(NFL)定理。对于一些数据集,最好的模型是线性模型,而对于其他数据集,它是一个神经网络。没有一个模型是先验保证更好地工作(因此定理的名称)。确定哪种模型最好的唯一方法是评估所有模型。由于这是不可能的,在践中你对数据做一些合理的假设,只评估几个合理的模型。例如,对于简单的任务,您可以评估各种级别的正则化线性模型,而对于复杂的问题,您可以评估各种神经网络。

练习

我们介绍了机器学习中的一些最重要的概念。 在接下来的研习中,我们将更深入地研究并编写更多代码,但在此之前,请确保您可以回答以下问题:

  • 1、.您如何定义机器学习?
  • 2、您能说出它最擅长的四种应用类型吗?
  • 3、什么是标记训练集?
  • 4、最常见的两种监督任务是什么?
  • 5、你能说出四种常见的无监督任务吗?
  • 6、你会使用什么类型的算法来让机器人在各种未知地形中行走?
  • 7、您将使用什么类型的算法将客户分为多个组?
  • 8、您会将垃圾邮件检测问题定义为监督学习问题还是无监督学习问题?
  • 9、什么是在线学习系统?
  • 10、什么是核外学习?
  • 11、 什么类型的算法依赖相似性度量来进行预测?
  • 12、模型参数和模型超参数有什么区别?
  • 13、基于模型的算法搜索什么? 他们为了成功最常用的策略是什么? 他们如何做出预测?
  • 14、您能说出机器学习的四个主要挑战吗?
  • 15、 如果您的模型在训练数据上表现良好,但对新实例的泛化效果很差,会发生什么情况? 您能说出三种可能的解决方案吗?
  • 16、什么是测试集,为什么要使用它?
  • 17、 验证集的目的是什么?
  • 18、什么是train-dev集,什么时候需要它,如何使用它?
  • 19、 如果使用测试集调整超参数会出现什么问题?