K近邻算法:设定一个K值,如果目标距离最近K个点,则认为目标点与周围的K个点是一类别。
对于未知类别属性数据集中的特点的点:
- 计算已知类别数据集中的点与当前点的距离
- 按照距离依次排序
- 选取与当前点距离最小的K和点
- 确定前K个点所在类别的出现概率
- 返回前K点出现频率最高的类别作为当前点预测分类
概述:
KNN算法方法较为简单有效,是一种lazy-learning算法
分类器不需要使用训练集进行训练,训练时间复杂度为0
KNN分类计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为n,那么KNN的分类时间复杂度时间复杂度为0(n)
K值得选择,距离度量函数和分类决策规则是该算法的基本三个要求
问题:该算法在分类是有个主要的不足是,当样本不平衡是,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K各邻居中大样本容量的样本占多数
解决:不同的样本给予不同的权重项
数据库样例:CIFAR-10 10类标签 50000个训练集 10000个测试数据 大小32*32
超参数与交叉验证
距离称为超参数。欧氏距离:两点相减平方再根号。曼哈顿距离:绝对值两个样本点相减。
交叉验证:将数据分为多份训练集比如分为5份和一份测试集。然后将其中一份比如5作为验证集,用其他4份来验证。再用4作为验证集,其他4份做测试。进行次迭代,求和再平均。以此来调节参数。testdata是最终评估模型。可以使数据集更加平均。
但是再用K近邻时把背景考虑进来,距离会很近,计算的结果不准确。
线性分类
对于输入加入一些权重参数。得到得分值。如给一幅图像,32*32*3 =3072个像素点
将其拉伸为一个列向量。想得到10个类别的权重:像素矩阵x乘以W权重+b。有3072个W行向量,与输入相乘,得到每个类别的得分值。b=10*1,
比较最后得分大小,那个得分值最高,就是属于这个类别的。可以看出预测错误。
损失函数
线性分类的方式其实就是根据这个函数,将画的线将不同类别划分出啦。相当于先找出分类边界,通过这个权重参数W找出这个线的倾斜程度,通过b找出与Y轴的焦点,最后得出划分的区域。
得分值效果不好,预测错误时,需要改正,要有一个评判标准。
SVM损失函数:
比较0与 (错误得分-正确的分+1)的大小。比0大就认为有损失,比0小就认为没有损失。
对于一个模型的测试,需要许多次测试,就有很多损失函数。要进行求和再平均,刨除样本的个数对样本结果的影响。
正则化惩罚项
对于w1和w2来说,和x矩阵相乘得分值都是1,但是w1只关注x的一个像素点,而w2就分布比较均匀。会均匀考虑到每个像素点。
损失函数加入正则化惩罚项。惩罚就是惩罚权重参数。
计算w的平方项,就是惩罚项。
损失函数终极版:
softmax分类器
SVM输出的是一个得分值。
softmax输出的是一个概率值。
将得分值映射到e的次幂将小的值映射成一个大一点的数3.2->24.5,将一个大一点的数映射成非常大的数5.1->164.0,将一个负数映射成一个小数-1.7->0.18,归一化映射到0-1之间的概率,预测越好,概率越接近于1,损失值越小与,概率越接近于0越不正确,损失函数越大。符合log函数的分布,所以取对数映射计算损失值,再加上负号,映射到正数上。目的是将概率值映射成差异很大的情况。
最优化解释
优化是不断地找到最好的值。例如:梯度下降法。
BP算法通过输入前向传播到loss值,然后通过反向传播,进行优化。通过loss值进行评估。
梯度下降:比如下山,每次走一步都沿着坡走,能找到一个最好的方向。
通常使用BP算法时,不是迭代一张图像,而是迭代多张,要看计算机承受的负载量。
数据量一般在Bachsize是64,128,计算机性能一般的话16,32。
data_batch是从数据集中一次性取出256个数据,组成data_batch。
训练网络,得出的横坐标 为epoch值。
epoch值:比如4000张图片整个跑完一次得出一个epoch值。就是迭代完所有数据得出一个epoch值。
一次迭代:取64张图像组成batch,一次迭代就是只完成了这64张图像的前向传播加反向传播的过程。跑一次batch得出的结果。
学习率
能够让模型向好的方向去学,通过梯度下降法进行求解,一次学多大呢?就是用学习率来表示。
LR就是学习率
通过小的学习率和大的迭代次数进行训练模型。
学习率:
反向传播
怎样由一个loss值来得出我们的权重值呢?
神经网络由前向传播和反向传播组成。
前向传播:有一个数据得到一个得分值。
反向传播:由得分值算出LOSS值后,一步一步往回传,得到什么样的W该更新,什么样的W该更新多大的力度。
最优化就是在反向传播中体现出来的。反向传播就最重要的是更新W参数。
传播是一层一层的传播的,不能一步到位。
计算时,符合链式法则。求导,进行判断参数对最终loss值得权重。