深度学习训练指标详解

指标定义与作用 指标 定义 作用 Loss 模型在训练集上的损失值,表示预测值与真实值之间的差异 用于优化模型参数,反映模型在训练数据上的拟合程度 Accuracy 模型在训练集上的准确率,表示预测正确的样本数占总样本数的比例 直观反映模型在训练数据上的分类性能 val_loss 模型在验证集上的损失值,表示模型在未见数据上的预测误差 评估模型的泛化能力,判断是否过拟合或欠拟合 val_acc 模型在验证集上的准确率,表示模型在未见数据上的分类性能 评估模型在未见数据上的表现,是选择最终模型的重要依据 指标变化趋势与含义 指标变化趋势 含义 Loss 下降,Accuracy 上升 模型在训练集上表现良好,正在逐步拟合数据 val_loss 下降,val_acc 上升 模型在验证集上表现良好,泛化能力较强 Loss 下降,val_loss 上升 模型可能过拟合训练数据,泛化能力下降 Loss 和 val_loss 都较高 模型可能欠拟合,未能充分学习数据特征 Loss 和 val_loss 都较低且稳定 模型已经收敛,表现良好 Accuracy 和 val_acc 都较高且稳定 模型在训练集和验证集上都具有较高的分类性能 过拟合与欠拟合的判断 现象 Loss Accuracy val_loss val_acc 结论 过拟合 很低 很高 较高 较低 模型过拟合 欠拟合 较高 较低 较高 较低 模型欠拟合 理想情况 较低 较高 较低 较高 模型表现良好 实际应用中的优化策略 问题 可能原因 优化策略 Loss 下降缓慢 学习率过高或过低,模型复杂度不足 调整学习率,增加模型复杂度(如增加网络层数或神经元数量) val_loss 上升,val_acc 下降 模型过拟合 使用正则化(如 L2 正则化、Dropout),增加数据增强,或采用早停策略 Loss 和 val_loss 都较高 模型欠拟合 增加模型复杂度,延长训练时间,或调整学习率 Accuracy 和 val_acc 差距较大 模型过拟合或数据分布不一致 检查数据分布,增加正则化,或使用更复杂的模型 Loss 和 Accuracy 的对比 特性 Loss Accuracy 类型 连续值 离散值 范围 无固定范围 0 到 1(或 0% 到 100%) 优化目标 直接优化目标 间接优化目标 适用场景 回归任务、分类任务 分类任务 对类别不平衡的敏感性 较低(取决于 Loss 函数) 较高(可能失真) 通过这些表格,您可以快速理解 Loss、Accuracy、val_loss 和 val_acc 的含义、作用以及它们之间的关系,并掌握如何根据这些指标的变化趋势来调试和优化模型。

January 24, 2025 · 1 min · 132 words · Jachy

问答对话模型基础

传统方式 关键词匹配 最基础的问答匹配方式。 BM25 算法 经典的文本相关性评分算法。 语义分析 LSA(Latent Semantic Analysis) 潜在语义分析,通过奇异值分解(SVD)发现词语之间的潜在关系。 PLSA(Probabilistic Latent Semantic Analysis) 概率潜在语义分析,基于概率模型的语义分析方法。 LDA(Latent Dirichlet Allocation) 潜在狄利克雷分配,经典的主题模型算法。 基于神经网络的文本匹配 Word2vec 词向量表示方法,将词语映射为低维稠密向量。 参考 掘金:文本匹配计算

January 20, 2025 · 1 min · 25 words · Jachy

Git 提交规范

Type Description feat 修补代码库中的错误(与语义化版本控制中的 PATCH 相对应) fix 向代码库中引入新功能(与语义化版本控制中的 MINOR 相对应) build 构建系统或外部依赖项的更改 chore 对代码库或测试的辅助更改 ci 对 CI 配置文件或脚本的更改 docs 对文档的更改 perf 与性能有关的更改 refactor 代码重构,既不修复错误也不添加功能 revert 撤消先前的提交 style 与代码样式有关的更改 test 对测试的更改

December 17, 2024 · 1 min · 30 words · Jachy

mysql

客户端 1. 登录 mysql -h localhost -P 3306 -u root -p 会提示输入password: 输入密码 2. 创建账号 create user 'tester' identified by '123456' 3. 操作database 展示全部库: show databases; 创建: create database test; 进入库: use test; 4. 操作table 4.1 创建表 create table if not exists student( id int not null auto_increment comment'主键自增id', name char(10) not null comment'姓名', addr varchar(100) default '' comment'地址', primary key(id), unique key idx_name(name), -- 唯一索引 key idx_location(province,city) -- 普通索引, 联合索引 ) Tip: char和varchar的区别: 。。...

November 20, 2024 · 2 min · 250 words · Jachy

基于svelte的浏览器插件方案

最近需要制作一个浏览器插件,实现通过插件, 修改目标页面的时间。 这里选择svelte作为开发框架,svelte作为无运行时的框架,可以减少代码体积(顺便玩玩没用过的框架)。 关于svelte和vue体积的对比, 前端圈子争论不休,挑出几个风靡一时的帖子看一下: 尤雨溪对比svelte和vue的构建体积 Jacek Schae 前端各框架对比 Jacek Scheae对多框架体积的对比图 浏览器插件简述 浏览器插件能做什么? chrome 给出三个能力分类: 设计界面 控制浏览器 控制网络 详情可参考 chrome插件开发文档 了解具体使用。 项目结构 目前的结构是, popup 因为有页面,作为独立的svelte项目, 通过vite构建。 其他的部分, content.js, background.js 作为原生js编写,不需要构建,只需要从 public 移动到最终的dist 即可。 ├── README.md ├── dist --------------------- 构建后的文件, 用于作为插件发布 │ ├── background │ ├── content │ ├── imgs │ ├── manifest.json │ ├── popup │ ├── svelte │ └── vite.svg ├── jsconfig.json ------------ vscode配置文件 ├── manifest.json ------------ 插件配置文件 ├── package-lock....

July 18, 2024 · 2 min · 310 words · Jachy