博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CS 231n 学习笔记 02——课程2.2 Linear Classification
阅读量:5064 次
发布时间:2019-06-12

本文共 980 字,大约阅读时间需要 3 分钟。

线性分类器(Linear Classifier)是一类简单的学习算法,但也是一类极为重要的算法,它是Neural Networks(包括CNN)的基础。

如果把神经网络比作乐高积木,线性分类器就是这个积木的每一层的基础模块:

回到CIFAR10:每个图像为32*32的分辨率,每个像素点有3个彩色通道,即构成一个32*32*3=3072长度的向量(array)作为算法输入。

在对CIFAR10使用线性分类器的测试中我们希望输出是一个10维的向量,代表了输入图像对10个标签每一个的拟合程度。

 

KNN的方法中采用的是数据驱动方法(Data-Driven Approach),即保留了整个训练集作为数据集,并在输入时将图片和整个数据集比较。

还有另一种思路,叫做参数方法(Parametric Approach),将从训练获取的认知表现为f(x,W)中的W即参数。

此处的参数W就是训练所得的一个模型,模型的使用使得在测试以及实际应用场景中避免对性能的高要求,从而能够获得广泛的实际应用价值。机器学习实际上就是如何使计算机通过训练得到一个可用的模型的各种算法。

线性分类器的f(x,W)=Wx(矩阵乘法)

可见CIFAR10训练所得的W就应该是由10个3072维行向量构成的矩阵。(实际应用中Wx还会加一个偏置列向量b)

将10个列向量用图像表现出来,可以可视化地看到线性分类时计算机如何理解每一个标签代表的具体图像:

线性分类器一个显著的缺点就在于只能存储一个模版,如果一个标签中存在多个模版的表现,线性分类器就只好求取多个模式的平均值进行拟合(如上图中马的参数图中可以看到两个类似马头,这是因为输入的训练集中有朝向两个方向的马的图片,而分类器取了平均)。

(神经网络以及更复杂的模型可以处理多个模型的类别。)

另外,可以将线性分类器看做在样本空间划出的一条对样本的分界线(或分界面或更高维),然而这个分类器对于非线性分布的数据难以进行划分(这也是为何SVM中会引入核函数处理更高维的分类),并且难以进行多分类。

本节课只注重了线性分类器的函数形式,以及用矩阵乘法匹配模板的方式。

下节课将继续研究。。。

转载于:https://www.cnblogs.com/CaptainLL/p/CS_231n_notes02_LinearClassifier.html

你可能感兴趣的文章
前端工具----iconfont
查看>>
Azure Site Recovery 通过一键式流程将虚拟机故障转移至 Azure虚拟机
查看>>
Hello China操作系统STM32移植指南(一)
查看>>
cocos2dx CCEditBox
查看>>
VC++2012编程演练数据结构《8》回溯法解决迷宫问题
查看>>
第一阶段冲刺06
查看>>
WIN下修改host文件并立即生效
查看>>
十个免费的 Web 压力测试工具
查看>>
ckeditor 粘贴后去除html标签
查看>>
Mysql DISTINCT问题
查看>>
sort和sorted的区别
查看>>
UI自动化
查看>>
Elasticsearch-基础介绍及索引原理分析
查看>>
AJAX 学习笔记
查看>>
String.format(),字符拼接
查看>>
dbutils开源项目用法
查看>>
JSP获取当前日期时间
查看>>
undefined reference to `_sbrk', `_write', `_lseek', `_read'
查看>>
基于zuul 实现API 网关
查看>>
定义自己的布局RelativeLayout 绘制网格线
查看>>