当前位置: 首页 > news >正文

#机器学习--重新看待线性回归

#机器学习--重新看待线性回归

    • 引言
    • 普通视角的线性回归
    • 最大似然角度的线性回归
    • 总结

引言

        本系列博客旨在为机器学习(深度学习)提供数学理论基础。因此内容更为精简,适合二次学习的读者快速学习或查阅。


普通视角的线性回归

        对于一组数据 { ( x 0 , y 0 ) , … ( x m , y m ) } \{(x_{0},y_{0}),\dots(x_{m},y_{m})\} {(x0,y0),(xm,ym)} 我们希望找到一个线性模型 y = w T x y=w^{T}x y=wTx 使得其在这组数据上拟合效果最好。既然要找最好,肯定就需要一个衡量指标。
        最直观的理解就是,当所有点到直线的距离之和最小时,误差最小,拟合效果最好。即,使用 M S E t r a i n MSE_{train} MSEtrain 作为模型的衡量指标。此时我们得到优化目标: arg min ⁡ w ∑ i m ( y i − w T x i ) 2 \argmin_{w}\sum_{i}^{m}(y_{i}-w^{T}x_{i})^{2} wargminim(yiwTxi)2

最大似然角度的线性回归

        假设对于每个 y i y_{i} yi 都由正态分布 N ( w T x i , σ ) N(w^{T}x_{i},\sigma) N(wTxi,σ) 产生,其中 σ \sigma σ 是用户固定的某个常量。之所以这么假设,是因为如果要找到一个正态分布 N ( μ , σ ) N(\mu,\sigma) N(μ,σ) 能够使得点 ( x , y ) (x,y) (x,y) 被采样的概率最大,那么这个正态分布就是 N ( x , σ ) N(x,\sigma) N(x,σ) 。也就是说,对于每个样本都是由正态分布采样所得,根据最大似然的思想,令所有的 y i y_{i} yi 同时发生的可能性最大,即: arg max ⁡ w ∑ i m l n [ 1 σ 2 π e − 1 2 ( y i − w T x i σ ) 2 ] \argmax_{w}\sum_{i}^{m}ln[\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{y_{i}-w^{T}x_{i}}{\sigma})^{2}}] wargmaximln[σ2π 1e21(σyiwTxi)2] = > arg max ⁡ w [ ∑ i m l n [ 1 σ 2 π ] − ∑ i m [ 1 2 σ 2 ( y i − w T x i ) 2 ] ] =>\argmax_{w}[\sum_{i}^{m}ln[\frac{1}{\sigma\sqrt{2\pi}}]-\sum_{i}^{m}[\frac{1}{2\sigma^{2}}(y_{i}-w^{T}x_{i})^{2}]] =>wargmax[imln[σ2π 1]im[2σ21(yiwTxi)2]] = > arg min ⁡ w ∑ i m ( y i − w T x i ) 2 =>\argmin_{w}\sum_{i}^{m}(y_{i}-w^{T}x_{i})^{2} =>wargminim(yiwTxi)2

总结

        从最终结果来看,两者之间的优化目标是一样的,但从本质上来讲,最小二乘法只是最大似然在正态分布下的一种特殊情况。如果假设其它分布则会有不同的结果,如:
        伯努利分布下,最大似然估计的结果就是逻辑回归。
        多项式分布下,最大似然估计的结果就是softmax回归。
        感兴趣的读者可以自行证明。

http://www.lryc.cn/news/69195.html

相关文章:

  • 亚马逊,shopee,lazada卖家如何组建自己的测评团队
  • flink cdc 用mybatis-plus写到mysql5.6
  • 【C++】模板的一点简单介绍
  • SpringCloud概述
  • Metal入门学习:GPU并行计算大数组相加
  • 关于在spyder,jupyter notebook下创建虚拟环境(pytorch,tensorflow)均有效
  • oracle 闪回恢复
  • LeetCode 322 零钱兑换
  • 面试篇SpringMVC是什么以及工作原理
  • jQuery-层级选择器
  • 【Java数据结构】——第十节(下).选择排序与堆排序
  • 45道SQL题目陆续更新
  • 在线PS软件有哪些不错的推荐
  • Java实现天气预报功能
  • python循环语句
  • 多线程基础(一)线程基础信息、synchronized 锁概念
  • JAVA期末考内容知识点的梳理
  • 为什么要使用Thrift与Protocol Buffers?
  • oa是什么意思?oa系统哪个好用?
  • Linq和C# Lambda表达式
  • 蓝桥:前端开发笔面必刷题——Day2 数组(三)
  • 人工智能专栏第四讲——人工智能的未来展望与机遇
  • Unity阴影(Shadow)、Shadowmap
  • 编程语言的四种错误处理方法,你知道几种?
  • ContOS7单机安装Hadoop
  • 抓取动态网页的数据的具体操作方法
  • Windows 和 Linux 环境下 ProtoBuf 的安装
  • 商用密码应用安全性测评方案编制流程
  • Elasticsearch 集群部署插件管理及副本分片概念介绍
  • Liunx 套接字编程(2)TCP接口通信程序