为什么机器学习的模型就那么有限的几种?看能不能构造自己的损失函数?

作者:Bruce,

班级:****-第五期AI工程师直通车

学习笔记来源:本系列笔记是本人参加****课程中的一些思考总结。希望能通过对一些问题深入思考,探索人工智能工程方法背后的本质。

机器学习模型都可以转化成目标函数+正则的最优化问题,那为什么机器学习的模型就那么有限的几种?看我能不能构造自己的损失函数。

问题是这样的,在学习不平衡问题过程中,产生这样的问题。对于样本不平衡时,常见的处理办法,无论是从数据集上还是在算层面解决样本不平衡。最终结果都需要用混淆矩阵对模型进行评价,看预测召回率,准确度或F1-score,既然这样,那我们为什么不直接训练最终的评价指标,而是要训练那样的模型,然后再用各种办法调整模型呢?

因此尝试自己构建一个以F2—score为目标函数的模型。

当然,召回率recall和准确率precision或者false alarm都不可直接作为训练目标,因为单看单一指标会立即达到100%,比如全部预测为负样本,则召回率可达到100%。

但是要提问下,为什么不能以F1-score作为训练目标呢?
首先,我们看下不平衡问题的根源在哪里?
不平衡问题的根源分析:基础的机器学习算法中,线性回归、逻辑回归、SVM等算法,最终求解都是将问题转化为最优化问题。:J(w) = 损失+正则
正则项容易理解,我们分别看下不同算法的损失项:
线性回归,均方和误差+正则:

为什么机器学习的模型就那么有限的几种?看能不能构造自己的损失函数?

逻辑回归,Logistic损失+正则

为什么机器学习的模型就那么有限的几种?看能不能构造自己的损失函数?

SVM:hinge损失+正则:

为什么机器学习的模型就那么有限的几种?看能不能构造自己的损失函数?

其中合页损失为:

为什么机器学习的模型就那么有限的几种?看能不能构造自己的损失函数?

观察这些损失项就可以发现,他们都是对预测分类错误的y进行惩罚,这才是问题的根本,对于不平衡问题来说,仅仅惩罚对y预测的对错是不够。
那让我们尝试构建一个F1—score的损失函数(针对简单一些二分类问题):

F1—socre是Precision 和 Recall 调和平均:

为什么机器学习的模型就那么有限的几种?看能不能构造自己的损失函数?

为什么机器学习的模型就那么有限的几种?看能不能构造自己的损失函数?

可构建统一公式用于计算Precision 和 Recall:

为什么机器学习的模型就那么有限的几种?看能不能构造自己的损失函数?

为什么机器学习的模型就那么有限的几种?看能不能构造自己的损失函数?

代入F1_score 不用看具体过程,其实就是代入后化简:

为什么机器学习的模型就那么有限的几种?看能不能构造自己的损失函数?

遇到了真正困难的地方来了,这里的预测函数
y ̂_i= 〖sigma(w〗^T  x_i)
代入上述公式后,以我的能力不能简化为凸优化问题。
终于学到了一课,损失函数构造成凸优化才是机器学习前辈们最牛的地方!

函数很复杂,不知道能不能转化为凸优化。那么,能不能构造出其他形式以F2为量度且是凸优化的目标函数呢?