首页 > 其他 > 详细

CS231n笔记 Lecture 2

时间:2018-07-16 20:54:44      阅读:182      评论:0      收藏:0      [点我收藏+]

距离度量\(L_1\)\(L_2\)的区别

一些感性的认识,\(L_1\)可能更适合一些结构化数据,即每个维度是有特别含义的,如雇员的年龄、工资水平等等;如果只是一个一般化的向量,\(L_2\)可能用得更多。但这些仍然需要视具体情况而定。

Nearest Neighbor

KNN-demo
相当于\(K=1\)的KNN分类,这种其实是把所谓的“训练”过程推后了,是一种lazy的做法,model实际上隐藏在了训练数据中。训练时,只是单纯地“记下”训练样本的特征和标签;测试时,拿到一个新的样本,需要遍历所有的训练数据,找到最相似的那个,然后取其label作为当前样本的预测。

K的选取

取1的时候,在训练样本上的精度为100%,但这并不是好事,因为好的模型要有好的泛化能力。

评估model的好坏

像KNN等等这样的模型,存在K这样的超参数。不同超参数的选取是会直接影响模型的好坏的,那么如果评估一个模型,如何去选择最好的超参数呢?

  • 只用训练集
    用训练集训练,也用训练集来评测。由上一个问题引申出来,如果只用测试集来衡量,可能会在训练集上达到很高的准确度,可能就过拟合了,但实际上我们关注的是unseen的样本。
  • 训练集、测试集
    这时候我们很自然地就会想到,那我们把训练数据分成两部分,一部分用来训练,另一部分用来测试,我们选取能在测试集上表现最好的模型(or超参数)。这样做带来的问题也是类似的,我们这次会在测试集上过拟合,而测试集却又不能代表未来unseen的样本。
  • 训练集、验证集、测试集
    更常见的做法是,在训练的初始阶段,就把数据分成(训练集+验证集)+测试集这两大部分。训练时,可以采用比如交叉验证等方法,用验证集上的精度来选择模型的参数,得到最好的模型。然后只在测试集上做一次性的验证,得到的准确度可用于来表征这个模型的能力。需要注意的是,测试集的数据在整个训练过程中都是要保持untouched,只有到了最后要评估模型能力的时候,在测试集上跑一次,得到准确度等度量。

Linear model

\(y = Wx + b\)
b, 处理 imbalanced data , data independent bias terms。 举例来说,10分类的问题,b是一个10维的向量,如果cat的图片多,那b中cat对应的那一维就会大一些。

CS231n笔记 Lecture 2

原文:https://www.cnblogs.com/zhsuiy/p/9319887.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!