当前位置:   article > 正文

深入浅出图神经网络|GNN原理解析☄学习笔记(二)神经网络基础_神经网络 公式 符号 详解

神经网络 公式 符号 详解

《深入浅出图神经网络》GNN原理解析☄学习笔记(二)神经网络基础

机器学习基本概念

机器学习分类

在这里插入图片描述

机器学习流程概述

1、示例

在这里插入图片描述

2、算法模型

通过最小化损失函数loss function)来进行优化求解,整个过程可用下式表示
θ ∗ = a r g m i n [ 1 N ∑ i = 1 N L ( y i , f ( x i ; θ ) ) + λ Φ ( θ ) ] \theta^*=argmin[\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i;\theta))+\lambda\Phi(\theta)] θ=argmin[N1i=1NL(yi,f(xi;θ))+λΦ(θ)]
其中,前面的均值函数表示的是经验风险函数,L代表的是损失函数,后面的Φ是正则化项(regularizer)或者叫惩罚项(penalty term),可以是L₁也可以是L₂,或者其他正则函数。上述公式表示的是找到使目标函数最小的θ值。损失函数旨在表示模型输出f(x)和真实值Y的差异程度,不同的损失函数有不同的表示意义,也就是在最小化损失函数的过程中,f(x)逼近Y的方式不同,得到的结果可能也不同。

机器学习算法迭代过程:

在这里插入图片描述

常见的损失函数
  • 平方损失函数
    L ( y , f ( x ; θ ) ) = 1 N ∑ i = 1 N ( y i − f ( x i , θ ) ) 2 L(y,f(x;\theta))=\frac{1}{N}\sum_{i=1}^{N}(y_i-f(x_i,\theta))^2 L(y,f(x;θ))=N1i=1N(yif(xi,θ))2
    N是样本数量,它衡量的是模型预测的结果与标签之间的平方差,常用于回归类问题

  • 交叉熵(cross entropy)损失

    交叉熵衡量的是数据标签的真实分布与分类模型预测的概率分布之间的差异程度,损失值越小,它们之间的差异就越小,模型就能越准确地进行预测,其离散形式如下:
    L ( y , f ( x ) ) = H ( p , q ) = − 1 N ∑ i = 1 N p ( y i ∣ x i ) l o g [ q ( y i ′ ∣ x i ) ] L(y,f(x))=H(p,q)=-\frac{1}{N}\sum_{i=1}^{N}p(y_i|x_i)log[q(y'_i|x_i)] L(y,f(x))=H(p,q)=N1i=1Np(yixi)log[q(yixi)]
    其中p,q分别表示数据标签的真实分布和模型预测给出的分布,p(yi|xi)表示样本xi标签的真实分布。

    q(y’i|xi)表示给定样本模型预测在各个类别上的概率分布。

    若样本xi只属于某个类别ck,那么上式可以化简为以下形式
    L ( y , f ( x ) ) = − 1 N ∑ i = 1 N l o g [ q ( y i ′ = c k ∣ x i ) ] L(y,f(x))=-\frac{1}{N}\sum_{i=1}^{N}log[q(y'_i=c_k|x_i)] L(y,f(x))=N1i=1Nlog[q(yi=ckxi)]


神经网络

人工神经网络,简称神经网络。在机器学习领域,神经网络是指由很多人工神经元构成的网络结构模型,这些人工神经元之间的连接强度是可学习的参数。

神经元

神经元是神经网络进行信息处理的基本单元,其主要是模拟生物神经元的结构和特性,接收输入信号并产生输出。

一个基本的神经元包括3个基本组成部分:

  • 输入信号:x0,x1,x2…xm

  • 线性组合:zi是输入信号的线性组合,wij是神经元的权重
    z i = ∑ j = 1 m w i j x j z_i=\sum_{j=1}^{m}w_{ij}x_j zi=j=1mwijxj

  • 非线性激活函数:σ(·)是激活函数,b是偏置,ai是神经元输出信号
    a i = σ ( z i + b ) a_i=σ(z_i+b) ai=σ(zi+b)

在这里插入图片描述

多层感知器

单隐层感知器
f ( x ) = f 2 ( b ( 2 ) + W ( 2 ) ( f 1 ( b ( 1 ) + W ( 1 ) x ) ) ) f(x)=f_2(b^{(2)}+W^{(2)}(f_1(b^{(1)}+W^{(1)}x))) f(x)=f2(b(2)+W(2)(f1(b(1)+W(1)x)))
在这里插入图片描述

多层感知器Multi-Layer Perceptron, MLP),也称前馈神经网络

其输入和输出层仍然只有一个,不同的是隐藏层有多个。输入信号通过不断地进行线性变换(线性加权)和非线性变化(激活函数),逐渐将输入信号向后一层传递,直到输出层。

多层感知器的信息传播过程:
z ( l ) = W ( l ) ⋅ a ( l − 1 ) + b ( l ) z^{(l)}=W^{(l)}·a^{(l-1)}+b^{(l)} z(l)=W(l)a(l1)+b(l)

a ( l ) = σ l ( z ( l ) ) a^{(l)}=σ_l(z^{(l)}) a(l)=σl(z(l))


激活函数

激活函数使得神经网络几乎可以任意逼近任何非线性函数。激活函数的一个基本要求是它们是连续可导的,可以允许在少数点上不可导。

S型激活函数
  • Sigmoid函数,值域(0,1)
    σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1

  • Tanh函数,值域(-1,1)
    t a n h ( x ) = e x − e − x e x + e − x tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+exexex

ReLU及其变种
  • ReLU:线性整流函数(Rectified Linear Unit, ReLU),单侧抑制
    R e L U ( x ) = { x , x ≥   0 0 , x < 0 ReLU(x)=

    {xx 00x<0
    ReLU(x)={xx 00x<0

  • LeakyReLU:在输入为负时,可以允许一定量的信息通过,其中λ>0是一个超参数,避免神经元死亡现象
    L e a k y R e L U ( x ) = { x , x > 0 λ x , x ≤ 0    LeakyReLU(x)=

    {x,x>0λx,x0
    LeakyReLU(x)={x,x>0λx,x0

  • PReLU,将超参数λ改为了可训练的参数
    P R e L U ( x ) = { x , x > 0 α x , x ≤   0 PReLU(x)=

    {x,x>0αx,x 0
    PReLU(x)={x,x>0αx,x 0

  • ELU:在输入为负时进行线性压缩,加快神经网络的收敛
    E L U ( x ) = { x , x ≥   0 α ( e x − 1 ) , x < 0 ELU(x)=

    {x,x 0α(ex1),x<0
    ELU(x)={x,x 0α(ex1),x<0


训练神经网络

神经网络的运行过程

神经网络的运行过程分为以下三步:

  1. 前向传播:给定输入和参数,逐层向前进行计算,最后输出预测结果
  2. 反向传播(back-propagation):基于前向传播得到的预测结果,使用损害函数得到预测值,然后计算相关参数的梯度
  3. 参数更新:使用梯度下降法对参数进行更新,重复上述过程,逐步迭代,直到模型收敛。
优化困境
  • 梯度消失:梯度值变化非常小,在传播过程中参数无法得到有效的更新,从而模型难以训练。
  • 局部最优:有时候局部最优点能够保证模型的效果。
  • 鞍点:维度过高的深度深度神经网络中常常存在很多鞍点(在该点梯度为0的点,也是一阶导数为0的点),在处于鞍点时,梯度值较小,模型收敛速度将受到极大影响,给人一种陷入局部最优的假象。

参考资料:《深入浅出图神经网络》GNN原理解析

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/336986
推荐阅读
相关标签
  

闽ICP备14008679号