机器学习的学习任务根据训练集是否拥有标记信息,
可大致分为两类: 监督学习和无监督学习
- 分类和回归是监督学习的代表
(对于预测的结果是离散值,例如“好瓜”“坏瓜”此称为分类;对于预测值是连续值,例如西瓜成熟度是0.95,此称为回归) - 聚类是无监督学习的代表
(将训练集分为若干组,每组形成一个簇,他们自动形成的簇对应着一些潜在的特征划分,这些概念我们事先不知,这样的样本也不拥有标记)
模型评估方法
- 留出法
将数据集D分为互斥的两部分:训练集S、测试集T。
用训练集S进行训练后,通过测试集T来对泛化误差进行估计(一般训练集和测试集的划分尽可能保持数据分布的一致性) - 交叉验证法
将数据集D分层的方式分为k个大小相似的互斥子集(并集为D),每次取k-1个子集训练,一个子集测试,从而进行k次训练和验证,最终返回k次测试结果的均值。(k常取10)(一般认为留一法较为准确,所谓留一,即是有m个样本,k=m,但当数据集很大时,开销巨大) - 自助法
当有一个包含m个样本的数据集D,且m较小时,我们再按照上述方法将数据集D划分为训练集D’和测试集D\D’,难以划分,也就是会导致训练集又小了很多,引入由训练数据规模导致的误差,此时我们可以采用自助法
即每次从数据D中挑选一个样本,挑选m次,得到一个包含m个样本得数据集D’,将该数据集作为训练集,与原数据集大小相等。而测试集即是在D中存在但在D’中不存在的样本。
自助法在数据集较小、难以划分训练集和测试集时很有用。 - 调参与最终模型
调参我们通常是对每个参数选定一个范围和变化步长
我们实际的最终模型是基于整个数据集,所以刚开始将数据集D划分训练集和测试集验证相应算法和参数之后,需要将所有训练集进行训练构建最终的模型。
性能度量
对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,也就是性能度量,反映任务需求,在对比不同模型的能力时,使用不同的性能度量往往导致不同的评判结果,也就是说模型的好与坏是相对而言的。他不仅取决于算法和数据,还决定于任务需求。
回归任务最常用的性能度量就是“均方误差”。
-
错误率与精度
-
sc
-
sd
-
sd
激活层
激活层的作用就是引入非线性因子,提升模型的表达能力。
池化层
卷积神经网络在卷积层和激活层之后又增加了池化层,用来模拟感受野,以达到选取特征、减少参数数量的作用,同时引入微小平移不变性。
- 不改变输入的channel数,即输入是几通道的,经过池化层之后,输出也是几通道的。
- 上采样 UpSampling上采样层,size指定放大的倍数
- 下采样 subSampling下采样层 再次减少参数值
- Avergae pooling
- Max pooling
卷积层
- 图像是具有局部相关性的一类数据,其局部相关性是指组成图像的每个像素点与其周围的像素点是有关联的,而图像上距离较远的像素相关性较弱,因此处理图像时实际上没必要每个神经元都对全局图像进行感知。
- 而如果直接使用全连接(网络中的神经元与相邻层上的每个神经元均连接),假如是32x32x1的灰度图,如果只有一个hidden层十个神经元,只有一个输出层15个神经元,那么参数的数量是
32*32*10*15+15+10
,这只是一个hidden一个输出层的情况下,神经元数量就如此庞大,真正的训练中势必要过拟合。 - 因此在图像局部相关性的支撑下,卷积连接应用而生。
比如:
输入为3 * 3 = 9个像素,如果将其与16个隐藏层神经元全连接,就会有9 * 16 = 144个连接,也就有144个权值。为减少连接数,并且基于图像局部相关性的假设,可以仅取四个位置相近的像素作为输入,四个像素与同一个神经元进行连接。 - 这种连接方式又可看作是数学上的卷积操作,其中这一组权值就被称为卷积核。
- 这里需要注意的是
- 举例说明:假如输入为5x5,卷积核为3x3
- 那个5x5的输入会先从左上角去3x3的部分与卷积核作向量积(这里需要注意一下,不是矩阵相乘),得到一个scale(标量),然后移动一步,最终会得到一个3x3的新矩阵。
- 注:输入的channel决定了卷积核的channel,卷积核的核数决定了输出的channel,一个核对应一个channel。如果输入是多channel,那么会与多channel的核向量相乘再相加,即是多个channel变成一个channel,所以输入的channel与输出的channel无关。
- googLeNet提出了一个卷积层如果包含多个卷积核,那么这多个卷积核可以是不同的,比如可以包含1x1的卷积核、3x3的卷积核,他们的视野是不同的,那么所得到的信息量也就更多。