目录
课程链接
课程主页:http://cs231n.stanford.edu/syllabus.html, 包括笔记、ppt和代码
2017课程:https://study.163.com/course/courseMain.htm?courseId=1004697005
2016课程:https://study.163.com/course/courseMain.htm?courseId=1004697005
code:http://cs231n.github.io/
图像分类 Image Classification
图像分类问题的挑战来自于以下几个方面:
- 视角变化
- 尺度变化
- 变形
- 遮挡
- 光照变化
- 识别物体与背景类似
- 同一类中物体之间差异很大
NN & KNN
介绍了Nearest Neighbor Algorithm和K-Nearest Neighbor Algorithm。K起到平滑作用,K越大,越能抑制离群点。这两种方法不用训练,但在推断过程慢。适合低维数据,不适合用于图像分类。
Validation Set是用来调整超参数的。
Linear Classification
主要由Score Function 和 Loss Function 构成。
Score Function
通过线性变换得到图片是某类的score:
对于CIFAR-10来说,有10个类别,每张图片为3x32x32=3027的大小,所以W的维度为10x3027,可以将W认为是10个Linear Classifier,每一行是一个独立的Classifier。
强调了数据处理的重要性,对于图片,一般要进行0均值。
Loss Function
Multiclass Support Vector Machine Loss:又被称为 Hinge Loss。惩罚函数与那些 score > (真值的类的score-阈值) 的类有关
阈值delta一般设为1,因为W是可以缩放的,所以delta的取值其实没有太大含义。
Regulation 正则化
一方面原因是W是可以缩放,另一方面考虑模型的泛化性能,加入正则化项。常用的有L1和L2,L1会使权重稀疏,L2会出现max margin property(目前还没有搞太清楚)。
正则化的另一种解释是,光滑权重,使得分类器尽可能考虑更多输入数据的信息。以下图为例
Softmax Classifier
也属于线性分类器,无非是Loss函数使用Softmax函数。
Softmax Loss与Hinge Loss区别在于,Softmax对于所有错误的类进行惩罚,无论其分数多低。
线性分类器可视化链接:http://vision.stanford.edu/teaching/cs231n-demos/linear-classify/
Optimization
SGD:Stochastic Gradient Descent
Back Propagation
在BP中,乘法操作会有交换梯度的感觉。例如 f(x,y)=xy, ▽f = [y, x]。当x>>y时,x方向的梯度<<y方向的梯度,这意味着较小值对应较大的梯度,而较大值对应较小的梯度。在神经网络中,x代表权重,y代表输入的数据。当y增大100倍时,x的梯度也会增大100倍,这样就需要减小学习步长。这就是要数据进行预处理的一个原因。
Vector, Matrix, and Tensor Derivatives:http://cs231n.stanford.edu/vecDerivs.pdf
Tips:在做乘法的BP中,可以用维度来快速确定左右乘和转置
Backpropagation for a Linear Layer的证明:http://cs231n.stanford.edu/handouts/linear-backprop.pdf