作者:手机用户2502880821 | 来源:互联网 | 2023-10-10 19:53
这一堂课是主要讲的是逻辑回归(Logistic Regression)。但是这个回归问题在问题的执行上更像是个分类问题,但是有和分类问题不一样。按照老师的观点:
logistic regression是这样定义的 我们从要解决的问题是:
有一组病人的数据,我们需要根据下一位病人的病症来判断其是否患病。
变成了:
有一组病人的数据,我们需要预测他们在一段时间后患上心脏病的“可能性”,就是我们要考虑的问题。
那么问题来了&#xff1a; 通过二值分类&#xff0c;我们仅仅能够预测病人是否会患上心脏病&#xff0c;不同于此的是&#xff0c;现在我们还关心患病的可能性&#xff0c;即 f(x) &#61; P(&#43;1|x)&#xff0c;取值范围是区间 [0,1]。 我们之前的计算bound也好计算回归式也好&#xff0c;那一定是会有大于1或者小于0的数值出现的呀。这时候怎么办呢&#xff1f; 其实我们转换一下思维&#xff1a; 我们能不能找一个映射关系&#xff0c;能够合理将bound通过权重计算得到的数值&#xff0c;经过元算得到一个[0,1]区间的值呢&#xff1f; 逻辑斯蒂回归选择的这个么个映射函数是S型的sigmoid 函数。 s 取值范围是整个实数域, f(x) 单调递增&#xff0c;0 <&#61; f(x) <&#61;1。 于是整理一下&#xff0c;让他变成一个合理的h(x)&#xff1a;
回归方程出来就够了吗 答案是否定的我们还要知道Ein的表述&#xff0c;因为作为一个优秀的机器学习算法怎么能让Ein很大呢&#xff1a; 我们先看看我们的目标函数&#xff1a; 我们知道&#xff1a; 当y &#61; &#43;1 时&#xff0c; P(y|x) &#61; f(x); 当y &#61; -1 时&#xff0c; P(y|x) &#61; 1 - f(x). 在机器学习假设中&#xff0c;数据集D 是由f 产生的&#xff0c;我们可以按照这个思路&#xff0c;考虑f 和假设 h 生成训练数据D的概率。 下面这句话比较拗口&#xff0c;但是好多博主都这样理解&#xff1a; 训练数据的客观存在的&#xff0c;显然越有可能生成该数据集的假设h越大越好。所以此处用的是相乘&#xff08;h的相乘&#xff09;。 最后我们通过化简&#xff08;数学家略过&#xff09;&#xff1a; 再将θ换成我逻辑回归的回归函数&#xff1a; 得到 这里补充&#xff1a; 来自GAN 的发展对于研究通用人工智能有什么意义&#xff1f; 的一句话
回到根源&#xff0c;什么是机器学习&#xff1f;一句话来概括就是&#xff0c;在训练过程中给予回馈&#xff0c;使得结果接近我们的期望。对于分类问题&#xff08;classification&#xff09;&#xff0c;我们希望 loss 在接近 bound 以后&#xff0c;就不要再有变化&#xff0c;所以我们选择交叉熵&#xff08;Cross Entropy&#xff09;作为回馈&#xff1b;在回归问题&#xff08;regression&#xff09;中&#xff0c;我们则希望 loss 只有在两者一摸一样时才保持不变&#xff0c;所以选择点之间的欧式距离&#xff08;MSE&#xff09;作为回馈。损失函数&#xff08;回馈&#xff09;的选择&#xff0c;会明显影响到训练结果的质量&#xff0c;是设计模型的重中之重。这五年来&#xff0c;神经网络的变种已有不下几百种&#xff0c;但损失函数却寥寥无几。
逻辑回归的误差函数的梯度 梯度的概念是很常规的数学概念了&#xff0c; 这个玩意的计算公式是&#xff1a; 我们要让他最小&#xff0c;自然是属于极小值的时候最好是最小值的时候&#xff0c;我们有人已经证明了&#xff0c;这个Ein的图像应该是一个抛物线&#xff0c;那么这个抛物线的最小值自然是谷底&#xff0c;所以给出一个思路&#xff1a; 这个方法我们又称为&#xff1a; 这是个循序渐进的方法。
最经典的优化算法——梯度下降法 要寻找目标函数曲线的波谷&#xff0c;采用贪心法&#xff1a;想象一个小人站在半山腰&#xff0c;他朝哪个方向跨一步&#xff0c;可以使他距离谷底更近&#xff08;位置更低&#xff09;&#xff0c;就朝这个方向前进。这个方向可以通过微分得到。选择足够小的一段曲线&#xff0c;可以将这段看做直线段&#xff0c;为了方便计算&#xff0c;将上式近似可得。
但是&#xff1a; 下降比较多的或者太小可能不是特别好 【梯度下降的算法等博主闲下来&#xff0c;稍微分享下】 所以我有这么个想法&#xff1a; 距离谷底较远时&#xff0c;步幅大些比较好&#xff1b; 接近谷底时&#xff0c;步幅小些比较好&#xff08;以免跨过界&#xff09;。 距离谷底的远近可以通过梯度的数值大小间接反映&#xff0c;接近谷底时&#xff0c;坡度会减小。 因此&#xff0c;我们希望步幅与梯度数值大小正相关。 当到达迭代次数或者梯度足够接近0&#xff08;算法收敛&#xff09; 原式子可以改写为 这个时候当我们找到了谷底&#xff0c;整一个梯度下降执行成功&#xff0c;我们的逻辑回归也到此结束&#xff1a; 我们做了实验可以知道&#xff0c;逻辑回归可以很舒服的实现分类问题&#xff0c;这个和PLA的结果一样但是用的是全新的思路【毕竟是基于0\1问题】&#xff1a; 之后也是【等博主有时间&#xff0c;上传逻辑回归的实验方式】 补充&#xff1a;
逻辑回归和某个更高阶的【深度学习】算法有神似之处呢&#xff01;
最后总结一下&#xff1a;上图&#xff0c;英文很简单的啦&#xff1a; 分别从逻辑回归方程、代价函数、代价函数梯度、到梯度下降优化算法来讲解了这一类的像分类问题的回归问题。