Divsigma / 2020-cs213n

2020-cs231n个人代码
275 stars 75 forks source link

Questions about the 1st assingment of CS231n #1

Open DemonsHunter opened 4 years ago

DemonsHunter commented 4 years ago

答主您好!您的作业非常高质量,给了我很多启发,首先向您表达我的感谢~

我对第一次作业的KNN部分的inline Q2 有个小问题,课程视频不是说L1范数是坐标系敏感的吗?为什么第5个选项--调整坐标系--对图片的相似性没有影响呢?

希望得到您的解答~

Divsigma commented 4 years ago

您好!谢谢您的好评! 能麻烦您给我提示下视频说“L1范数对坐标系敏感”是在哪个视频大概什么位置吗?(我去复习下 因为我现在的理解是:knn通过累加所有像素点对应的L1差值作为两张图片的相似性。inlineQ2的选项5只是将坐标轴旋转,并没有影响两张图片的相对距离,所以相似性没有变化

DemonsHunter commented 4 years ago

https://www.bilibili.com/video/BV1nJ411z7fe?p=5 该视频3分19秒举的例子说明L1与坐标轴有关。

当时我就没有想清楚这个问题,不过从像素距离的公式来看,图片像素的差值并不依赖于遍历的顺序,所以我也很疑惑QAQ

Divsigma commented 4 years ago

(⊙o⊙),多谢提醒!我当时没留意到这个orz。

我现在有个想法,尝试说明白: 视频中说的坐标系(coordinate)应该是“图片向量点”的坐标系,而不是我之前认为的图片的坐标系(即“长-宽”二维空间)。比如一张图片有32×32个pixels,那这个图片作为一个knn中的向量点,是在一个1024维的空间中的,它的坐标系(coordinate)就是1024个线性无关的向量组成的。 明确了坐标系的含义,就可以考虑转轴(coordinate rotation)对向量点距离度量的影响了。我尝试把图片看作一个矩阵M,因为转轴变换是一个正交变换,对应一个正交矩阵,假设是A,那么: 1、转轴后图片距离原点的L1距离为|A*M|(即矩阵A*M的一范数),按照元素写出来,与|M|对比会发现,变换后各分量都受A影响,所以L1范数受转轴影响; 2、但转轴后图片距离原点的L2距离为|A*M|_{2}(即矩阵A*M的二范数,_{2}下标是2的意思),根据矩阵运算,矩阵A*M的二范数平方=(M')(A')AM=(M')(M)=矩阵M的二范数平方,所以L2距离不受转轴影响(为了好记,我姑且记为L2范数具有旋转不变性吧2333); 把上述两种情况中原点推广到其他任一张图片,也是类似的。

DemonsHunter commented 4 years ago

懂了,您的解答太好了,点赞!