文章目录

  • 一、回归问题概述
  • 二、误差项定义
  • 三、独立同分布的假设
  • 四、似然函数的作用
  • 五、参数求解
  • 六、梯度下降算法
  • 七、参数更新方法
  • 八、优化参数设置

一、回归问题概述

回归:根据工资和年龄,预测额度为多少
其中,工资和年龄被称为特征(自变量),额度被称为标签(因变量)

下图展示了线性回归特性,其相当于Y = aX1+bX2+c,在此问题中,就相当于一个三维空间中的二维平>面,我们希望找到一个二维平面,尽可能接近所有点

二、误差项定义

下图展示了误差项的定义,我们一般认为误差项越接近0越好

三、独立同分布的假设

  • 误差 ε ( i ) \varepsilon^{(i)} ε(i) 是独立并且具有相同的分布, 并且服从均值为0方差为 θ 2 \boldsymbol{\theta}^2 θ2 的高斯分布
  • 独立:张三和李四一起来贷款,他俩没关系
  • 同分布: 他俩都来得是我们假定的这家银行
  • 高斯分布(正态分布) : 银行可能会多给,也可能会少给,但是绝大多数情况下 这个浮动不会太大,极小情况下浮动会比较大,符合正常情况

四、似然函数的作用

(1) 预测值与误差 :

y ( i ) = θ T x ( i ) + ε ( i ) y^{(i)}=\theta^T x^{(i)}+\varepsilon^{(i)} y(i)=θTx(i)+ε(i)

(2) 由于误差服从高斯分布 :

p ( ϵ ( i ) ) = 1 2 π σ exp ⁡ ( − ( ϵ ( i ) ) 2 2 σ 2 ) p\left(\epsilon^{(i)}\right)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(\epsilon^{(i)}\right)^2}{2 \sigma^2}\right) p(ϵ(i))=2π ​σ1​exp(−2σ2(ϵ(i))2​)

将 ( 1 ) (1) (1) 式带入 ( 2 ) (2) (2) 式:

p ( y ( i ) ∣ x ( i ) ; θ ) = 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) p\left(y^{(i)} \mid x^{(i)} ; \theta\right)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^T x^{(i)}\right)^2}{2 \sigma^2}\right) p(y(i)∣x(i);θ)=2π ​σ1​exp(−2σ2(y(i)−θTx(i))2​)

似然函数(独立同分布的前提下,联合概率密度等于边缘概率密度的乘积) :

L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) L(\theta)=\prod_{i=1}^m p\left(y^{(i)} \mid x^{(i)} ; \theta\right)=\prod_{i=1}^m \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^T x^{(i)}\right)^2}{2 \sigma^2}\right) L(θ)=i=1∏m​p(y(i)∣x(i);θ)=i=1∏m​2π ​σ1​exp(−2σ2(y(i)−θTx(i))2​)

解释 : 什么样的参数跟我们的数据组合后恰好是真实值

对数似然 :

log ⁡ L ( θ ) = log ⁡ ∏ i = 1 m 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) \log L(\theta)=\log \prod_{i=1}^m \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^T x^{(i)}\right)^2}{2 \sigma^2}\right) logL(θ)=logi=1∏m​2π ​σ1​exp(−2σ2(y(i)−θTx(i))2​)

解释 : 乘法难解,加法就容易了,对数里面乘法可以转换成加法

五、参数求解

展开化简 :

∑ i = 1 m log ⁡ 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) = m log ⁡ 1 2 π σ − 1 σ 2 ⋅ 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \sum_{i=1}^m \log \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^T x^{(i)}\right)^2}{2 \sigma^2}\right) \\ =m \log \frac{1}{\sqrt{2 \pi} \sigma}-\frac{1}{\sigma^2} \cdot \frac{1}{2} \sum_{i=1}^m\left(y^{(i)}-\theta^T x^{(i)}\right)^2 i=1∑m​log2π ​σ1​exp(−2σ2(y(i)−θTx(i))2​)=mlog2π ​σ1​−σ21​⋅21​i=1∑m​(y(i)−θTx(i))2

目标:让似然函数(对数变换后也一样 ) 越大越好

J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 ( 最小二乘法 )  J(\theta)=\frac{1}{2} \sum_{i=1}^m\left(y^{(i)}-\theta^T x^{(i)}\right)^2 \text { ( 最小二乘法 ) } J(θ)=21​i=1∑m​(y(i)−θTx(i))2 ( 最小二乘法 )

目标函数 :

J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta)=\frac{1}{2} \sum_{i=1}^m\left(h_\theta\left(x^{(i)}\right)-y^{(i)}\right)^2=\frac{1}{2}(X \theta-y)^T(X \theta-y) J(θ)=21​i=1∑m​(hθ​(x(i))−y(i))2=21​(Xθ−y)T(Xθ−y)

求偏导:

∇ θ J ( θ ) = ∇ θ ( 1 2 ( X θ − y ) T ( X θ − y ) ) = ∇ θ ( 1 2 ( θ T X T − y T ) ( X θ − y ) ) = ∇ θ ( 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) ) = 1 2 ( 2 X T X θ − X T y − ( y T X ) T ) = X T X θ − X T y \begin{aligned} \quad \nabla_\theta J(\theta)&=\nabla_\theta\left(\frac{1}{2}(X \theta-y)^T(X \theta-y)\right) \\ &=\nabla_\theta\left(\frac{1}{2}\left(\theta^T X^T-y^T\right)(X \theta-y)\right) \\ &=\nabla_\theta\left(\frac{1}{2}\left(\theta^T X^T X \theta-\theta^T X^T y-y^T X \theta+y^T y\right)\right) \\ &=\frac{1}{2}\left(2 X^T X \theta-X^T y-\left(y^T X\right)^T\right)=X^T X \theta-X^T y \end{aligned} ∇θ​J(θ)​=∇θ​(21​(Xθ−y)T(Xθ−y))=∇θ​(21​(θTXT−yT)(Xθ−y))=∇θ​(21​(θTXTXθ−θTXTy−yTXθ+yTy))=21​(2XTXθ−XTy−(yTX)T)=XTXθ−XTy​

偏导等于0:

θ = ( X T X ) − 1 X T y \theta=\left(X^T X\right)^{-1} X^T y θ=(XTX)−1XTy

六、梯度下降算法

引入: 当我们得到了一个目标函数后,如何进行求解?
直接求解 ? ( 并不一定可解,线性回归可以当做是一个特例 )

常规套路: 机器学习的套路就是我交给机器一堆数据, 然后告诉它 什么样的学习方式是对的(目标函数),然后让它朝着这个方向去做

如何优化: 一口吃不成个胖子,我们要静悄悄的一步步的完成迭代 ( 每次优化一点点,累积起来就是个大成绩了)

七、参数更新方法

目标函数 :

J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left(\theta_0, \theta_1\right)=\frac{1}{2 m} \sum_{i=1}^m\left(h_\theta\left(x^{(i)}\right)-y^{(i)}\right)^2 J(θ0​,θ1​)=2m1​i=1∑m​(hθ​(x(i))−y(i))2

寻找山谷的最低点,也就是我们的目标函数终点 ( 什么样的参数能使得目标函数达到极值点)
下山分几步走呢? ( 更新参数 )
(1) : 找到当前最合适的方向
(2) : 走那么一小步,走快了该" 跌倒 "了
(3):按照方向与步伐去更新我们的参数

批量梯度下降:

∂ J ( θ ) ∂ θ j = − 1 m ∑ i = 1 m ( y i − h θ ( x i ) ) x j i θ j ′ = θ j + 1 m ∑ i = 1 m ( y i − h θ ( x i ) ) x j i \frac{\partial J(\theta)}{\partial \theta_j}=-\frac{1}{m} \sum_{i=1}^m\left(y^i-h_\theta\left(x^i\right)\right) x_j^i \\ \theta_j^{\prime}=\theta_j+\frac{1}{m} \sum_{i=1}^m\left(y^i-h_\theta\left(x^i\right)\right) x_j^i ∂θj​∂J(θ)​=−m1​i=1∑m​(yi−hθ​(xi))xji​θj′​=θj​+m1​i=1∑m​(yi−hθ​(xi))xji​

( 容易得到最优解,但是由于每次考虑所有样本,速度很慢 )

随机梯度下降 :

θ j ′ = θ j + ( y i − h θ ( x i ) ) x j i \theta_j^{\prime}=\theta_j+\left(y^i-h_\theta\left(x^i\right)\right) x_j^i θj′​=θj​+(yi−hθ​(xi))xji​

(每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方向 )

小批量梯度下降法 :

θ j : = θ j − α 1 10 ∑ k = i i + 9 ( h θ ( x ( k ) ) − y ( k ) ) x j ( k ) \theta_j:=\theta_j-\alpha \frac{1}{10} \sum_{k=i}^{i+9}\left(h_\theta\left(x^{(k)}\right)-y^{(k)}\right) x_j^{(k)} θj​:=θj​−α101​k=i∑i+9​(hθ​(x(k))−y(k))xj(k)​

(每次更新选择一小部分数据来算,实用!)

八、优化参数设置

学习率(步长):对结果产生巨大影响,一般小一些
如何选择: 从小的时候,不行再小
批处理数量 : 32,64,128 都可以,很多 时候还得考虑内存和效率

【机器学习】Linear and Nonlinear Regression 线性/非线性回归讲解相关推荐

  1. 机器学习实战-42: 非线性回归算法(Non-linear Regression)

    机器学习-42: 非线性回归算法(Non-linear Regression) 机器学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 非线性回归(Non-linear Regression ...

  2. 机器学习基础--回归(Regression)

    Regression:Case Study 回归-案例研究 问题的导入:预测宝可梦的CP值 Estimating the Combat Power(CP) of a pokemon after evo ...

  3. 【回归分析】MATLAB实现多元线性/非线性回归

    MATLAB实现多元线性/非线性回归 1 多元线性回归(multivariate linear regression model, MLRM) 1.1 基本原理 1.2 MATLAB代码实现 1.3 ...

  4. 独家思维导图!让你秒懂李宏毅2020机器学习(一)—— Regression回归

    独家思维导图!让你秒懂李宏毅2020机器学习(一)-- Regression回归 前言:博主为一名大二本科生,最近决心开始看李宏毅的深度学习系列课程,每学一个阶段决定写篇博客来归纳记录一下所学的东西, ...

  5. 机器学习笔记——回归(Regression)

    机器学习笔记--回归(Regression) 一.何为回归 二.案例背景 三.研究过程 1.选择模型 2.衡量函数的好坏 3.选择最优的函数 4.梯度下降(Gradient Descent) 4.1单 ...

  6. R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等

    R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录

  7. ML之回归预测:机器学习中的各种Regression回归算法、关键步骤配图

    ML之回归预测:机器学习中的各种Regression回归算法.关键步骤配图 目录 机器学习中的各种回归算法 1.回归算法代码 2.各种回归算法 3.各种回归算法大PK 机器学习中的各种回归算法 1.回 ...

  8. 李宏毅机器学习课程---2、Regression - Case Study

    李宏毅机器学习课程---2.Regression - Case Study 一.总结 一句话总结: 分类讨论可能是比较好的找最佳函数的方法:如果 有这样的因素存在的话 模型不够好,可能是因素没有找全 ...

  9. 利用R语言进行线性/非线性回归拟合实例(1)

    利用R语言进行线性/非线性回归拟合实例(1) 1. 生成一组数据 vector<float>xxvec; vector<float>yyvec; ofstreamfout(&q ...

最新文章

  1. 计算机组成原理相关事例,计算机组成原理(示例代码)
  2. Spring源码-applicationcontext.xml解析过程
  3. JavaScript中为何要使用prototype
  4. PL/SQL Developer下设置“长SQL自己主动换行”
  5. java计算字符串中字符出现的次数_java – 计算字符串中字符出现次数
  6. java编程彩球滑梯作弊_课内资源 - 基于C++的学生成绩管理系统
  7. mysql集群之keepalived简单搭建
  8. Vue3学习笔记- NPM包管理工具
  9. 服务器端渲染为什么会比较快,原理是什么?
  10. 在虚拟DOM和Diff算法中为什么不建议使用index作为key值?
  11. 网上Silverlight项目收集
  12. Java完全自学手册,一册在手,offer我有(附程序员书单)
  13. 必备技能!聊聊二维码扫码登录的原理
  14. 八进制数转换为十进制计算机在线,在线十进制转成八进制
  15. 今年新型城镇化新看点:加快户籍改革 建设新型智慧城市
  16. WAP中推送技术的分析与设计(转)
  17. 分数统计设计java程序_(windows综合程序)设计一个学生平时成绩统计软件 最后的Java作业...
  18. H5在苹果手机里唤起输入框后底部出现白条
  19. 50行Python代码,一键获取微博热点!
  20. 阿里云服务器漏洞phpmyadmin CVE-2016-6617 SQL注入漏洞 解决方法

热门文章

  1. 杰理之普通无线麦方案【篇】
  2. 怎么把pdf转换成excel表格?
  3. dsp EPWM模块总结
  4. Ubuntu16.04菜单栏出现两个输入法图标的解决办法
  5. LeetCode 787. K 站中转内最便宜的航班(图/Bellman Ford算法)
  6. 视频教程- Linux命令技巧及黑客防御实战-Linux
  7. 近万米展厅,压箱底的宝贝,雪浪大会最好玩的黑科技都在这了 | 倒计时1天
  8. centos 7.9中使用netstat工具
  9. MLX90614红外测温模块使用
  10. Adobe Acrobat Reader DC 离线安装包