"sample","batch"和"epoch"都是啥意思??

本文解释了机器学习中样本、Batch及Epoch的概念。样本是指数据集中的单条数据;Batch是一组样本,用于网络参数的一次更新;Epoch代表模型完成一次完整数据集的学习周期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Sample:样本,数据集中的一条数据。例如图片数据集中的一张图片,语音数据中的一段音频。
  • Batch:中文为批,一个batch由若干条数据构成。batch是进行网络优化的基本单位,网络参数的每一轮优化需要使用一个batch。batch中的样本是被并行处理的。与单个样本相比,一个batch的数据能更好的模拟数据集的分布,batch越大则对输入数据分布模拟的越好,反应在网络训练上,则体现为能让网络训练的方向“更加正确”。但另一方面,一个batch也只能让网络的参数更新一次,因此网络参数的迭代会较慢。在测试网络的时候,应该在条件的允许的范围内尽量使用更大的batch,这样计算效率会更高。
  • Epoch,epoch可译为“轮次”。如果说每个batch对应网络的一次更新的话,一个epoch对应的就是网络的一轮更新。每一轮更新中网络更新的次数可以随意,但通常会设置为遍历一遍数据集。因此一个epoch的含义是模型完整的看了一遍数据集。 设置epoch的主要作用是把模型的训练的整个训练过程分为若干个段,这样我们可以更好的观察和调整模型的训练。当指定了验证集时,每个epoch执行完后都会运行一次验证集以确定模型的性能。另外,我们可以使用回调函数在每个epoch的训练前后执行一些操作,如调整学习率,打印目前模型的一些信息等。

转载于:https://www.cnblogs.com/tangbaofang/p/8416135.html

### DSC-P 的定义与作用 #### 一、DSC-P 的背景介绍 在 IT 领域中,特别是涉及强化学习(Reinforcement Learning, RL)优化框架时,“DSC-P”通常指代 DeepSpeed Chat 中的一种特定策略或方法。DeepSpeed Chat 是由微软提出的用于训练大型对话模型的技术栈[^3]。其中,“DSC-P”可被理解为 **DeepSpeed Chat with Proximal Policy Optimization (PPO)** 的缩写形式之一,在某些上下文中也可能特指其改进版 GRPO(Group Relative Policy Optimization)。这种技术旨在提升基于奖励信号调整语言生成行为的能力。 具体而言,传统 PPO 方法依赖 critic 组件来估算状态值函数并计算优势函数(Advantage Function),而此过程中可能引入额外误差源以及增加实现复杂度[^1]。相比之下,GRPO 提议完全移除这些组件,转而采用更直接的方式衡量不同动作序列间的相对优劣程度,从而简化整体流程并提高稳定性[^1]。 #### 二、主要功能描述 - **去中心化的价值估计机制**: 不再需要显式的 value model 或 GAE 来辅助决策制定过程,而是通过对多个样本群体的表现差异进行对比分析得出结论。 - **降低采样方差的影响**: 当面对稀疏奖励环境或者长期信用分配难题时,传统的 TD-learning 蒙特卡洛方法往往难以获得精确估值;然而通过聚焦于组间比较而非单一样本预测,则可以在一定程度上缓解此类问题带来的困扰[^4]。 - **增强鲁棒性的探索方式**: 结合自适应步长调节技术熵正则项约束条件,鼓励代理人在保持当前最优解附近的同时继续尝试新路径的可能性,最终达到平衡效率与多样性双重目标的效果[^5]。 以下是一段伪代码片段展示了如何构建一个基本版本的无 Critic 支持的 policy gradient 更新规则: ```python # Define hyperparameters and initialize parameters learning_rate = 0.01 num_epochs = 100 batch_size = 64 for epoch in range(num_epochs): # Sample trajectories from current policy π_θ states, actions, rewards = sample_trajectories(policy_network) # Compute discounted returns R_t for each time step t within trajectory returns = compute_returns(rewards) # Calculate log probabilities of taken actions under old distribution π_old log_probs_old = calculate_log_probabilities(states, actions, policy_network) # Update policy network using clipped surrogate objective L_CLIP for _ in range(K_epochs): # Inner loop over K epochs per outer iteration sampled_indices = np.random.choice(len(log_probs_old), size=batch_size) advantages = estimate_advantages(sampled_indices) # Directly compare groups here instead ratios = torch.exp(calculate_log_probabilities( [states[i] for i in sampled_indices], [actions[j] for j in sampled_indices], updated_policy_network)) / \ torch.tensor([log_probs_old[k] for k in sampled_indices]) surr1 = ratios * advantages surr2 = torch.clamp(ratios, 1 - epsilon, 1 + epsilon) * advantages loss = -torch.min(surr1, surr2).mean() optimizer.zero_grad() loss.backward() optimizer.step() ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值