昨天写的笔记全没了,重新简单的写下。
https://www.bilibili.com/video/BV1TJ411d7b7?p=6
预备知识:
将一张800*600像素的图片举例,其组成为 800*600*3的三维数组,RGB三色通道,每个元素都属于[ 0, 255]
目标:辨别图片
def train():
return model
def predict():
return label
方法:
1. KNN 计算两张图片 三维数组之间的一阶距离 曼哈顿距离/二阶距离 欧式距离。 具体见PPT
2. k-fold: 对一组k-fold 比如 7-fold使用同一组超参数,将其表现取平均值; 如果想知道 KNN中 k=1-100的表现,那么重复100次7-fold 并绘制折线图,就可以得到K的取值影响。
3. linear classification
其中 x是 image-input,将32*32*3的矩阵拉伸到 3072*1
w是 weight matrix
右边的 3*1 的 1.1,3.2, -1.2是常数项
注意:
1. 当我们收集大量数据集的时候,可能把最先收集到的数据作为 trainning data,接着是 validation data 最后是 test data,这样本身可能有某些规律
2. 所以需要收集完后随机打乱再分
3. KNN accuracy 一般很低 30%左右 所以一般不使用它。