昨天活多没时间好好看,今天开冲第二节课了,这篇笔记都是随看随截图,然后记点东西,就酱。今天一看目录都是硬货呀
1)KNN
2)线性分类器:SVM,Softmax
3)两层神经网络
4)图像特征
哦这节课只讲KNN,那没事了
2.1 Image Classifiction——A Core Task in CV
图像分类面临的问题:
1)Sematic Gap 语义鸿沟
2)Viewpoint Variation 视角变化
3)Illumination 照度
4)Deformation 变形
5)Occlusion 遮挡
6)Background Clutter 背景杂波
7)Intraclass Variation 组内方差
图像分类的一般思路:
1)输入图像image和标签label
2)用机器学习方法生成分类模型
3)在新的图像上评估模型性能
2.2 First Classifier:Nearest Neighbor
NN,Nearest Neighbor——最近邻分类
最近邻分类,算是最简单直接的分类思路了,判断输入和已有的分类信息的相近程度,然后进行目标分类。
算法流程
1)直接记忆所有的图像信息和标签信息
2)找训练数据里最相近图像的分类标签作为输出
判断依据
L1距离
算法训练速度O(1)&算法预测速度O(N)
然而我们一般希望算法训练可以慢一点但是做预测的时候预测快一点~
改进1:KNN,K-Nearest Neighbor——K近邻分类
把原本的一个最近,换成K个最近进行投票。
改进2:L2 Distance
传统的L1是曼哈顿距离,L2是欧氏距离
L1距离是受到坐标系影响的,而L2距离不会。当然小哥最后说反正实际使用的时候还是建议都试试,按效果选。
超参数设置
Train训练集、Validation验证集和Test测试集
当然了测试集在训练过程中绝对不允许使用,验证集是为了调整模型超参数,初步了解模型性能,再进一步的改进就是现在比较普遍的交叉验证了
交叉验证能够更有效的调整模型超参数
KNN存在的问题
KNN的几个问题:
1)太慢了
2)像素数据的距离没啥实际意义,作为分类依据没有合理性
3)随着数据维度升高算法肯定裂开了,图像本身三通道+2维坐标信息+视频时间序列,直接爆炸
总结
大概就是一个简单的模型训练思路,嘛不复述了
2.3 Parametric Approach:Linear Classifier
前面的KNN是为了讲讲怎么训练一个模型,然后开始讲参数化方法,也就是线性分类器本身。
从上面这个举例可以看出来,权重矩阵的大小是类数输入数据量,还有一个bias,大小就是类数1,然后给到一个三分类的示意图
线性分类器面临的问题,我还记得当时在果壳讲单层网络处理不了异或问题233
下期预告
损失函数&优化&卷积神经网络
所以我一个小时就听了个KNN?