首页 > 其他分享 >白话机器学习笔记(一)学习回归

白话机器学习笔记(一)学习回归

时间:2023-07-19 19:11:44浏览次数:32  
标签:partial limits 白话 sum 笔记 学习 eta theta 表达式

最小二乘法

定义模型

表达式:\(f_\theta(x)=\theta_0+\theta_1x\)

(常用\(\theta\)表示未知数、\(f_\theta(x)\)表示含有参数\(\theta\)并且和变量\(x\)相关的函数)

目标函数

假设有\(n\)个训练数据,那么它们的误差之和可以这样表示,这个表达式称为目标函数。

\(E(\theta)=\frac12\sum\limits_{i=1}^n(y^{(i)}-f_\theta(x^{(i)}))^2\) (\(x^{(i)}和y^{(i)}\)指第\(i\)个训练数据)

找到使\(E(\theta)\)值最小的\(\theta\),这样的问题称为最优化问题。

为了避免正负数混合运算所以计算平方,\(\frac12\)是为了让表达式值更简单随便加的常数。

设\(\theta_0=1、\theta_1=3\),将四个训练数据带入表达式求误差如下:

image-20230716172903351

修改参数\(\theta\)的值,让误差变小的做法称为最小二乘法。

最速下降法

比如表达式\(g(x)=(x-1)^2\),它的最小值\(g(x)=0\)出现在\(x=1\)时。

图像如下:

image-20230716173534768

\(g(x)\)展开有\((x-1)^2=x^2-2x+1\)

微分有:\(\frac{d}{dx}g(x)=2x-2\)

为了让\(g(x)\)的值变小,要让\(x\)向1移动,可以根据导数符号决定\(x\)的移动方向,只要向着导数符号相反的方向移动\(x\),\(g(x)\)就会向着最小值移动。

由此得到表达式

\(x:=x-\eta\frac{d}{dx}g(x)\) 称为最速下降法或梯度下降法。

(A:=B,意思通过B来定义A,上面表达式指用上一个x来定义新的x)

\(\eta\)是称为学习率的正常数,大小会影响达到最小值的更新次数,太大会导致来回跳跃无法收敛,一直发散状态。

对于目标函数,\(E(\theta)=\frac12\sum\limits_{i=1}^n(y^{(i)}-f_\theta(x^{(i)}))^2\) 有两个参数,要用偏微分。

(\(f_\theta(x)=\theta_0+\theta_1x\))

更新表达式如下:

\(\theta_0:=\theta_0-\eta\frac{\partial E}{\partial\theta_0}\)

\(\theta_1:=\theta_1-\eta\frac{\partial E}{\partial\theta_1}\)

\(\frac{\partial E}{\partial\theta_0}=\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})\)

\(\frac{\partial E}{\partial\theta_1}=\frac{\partial E}{\partial\theta_0}=\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x^{(i)}\)

所以得到参数\(\theta_1和\theta_2\)的更新表达式如下:

\(\theta_0:=\theta_0-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})\)

\(\theta_1:=\theta_1-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x^{(i)}\)

多项式回归

image-20230716181244868

曲线比直线更容易拟合数据

把\(f_\theta(x)\)定义为二次函数:

\(f_\theta(x)=\theta_0+\theta_1x+\theta_2x^2\)

或者更大次数的表达式:

\(f_\theta(x)=\theta_0+\theta_1x+\theta_2x^2+...+\theta_nx^n\)

如\(f_\theta(x)=\theta_0+\theta_1x+\theta_2x^2\)

得到更新表达式为:

\(\theta_0:=\theta_0-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})\)

\(\theta_1:=\theta_1-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x^{(i)}\)

\(\theta_2:=\theta_2-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x^{(i)^2}\)

这种增加函数中多项式的次数,再使用函数的分析方法被称为多项式回归。

多重回归

问题:基于广告费预测点击率

考虑广告版面的大小,设 广告费为 \(x_1\)、广告栏的宽为 \(x_2\)、广告栏的高为\(x_3\)

\(f_\theta\)可以表示如下:

\(f_\theta(x_1,x_2,x_3)=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3\)

简化表达式,将\(\theta和x\)看成向量

\(\boldsymbol{\theta}=\begin{bmatrix} \theta_0\\\theta_1\\\theta_2\\\vdots\\\theta_n \end{bmatrix}\) \(\boldsymbol{x}=\begin{bmatrix}x_0\\x_1\\x_2\\\vdots\\x_n \end{bmatrix}\) (\(x_0=1\))

\(\boldsymbol{\theta}^T\boldsymbol{x}=\theta_0x_0+\theta_1x_1+...+\theta_nx_n\)

\(E(\theta)=\frac12\sum\limits_{i=1}^n(f_\theta(x^{(i)}-y^{(i)}))^2\)

\(\frac{\partial E}{\partial\theta_j}=\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x_j^{(i)}\)

\(\theta_j:=\theta_j-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x_j^{(i)}\)

像这样包含多个变量的回归称为多重回归

随机梯度下降法

最速下降法容易陷入局部最优解

image-20230719104549825

最速下降法更新表达式:\(\theta_j:=\theta_j-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x_j^{(i)}\)

随机梯度下降法中会随机选择一个训练数据,并使用它来更新参数。这个表达式中的\(k\)就是被随机选中的数据索引。

随机梯度下降法更新表达式:\(\theta_j:=\theta_j-\eta(f_\theta(x^{(k)})-y^{(k)})x_j^{(k)}\)

最速下降法更新1次参数的时间,随机梯度下降法可以更新n次,这样不容易陷入局部最优解。

小批量梯度下降法

设训练数据索引的集合为\(K\),还可以随机选择m个训练数据来更新参数。

小批量梯度下降法更新表达式:\(\theta_j:=\theta_j-\eta\sum\limits_{k\in K}(f_\theta(x^{(k)})-y^{(k)})x_j^{(k)}\)

标签:partial,limits,白话,sum,笔记,学习,eta,theta,表达式
From: https://www.cnblogs.com/dongdong25800/p/17566504.html

相关文章

  • 白话机器学习笔记(三)评估模型
    模型评估在进行回归和分类时,为了进行预测,我们定义了函数\(f_\theta(x)\),然后根据训练数据求出了函数的参数\(\theta\)。如何预测函数\(f_\theta(x)\)的精度?看它能否很好的拟合训练数据?我们需要能够定量的表示机器学习模型的精度,这就是模型的评估。交叉验证回归问题的验证把......
  • 箱型图读取python.csv,nosql.csv,机器学习.csv,数据预处理.csv四门成绩的数据
    箱型图在数据分析中的应用箱型图(Boxplot),也称为盒须图、盒式图,是一种常用的数据可视化方法,用于展示一组数据的分布情况。箱型图主要包含了数据的五个统计量:最小值、下四分位数(Q1)、中位数(Q2)、上四分位数(Q3)和最大值。通过箱型图,我们可以直观地了解数据的中心位置、离散程度、异常值......
  • KMP算法笔记
    1.概念解析前置:将原串称之为文本串,匹配串称之为模式串。KMP的实质其实就是:利用已经匹配的信息,来加速查找的过程。对于暴力解法而言,当我进行模式串匹配时,遇到一个不匹配的字符,那么只能一步一步往下滑动,然后重新匹配。但是对于KMP算法而言,利用到了前缀子......
  • 异常处理学习
    在学习DWARFExpression这个概念的时候,我们需要知道异常处理、栈展开等概念异常处理所谓的异常就是在应用程序正常执行过程中的发生的不正常的事件,如溢出,除数为0等不正常程序的之星,就会引发异常。由CPU引发,而不是程序员自己定义的异常叫做硬件异常,例如用指针指向一个非法地址,就......
  • 7.17-软件指令学习
      ......
  • 【学习记录】2023年暑期ACM训练
    学习记录7月16日集训正式开始前一天,搬东西到了机房,在我的老古董笔记本上配置好了环境。这半个月来基本没有写代码,目前非常生疏。晚上在VJudge上拉了个热身赛,做了些简单的签到题,稍微找回了些手感。有一道计算几何的题目有思路,但是卡在了代码实现上,毕竟还没有系统学过。7月17日&......
  • 【安全学习之路】Day35
    ......
  • Java学习day05~06: 面向对象
    我在B站上大学......
  • html 学习 day3 css 的层叠 父子size 的继承
    今天遇到一个问题,css的父子继承关系在一种case下不生效。:子节点无法继承父节点的 width和height的设定下面代码的原始版本img无法继承div的宽和高的设定。当 img的css设定为:img{height:100%;width:100%;margin-right:1......
  • Web前端学习笔记
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metaname="viewport"content="width=device-width,initial-scale=1.0">  <title>welcometomyworld</ti......