机器学习基本概念-4

Hyperparameters

在ML中,我们常说的就是train,但是实际什么是train呢? 通俗点说,就是学习参数(hyperparameters) 那什么又是hyperparameters呢? 实际很简单,就是我们的model需要学习或者说需要update的参数,比如你使用了卷积(convolution),那么一定会有一个权重W和一个bias,这个就是你需要学习的参数,也就是model的hyperparameters. 需要注意的是,不同的learning algorithm学习到的参数是不一样的,也是不能通用的. 比如,你不能把别人fine-tune的一个cnn model,直接拿到你的项目上来用,除非你们的网络结构是一样的. 原因很简单,不同的model对应不同的hyperparameters.

Sets in ML

在ML中,我们常说的sets实际有三种:

  • 训练集(training sets)
  • 验证集(validation sets)
  • 测试集(test sets)

这个我们在前面的博客中已经说过了,下面我们从hyperparameters这个角度来解释一下这三种sets到底是做什么的.

首先,我们需要知道,如果光从training sets上去学习hyperparameters,其会使model的capacity最大,从而导致overfitting.

If learned on the training set, such hyperparameters would always choose the maximum possible model capacity, resulting in overfitting.

所以,我们很自然的想到了,如果有一个sets可以用来guide the selection of hyperparameters,那么是不是就可以避免了overfitting. So:

  • The subset of data used to learn the parameters is still typically called the training set.
  • The subset of data used to guide the selection of hyperparameters is called the validation set.

既然validation sets可以用来guide从training sets学习到的hyperparameters,所以一般在validation sets上的generatlization error是要小于training error.

Since the validation set is used to “train” the hyperparameters, the validation set error will underestimate the generalization error, though typically by a smaller amount than the training error.

当然,validation sets是从training set从分出来的,典型的形式是8-2分,也就是80%用来做training sets,20%用来做validation sets.

test sets毫无疑问是用来estimate the genaratlization error的,但是要注意的是:

无论如何,你定义为test sets的数据是不能参与到train和validation的过程中来的

最后总结下,在hyperparameters的角度下,三种sets的作用和定义:

  • training sets is used to learn the parameters.
  • validation sets used to estimate the generalization error during or after training, allowing for the hyperparameters to be updated accordingly.
  • After all hyperparameter optimization is complete, the generalization error may be estimated using the test set.

Cross Validation

当我们用来train的数据量很大的时候,我们通常不用担心test sets的大小问题,但是比如我们的数据量比较小,我们将其划分为training sets,validation sets and test sets之后,发现test sets的数量很小,比如只有50这个数量级,从统计学的角度来说这个存在statistical uncertainty,此时在test sets上的test error表现比较好的不一定可以真实的代表model的好坏.

此时,可以使用cross validation,具体是:

  1. 将training sets划分为k个不重叠的部分(k trials).
  2. 使用其中的一份数据作为test sets,剩下的所有作为training sets.
  3. 计算此时的test error.
  4. 重复多次步骤2,得到所有的test errors,取均值作为最终的test error.

这个方法叫做k-fold cross-validation.

The test error may then be estimated by taking the average test error across k trials. On trial i, the i-th subset of the data is used as the test set and the rest of the data is used as the training set.

这次就写到这,下篇继续…….

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习之旅

理论:FM理论解析及应用FM的产生背景one-hot过程什么叫做组合问题组合特征后的表达形式方程定义完成了,下面就要开始数学定义下面让我们来解这个式子引申一个FFM概念代码实现

我其实没有做过很多ctr预估的事情,但是我在工作中常常遇到CRM流失预估、订单预估这些依赖于特征工程的事情,其中就涉及到特征的组合问题。

603
来自专栏新智元

【最强笔记】12张图理解Keras等8个深度学习库(下载)

【新智元导读】对初学者来说,机器学习和深度学习相当难懂,深度学习库也难以理解。本文作者汇总了从不同来源收集的机器学习相关备忘材料,按不同的库或工具包分类,做成“...

3347
来自专栏AI研习社

不可错过的TensorFlow工具包,内含8大算法,即去即用!

这是来自谷歌的工程师Ashish Agarwal2017 TensorFlow开发者峰会在的演讲,主题是《ML Toolkit》。他认为TensorFlow 是...

3543
来自专栏吉浦迅科技

主流深度学习框架对比:必定有一款适合你!

现在机器学习逐渐成为行业热门,经过二十几年的发展,机器学习目前也有了十分广泛的应用,如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、D...

4429
来自专栏技术翻译

机器学习如何改变软件开发

让我们把几件事弄清楚。虽然神经网络、深度学习、机器学习和人工智能似乎都是一样的,但它们都有各自的历史、起源和等级制度。

480
来自专栏AI科技大本营的专栏

如何通过深度学习轻松实现自动化监控?

【导读】这是一篇关于使用基于深度学习的目标检测来实现监控系统的快速教程。在教程中通过使用 GPU 多处理器来比较不同目标检测模型在行人检测上的性能。

855
来自专栏贾志刚-OpenCV学堂

如何学习计算OpenCV

如何学习OpenCV 一:学习OpenCV三个阶段 人工智能带火了计算机视觉的人才需求,作为计算机视觉应用开发框架OpenCV也越来越受到欢迎,市场需求大增,...

3807
来自专栏IT派

7月机器学习最佳开源项目Top 10

【导读】七月就要结束了,在即将到来的 7 月最后一个周末,人工智能头条为大家整理了本月 ML 最受欢迎的十大开源项目。就算放假在家也可以知道大家现在都在学些什...

411
来自专栏AI科技大本营的专栏

玩音乐,敲架子鼓,一个被“耽误了”的机器学习高手

多数伏在案前敲击键盘的程序员或许都曾憧憬:黑框眼镜、格子衬衫、脚踩凉拖背后的另一番模样的自己。

693
来自专栏涂小刚的专栏

Spark-ALS 分布式实现详解

本文重点阐述了 Spark ML 库中 ALS 的实现,要看懂以上计算流程,请务必结合源代码理解,在实际源码实现中,使用了很多优化技巧。

9052

扫码关注云+社区