cs229-1

article/2025/10/5 11:20:51

本文全部参考自https://blog.csdn.net/stdcoutzyx?type=blog,仅作学习使用

文章目录

    • 监督学习supervised learning
      • 线性回归
      • 局部加权回归LWR,Locally/Loess Weighted Regression
      • 最小二乘法的概率解释
      • 逻辑斯蒂回归logistic regression
      • 感知器算法
      • 牛顿方法NewTon's Method
      • 指数分布族
      • 广义线性模型Generalized Linear Model,GLM
      • 生成学习算法
      • 朴素贝叶斯Navie Bayes,NB

监督学习supervised learning

基于标记数据的学习

  • 回归问题regression:连续数据(房屋价格)
  • 分类问题classification:离散数据(肿瘤的恶性与否)

线性回归

  以房价为例,假设房价与房屋面积和卧室数目两种因素有关。

m:训练数据的大小
x:输入变量
y:输出变量

假设函数如下:
     h ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 = ∑ i = 1 2 θ i x i = h θ ( x ) h(x)=\theta _{0}+\theta_{1}x_{1}+\theta_{2}x_{2}=\sum_{i=1}^{2}\theta_{i}x_{i}=h_{\theta}(x) h(x)=θ0+θ1x1+θ2x2=i=12θixi=hθ(x)
将h(x)表示为以θ为参数的公式如下:
     h θ ( x ) = ∑ i = 0 n = θ T x h_{\theta}(x)=\sum_{i=0}^{n}=\theta^{T}x hθ(x)=i=0n=θTx
由此,可以定义要优化的函数:
     J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2} J(θ)=21i=1m(hθ(x(i))y(i))2
要找出使上述函数最小的参数值。

  • 使用梯度下降法求参数,更新规则如下:
         θ j : = θ j − α ∂ ∂ θ j J ( θ ) \theta_{j}:=\theta_{j}-\alpha\frac{\partial }{\partial\theta_{j}}J(\theta) θj:=θjαθjJ(θ)
    对函数求偏导:
    对函数求偏导
    将偏导结果代入到更新规则中,可以得到:
    更新规则
    上述方法针对的是只有一个训练实例的情况,被称为最小二乘法(LMS,least mean squares),也被称为Widrow-Hoff学习规则
    考虑m个实例,更新规则变成以下方式:
    更新规则
    运用上述规则直到收敛,就是批梯度下降法(batch gradient descent)

注:收敛判断规则:

  • 两次迭代后参数的变化
  • 两次迭代后目标函数的变化

只根据一个训练实例对θ进行更新直到收敛被称为随机梯度下降(stochastic gradient descent)

  • 参数学习算法:是一类有固定数目参数的用来进行数据拟合的算法(线性回归)
  • 非参数学习算法:是一类参数数目随数据集增大而变多(一般是线性增大)的算法(局部加权回归)

局部加权回归LWR,Locally/Loess Weighted Regression

是对线性回归的扩展,对于目标假设不是线性模型,用线性模型进行拟合效果很差。所以在预测一个点的值时,选择和这个点相近的点而不是全部的点做线性回归。

基于上述思想,就产生了局部加权回归算法,它的目标函数是加权的最小二乘
局部加权回归的目标函数
w ( i ) w_{(i)} w(i)是权值,作用是根据要预测的点与数据集中点的距离来为数据集中的点赋权值,当某点距离预测点较远时,权重较小,否则较大。

最小二乘法的概率解释

太难了,不看了QwQ

逻辑斯蒂回归logistic regression

对于目标值是离散变量的分类问题,应用线性模型有困难。

对于目标值是离散变量的二分类问题,假设目标值为{0,1},先改变模型使预测者在[0,1]之间,选择以下函数:
一个函数...
其中:
g(z)
函数g被称为logistic函数或者sigmoid函数。

对于一个实例,可以得到分类的概率值:
在这里插入图片描述
将上述两个公式组合起来,可以得到以下公式:
在这里插入图片描述
由此得到函数h在整个数据集上的似然函数:
在这里插入图片描述
为了计算方便,对似然函数去对数:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

多个样例的更新规则:
在这里插入图片描述

感知器算法

强迫函数输出值为{0,1}离散值而不是概率。

在这里插入图片描述

牛顿方法NewTon’s Method

与梯度下降方法一样,都是对解空间进行搜索的方法。

对于函数f(x),想要求函数值为0时x的值,

在这里插入图片描述
先随机选择一个点,求切线,延长至与x轴相交,以相交时x的值作为下一次迭代的值。更新规则如下:
在这里插入图片描述
将牛顿方法应用到机器学习中,优化目标函数(即极大似然估计L),当L取值最大时,即导数为0,可以得到更新规则如下:

在这里插入图片描述
上述是θ为实数的情况下,当参数为向量时,更新规则如下所示:
在这里插入图片描述
其中,H是一个n×n的矩阵,n为参数向量的长度,H为函数的二次导数矩阵,被称为Hessian矩阵。某个元素 H i j H_{ij} Hij计算公式如下所示:

在这里插入图片描述

  • 优点:相对于梯度下降方法收敛速度快,通常十几次迭代就可以收敛,也被称为二次收敛。
  • 缺点:当参数向量较大时,每次迭代都需要重新计算一次Hessian矩阵的逆,比较耗时。

指数分布族

是指可以表示为指数形式的概率分布。如下:
       P ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( η ) ) P(y;\eta )=b(y)exp(\eta^{T}T(y)-a(\eta)) P(y;η)=b(y)exp(ηTT(y)a(η))

  • η \eta η:分布的自然参数
  • T ( y ) T(y) T(y):充分统计量,通常 T ( y ) = y T(y)=y T(y)=y

a 、 b 、 T a、b、T abT都固定时,就定义了以 η \eta η为参数的函数族,大多数概率分布都可以表示成上述公式的形式。

  1. 伯努利分布:对0、1问题进行建模
  2. 多项式分布:对有K个离散结果的事件建模
  3. 泊松分布:对计数过程进行建模(网站访问量的计数问题;放射性衰变的数目;商店顾客数量等)
  4. 伽马分布与指数分布:对有间隔的正数进行建模(公交车的到站时间)
  5. β \beta β分布:对小数建模
  6. Dirichlet分布:对概率分布进行建模
  7. Wishart分布:协方差矩阵的分布
  8. 高斯分布(Gaussian):(省略证明过程。。。)

广义线性模型Generalized Linear Model,GLM

将指数分布族中所有成员都作为线性模型的扩展,通过各种非线性的连接函数将线性函数映射到其他空间从而大大扩展了线性模型可以解决的问题。
   后面的GLM举例的多项式分布证明过程看不太懂就省略了…

生成学习算法

  • 感知器算法和逻辑斯蒂回归算法都是在解空间中寻找一条直线从而把两种类别的样例分开,对于新的样例只需要判断在直线的哪一测即可,这种直接对问题求解的方法被称为判别学习方法discriminative learning algorithm
       是直接对p(y|x)进行建模或者直接学习输入空间到输出空间的映射关系,其中,x是某样例的特征,y是某类样例的分类标记
  • 生成学习算法:是对两个类别分别进行建模,用新的样例去匹配两个模型,匹配度较高的作为新样例的类别
       是对p(x|y)(条件概率)和p(y)(先验概率)进行建模,然后按照贝叶斯法则求出后验概率p(y|x): p ( y ∣ x ) = p ( x ∣ y ) p ( y ) p ( x ) p(y|x)=\frac{p(x|y)p(y)}{p(x)} p(yx)=p(x)p(xy)p(y),使得后验概率最大的类别y即是新样例的预测值

高斯判别分析(GDA)

是一种生成学习算法。

   假设p(x|y)属于多变量正态分布。多变量正态分布是正态分布在多维变量下的扩展,它的参数是一个均值向量 μ \mu μ和协方差矩阵 ∑ ϵ R n ∗ n \sum\epsilon R^{n*n} ϵRnn,多变量正态分布的概率密度函数为:
在这里插入图片描述 ∣ ∑ ∣ |\sum| 是行列式的值
对于服从多变量正态分布的随机变量x,均值由下面的公式得到:

在这里插入图片描述
协方差矩阵由协方差函数Cov得到:
C o v ( X ) = ∑ Cov(X)=\sum Cov(X)=

其中,cov的计算过程为:

在这里插入图片描述GDA模型针对输入特征为连续值时的分类问题。假设y服从伯努利分布,条件概率p(x|y)服从正态分布。

p ( y ) = φ y ( 1 − φ ) 1 − y p(y)=\varphi^{y}(1-\varphi)^{1-y} p(y)=φy(1φ)1y

p ( x ∣ y = 0 ) = 1 ( 2 π ) n / 2 ∣ ∑ ∣ 1 / 2 e x p ( − 1 2 ( x − μ 0 T ∑ − 1 ( x − μ 0 ) ) ) p(x|y=0)=\frac{1}{(2\pi)^{n/2}|\sum|^{1/2}}exp(-\frac{1}{2}(x-\mu_{0}^{T}\sum^{-1}(x-\mu_{0}))) p(xy=0)=(2π)n/21/21exp(21(xμ0T1(xμ0)))

p ( x ∣ y = 1 ) = 1 ( 2 π ) n / 2 ∣ ∑ ∣ 1 / 2 e x p ( − 1 2 ( x − μ 1 T ∑ − 1 ( x − μ 1 ) ) ) p(x|y=1)=\frac{1}{(2\pi)^{n/2}|\sum|^{1/2}}exp(-\frac{1}{2}(x-\mu_{1}^{T}\sum^{-1}(x-\mu_{1}))) p(xy=1)=(2π)n/21/21exp(21(xμ1T1(xμ1)))

数据集上的极大似然函数的对数:

在这里插入图片描述
对极大似然函数对数最大化,就得到了GDA模型各参数的极大似然估计。
在这里插入图片描述在这里插入图片描述

朴素贝叶斯Navie Bayes,NB

  • GDA针对的是特征向量x为连续值时的问题,朴素贝叶斯针对的是特征向量x为离散值时的问题。
  • NB算法应用于文本分类问题,例如邮件是否为垃圾邮件

朴素贝叶斯假设: x i x_{i} xi在给定 y y y的情况下是条件独立的。

## 无监督学习unsupervised learning
>数据没有被标注
>* 聚类
>…
## 加强学习reinforcement learning
>回报函数


http://chatgpt.dhexx.cn/article/im5FCLjv.shtml

相关文章

CS231n_learn

CS231n CS 程序:https://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html CS 课件http://cs231n.stanford.edu/slides/2017/: CS 课程首页:http://cs231n.stanford.edu/ CS 附带教程网页版:https://cs.stanford…

csp-202203

202203 题目一&#xff1a;未初始化警告【100分】题目二&#xff1a;出行计划【100分】题目三&#xff1a;计算资源调度器 【100分】 题目一&#xff1a;未初始化警告【100分】 简单数组操作题 #include<iostream> using namespace std; int n,k; bool ready[10000000]…

【CS231n系列】

Stanford-cs231n课程学习笔记&#xff08;一&#xff09; Stanford课程原版是英文&#xff0c;奈何本人英语菜的一批。原版网站放在下面&#xff0c;xdm可以多多学习。BUT&#xff01; B站up<同济子豪兄>yyds好吧&#xff01;&#xff01;&#xff01; Stanford231n 文章…

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

向AI转型的程序员都关注了这个号&#x1f447;&#x1f447;&#x1f447; 机器学习AI算法工程 公众号&#xff1a; datayx 作为全球计算机四大名校之一&#xff0c;斯坦福大学的CS230《深度学习》课程一直受到全球计算机学子和从业人员的热烈欢迎。 CS230授课人为全球著名计算…

CS230学习笔记(一)

CS230学习笔记(一) 1.前言 ok&#xff0c;前思后想&#xff0c;左思右想&#xff0c;我还是觉得自己得督促一下自己&#xff0c;所以&#xff0c;我觉得开始更新cs230的笔记&#xff0c;当然&#xff0c;我前面的六篇pytorch学习笔记我是不会放着不管的&#xff0c;后面肯定会…

目标检测(CS230)

内容来自CS230课程。 目录 目标定位&#xff08;Object localization&#xff09; 特征点检测&#xff08;Landmark detection&#xff09; 基于滑动窗口的目标检测算法 滑动窗口的卷积实现 &#xff08;Convolutional implementation of sliding windows&#xff09; 网络中的…

PHP配置环境变量

1.找到“高级系统设置”&#xff08;二选一的方法找到环境变量&#xff09; ① 我的电脑-属性-高级-环境变量 ②win8,10 直接在搜索框搜 “查看高级系统设置”-环境变量 2.找到变量"Path" ①加上 “E:\phpStudy\PHPTutorial\php\php-7.0.12-nts” &#xff08;php.e…

PHPstudy 设置PHP为环境变量

1.首先启动phpstudy点击‘切换版本’查看当前使用环境的php版本 2.在右键点击桌面的phpstudy图标进入文件夹位置 2.点击PHPTutorial->PHP 3.点击你的开发版本的php文件&#xff0c;我们会看到php.exe文件&#xff0c;复制当前文件位置路径 4.右键点击计算机或者我的电脑选择…

windows环境下设置多个PHP版本的环境变量

windows环境下设置多个PHP版本的环境变量 所在位置修改系统变量修改用户变量重启电脑 所在位置 我的电脑->属性->高级系统设置->高级->环境变量 根据图示&#xff0c;找到相应的变量 修改系统变量 环境变量->系统变量->Path 系统变量&#xff1a;把两个…

windows10的PHP环境变量

win10 环境变量配置 如何在命令行运行php文件 1.配置环境变量 2.进入php所在路径 然后输入 php 文件路径/文件名 即可 参考文献&#xff1a; https://blog.csdn.net/QQ2542920524/article/details/78692116

Windows环境下,PHPStudy设置环境变量

win7系统设置环境变量 1、选中计算机&#xff0c;点击 鼠标右键&#xff0c;选择属性 2、选择高级系统设置&#xff0c;打开&#xff0c;打开后选择高级&#xff0c;然后就能看到环境变量 3、打开环境变量&#xff0c;查找Path &#xff0c;选中path&#xff0c;再点击编辑即可…

【PHP】配置环境变量,查看php版本(保姆级图文)

目录 配置环境变量找到php所在的目录&#xff08;有一个php.exe文件&#xff09;环境变量path中添加重启电脑&#xff08;可选&#xff09; 查看php版本&#xff08;检测是否成功配置了php&#xff09;总结 『PHP』分享PHP环境配置到项目实战个人学习笔记。 欢迎关注 『PHP』 系…

windows中设置php环境变量

1.我的电脑-》右键&#xff08;选择我的属性&#xff09; 2.点击高级设置 3.点击环境变量 4.在系统变量中找到Path 点击 5.找到php.exe的文件目录&#xff0c;添加到path中 6.php -v 显示版本&#xff0c;表示成功

Linux有多个php版本的时候指定php版本设置环境变量

最近在安装swoole的时候老是出错&#xff0c;安装完成以后再php-m中能看到swoole扩展已经开启&#xff0c;而在 phpinfo中却看不到。查看了下php.ini的位置发现这两个指向的路径不同。查看了下安装的php有两个版本&#xff0c;一个是自带的在/usr/bin/php&#xff0c;一个是自己…

windows设置php环境变量

1、找到要设置的php版本路径,然后进行复制 2、添加环境变量&#xff08;控制面板->高级系统设置->环境变量->最上方的李硕的系统变量Path->新增两条php路径即可&#xff09; 3、打开cmd输入php-v 即可查看添加的php版本信息 最后问题没有解决的话&#xff0c;或者有…

配置windows系统中 PHP的环境变量

1&#xff0e; 首先到php官网下载php-5.3.6-nts-Win32-VC9-x86.ZIP 解压到电脑硬盘。将文件解压到文件夹php5.3.6 下载地址&#xff1a;http://www.php.net/downloads.php 2&#xff0e; 将解压后的php5.3.6文件夹放到E:\Program Files文件夹下面 3&#xff0e; php目录下的“p…

w11 php 环境变量

PHP 安装 解压完成后 进入目录 php -v 得到版本号就OK&#xff0c;配置环境变量 安装composer 全部下一步就可以了 命令行中 composer 出现composer版本号安装没问题&#xff0c;如果没有从新找下 加入到环境变量中&#xff0c;如果还不行&#xff0c;就重新安装 更新 co…

Windows 系统配置 PHP 环境变量(PhpStudy集成环境)

打开系统的【高级系统设置】&#xff0c;点击【环境变量】。 选择【系统变量】中的【Path】&#xff0c;点击编辑。 点击【新建】&#xff0c;填入当前 PHP 版本 php.exe 所在目录&#xff0c;点击确定。 验证有效性 打开命令行窗口&#xff0c;输入 php -v 查看。 出现 PHP 的…

windows下设置PHP环境变量

# 安装php # 扩展 mysql 、gd、sockets &#xff08;我的是已安装好的wamp&#xff09; #在php目录下的、打开php.ini 去掉下面注释&#xff08;前面的分号&#xff09; ; On windows: ; extension_dir "ext" #添加环境变量 win7为:右击计算机-属性-高级系统设…

为php设置系统变量、环境变量

看到这个标题&#xff0c;有两个疑问&#xff0c;是给php.exe设置系统环境变量&#xff0c;还是给编程语言设置可直接调用环境变量&#xff0c;说到这里有的人可能晕了&#xff0c;因为我们常见到的都是第一种&#xff0c;相当于给某个命令设置快捷键&#xff0c;不用进到安装该…