|一文读懂机器学习( 三 )
在学习过程中有两个不同的点 。 在图的左侧 , 曲线很好地拟合了数据的总体趋势(已将其推广到基本的通用函数) , 但是训练误差不会接近于零 。 但是右图 , 随着网络的不断学习 , 最终将产生一个更复杂的模型 , 该模型具有较低的训练误差(接近于零) , 这意味着它已经记住了训练示例 , 包括其中的任何噪声成分 , 因此已经过拟合训练数据 。
验证集的出现
我们想在算法过拟合之前停止学习过程 , 这意味着我们需要知道它在每个时间步上的推广程度 。 我们不能为此使用训练数据 , 因为它是用来训练参数的 , 我们不会检测到过度拟合;我们也不能使用测试数据 , 它是用来看模型性能的 , 我们将其保存为最终测试 。 因此 , 我们需要用于此目的的第三组数据 , 称为验证集validation set , 因为到目前为止我们正在使用它来验证学习 , 这被称为统计中的交叉验证cross-validation 。 这是模型选择model selection的一部分:为模型选择正确的参数 , 以便尽可能地泛化 。
- Training, Testing, and Validation Sets
现在 , 我们需要三组数据:
- 训练集train set:用于实际训练算法的训练集 , 把它拿来做函数拟合 , 使得模型好一点 。
- 验证集validation:用于跟踪算法学习情况, 观察函数好不好调整(改模型的时候依赖它) , 每次训练完后把模型拿到它的上面去测试一下看看模型好不好 , 用于没见过的数据 , 防止模型过拟合 , 虽然没有训练模型 , 但是改模型是依据模型的 , 对于模型来说 , validation实际上是见过的 , 测试真正的效果应该给模型从来没有见过的数据 。
- 测试集test set:当我们的模型都能忍受两个值的时候就定了 , 最后一步就是拿test来模型上作用看最终的看好坏(用过一次就不用第二次) 。 如果test数据上了效果还是不好 , 就要重新选择这三个数据了 , 因为test数据集已经被见过了 。
每种算法都需要一些合理量的数据去学习(精确度有所不同 , 但是算法看到的数据越多 , 看到每种可能输入类型的示例的可能性就越大 , 尽管更多的数据也会增加计算时间) 。
平衡的分配
一般来说 , 数据划分比例取决于你 , 如果有大量数据 , 通常执行2:1:1 , 否则进行3:1:1 。 拆分方式也很重要 。 如果你选择前几个作为训练集 , 接下来选择测试集 , 依此类推 , 那么结果将是非常糟糕的 , 因为训练没有看到所有的类别 。 这可以通过以下方法解决:首先对数据进行随机重新排序 , 或者将每个数据点随机分配给一组数据 , 如下图 。
本文插图
缺乏训练数据
如果你确实缺乏训练数据 , 那么如果你有单独的验证集 , 可能会担心算法将无法得到充分训练;那么就可以执行leave-some-out, multi-fold cross-validation 。 这个想法如下图所示 。 数据集被随机分为K个子集 , 一个子集用作验证集 , 而算法对其他所有数据进行训练 。 然后遗漏另一个子集 , 并在该子集上训练一个新模型 , 并对所有不同的子集重复相同的过程 。 最后 , 测试并使用产生最小验证误差的模型 。 由于我们不得不训练K个不同的模型 , 而不仅仅是一个模型 , 因此我们权衡了数据的运行时间 。 在最极端的情况下 , 存在留一法交叉验证 , 该算法仅对一项数据进行验证 , 并对其余所有数据进行训练 。
本文插图
- The Confusion Matrix
推荐阅读
- 技术编程|机器学习又一重要医学应用!培植人造器官
- 智能机器人|【好莱坞首次用AI机器人主演】
- 楚天都市报|机器替换人工上班获奖励三千万元!企业智能化改造增了效率还拿补贴
- 机器|令人惊叹的伐木机器,5米高的树直接从树顶“劈下”,看着是真爽
- 无人科技|智能检测机器人亮相北京动车段
- 人工智能|哈工大将在重庆建研究院,聚集汽车、机器人、人工智能等领域
- |一文带你读懂区块链的本质
- 智能机器人|智能检测机器人亮相北京动车段
- 智能机器人|陈根:全球首个AI发球机器人,不一样的智能陪练
- 中年|日本外交官嫁到王室成生育机器,雅子王妃疑因生育女孩患上抑郁症