当前位置: 代码网 > 科技>人工智能>机器学习 > 线性神经网络

线性神经网络

2024年07月31日 机器学习 我要评论
线性回归、Logistic回归、Softmax回归的基础知识与代码实现。

1. 线性回归 linear regression

回归(regression)是能为一个或多个自变量与因变量之间关系建模的一类方法。 在自然科学和社会科学领域,回归经常用来表示输入和输出之间的关系。

线性回归是指:目标可以表示为特征的加权和,即 y = w 1 x 1 + w 2 x 2 + b y = w_1 x_1 + w_2 x_2 + b y=w1x1+w2x2+b 。其中 w 1 , w 2 w_1 , w_2 w1,w2 称为权重(weight), b b b 称为偏置(bias)。

在这里插入图片描述

给定一个数据集,我们的目标是寻找模型的权重 w w w和偏置项 b b b,使得模型做出的预测更加贴近于真实值(误差尽可能小)。

在机器学习领域,我们通常使用的是高维数据集。当输入包含 d d d个特征时,我们将预测结果 y ^ \widehat{y} y 表示为: y ^ = w 1 x 1 + w 2 x 2 + . . . + w d x d + b = x w + b \widehat{y} = w_1 x_1 + w_2 x_2 + ... + w_dx_d + b = \pmb{xw} + b y =w1x1+w2x2+...+wdxd+b=xwxw+b

我们用 损失函数(loss function)来量化目标的预测值与真实值之间的差距。我们经常用平方误差函数来作为损失函数,当样本 i i i的预测值为 y ^ ( i ) \widehat{y}^{(i)} y (i) ,相应的真实标签为 y ( i ) y^{(i)} y(i) 时,平方误差可以定义为:
l ( i ) ( w , b ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 l^{(i)}(w,b)=\frac{1}{2}(\widehat{y}^{(i)} - y^{(i)})^2 l(i)(w,b)=21(y (i)y(i))2
为了度量模型在整个数据集上的质量,我们需要计算在训练集 n n n个样本上的损失均值:
l ( w , b ) = 1 n ∑ i = 1 n 1 2 ( y ^ ( i ) − y ( i ) ) 2 l(w,b) = \frac{1}{n} \sum\limits^n_{i=1} \frac{1}{2}(\widehat{y}^{(i)} - y^{(i)})^2 l(w,b)=n1i=1n21(y (i)y(i))2
在训练模型时,我们希望找到一组参数 ( w ∗ , b ∗ ) (w^*,b^*) (w,b) ,这组参数能够最小化所有训练样本上的总损失,即 w ∗ , b ∗ = a r g min ⁡ w , b l ( w , b ) w^*, b^* = arg \min\limits_{w,b} l(w,b) w,b=argw,bminl(w,b) 。求解方法:梯度下降法。



2. 梯度下降法 gradient descent

梯度下降法的基本思想可以类比为一个下山的过程,需要从山上下来,找到山的最低点。但此时山上的浓雾很大,导致可视度很低;因此,下山的路径就无法确定,必须利用自己周围的信息一步一步地找到下山的路。这个时候,便可利用梯度下降算法来帮助自己下山。怎么做呢,首先以他当前的所处的位置为基准,寻找这个位置最陡峭(梯度)的地方,然后朝着下降方向走一步,然后又继续以当前位置为基准,再找最陡峭的地方,再走直到最后到达最低处;同理上山也是如此,只是这时候就变成梯度上升算法了。
在这里插入图片描述


计算公式可以表示为:

在这里插入图片描述


在这里插入图片描述
其中, ▽ l ( θ ) \triangledown l(\theta) l(θ) 表示梯度, η \eta η 为学习率或步长,用来控制每一步走的距离。梯度前面加一个负号,意味着朝着梯度相反的方向前进,即朝着下降最快的方向走。



3. logistic回归

简单来说, 逻辑回归(logistic regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。 注意,这里用的是“可能性”,而非数学上的“概率”,logisitc回归的结果并非数学定义中的概率值,不可以直接当做概率值来用。该结果往往用于和其他特征值加权求和,而非直接相乘。

那么逻辑回归与线性回归是什么关系呢?

逻辑回归(logistic regression)与线性回归(linear regression)都是一种广义线性模型(generalized linear model)。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从高斯分布。 因此与线性回归有很多相同之处,去除sigmoid映射函数的话,逻辑回归算法就是一个线性回归。可以说,逻辑回归通过sigmoid函数引入了非线性因素,将线性回归中的预测值转换为了概率,因此可以轻松处理0/1分类问题。

假设函数 hypothesis function

首先先介绍一下sigmoid函数,sigmoid函数的公式为:
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1
其函数图像如下:
在这里插入图片描述
从上图可以看到sigmoid函数是一个s形的曲线,它的取值在[0, 1]之间,在远离0的地方函数的值会很快接近0或者1。它的这个特性对于解决二分类问题十分重要。


逻辑回归的假设函数形式如下:
h θ ( x ) = g ( θ t x ) = 1 1 + e − θ t x h_{\theta}(x) = g(\theta^tx) = \frac{1}{1 + e^{-\theta ^tx}} hθ(x)=g(θtx)=1+eθtx1
其中, x x x 是我们的输入, θ \theta θ 是我们要求的参数, g ( ⋅ ) g(\cdot) g() 称为激活函数。

一个机器学习的模型,实际上是把决策函数限定在某一组条件下,这组限定条件就决定了模型的假设空间。而逻辑回归模型所做的假设是:
p ( y = 1 ∣ x ; θ ) = g ( θ t x ) = 1 1 + e − θ t x p(y=1 | x;\theta) = g(\theta^tx) = \frac{1}{1 + e^{-\theta ^tx}} p(y=1∣x;θ)=g(θtx)=1+eθtx1
这个函数的意思是在给定 x x x θ \theta θ 的条件下 y = 1 y=1 y=1 的概率。与之对应的决策函数为 y ∗ = 1 , i f p ( y = 1 ∣ x ) > 0.5 y^*=1 , if p(y=1|x)>0.5 y=1,ifp(y=1∣x)>0.5 。选择0.5作为阈值是一个一般的做法,实际应用时特定的情况可以选择不同阈值,如果对正例的判别准确性要求高,可以选择阈值大一些,对正例的召回要求高,则可以选择阈值小一些。

决策边界

决策边界,也称为决策面,是用于在n维空间,将不同类别样本分开的平面或曲面。

线性决策边界非线性决策边界

决策边界其实就是一个方程,在逻辑回归中,决策边界由 θ t x = 0 \theta ^tx=0 θtx=0 定义。

损失函数

训练参数的过程其实就是不断改变 θ \theta θ,从而使损失函数 l ( θ ) l(\theta) l(θ) 的值更小的过程,即 θ = a r g min ⁡ θ l ( θ ) \theta = arg\min\limits_\theta l(\theta) θ=argθminl(θ)

  • 在线性回归中,常用均方误差(mean squared error, mse)作为损失函数。(m为样本数量) l ( θ ) = 1 2 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 l(\theta) = \frac{1}{2m} \sum\limits^m_{i=1} (\widehat{y}^{(i)} - y^{(i)})^2 l(θ)=2m1i=1m(y (i)y(i))2
  • 在逻辑回归中,常采用交叉熵(cross entropy)作为损失函数。(n表示分类问题中的n种类别)
    l ( θ ) = − ∑ i = 1 n y i l o g ( y ^ i ) l(\theta) = - \sum\limits^n_{i=1} y_ilog(\widehat{y}_i) l(θ)=i=1nyilog(y i)

4. softmax回归

softmax回归(softmax regression)其实是logistic回归的一般形式,logistic回归用于二分类,而softmax回归用于多分类。

对于输入数据 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } \{(x_1,y_1), (x_2,y_2),...,(x_m,y_m) \} {(x1,y1),(x2,y2),...,(xm,ym)} k k k 个类别,即 y i ∈ { 1 , 2 , . . . , k } y_i \in \{1,2,...,k\} yi{1,2,...,k} ,那么 softmax回归主要估算输入数据 x i x_i xi 归属于哪一类。

假设函数 hypothesis function

为了估计所有可能类别的条件概率,我们需要一个有多个输出的模型,每个输出对应属于某一类别的概率。在下面的例子中,该样本具有4个特征 ( x 1 , x 2 , x 3 , x 4 ) (x_1, x_2, x_3, x_4) (x1,x2,x3,x4) ,对应3个可能的输出类别(猫、狗、鸡),计算该样本属于每一类别的为规范化的预测 o 1 , o 2 , o 3 o_1, o_2, o_3 o1,o2,o3
在这里插入图片描述

o 1 = x 1 w 11 + x 2 w 12 + x 3 w 13 + x 4 w 14 + b 1 = θ 1 t x 1 o 2 = x 1 w 21 + x 2 w 22 + x 3 w 23 + x 4 w 24 + b 2 = θ 2 t x 2 o 3 = x 1 w 31 + x 2 w 32 + x 3 w 33 + x 4 w 34 + b 3 = θ 3 t x 3 o_1 = x_1w_{11} + x_2w_{12} + x_3w_{13} + x_4w_{14} + b_1 = \theta^t_1 x_1 \\ o_2 = x_1w_{21} + x_2w_{22} + x_3w_{23} + x_4w_{24} + b_2 = \theta^t_2 x_2 \\ o_3 = x_1w_{31} + x_2w_{32} + x_3w_{33} + x_4w_{34} + b_3 = \theta^t_3 x_3 o1=x1w11+x2w12+x3w13+x4w14+b1=θ1tx1o2=x1w21+x2w22+x3w23+x4w24+b2=θ2tx2o3=x1w31+x2w32+x3w33+x4w34+b3=θ3tx3

而 softmax函数的作用就是:将多个神经元的输出(比如 o 1 , o 2 , o 3 o_1, o_2, o_3 o1,o2,o3)映射到 (0,1) 区间内,且和为1,可以理解为属于某一类别的概率,从而来进行多分类。

softmax回归将输入数据 x i x_i xi 归属于类别 j j j 的概率为:
y ^ ( j ) = p ( y i = j ∣ x i ; θ ) = e o j ∑ l = 1 k e o l = e θ j t x i ∑ l = 1 k e θ l t x i \widehat{y}^{(j)} = p(y_i = j | x_i;\theta) = \frac{e^{o_j}}{\sum\limits^k_{l=1}e^{o_l}} = \frac{e^{\theta^t_j x_i}}{\sum\limits^k_{l=1}e^{\theta^t_l x_i}} y (j)=p(yi=jxi;θ)=l=1keoleoj=l=1keθltxieθjtxi

损失函数

softmax函数给出了一个向量 y ^ \widehat{y} y ,我们可以将其视为“对给定任意输入的 x x x属于每个类的条件概率”。对于softmax回归,我们仍采用交叉熵(cross entropy)作为损失函数。当样本 i i i的预测值为 y ^ ( i ) \widehat{y}^{(i)} y (i) ,相应的真实标签为 y ( i ) y^{(i)} y(i) 时,交叉熵损失可以定义为:
l ( i ) ( y , y ^ ) = − ∑ j = 1 k y j l o g y ^ j l^{(i)}(y, \widehat{y}) = -\sum\limits^k_{j=1} y_j log\widehat{y}_j l(i)(y,y )=j=1kyjlogy j其中, y y y 是一个长度为 q q q 的独热编码(只有1位是1,其余的位都是0),所以在这个损失函数中,除了一个项以外的其余项 j j j都消失了。 相当于是只取出来 y ^ \widehat{y} y 中真实类别对应的概率值来作 l o g log log

为了度量模型在整个数据集上的质量,我们需要计算在训练集 n n n个样本上的损失均值:
l ( θ ) = − 1 n [ ∑ i = 1 n ∑ j = 1 k 1 { y i = j } l o g e θ j t x i ∑ l = 1 k e θ l t x i ] l(\theta) = -\frac{1}{n} \begin{bmatrix} \sum\limits^n_{i=1} \sum\limits^k_{j=1} 1\{y_i=j\}log\frac{e^{\theta^t_j x_i}}{\sum\limits^k_{l=1}e^{\theta^t_l x_i}} \end{bmatrix} l(θ)=n1[i=1nj=1k1{yi=j}logl=1keθltxieθjtxi]其中, 1 { ⋅ } 1\{\cdot\} 1{} 为示性函数,即 1{值为真的表达式}=11{值为假的表达式}=0

利用梯度下降法来最小化代价函数,下面求解 θ \theta θ 的梯度:

在这里插入图片描述

正则化

当训练数据不够多的时候,容易出现过拟合现象(),拟合系数往往非常大,为此在损失函数后面加上一个正则项,即:
l ( θ ) = − 1 n [ ∑ i = 1 n ∑ j = 1 k 1 { y i = j } l o g e θ j t x i ∑ l = 1 k e θ l t x i ] + λ ∑ i = 1 k ∑ j = 1 n θ i j 2 l(\theta) = -\frac{1}{n} \begin{bmatrix} \sum\limits^n_{i=1} \sum\limits^k_{j=1} 1\{y_i=j\}log\frac{e^{\theta^t_j x_i}}{\sum\limits^k_{l=1}e^{\theta^t_l x_i}} \end{bmatrix} + \lambda \sum\limits^k_{i=1} \sum\limits^n_{j=1} \theta^2_{ij} l(θ)=n1[i=1nj=1k1{yi=j}logl=1keθltxieθjtxi]+λi=1kj=1nθij2
这里还不太明白,弄明白了再继续补充。




参考
[1] 李沐-动手学深度学习
[2] 李宏毅-机器学习课程
[3]
[4] 逻辑回归(logistic regression)(一)
[5]
[6] softmax回归原理与实现
[7]

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com