机器学习数学语言(7.28作业)

2024-01-03 13:59

本文主要是介绍机器学习数学语言(7.28作业),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.累加累乘与积分

  1. 将向量下标为偶数的分量累加, 写出相应表达式.
    ∑ i m o d 2 = 0 x i \sum_{i \mod 2=0} x_i imod2=0xi
  2. 各出一道累加、累乘、积分表达式的习题, 并给出标准答案.
    ①将矩阵中大于等于1的分量平方并累加:
    ∑ x i j ≥ 1 x i j 2 \sum_{x_{ij}≥1}x_{ij}^2 xij1xij2
    ②将矩阵中不为0的分量累乘:
    ∏ x i j ≠ 0 x i j \prod_{x_{ij}≠0}x_{ij} xij=0xij
    ③函数 x 3 − x + 2 x^3-x+2 x3x+2在0到1上积分:
    ∫ 0 1 x 3 − x + 2 d x \int_{0}^{1}x^3-x+2 \mathrm{d}x 01x3x+2dx
  3. 你使用过三重累加吗? 描述一下其应用.
    在代码中三重循环算时间复杂度时会用到三重累加: ∑ i = 1 n ∑ j = 1 i ∑ k = 1 j 1 \sum_{i=1}^n\sum_{j=1}^i\sum_{k=1}^j 1 i=1nj=1ik=1j1
  4. 给一个常用的定积分, 将手算结果与程序结果对比.
    定积分: ∫ 0 1 x 2 + 1 d x \int_{0}^{1}x^2+1 \mathrm{d}x 01x2+1dx
    手算结果: 4 3 = 1.33333... \frac{4}{3}=1.33333... 34=1.33333...
    程序结果: 1.32835 1.32835 1.32835
    在这里插入图片描述

2.线性回归

  1. 如何获得 w \mathbf{w} w?
    推导过程:
    ∥ X w − Y ∥ 2 2 = ( X w − Y ) T ( X w − Y ) = ( w T X T − Y T ) ( X w − Y ) = w T X T X w − w T X T Y − Y T X w + Y T Y \begin{aligned} \|\mathbf{Xw}-\mathbf{Y}\|_2^{2} & =(\mathbf{Xw}-\mathbf{Y})^\mathrm{T}(\mathbf{Xw}-\mathbf{Y}) \\ & =(\mathbf{w}^\mathrm{T}\mathbf{X}^\mathrm{T}-\mathbf{Y}^\mathrm{T})(\mathbf{Xw}-\mathbf{Y}) \\ & =\mathbf{w}^\mathrm{T}\mathbf{X}^\mathrm{T}\mathbf{Xw}-\mathbf{w}^\mathrm{T}\mathbf{X}^\mathrm{T}\mathbf{Y}- \mathbf{Y}^\mathrm{T}\mathbf{Xw}+\mathbf{Y}^\mathrm{T}\mathbf{Y} \end{aligned} XwY22=(XwY)T(XwY)=(wTXTYT)(XwY)=wTXTXwwTXTYYTXw+YTY
    将该式关于 w \mathbf{w} w求导 (使用向量求导法则) 并令其为 0, 可得
    X T X w − X T Y = 0 \mathbf{X}^{\mathrm{T}}\mathbf{X} \mathbf{w} - \mathbf{X}^{\mathrm{T}}\mathbf{Y} = 0 XTXwXTY=0
    最后
    w = ( X T X ) − 1 X T Y \mathbf{w} = (\mathbf{X}^{\mathrm{T}}\mathbf{X})^{-1}\mathbf{X}^{\mathrm{T}}\mathbf{Y} w=(XTX)1XTY
    岭回归:
    arg min ⁡ w = ∥ X w − Y ∥ 2 2 − λ ∥ w ∥ 2 2 \argmin_{\mathbf{w}}=\|\mathbf{Xw}-\mathbf{Y}\|_2^2-λ\|\mathbf{w}\|_2^2 wargmin=XwY22λw22
    可推导出
    X T X w − X T Y + λ w = 0 \mathbf{X}^{\mathrm{T}}\mathbf{X} \mathbf{w} - \mathbf{X}^{\mathrm{T}}\mathbf{Y} + \lambda \mathbf{w} = 0 XTXwXTY+λw=0
    最后
    w = ( X T X + λ I ) − 1 X T Y \mathbf{w} = (\mathbf{X}^{\mathrm{T}}\mathbf{X} + \lambda \mathbf{I})^{-1}\mathbf{X}^{\mathrm{T}}\mathbf{Y} w=(XTX+λI)1XTY

  2. 自己写一个小例子 ( n = 3 , m = 1 ) (n=3, m = 1) (n=3,m=1) 来验证最小二乘法.
    令函数 y = 2 x + 1 y=2x+1 y=2x+1, x x x取值5, 6, 7, y ^ \hat y y^取值10, 13, 14.
    y ^ = a x + b \hat y=ax+b y^=ax+b, 用最小二乘法求 a , b a,b a,b :
    a = ∑ i = 1 3 x i y ^ i − 3 x ‾ y ‾ ∑ i = 1 3 x i 2 − 3 x ‾ 2 = 2.028 a=\frac{\sum_{i=1}^3x_i\hat y_i-3\overline{x}\overline{y}}{\sum_{i=1}^3x_i^2-3\overline x^2}=2.028 a=i=13xi23x2i=13xiy^i3xy=2.028
    b = y ‾ − a x ‾ = 0.132 b=\overline{y}-a\overline{x}=0.132 b=yax=0.132

3.推导, 并描述这个方法的特点 (不少于 5 条).

arg max ⁡ w L ( x ) = ∏ i = 1 n P ( y i ∣ x i ; w ) \argmax_\mathbf{w} L(x)=\prod_{i=1}^nP(y_i|\mathbf{x}_i; \mathbf{w}) wargmaxL(x)=i=1nP(yixi;w)

  • 相乘计算困难, 将其求一个对数, 不改变单调性
    log ⁡ L ( w ) = ∑ i = 1 n log ⁡ P ( y i ∣ x i ; w ) = ∑ i = 1 n y i log ⁡ P ( y i = 1 ∣ x i ; w ) + ( 1 − y i ) log ⁡ ( 1 − P ( y i = 1 ∣ x i ; w ) ) = ∑ i = 1 n y i log ⁡ P ( y i = 1 ∣ x i ; w ) 1 − P ( y i = 1 ∣ x i ; w ) + log ⁡ ( 1 − P ( y i = 1 ∣ x i ; w ) ) = ∑ i = 1 n y i x i w − log ⁡ ( 1 + e x i w ) \begin{aligned}\log L(\mathbf{w}) & = \sum_{i = 1}^n \log P(y_i \vert \mathbf{x}i; \mathbf{w}) \\ & = \sum_{i = 1}^n y_i \log P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}) + (1 - y_i) \log(1 - P(y_i = 1 \vert \mathbf{x}i; \mathbf{w})) \\ & = \sum_{i = 1}^n y_i \log \frac{P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})}{1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})} + \log (1 - P(y_i = 1 \vert \mathbf{x}i; \mathbf{w})) \\ & = \sum_{i = 1}^n y_i \mathbf{x}_i \mathbf{w} - \log (1 + e^{\mathbf{x}_i \mathbf{w}}) \end{aligned} logL(w)=i=1nlogP(yixi;w)=i=1nyilogP(yi=1xi;w)+(1yi)log(1P(yi=1xi;w))=i=1nyilog1P(yi=1xi;w)P(yi=1xi;w)+log(1P(yi=1xi;w))=i=1nyixiwlog(1+exiw)
  • w \mathbf{w} w 求偏导
    ∂ log ⁡ L ( w ) ∂ w = ∑ i = 1 n y i x i − e x i w 1 + e x i w x i = ∑ i = 1 n ( y i − e x i w 1 + e x i w ) x i \begin{aligned} \frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} & = \sum_{i = 1}^n y_i \mathbf{x}_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}} \mathbf{x}_i \\ & = \sum_{i = 1}^n \left(y_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}}\right) \mathbf{x}_i \end{aligned} wlogL(w)=i=1nyixi1+exiwexiwxi=i=1n(yi1+exiwexiw)xi
  • 令该偏导为 0, 无法获得解析式, 因此用梯度下降.
    w t + 1 = w t − α ∂ log ⁡ L ( w ) ∂ w \mathbf{w}^{t+1}=\mathbf{w}^{t}-\alpha\frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} wt+1=wtαwlogL(w)
  1. sigmoid函数更符合分类问题;
  2. 将累乘变换为累加;
  3. 输出为概率形式;
  4. sigmoid函数任意阶可导;
  5. 特征离散化,增加泛化能力.

这篇关于机器学习数学语言(7.28作业)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/565931

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整