1、最大似然估计数学定义:

  假设总体分布为f(x,θ),X1,X2...Xn为总体采样得到的样本。其中X1,X2...Xn独立同分布,可求得样本的联合概率密度函数为:

  

  其中θ是需要求得的未知量,xi是样本值。

  此时,L(x,θ)是关于θ的函数,称之为似然函数。

  求参数θ值使得似然函数值取最大值,这种方法称之为最大似然估计。》》MLE

2、如何求解最大似然估计

  其中x是已知的,θ是需要求的变量值。如果最大似然函数可导,可以通过对θ求导的方式,取得L(x,θ)的极值。

  在实际中为了方便计算,往往先对L(x,θ)取对数:

    加入求导:

3、使用MLE推导逻辑回归

  逻辑回归中使用sigmoid函数,将输出值确定在范围0到1之间。此时输出的值相当于概率中某一个样本的值。即上述所讲的X1,X2...Xn。

而sigmoid函数中所需要求的w,即为似然函数中的θ。

  有如下公式:

    1、sigmoid函数

      此时没有截距b,加入后在归一化时会被约掉,所以干脆不使用b。

    2、sigmoid求导

         3、对数似然函数    

      概率分布为:

      将上面两式子写作联合:

      联合概率密度函数为:

      

      构建似然函数:

  4、求解MLE

  5、与UFLDL中的RL结合,改变某些表述:

    概率分布:    

    似然函数:

    

    求解MLE:

    矩阵形式:

得到似然函数对θ的导数后,使用梯度下降法来更新θ,使得最终的结果接近于label。

4、使用似然估计推导softma

  (此处使用UFLDL中的公式,敲公式好麻烦。。。)

  (1)概率

  (2)似然函数

  (3)对似然函数关于θq求导

      似然函数展开:

      求导:

最后,同样使用梯度下降法来求最优θ。

LR可以使用最大熵来推导,在后续给出。

参考:

UFLDL

有机会,会做一个UFLDL的总结博客。

ML 徒手系列 最大似然估计的更多相关文章

  1. ML 徒手系列说明

    徒手系列正确打开方式: 1.徒手撸公式 2.徒手撸代码

  2. ML 徒手系列 拉格朗日乘子法

    拉格朗日乘子法是解决极值问题的方法. 本方法是计算多元函数在约束条件下的极值问题的方法. 1.多元函数与约束问题 如下图所示,f(x,y)为多元函数,g(x,y)=c为约束条件.目的是计算在约束条件下 ...

  3. ML 徒手系列 SVM

    在Lagrange乘子法中,介绍了如何构建及如何使用对偶函数,对目标问题进行求解. 这一章利用L乘子法对SVM进行推导. SVM 即支持向量机,是通过求解超平面进行分类的一种算法.所谓的支持向量,是在 ...

  4. 【ML数学知识】极大似然估计

    它是建立在极大似然原理的基础上的一个统计方法,极大似然原理的直观想法是,一个随机试验如有若干个可能的结果A,B,C,... ,若在一次试验中,结果A出现了,那么可以认为实验条件对A的出现有利,也即出现 ...

  5. 参数估计:最大似然估计MLE

    http://blog.csdn.net/pipisorry/article/details/51461997 最大似然估计MLE 顾名思义,当然是要找到一个参数,使得L最大,为什么要使得它最大呢,因 ...

  6. 【MLE】最大似然估计Maximum Likelihood Estimation

    模型已定,参数未知 已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值.最大似然估计是建立在这样的思想上:已知某个参数能使这个 ...

  7. 又看了一次EM 算法,还有高斯混合模型,最大似然估计

    先列明材料: 高斯混合模型的推导计算(英文版): http://www.seanborman.com/publications/EM_algorithm.pdf 这位翻译写成中文版: http://w ...

  8. B-概率论-极大似然估计

    [TOC] 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ ...

  9. LR为什么用极大似然估计,损失函数为什么是log损失函数(交叉熵)

    首先,逻辑回归是一个概率模型,不管x取什么值,最后模型的输出也是固定在(0,1)之间,这样就可以代表x取某个值时y是1的概率 这里边的参数就是θ,我们估计参数的时候常用的就是极大似然估计,为什么呢?可 ...

随机推荐

  1. sublime 添加 注释插件 Docblockr

    https://github.com/spadgos/sublime-jsdocs Package Control Open Package Control: Preferences -> Pa ...

  2. python基础20 -------python中的异常处理

    一.python程序中的会出现的错误. 1.语法错误:这种错误根本过不了python解释器的语法检测阶段,必须在程序执行之前进行改正. 2.逻辑错误:这种错误虽然过了语法检测阶段但是程序在执行的过程中 ...

  3. Python 3 并发编程多进程之守护进程

    Python 3 并发编程多进程之守护进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemo ...

  4. 20165101刘天野 2018-2019-2《网络对抗技术》Exp8 Web基础

    20165101刘天野 2018-2019-2<网络对抗技术>Exp8 Web基础 1.实验内容 1.1 Web前端HTML (1)输入命令service apache2 start启动A ...

  5. JFreeChart的使用示例

    示例一,饼图,简单示例: 导入jar,代码文件: 运行结果: 代码: import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartF ...

  6. Serblet 过滤器(Filter)

    Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息. 过滤器的作用: 1.身份验证过滤器 2.日志记录和审核过滤器 3.触发资源访问事件过滤器. 等等等... Ser ...

  7. Canvas drawImage

    drawImage() 方法在画布上绘制图像.画布或视频. drawImage() 方法也能够绘制图像的某些部分,以及/或者增加或减少图像的尺寸. 这个方法有三张传参模式,3个参数,5个参数,9个参数 ...

  8. Uva 10820 Send a Table(欧拉函数)

    对每个n,答案就是(phi[2]+phi[3]+...+phi[n])*2+1,简单的欧拉函数应用. #include<iostream> #include<cstdio> # ...

  9. HIVE SQL JOIN

    最近总结了一下hive表关联的用法,与Postgres表关联还是有细微差别,总结在这里方便以后查看. join语法 join_table: table_reference [INNER] JOIN t ...

  10. android:layout_weight的真实含义/android:layout_gravity的条件

    用layout_weight的时候,不要把宽度(或是高度,你想分配weight的那个)设成match_parent. android:layout_weight只适用于LinearLayout and ...