机器学习基本概念-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 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法全栈工程师

Logistic回归实战篇之预测病马死亡率(三)

作 者:崔家华 编 辑:李文臣 四、使用Sklearn构建Logistic回归分类器 开始新一轮的征程,让我们看下Sklearn的Logistic回归分类器! ...

3699
来自专栏杨熹的专栏

了解 Sklearn 的数据集

学习资料:大家可以去莫烦的学习网站学到更多的知识。 学习资料: 相关代码 更多可用数据 网址 ---- ? 今天来看 Sklearn 中的 data s...

3278
来自专栏量子位

如何用TensorFlow构建RNN?这里有一份极简的教程

王小新 编译自 KDnuggets 量子位 出品 | 公众号 QbitAI 本文作者Erik Hallström是一名深度学习研究工程师,他的这份教程以Echo...

4126
来自专栏从流域到海域

如何在Python中将TimeDistributed层用于Long Short-Term Memory Networks

原文地址:https://machinelearningmastery.com/timedistributed-layer-for-long-short-ter...

9999
来自专栏机器学习算法与Python学习

Torch7搭建卷积神经网络详细教程

(如果有好的建议和问题欢迎在留言区指出) 之前的博文,如一文读懂卷积神经网络(CNN)、多层网络与反向传播算法详解、感知机详解、卷积神经网络详解等已经比较详细的...

35714
来自专栏YoungGy

MMD_2b_NearestNeighborLearning

Large scale machine learning ways Instance Based Learning 概述 具体方法 发现NN Large sca...

1747
来自专栏自然语言处理

结巴中文分词原理分析2

其中prob*.py的文件是作者事先训练好的模型参数(λ=(A,B,π)),如状态转移概率、发射概率等。真正的代码数也就:304+53+578+107+31+5...

961
来自专栏AI科技评论

大会 | CVPR 2018论文解读:真实监控场景中的异常事件检测

AI 科技评论按:本文为上海交通大学林天威为 AI 科技评论撰写的独家稿件,未经许可不得转载。 安防作为近年最热门的计算机视觉研究落地方向,与视频分析研究有着很...

5096
来自专栏AI研习社

一文教你如何用神经网络识别验证码!

AI 研习社按:本文作者 Slyne_D,原载于作者个人博客,雷锋网 AI 研习社已获授权。文中相关链接详见文末“阅读原文”。 这是去年博主心血来潮实现的一个小...

2733
来自专栏CVer

风格迁移三部曲(二)之固定风格任意内容的快速风格迁移

上篇介绍了风格迁移三部曲(一)之普通风格迁移,本文将继续介绍第二种风格迁移方式:固定风格任意内容的快速风格迁移。

870

扫码关注云+社区