深度学习与计算机视觉 斯坦福CS231n
Day2
让神经网络进行思考
- 分类的难点
设定图片是一张巨大的数字表单(300*100*3(3代表红绿蓝三色道0-255))的三维数组(这些数字的反映的是亮度以及每个像素点三基色分别所占的权值)
- 视点的变换问题-->摄像机的旋转和移动(比如同一张图,不同的观察角度下的识别)-->设定多个分类器,得到多个训练结果的模板(基本上一个分类器对应一个结果模板)。同时检测(for循环),选择一个最相似的。
- 光线问题
- 识别物体形态的变换
- 遮挡问题
- 背景杂斑问题(识别物体与背景颜色纹理都很相近)
- 种类演变问题
【最初的方法:
1.检测边缘并勾画边界,根据边缘结构和连结方式分类(耳朵)-》不可扩展,特征不明显-->数据驱动
2.训练一个模型,这个模型是一个类,这个类去进行分类】
2.近邻算法分类器
使用一部分测试数据用来评估分类器的好坏
<1> 一般将X定为图像像素数据,Y定为标签。然后对每一个测试图像使用FOR循环获取图像X的测试集。遍历类的时候,需要考虑测试时间性能,在训练方法内投入的计算和在测试方法内投入的计算这之间需要我们权衡。训练数据集规模变大的时候,算法减慢的速度是线性的。近邻算法分类器具有即时性,但造价昂贵。
【image-->text
1.卷积神经网络CNN
2.循环神经网络RNN-排序(时间序列)-->在CNN中,每个神经元只能向上一层传导(前向神经网络);而在RNN中,神经元可以直接作用到自身(即第M层神经元在T时刻的输入,除了自身M-1层神经元的输出,还包括了T-1时刻的输出)
参考:https://www.zhihu.com/question/34681168】
<2>距离的定义:可以看做是一种超参数
A.曼哈顿距离算法(L1):十字距离,不是直线距离。是直角边+直角边,而不是斜边。
“想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个“曼哈顿距离”。而这也是曼哈顿距离名称的来源, 曼哈顿距离也称为城市街区距离(City Block distance)”
(1)二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离
(2)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的曼哈顿距离
B.欧氏距离(L2):两点间距离公式,斜边。
欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。
(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离:
(2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:
(3)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的欧氏距离:
也可以用表示成向量运算的形式:
<3>验证方式:
K折交叉验证:把数据集分成两部分,第一部分用于构建模型,第二部分用于验证模型;并且,验证是一个循环反复进行的过程。
可以解释为:初始数据采样分割成K个子样本,每次交叉验证中将某个子样本作为验证模型的数据,其他K-1个样本合集作为训练集;交叉验证重复K次,使得每个子样本验证一次,然后平均K次的结果或者使用其它结合方式,最终得到一个单一估测。这种方法的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次模型效果。
<4>近邻算法分类器的缺点
(1)效率很低
(2)效果不是很好,当样本不平衡时,如果一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的 K 个邻居中大容量类的样本占多数。
<5>TIPS
- 不同的方法会有不同的泛化结构。
- 不应该只相信测试集,防止过拟合。
- 噪声和异常值一样带有随机性。
- 不同的K值所存在的覆盖问题:K值较小意味着只有与输入实例较近的训练实例才会对预测结果起作用,容易发生过拟合;如果 K 值较大,优点是可以减少学习的估计误差,缺点是学习的近似误差增大,这时与输入实例较远的训练实例也会对预测起作用,是预测发生错误。
- 算法中的分类决策规则往往是多数表决(投票),即由输入实例的 K 个最临近的训练实例中的多数类决定输入实例的类别。
- 距离度量一般采用 Lp 距离,当p=2时,即为欧氏距离,在度量之前,应该将每个属性的值规范化,这样有助于防止具有较大初始值域的属性比具有较小初始值域的属性的权重过大。
- 线性分类
(1)参数多态方法:定义函数f(x,W)(输入像素值,输出类别)=Wx+b(b是偏置参数),根据特定程序集上的梯度,斜率和位置,分类器进行移动进行分类。
【对于W的认识:
1.W的每一行都与图像进行点乘
2.W有关注或者不关注不同的空间位置的权利,权重小的像素点不参与。
3.序列化方法把像素变成一列,要把图片改成一样的大小,压缩成方形图片,就可以转换为在空间上对齐的列。
4.基本上所有的分数都是一个所有的像素点值的加权和。计算不同空间的颜色和。类似模版匹配。显示的颜色有正权重。】
- 对于线性分类来说什么样的测试集会是难以分类的?
1.计算特定位置混合的颜色很难。
2.不同的纹理
- 损失函数
损失函数是一种能够定量的测量每一个W在数据集上表现得有多差的方法。
通过这种函数,我们不需要控制W的初始值。