从机器学习到深度学习(一):线性分类、距离/损失函数定义
2017-07-23 本文已影响1006人
马尔克ov
一.K近邻图像分类
1. 什么是k近邻
想知道某一个点属于哪个类别?找跟他距离最近的k个点,哪个类别多他就属于哪个类。
KNN2. 如何定义举例?
距离
用距离,除了课程中见到的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的解释更多损失函数拓展:机器学习中的常见问题——损失函数