常用的分类器有哪些,并简述其原理?
传统方式:特征描述和检测
BPNN,全连接网络,计算量巨大
CNN,卷积神经网络
迁移学习,利用别人训练好的参数,自定义网络
KNN,K最近邻,判断图像与各个类别的距离
SVM,选定特征, SVM算法输出一个最优化的分隔超平面(分类面)
线性分类器:Logistic回归 y=sigmoid(wx+b)
LR与SVM的对比
相同:都是分类模型。都处理二分类。都可以添加正则项。
区别:LR是参数模型,SVM是非参数模型;LR采用logistical loss,SVM采用hinge loss;SVM之所以称之为支持向量,是因为SVM只考虑了与分类最相关的少数点来学习分类器。
KNN的K是如何选取的?
K值较小意味着模型会越复杂,容易发生过拟合。K值过大会使模型过于简单,使得预测发生错误。实际使用中K一般取较小的数字。
svm
是一个二分分类器,找寻数据之间间隔最大的线性分类器。其学习策略是使分隔间隔最大化。对于线性可分的数据,SVM构造一个分隔面。对于线性不可分的数据,SVM采用核函数将低维空间的问题映射到了高维空间,从而线性可分。常用核函数有多项式核函数、高斯核函数、线性核函数。为了应对维度爆炸的情形,核函数事先在低维空间上进行计算,再将分类的实际效果展现在高维上。
SVM的损失函数叫做Hinge(hɪndʒ) Loss,形式为max(0,1-y*a),y为真实值±1,a为预测值,介于-1到1之间。
L1和L2的区别
L1范数为向量中各个元素的绝对值之和,符合拉普拉斯分布,可以使权值稀疏。
L2范数为向量中各个元素的平方和的1/2次方,符合高斯分布,可以防止过拟合。
Lp范数为向量中各个元素的p次方和的1/p次方。
归一化的好处
归一化加快了梯度下降求解最优解的速度;归一化还可能会提高精度。
引入非线性激活函数的原因?
若使用线性激活函数,则无论神经网络有多少层,输出都是输入的线性组合。
好的激活函数有以下特点:
非线性:即导数不是常数。
几乎处处可微:可微性保证了在优化中梯度的可计算性。
计算简单。
非饱和性(saturation):饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题。
单调性(monotonic):即导数符号不变。
输出范围有限:有限的输出范围使得网络对于一些比较大的输入也会比较稳定
接近恒等变换(identity):即约等于x。这样的好处是使得输出的幅值不会随着深度的增加而发生显著的增加
参数少:大部分激活函数都是没有参数的。
归一化(normalization):这个是最近才出来的概念,对应的激活函数是SELU。类似于Batch Normalization。