第一章 机器学习面试知识点总结
该知识点总结来源于牛客网
卷积神经网络和全连接网络的根本不同之处在哪里
卷积神经网络至少包含一个卷积层,最后一层通常是全连接层
全连接网络没有卷积层,只使用全连接层
因此主要分析卷积层和全连接层的区别
全连接层:上一层所有的神经元都要和下一层每个神经元链接
特点:1.关注全局信息 2.参数量巨大,计算耗时 3.输入维度需要匹配(矩阵运算)
卷积层:特点:1.局部链接 当前层只和下一层神经元局部链接 2.权重共享 神经元参数在整个特征图上共享
综上:卷积层相较全连接层需要学习的参数更少,降低过度拟合的可能
只需要考虑上下文/共享信息
无论是卷积神经网络还是全连接神经网络都只能拟合线性函数,需要通过激活函数引入非线性,增加模型表达能力
介绍一下SVM,遇到线性不可分怎么办,核函数有什么特点
- SVM是什么
SVM,Support Vector Machine,也即是支持向量机,基本原理是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。
如下图所示,以最简单的线性可分的数据为例:
想要分开左上角和右下角的两类数据,两条虚线上的点即为“支持向量”,也就是两类数据的边界;在两条虚线之间,有无数条线可以把两类数据分开,但最中间的那条实线,是最理想的情况:几何边界最大的分离超平面。
但需要强调的是,svm不仅可以支持这种简单的线性可分离的数据,还可以借助“软间隔(soft margin)”实现对不能线性可分但是可以近似线性可分的数据的分类
借助“核函数”,或者说“核技巧kernel tirck”,实现对任意非线性数据的分类
- 数据线性不可分怎么办?
数据在原始空间(称为输入空间)线性不可分,但是映射到高维空间(称为特征空间)后很可能就线性可分了。
但是映射到高维空间同时带来一个问题:在高维空间上求解一个带约束的优化问题显然比在低维空间上计算量要大得多,这就是所谓的“维数灾难”。
于是就引入了“核函数”,核函数虽然也是把特征进行从低维到高维的转换,但是它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,即避免了直接在高维空间中的复杂计算。
常用的核函数包括:
1.线性核函数(Linear Kernel)
2.多项式核函数(Polynomial Kernel)是线性不可分SVM常用的核函数之一,表达式为:
其中,各种参数都需要自己调参定义,调参比较麻烦
3.高斯核函数(Gaussian Kernel),在SVM中也称为径向基核函数(Radial Basis Function,RBF),它是libsvm默认的核函数,也是scikit-learn默认的核函数。表达式为:
其中,γ大于0,需要自己调参定义
Sigmoid核函数(Sigmoid Kernel)也是线性不可分SVM常用的核函数之一,表达式为:K(x,z)=tanh(γx∙z+r), 其中γ,r也都需要自己调参定义