cs231n训练营学习笔记(3)

焦虑到爆炸,但是还是听安娜公主的

You are lost hope is gone

But you must go on

And do the next right thing

Can there be a day beyond this night

1. f(x,w)线性分类器与knn区别

knn直接用图像的像素距离做分类,线性分类器是用特征的线性组合来分类

knn直接把所有图像像素存下来作为训练结果来与测试图像比对,

线性分类器会得到W,b,也就是训练得到的权重和偏差参数,f(x,w)=Wx+b这种得到的特征的线性组合就是模板,可以说是一种全局特征,然后用训练得到的模板和测试图像比对

b这个偏差是当数据集不平衡时候,为了训练效果更好而存在的,如果数据集里猫的图片比狗多很多,那b里对应猫的值就比狗大

b是不与训练数据交互的,值更大说明由于图片比较多,所有是这个类的可能性也更高一点

线性分类器会作为基本的小单元组成神经网络,f(x,w)可以有不同的样子,Wx+b是最简单的形式

2. 线性分类器为什么可以看成一种模板匹配方法

cs231n训练营学习笔记(3)

W的每一行单独拿出来看,比如第一行,这个行向量和图片拉成的列向量相乘,向量相乘是衡量距离的,两个向量越相似,结果越大(因为夹角小,a·b=|a||b|cosθ),所以得到结果的第一个数字对应这个类的得分。W的每一行就是一个该类的模板。训练线性分类器就是为了学习得到W,也就是得到每个类的模板,预测的时候用模板去匹配(也就是,同样向量相乘)得到每个类的匹配度。

3. 线性分类器的缺点也就是存在的问题

(1)如果类别增多,那么需要的模板就多,W就多一行,整个模型需要重新训练

(2)每个类别只能学习一个模板,这个模板很可能并不能很好的代表这个类,更复杂的神经网络可以解决这个问题

(3)只能用于线性可分的情况,线性不可分的情况比如下面的奇偶数分类,或者多模态数据(向左看的马和向右看的马,这和第二点是同样的)

cs231n训练营学习笔记(3)

最左边的图,数据集里有两类,蓝色和红色,如果图像像素都是奇数就是蓝色,图像像素都是偶数就是红色

没法画一条线把两类分开。

这里的坐标轴没法有具体的意义,因为是高维空间压缩成二维的示意图

4. 分析代码实现的任务是什么,每个函数模块实现的功能是什么,代码运行的逻辑

在本地用anaconda的ipython notebook,jupyter notebook做作业,也试了virtualenv,

但是一直说scipy模块没有……所以还没开始做