第四节  最大似然推导mse损失函数(深度解析最小二乘来源)(2)

上一节我们说了极大似然的思想以及似然函数的意义,了解了要使模型最好的参数值就要使似然函数最大,同时损失函数(最小二乘)最小,留下了一个问题,就是这两个因素或者目的矛盾吗?今天我们就接着上面的问题继续解剖下去。

我们再来回顾下似然函数:

所谓似然函数就是一个大的乘项,它有多少项,取决于有多少个训练集的样本,因为它是判断训练集上发生的总概率最大的这么一个总似然函数。我们分析一下似然函数的取值由哪些因素确定?是常数,虽然是未知数,但是是个定值不能来回变,误差应该服从方差的高斯分布,不能来回变方差,唯一又能变又能影响最终结果的变量就是这一组也就是。 那么我们的目标就是找到一个θ(一组w) 使通过其计算出来似然函数结果最大,我们给似然函数起个名字叫,为什么括号里是,因为的大小只看的脸色,其它值都是定值,改变不了最终结果,只有能改变结果,所以是关于的函数。由于似然函数内部带着exp函数, 并且函数本身的形式是连乘,不太好求,所以我们在似然函数之前加了个log函数,因为log函数它是一个单调函数,而且是单调递增函数,不会影响函数的相对大小,并且,天生的良好属性。它能函数中的累乘变成累加,更方便求解。所以为了似然函数的更好求解,我们在两边加上log函数,如下:

我们来解析上面的每一步的来源,第一步不用怎么说,就是加了一个log, 需要注意的是没加log之前是大写的,加完log之后就是小写的。第一步到第二步实际上就是对于每一个样本之前的累乘,由于,加完log之后,所有的累乘变成累加,然后又用表示出来。第二步到第三步,因为第二步中  累加,每一个利用属性表示成,而是常数,所以个累加就是,而后半部分累加,因为,log和e在一起可以互相消掉,所以因为每一项不一样,所以写成,同时后半部分结果又把负号也给提出来了,那么加起来结果就是我们的第三步。给自己鼓个掌吧 ,这么难得公式都会了,而且跟着我一步步的给它解释出来,真是不容易。到此为止,我们就分析一下,能够使第三步即:

最大的是谁呢? 因为是常数项,不去考虑它,它始终为正,所以有它没它都不会影响相对大小。那么也就是说只要这一项越大,原始的函数就越大。注意这前面带个负号,因为我们是看成两个整体相加,所以后半部分的那一项是带个负号的。那么把负号去掉了,或者说这一项,这一项越小,原始的函数就越大。而是常数,不影响大小,也就是说能够使最小的就是能够使最大的是不是已经很眼熟了?我们回顾下MSE(最小二乘):

发现一模一样,因为里面的位置不会影响相对大小。所以MSE(最小二乘)怎么来的?为什么说MSE(最小二乘)越小就越好,取决于你背后估计了所有的误差,服从高斯分布,如果它不服从高斯分布,也就不能用mse来判断了。截止到目前,我们就发现了把它作为损失函数,真的是非常合理实际上这就是它背后的理论依据。

我们总结下,我们说判别模型事先给定一个判别函数,对吧?它这个例子判别函数根据判别函数来合理的构造出一个损失函数来。这个损失函数往往都是通过MLE,也就是最大似然估计为理论基础建立出来的最合理的损失函数,而最大似然的理论源泉是误差服从均值为零的高斯分布,也即样本服从高斯分布,而后通过最大似然一步步推导得到最小二乘。,所以mse的损失函数的根本理论依据是什么?你就应该回答为假设方差服从均值为零的高斯分布。至于是不是所有的回归问题,都用MSE当损失函数,不一定。但是90%都是它。在一些特殊的场景里,你已知误差服从别的分布了,那就会建立出别的损失函数来。比如huber损失函数,有兴趣可以自己研究下。但绝大多数的场景都会使用MSE作为回归问题的损失函数。因为在你不知道任何情况的前提下,假设误差服从高斯分布是最常见且最合理的一种方式。自此,你从理论方面推导了最大似然和最小二乘的关系,也为最小二乘作为损失函数找到了数学的理论支撑。下一节中我们讲解怎么样求解最小二乘或者使其相对最小,从而找到我们相对合理的模型参数

大白话5分钟带你走进人工智能-第四节最大似然推导mse损失函数(深度解析最小二乘来源)(2)的更多相关文章

  1. 大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)

                                                        大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5) 上一节中,我们讲 ...

  2. 大白话5分钟带你走进人工智能-第32节集成学习之最通俗理解XGBoost原理和过程

    目录 1.回顾: 1.1 有监督学习中的相关概念 1.2  回归树概念 1.3 树的优点 2.怎么训练模型: 2.1 案例引入 2.2 XGBoost目标函数求解 3.XGBoost中正则项的显式表达 ...

  3. 大白话5分钟带你走进人工智能-第31节集成学习之最通俗理解GBDT原理和过程

    目录 1.前述 2.向量空间的梯度下降: 3.函数空间的梯度下降: 4.梯度下降的流程: 5.在向量空间的梯度下降和在函数空间的梯度下降有什么区别呢? 6.我们看下GBDT的流程图解: 7.我们看一个 ...

  4. 大白话5分钟带你走进人工智能-第36节神经网络之tensorflow的前世今生和DAG原理图解(4)

    目录 1.Tensorflow框架简介 2.安装Tensorflow 3.核心概念 4.代码实例和详细解释 5.拓扑图之有向无环图DAG 6.其他深度学习框架详细描述 6.1 Caffe框架: 6.2 ...

  5. 大白话5分钟带你走进人工智能-第30节集成学习之Boosting方式和Adaboost

    目录 1.前述: 2.Bosting方式介绍: 3.Adaboost例子: 4.adaboost整体流程: 5.待解决问题: 6.解决第一个问题:如何获得不同的g(x): 6.1 我们看下权重与函数的 ...

  6. 大白话5分钟带你走进人工智能-第35节神经网络之sklearn中的MLP实战(3)

    本节的话我们开始讲解sklearn里面的实战: 先看下代码: from sklearn.neural_network import MLPClassifier X = [[0, 0], [1, 1]] ...

  7. 大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2)

              大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out  of  bag  data及代码(2) 上一节中我们讲解了随机森林的基本概念,本节的话我们讲解随机森 ...

  8. 大白话5分钟带你走进人工智能-第三节最大似然推导mse损失函数(深度解析最小二乘来源)(1)

                                                    第三节最大似然推导mse损失函数(深度解析最小二乘来源)        在第二节中,我们介绍了高斯分布的 ...

  9. 大白话5分钟带你走进人工智能-第十四节过拟合解决手段L1和L2正则

                                                                               第十四节过拟合解决手段L1和L2正则 第十三节中, ...

随机推荐

  1. 使用ASP.NET SignalR实现一个简单的聊天室

    前言 距离我写上一篇博客已经又过了一年半载了,时间过得很快,一眨眼,就把人变得沧桑了许多.青春是短暂的,知识是无限的.要用短暂的青春,去学无穷无尽的知识,及时当勉励,岁月不待人.今天写个随笔小结记录一 ...

  2. [ SSH框架 ] Struts2框架学习之一

    一.Struts2框架的概述 Struts2是一种基于MVC模式的轻量级Web框架,它自问世以来,就受到了广大Web开发者的关注,并广泛应用于各种企业系统的开发中.目前掌握 Struts2框架几乎成为 ...

  3. java 通过HttpURLConnection与servlet通信

    研究了一天才搞清楚,其实挺简单的,在这里记录下,以便以后参考. 一.创建一个servlet项目 主要包括(WEB-INF)里面有classes文件夹.lib文件夹.web.xml文件. 将写好的ser ...

  4. MySQL技术内幕 InnoDB存储引擎(笔记)

    1. InnoDB 体系架构 其中,后台程序主要负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据. 此外将已经修改的数据刷新到磁盘文件,同时保证在数据库发生异常的时候Innodb能恢复正常 ...

  5. 如何查看chrome浏览器已保存的密码

    该方法是针对在chrome中已经存储了登陆密码的情况. chrome版本是 66.0.3359.139(正式版本) (64 位),不知道哪天会改了这个bug. 一般来说,我们登陆chrome浏览器已经 ...

  6. Python并发编程之线程中的信息隔离(五)

    大家好,并发编程 进入第三篇. 上班第一天,大家应该比较忙吧.小明也是呢,所以今天的内容也很少.只要几分钟就能学完. 昨天我们说,线程与线程之间要通过消息通信来控制程序的执行. 讲完了消息通信,今天就 ...

  7. Struts标签库详解【1】

    struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri=& ...

  8. C++之Binary Heap/Max Heap

    #include <iostream> #include <time.h> #include <random> using namespace std; //Bin ...

  9. Centos7搭建hadoop完全分布式

    虽然说是完全分布式,但三个节点也都是在一台机器上.拿来练手也只能这样咯,将就下.效果是一样滴.这个我自己都忘了步骤,一起来回顾下吧. 必备知识: Linux基本命令 vim基本命令 准备软件: VMw ...

  10. HTTP Strict Transport Security实战详解

    HTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式. 0×01. Freebuf百科: ...