从机器学习到深度学习(一):线性分类、距离/损失函数定义

2017-07-23  本文已影响1006人  马尔克ov

一.K近邻图像分类

1. 什么是k近邻

想知道某一个点属于哪个类别?找跟他距离最近的k个点,哪个类别多他就属于哪个类。

KNN

2. 如何定义举例?

距离

用距离,除了课程中见到的L1, L2距离, 更多距离简介:漫谈:机器学习中距离和相似性度量方法


二.超参数与交叉验证

1. 什么是超参数?

根据具体情况,可以变化的参数。比如k近邻中的k,再比如直线y=kx+b中的k和b。

2. 如何确定超参数?

交叉验证:把数据集平均分成N份, N-1份训练, 1份测试,重复N次


三. k近邻的缺点及改进

1. 效果不好的重要原因

如果背景很大,要分类的内容(比如一只猫)很小,knn就会更关注更大的背景。

2. 线性分类

二维平面上y=kx+b用k和b控制了x和y的关系, yxkb都是一个数。

扩展到N维空间,矩阵W和向量b控制了X向量y向量的关系。

多维线性模型 线性分类

参考资料:An intro to linear classification with Python

3. 输出y是个向量,那结果是哪个分类呢?

一个yi表示一个分类, 哪个大就算哪个

4. 如何找到W和b?

定义损失函数: 损失函数的值越大,表示偏离目标越远

所以我们要做的事情:将损失函数最小化(找到使得损失函数最小的超参数)。

四. 损失函数

1. 跑个分看看分类分的好不好

比如这种情况,明明图像是猫,但是狗的分数最高。

下面我们就需要定义一个损失函数,调节超参数, 来使得分类分的更准确。

2. SVM通俗理解

找到一个平面把点分成两类,并且加入两个重要假设

A. 如果分类正确,我们认为他们都是一样对的, 比如不认为1比2分的更好。

B. 如果分类错误,我们认为差的越多犯的错误越大

SVM图像化

3. SVM损失函数

SVM损失函数

只要对了就是0,不管离的远近;越错就会使得后面的sj−syi+Δ越大。

Δ是增加了一个更严格的条件,只对了“一点点”还不够,至少要多Δ这么多才满意。

delta的解释

更多损失函数拓展:机器学习中的常见问题——损失函数

上一篇下一篇

猜你喜欢

热点阅读