1. 手写LR的目标函数?
目标函数(objective function)
= 损失函数(loss function)
= 代价函数(cost function)
2. 为什么LR的目标函数是最大化似然函数?
逻辑回归有两个假设:
- 假设数据服从伯努利分布
- 假设函数是sigmoid函数
如果用最小二乘法,目标函数就是差值的平方和(因为计算梯度时里面有sigmoid的导数)
,是非凸的,不容易求解,很容易陷入局部最优。(平方损失函数加上sigmoid函数将会是一个非凸函数。二阶导数有大于小于/等于0,为非凸。)
如果是最大化似然估计,目标函数是对数似然函数,是关于(w,b)的高阶连续可导的凸函数,可方便使用一些凸优化算法求解,如:梯度下降、牛顿法等。(对参数求二阶导严格小于0,为严格凸函数。)
3. LR加上正则化项后怎么求解?
L2正则,代价函数为:
对应的梯度为:
L1正则,代价函数为:
对应的梯度为:(sign符号函数,又叫sgn)
4. LR损失函数不能是平方差吗?
不能,因为求导后存在sigmoid函数的导数,整体的损失函数是非凸函数,不容易求解。很容易陷入局部最优。
1. 口述SVM整个过程。
2. 硬间隔与软间隔的区别?
软间隔的最基本含义同硬间隔比较区别在于允许某些样本点不满足原约束,从直观上来说,也就是“包容”了那些不满足原约束的点。
3. 手写svm,手写LR,手推反向传播。
如上:1、1、BP章节。
4. 为什么SVM求解要求解它的对偶问题?
好吧。其实,是因为对偶问题可以降低原问题的计算复杂度。
5. LR和SVM哪个对异常点比较敏感;SVM和LR对于离群点的敏感性。
- 损失函数不同,LR采用对对数损失函数,SVM采用hinge损失函数
- SVM损失函数自带正则项,LR必须另在损失函数上添加正则项
- SVM 只考虑局部的分界线附近的点
(支持向量)
,LR考虑全局(每个样本点都必须参与决策面的计算过程)
- LR对异常值敏感,SVM对异常值不敏感
- 在解决非线性问题时,SVM采用核函数机制,而LR通常不采用核函数的方法
(SVM只有几个样本点参与核计算,而LR如果要使用核函数,则所有样本点都要参与核计算,计算复杂度太高,不划算)
- 线性SVM依赖数据表达的距离测度,所以需要对数据先做normalization,LR不受影响。
(线性SVM寻找最大间隔分类器时是依据数据的距离测量的,如果不对数据进行正则化,会对结果有所影响,然而,LR虽然也会用到正则化,却是为了方便优化过程的起始值,LR求解的过程是与距离测量无关的,所以归一化对于LR的求解结果是没有影响的)
6. SVM效果一定比LR好吗?
如上5、各有优率:
n是数据中特征的数量 m是样本数
1、如果n相对于m来说很大,则使用LR算法或者不带核函数的SVM(线性分类)
n远大于m,n=10000,m=10-1000
2、如果n很小,m的数量适中(n=1-1000,m=10-10000)
使用带有核函数的SVM算法
3、如果n很小,m很大(n=1-1000,m=50000+)
增加更多的feature然后使用LR算法或者不带核函数的SVM
LR和不带核函数的SVM比较类似。