一、线性回归与逻辑回归的联系与区别

什么是机器学习

利用大量的数据样本,使得计算机通过不断的学习获得一个模型,用来对新的未知数据做预测。

- 有监督学习(分类、回归)

同时将数据样本和标签输入给模型,模型学习到数据和标签的映射关系,从而对新数据进行预测。

nlp测试集 nlp笔试_数据


- 无监督学习(聚类)只有数据,没有标签,模型通过总结规律,从数据中挖掘出信息

nlp测试集 nlp笔试_数据_02

  • 强化学习

强化学习会在没有任何标签的情况下,通过先尝试做出一些行为得到一个结果,通过这个结果是对还是错的反馈,调整之前的行为,就这样不断的调整,算法能够学习到在什么样的情况下选择什么样的行为可以得到最好的结果。

就好比你有一只还没有训练好的小狗,每当它把屋子弄乱后,就减少美味食物的数量(惩罚),每次表现不错时,就加倍美味食物的数量(奖励),那么小狗最终会学到一个知识,就是把客厅弄乱是不好的行为。

线性回归

nlp测试集 nlp笔试_损失函数_03


nlp测试集 nlp笔试_线性回归_04


nlp测试集 nlp笔试_数据_05


nlp测试集 nlp笔试_nlp测试集_06


nlp测试集 nlp笔试_nlp测试集_07


nlp测试集 nlp笔试_线性回归_08

逻辑回归

nlp测试集 nlp笔试_数据_09


nlp测试集 nlp笔试_nlp测试集_10

逻辑回归的损失函数

线性回归的损失函数为平方损失函数,如果将其用于逻辑回归的损失函数,则其数学特性不好,有很多局部极小值,难以用梯度下降法求最优。

nlp测试集 nlp笔试_线性回归_11


nlp测试集 nlp笔试_损失函数_12


逻辑回归损失函数:对数损失函数

nlp测试集 nlp笔试_nlp测试集_13


解释:如果一个样本为正样本,那么我们希望将其预测为正样本的概率p越大越好,也就是决策函数的值越大越好,则logp越大越好,逻辑回归的决策函数值就是样本为正的概率;

如果一个样本为负样本,那么我们希望将其预测为负样本的概率越大越好,也就是(1-p)越大越好,即log(1-p)越大越好。

为什么要用log:

样本集中有很多样本,要求其概率连乘,概率为(0,1)间的数,连乘越来越小,利用log变换将其变为连加,不会溢出,不会超出计算精度。

逻辑回归损失函数:

nlp测试集 nlp笔试_nlp测试集_14


nlp测试集 nlp笔试_线性回归_15


逻辑回归实现多分类

nlp测试集 nlp笔试_数据_16

- 一对一(one vs one)

nlp测试集 nlp笔试_损失函数_17


- 一对多(one vs rest)

一对多分类器,每个分类器判断是三角形还是不是三角形,共需要N个分类器。

LR的特点

nlp测试集 nlp笔试_nlp测试集_18


nlp测试集 nlp笔试_线性回归_19


为什么逻辑回归比线性回归好?

虽然逻辑回归能够用于分类,不过其本质还是线性回归。它仅在线性回归的基础上,在特征到结果的映射中加入了一层sigmoid函数(非线性)映射,即先把特征线性求和,然后使用sigmoid函数来预测。

这主要是由于线性回归在整个实数域内敏感度一致,而分类范围,需要在[0,1]之内。而逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,其回归方程与回归曲线如下图所示。逻辑曲线在z=0时,十分敏感,在z>>0或z<<0处,都不敏感,将预测值限定为(0,1)。

  • LR在线性回归的实数范围输出值上施加sigmoid函数将值收敛到0~1范围, 其目标函数也因此从差平方和函数变为对数损失函数,以提供最优化所需导数(sigmoid函数是softmax函数的二元特例, 其导数均为函数值的f*(1-f)形式)。请注意,LR往往是解决二元0/1分类问题的, 只是它和线性回归耦合太紧, 不自觉也冠了个回归的名字(马甲无处不在).若要求多元分类,就要把sigmoid换成大名鼎鼎的softmax了。
  • 首先逻辑回归和线性回归首先都是广义的线性回归,其次经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函数,另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的要好。
  • 逻辑回归的模型本质上是一个线性回归模型,逻辑回归都是以线性回归为理论支持的。但线性回归模型无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。

二、LR和SVM的关系

1、LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题)

2、两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。

区别:

1、LR是参数模型,SVM是非参数模型。

2、从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。

3、SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。

4、逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。

5、logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。

三、L1与L2正则的区别与联系

正则化(Regularization)是机器学习中一种常用的技术,其主要目的是控制模型复杂度,减小过拟合。最基本的正则化方法是在原目标(代价)函数 中添加惩罚项,对复杂度高的模型进行“惩罚”。其数学表达形式为:

nlp测试集 nlp笔试_数据_20


nlp测试集 nlp笔试_线性回归_21


nlp测试集 nlp笔试_线性回归_22


nlp测试集 nlp笔试_nlp测试集_23


nlp测试集 nlp笔试_nlp测试集_24

正则化理解之最大后验概率估计

nlp测试集 nlp笔试_损失函数_25


nlp测试集 nlp笔试_线性回归_26


nlp测试集 nlp笔试_损失函数_27


nlp测试集 nlp笔试_nlp测试集_28

  • L1范式是对应参数向量绝对值之和
  • L1范式具有稀疏性
  • L1范式可以用来作为特征选择,并且可解释性较强(这里的原理是在实际Loss function中都需要求最小值,根据L1的定义可知L1最小值只有0,故可以通过这种方式来进行特征选择)
  • L2范式是对应参数向量的平方和,再求平方根
  • L2范式是为了防止机器学习的过拟合,提升模型的泛化能力

四、SVM

4.1 初谈SVM

nlp测试集 nlp笔试_nlp测试集_29


SVM要实现的目标是令Margin最大SVM分为Hard Constraint和Soft Constraint

nlp测试集 nlp笔试_线性回归_30


Hard Constraint即绝不能容忍两边分类的点到Margin里面来

nlp测试集 nlp笔试_线性回归_31


允许部分分类的点到Margin里面来,即允许可以犯多大的错,但是这些点会收到一定程度的惩罚,误分类的点越多,惩罚力度越大

nlp测试集 nlp笔试_损失函数_32


上面讨论的是Linear SVM模型,代表这些分类数据是线性可分的,那么如果遇到线性不可分的数据应该如何处理?

nlp测试集 nlp笔试_损失函数_33


把SVM的限制性条件转换为非限制性条件用拉格朗日定理

nlp测试集 nlp笔试_线性回归_34


nlp测试集 nlp笔试_线性回归_35


nlp测试集 nlp笔试_nlp测试集_36


nlp测试集 nlp笔试_损失函数_37


nlp测试集 nlp笔试_线性回归_38


nlp测试集 nlp笔试_数据_39


nlp测试集 nlp笔试_数据_40


nlp测试集 nlp笔试_损失函数_41


nlp测试集 nlp笔试_数据_42


nlp测试集 nlp笔试_线性回归_43


nlp测试集 nlp笔试_数据_44


nlp测试集 nlp笔试_nlp测试集_45

五、贝叶斯网络

六、GRU原理

nlp测试集 nlp笔试_nlp测试集_46


GRU即Gated Recurrent Unit。前面说到为了克服RNN无法很好处理远距离依赖而提出了LSTM,而GRU则是LSTM的一个变体,当然LSTM还有有很多其他的变体。GRU保持了LSTM的效果同时又使结构更加简单,所以它也非常流行。

而GRU模型如下,它只有两个门了,分别为更新门和重置门,即图中的zt和rt。更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多。

它将忘记门和输入门合成了一个单一的更新门。同样还混合了细胞状态和隐藏状态,和其他一些改动。最终的模型比标准的 LSTM 模型要简单,也是非常流行的变体。

七、Memory network