Linear Classification
线性分类是一个很简单的算法,有助于建立神经网络和卷积网络。这类有关神经网络的模块化性质的另一个例子来自于图像字幕实验室的一些研究:输入一幅图片,系统输出描述性的句子。这类工作的方式是卷积神经网络只关注图像,而循环神经网络只关注语言,将这两个网络叠放在一起,再将其一块训练,最终得到一个系统。
重新回到CIFER10
输入数据通常写成x,参数设置或者权重写为W或者θ,然后就会出现10个数字分别对应10个类别的评分,如果说对应猫类别的分值较大,那么输入的图片很可能是只猫。这样做的好处是,在之前的kNN中,我们需要保存所有种类的训练数据并在测试时使用,而在这种情况下,我们将机器学习后的所有知识都包含在了参数W或θ中,测试时仅仅需要这些参数,训练数据可以扔掉,使得我们的模型更加有效率。
这只猫的图像是32323——3072像素的,取这些值然后展开成一个3072个元素的一维列向量,对于输出结果,我们最终想要得到10个数字,分别对应每个类别的得分情况。因此这个函数中的W应该是10行3072列的矩阵(10*3072的矩阵)
通常在函数末尾加一个偏置项b,它不与训练数据交互,仅给我们一些数据独立的偏好值。,仅仅针对一类的偏好值,比如猫的数量多于狗的时候,那么猫对应的偏差值应该比狗高。
线性分类器的另一个观点是回归到图像,作为点和高维空间的概念,可以想象成我们每一张图像都是类似高维空间中一个点。
线性分类器仍然会出现一些问题,首先看最左边的图像,分为蓝色和红色,如果我们用单独的一条直线将蓝色和红色划分开来是不可能实现的,这就是线性分类器面临的困境。