“sample“, “batch“, “epoch“ 分别是什么?

本文解释了机器学习中样本、批次(batch)与轮次(epoch)的概念。样本是数据集的基本单位,批次是一组同时处理的样本集合,而轮次则指遍历整个数据集一次的过程。文中通过实例说明了这些概念如何应用于卷积神经网络和语音识别模型。

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

  1. Sample: 样本,数据集中的一个元素,一条数据。
    例1: 在卷积神经网络中,一张图像是一个样本。
    例2: 在语音识别模型中,一段音频是一个样本。

  2. Batch: 批,含有 N 个样本的集合。每一个 batch 的样本都是独立并行处理的。在训练时,一个 batch 的结果只会用来更新一次模型。
    一个 batch 的样本通常比单个输入更接近于总体输入数据的分布,batch 越大就越近似。然而,每个 batch 将花费更长的时间来处理,并且仍然只更新模型一次。在推理(评估/预测)时,建议条件允许的情况下选择一个尽可能大的 batch,(因为较大的 batch 通常评估/预测的速度会更快)。

  3. Epoch: 轮次,通常被定义为 「在整个数据集上的一轮迭代」,用于训练的不同的阶段,这有利于记录和定期评估。
    当在 Keras 模型的 fit 方法中使用 validation_data 或 validation_split 时,评估将在每个 epoch 结束时运行。
    在 Keras 中,可以添加专门的用于在 epoch 结束时运行的 callbacks 回调。例如学习率变化和模型检查点(保存)。

### 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、付费专栏及课程。

余额充值