IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Neural Network Fundamentals (1) -> 正文阅读

[人工智能]Neural Network Fundamentals (1)

Reference:

Neural Network and Learning Machines: International Edition, 3/e (Author: Haykin, ISBN:9780131293762)
人脑是专用计算机,通过神经元中的链接对经验进行存储;而计算机属于通用计算机,通过设计逻辑算法实现程序。因此结构不同,导致了人脑能够轻易实现 人脸识别,语音辨别等等 不是通过纯逻辑实现的事,因此通用计算机为了能够达到与大脑类似的效果,需要对大脑模型进行模拟,从而实现类似的功能。

大脑的基本结构

大脑结构
大脑由神经元组成,每个神经元由 细胞本体,树突和轴突三部分所组成。 不同神经元之间的信号由轴突输入神经元,经过细胞本体,然后通过树突然后传递到下一个细胞中。(化学信号-电信号-化学信号)

神经元网络的基本特征

  • 一个神经元同时是 多个神经元的受体,也可以将信号传递给多个其他的细胞。(另外细胞也并非单向传递)
  • 神经元的信号是多个细胞信息输入的叠加(信息有正有负,也就是有激活也有抑制)(因为突触是有激励因子,也有抑制因子)
  • 神经元的信号输入和输出并不呈现线性关系。首先存在一定的阈值,当信号超过一定的阈值之后就会快速上升。 简单来看可以看作 sign 函数,输入之和超过一定阈值之后就会激活神经元。
  • 神经元更高强度的兴奋不是有更高的输入造成的,而是由更高频率的有效刺激造成的。

通过大脑结构构建基本神经元模型

  • 一个神经元有多个输入,然后有一个输出。
  • 输入信号来自于不同的神经元,有不同的权重,可正可负(激励型和抑制型)。
  • 神经元本身的输入可以简单看作两个结果: 激励状态 和 未被激励状态。(0和1)
    因此可以将神经元简单看作两个过程:
    过程一: v ( x ? ) = w ? T x ? + b v(\vec x) =\vec w^T \vec x + b v(x )=w Tx +b
    其中, i n p u t : x ? = [ x 1 , x 2 , … , x n ] T , w e i g h t s : w ? = [ w 1 , w 2 , … , w n ] , b : t h r e s h o l d { input: \vec x = [x_1,x_2, \dots, x_n]^T, weights: \vec w =[ w_1,w_2, \dots, w_n], b: threshold } input:x =[x1?,x2?,,xn?]T,weights:w =[w1?,w2?,,wn?],b:threshold
    过程二: y = φ ( v ) y = \varphi(v) y=φ(v)
    其中, φ = s i g n { \varphi = sign} φ=sign, 存在激活函数,当 v > = 0 , y = 1 ; v < 0 , y = 0 { v>=0, y =1; v<0, y=0 } v>=0,y=1;v<0,y=0
    在这里插入图片描述
    因此最终的函数可以表示为:
    y = φ ( w ? T x ? + b ) y = \varphi( \vec w^T \vec x +b ) y=φ(w Tx +b)
    因为 阶跃函数不是连续函数,因此最终的函数也不是连续函数,而是单纯两个值的输出。
    当我们将激活函数换成其他的函数,比如
    sigmoid function: φ ( v ) = 1 1 + e ? a v {\varphi (v) = \frac{1}{1+e^{-av}}} φ(v)=1+e?av1?
    tanh function: φ ( v ) = e x ? e ? x e x + e ? x { \varphi(v) = \frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}} φ(v)=ex+e?xex?e?x?
    连续并且可导,那么该神经元结果就是连续并且可导的。

Perceptron

一个神经元在初期被称为感受器perceptron,对感受器的理解是对神经元网路理解的基础。

二分类问题

因为感受器的输出为0和1,因此可以作为感受器,实现标签的分类。 当 w ? T x ? > = 0 {\vec w^T \vec x >=0} w Tx >=0,标签结果为一类; 当 w ? T x ? < 0 { \vec w^T \vec x <0 } w Tx <0,标签结果为另外一类。因此我们可以看到 感受器实际上是一个线性二分类器。通过创造出一条直线或者一个超平面,实现不同标签的分类。 线性可分的问题(linearly separable)才能用感受器实现,而且只要是线性可分,感受器一定能够实现。

如何得到想要的权重

  • 对于低维度的点来说,我们可以直接肉眼观察,然后得到边界线和权重。
  • 对于高维度的分类问题,我们只能通过learning来实现。

问题定义

我们有m个点,对于每一个点 x ? i = [ 1 , x 1 , x 2 , … , x n ? 1 ] {\vec x_i = [1, x_1,x_2, \dots, x_{n-1}]} x i?=[1,x1?,x2?,,xn?1?],然后有想要的标签 d i { d_i } di?
我们随机定义了权重 w ? = [ b , w 1 , w 2 , … , w n ? 1 ] {\vec w = [b,w_1,w_2, \dots, w_{n-1}]} w =[b,w1?,w2?,,wn?1?]
我们想要实现, 对于每一个点,都能实现 φ ( w ? T x ? i ) = d i { \varphi(\vec w^T \vec x_i) = d_i } φ(w Tx i?)=di?.

问题分析

对于m个点,假设存在一组 w ? {\vec w} w 能够实现所有点的正确划分。
对于 d i = 1 {d_i = 1} di?=1的点来说,如果划分错误,使得 w ? T x ? < 0 {\vec w^T \vec x <0} w Tx <0,我们应该更新权重 w ? n = w ? n ? 1 + Δ w ? {\vec w_n = \vec w_{n-1} + \Delta \vec w} w n?=w n?1?+Δw Δ w \Delta w Δw 应该能使得 w ? t x ? {\vec w^t \vec x} w tx 整体值变大。 所以 Δ w ? = η x ? ( η > 0 ) { \Delta \vec w = \eta \vec x (\eta>0) } Δw =ηx (η>0)
对于 d i = 0 {d_i=0} di?=0的点来说,如果划分错误,我们应该更新权重,使得结果朝着 w ? T x ? { \vec w^T \vec x } w Tx 减小。所以 Δ w ? = ? η x {\Delta \vec w = - \eta x} Δw =?ηx
我们定义 误差error: e = d i ? w ? T x ? i {e = d_i - \vec w^T \vec x_i} e=di??w Tx i?
那么我们将结果上述结果合起来: Δ w ? = η e x ? {\Delta \vec w = \eta e \vec x} Δw =ηex
η {\eta} η作为权重,能够改变每一步的更新速率。

算法

确定学习速率 η {\eta} η
随机生成权重 w ? {\vec w} w

for x i , d i {x_i, d_i} xi?,di? in all points
计算 e = d i ? w ? T x ? { e = d_i - \vec w^T \vec x } e=di??w Tx
然后更新权重: w n = w n ? 1 + η e x ? { w_n = w_{n-1} + \eta e \vec x } wn?=wn?1?+ηex

对于线性可分的问题,我们可以等到零误差(所有标签全都正确),再停止结果。 对于线性不可分的问题,我们可以计算一定的循环次数,然后停止。

感受器必然能够实现 线性可分问题的原因

Perceptron Convergence Theorem: (Rosenblatt, 1962)
此文章证明了感受器对于线性可分的问题必然会收敛。

回归问题perceptron_regression

回归问题难以实现对于所有点的正确标记,因此我们通常将其视为优化问题,所有点的误差之和最少:
E ( w ? ) = 1 2 ∑ n i = 1 e ( i ) 2 = 1 2 ∑ i = 1 n [ d ( i ) ? y ( i ) ] 2 {E(\vec w) =\frac{1}{2} \sum_n^{i=1}e(i)^2 =\frac{1}{2} \sum^n_{i=1}[d(i)-y(i)]^2 } E(w )=21?ni=1?e(i)2=21?i=1n?[d(i)?y(i)]2

分析问题

首先我们定义几个相关变量:

  1. d ? = [ d 1 , d 2 , … , d n ] T \vec d = [d_1,d_2, \dots,d_n]^T d =[d1?,d2?,,dn?]T
  2. X = [ x ? 1 , x ? 2 , … , x ? n ] X=[\vec x_1, \vec x_2, \dots, \vec x_n] X=[x 1?,x 2?,,x n?]
  3. e ? = d ? ? X T ? w ? \vec e = \vec d - X^T \cdot \vec w e =d ?XT?w
  4. E ( w ? ) = 1 2 e ? T e ? E(\vec w) =\frac{1}{2} \vec e^T \vec e E(w )=21?e Te
    其中 X 的维度是 (m,n),其中 m是变量的维度, n是数据点的数量。
    然后,我们为了得到最优解,我们必须求解cost function梯度为零的点:
    ▽ ( E ( w ? ) ) = 0 ▽ w ? ( E ( w ? ) ) = e ? T ? ( ? X T ) ( d ? T ? w ? T X ) X T = 0 w ? T X X T = d ? X T X X T w ? = X d ? T w ? = ( X X T ) ? 1 X d ? T \begin{aligned} \bigtriangledown ( E(\vec w) ) &= 0 \\ \bigtriangledown_{\vec w} ( E(\vec w) ) &= \vec e^T \cdot (-X^T) \\ (\vec d^T - \vec w^T X) X^T &= 0 \\ \vec w^T X X^T &= \vec d X^T \\ X X^T \vec w &=X \vec d^T \\ \vec w &= (X X^T)^{-1}X \vec d^T \\ \end{aligned} (E(w ))w ?(E(w ))(d T?w TX)XTw TXXTXXTw w ?=0=e T?(?XT)=0=d XT=Xd T=(XXT)?1Xd T?
    其中 ( X X T ) ? 1 (X X^T)^{-1} (XXT)?1 也就是 X的伪逆。该方程对于维度较低时较为有用,但是对于较多的数据时,对内存要求比较高。因此,对于较多的数据,可以使用以下的方式: learning。

Learning

我们将 E ( w ? ) E(\vec w) E(w )看作连续可微分的函数,那么我们每次更新 w ? \vec w w 都朝着 使得 E ( w ? ) E(\vec w) E(w )下降最快的方向变化,就能找到局部最优点。
因此,我们每次更新 w ? \vec w w 的公式就是:
w ? n = w ? n ? 1 ? η ▽ w ? E ( w ? ) w ? n = w ? n ? 1 + η e ( n ) x ? ( n ) \begin{aligned} \vec w_n &= \vec w_{n-1} - \eta \bigtriangledown_{\vec w}E(\vec w) \\ \vec w_n &= \vec w_{n-1} + \eta e(n) \vec x(n) \end{aligned} w n?w n??=w n?1??ηw ?E(w )=w n?1?+ηe(n)x (n)?
其中, e ( n ) = d ( n ) ? w ? T x ? ( n ) e(n)=d(n)-\vec w^T \vec x(n) e(n)=d(n)?w Tx (n)

Multi-layer Perceptron

由于单个感受器只能实现已一条直线的模拟,只能完成对于线性可分的问题的解答,或者对于线性关系尽心拟合,难以完成更加复杂的问题求解,甚至连XOR都难以模拟。因此,出现了多个神经元相连结的神经元网络。

XOR问题引入

对于XOR问题,单个感受器是无法进行模拟的。

input 1input 2output
x 1 x_1 x1? x 2 x_2 x2? y y y
000
101
011
110

在这里插入图片描述
因为感受器只能生成一条边界线,无法生成两条。
如果我们使用两个输出,而不是单个输出:
在这里插入图片描述
此时我们发现XOR问题中 (0,1) 和 (1,0 )变成了一个点,实现了空间位置的转变,变成了可以线性可分的问题。 此时,将这两个输出作为输入,连接在一个感受器(神经元)上,就可以实现XOR问题的模拟。

多层神经网络

在这里插入图片描述
我们在考虑神经网络的层数时,不考虑输入层,只考虑隐藏层和输出层。一个全连接层和一个激活层组成了一个神经网络层。 对于每一层的全连接层,都是 w ? x ? + b \vec w \vec x+b w x +b。对于激活层,我们则可以根据我们的需要进行修改,比如RELU,sigmoid function, atanh函数等等。

LMS 方法

我们仍然将其看成一个优化问题:
需要解决的问题: 我们目前神经网络中的权重都是随机生成的,我们需要通过输出结果和我们的label( d )之间的误差e,对权重进行更新,减小生成的误差。
对于每一个数据点所产生的误差:
E ( i ) = 1 2 ∑ j = 1 n 3 e j ( i ) 2 = 1 2 ∑ j = 1 n 3 [ d j ( i ) ? x o u t , j ( 3 ) ( i ) ] 2 E(i) = \frac{1}{2}\sum_{j=1}^{n_3} e_j(i)^2=\frac{1}{2}\sum_{j=1}^{n_3}[d_j(i)- x_{out,j}^{(3)}(i)]^2 E(i)=21?j=1n3??ej?(i)2=21?j=1n3??[dj?(i)?xout,j(3)?(i)]2
对于同时对一批数据点进行处理:
E = 1 2 ∑ i m ∑ j = 1 n 3 e j ( i ) 2 E =\frac{1}{2} \sum_{i}^{m} \sum_{j=1}^{n_3} e_j(i)^2 E=21?im?j=1n3??ej?(i)2
我们对每个点进行分别处理,而不采取批处理,因为批处理容易陷入局部最优;对数据进行分别处理,则有助于增加noise,能够跳出局部最优,因此对每个点单独进行处理则比较好。
我们再使用梯度下降法:
Δ w j i ( s ) ( n ) = ? η [ ? E ( n ) ? w j i ( s ) ( n ) ] T \Delta w_{ji}^{(s)}(n) = - \eta [ \frac{\partial E(n)}{\partial w_{ji}^{(s)}(n)}]^T Δwji(s)?(n)=?η[?wji(s)?(n)?E(n)?]T
其中,s对应第一,二,三层;j是i的下一层。

Back Propagation

第三层权重更新

v j ( 3 ) = ∑ i n 2 w j i ( 3 ) x o u t , i ( 2 ) x o u t , j ( 3 ) = φ ( 3 ) [ v j ( 3 ) ] e r r o r : e j ( n ) = d j ( n ) ? x o u t , j ( 3 ) \begin{aligned} v^{(3)}_j &=\sum_i^{n_2}w^{(3)}_{ji} x_{out,i}^{(2)} \\ x_{out,j}^{(3)} &=\varphi^{(3)}[ v_{j}^{(3)} ] \\ error: e_j(n) &= d_j(n)-x_{out,j}^{(3)} \end{aligned} vj(3)?xout,j(3)?error:ej?(n)?=in2??wji(3)?xout,i(2)?=φ(3)[vj(3)?]=dj?(n)?xout,j(3)??
我们根据链式法则,可以对第三层权重进行更新:
? E ? w j i ( 3 ) = ? E ? e j ( n ) ? e j ( n ) ? x o u t , j ( 3 ) ? x o u t , j ( 3 ) ? v j ( 3 ) ? v j 3 ( ) ? w j i ( 3 ) = e j ( n ) ? ( ? 1 ) ? φ ( 3 ) ′ [ v j ( 3 ) ] ? x o u t , i ( 2 ) = ? e j ( n ) φ ( 3 ) ′ [ v j ( 3 ) ] x o u t , i ( 2 ) \begin{aligned} \frac{\partial E}{\partial w^{(3)}_{ji}} &= \frac{\partial E}{\partial e_j(n)} \frac{\partial e_j(n)}{\partial x^{(3)}_{out,j}} \frac{\partial x^{(3)}_{out,j}}{\partial v_j^{(3)}}\frac{\partial v_j^{3()}}{\partial w^{(3)}_{ji}} \\ &=e_j(n) \cdot (-1)\cdot \varphi^{(3)'}[v_j^{(3)}] \cdot x^{(2)}_{out,i} \\ &= -e_j(n)\varphi^{(3)'}[v^{(3)}_j]x^{(2)}_{out,i} \end{aligned} ?wji(3)??E??=?ej?(n)?E??xout,j(3)??ej?(n)??vj(3)??xout,j(3)???wji(3)??vj3()??=ej?(n)?(?1)?φ(3)[vj(3)?]?xout,i(2)?=?ej?(n)φ(3)[vj(3)?]xout,i(2)??
另外,我们可以定义 δ j ( 3 ) ( n ) = e j ( n ) φ ( 3 ) ′ [ v j ( 3 ) ] \delta^{(3)}_j(n)=e_j(n)\varphi^{(3)'}[v_j^{(3)}] δj(3)?(n)=ej?(n)φ(3)[vj(3)?],则上式可以写成
? E ? w j i ( 3 ) = ? δ j ( 3 ) ( n ) x o u t , i ( 2 ) ( n ) \frac{\partial E}{\partial w^{(3)}_{ji}}=-\delta_j^{(3)}(n)x^{(2)}_{out,i}(n) ?wji(3)??E?=?δj(3)?(n)xout,i(2)?(n)
因此我们可以得到第三层权重的更新公式:
w j i ( 3 ) ( n + 1 ) = w j i ( 3 ) ( n ) + η δ j ( 3 ) ( n ) x o u t , i ( 2 ) ( n ) w_{ji}^{(3)}(n+1) = w_{ji}^{(3)}(n)+ \eta \delta_j^{(3)}(n)x_{out,i}^{(2)}(n) wji(3)?(n+1)=wji(3)?(n)+ηδj(3)?(n)xout,i(2)?(n)
其中 δ j ( 3 ) \delta_j^{(3)} δj(3)?可以看作输出误差, x o u t , i ( 2 ) ( n ) x_{out,i}^{(2)}(n) xout,i(2)?(n)可以看作输入信号。

第二层权重更新

在这里插入图片描述
我们采用和上述同样的方式,采用链式法则求解。
? E ? w j , k ( 2 ) = ? E ? x o u t , i ( 3 ) ? x o u t , i ( 3 ) ? v i ( 3 ) ? v i ( 3 ) ? x o u t , j ( 2 ) ? x o u t , j ( 2 ) ? v j ( 2 ) ? v j ( 2 ) ? w j , k ( 2 ) = ? e i ( n ) φ ( 3 ) ′ [ v i ( 3 ) ] w i , j ( 2 ) φ ( 2 ) ′ [ v j ( 2 ) ] x o u t , k ( 1 ) = ? δ i ( 3 ) w i , j ( 2 ) φ ( 2 ) ′ [ v j ( 2 ) ] x o u t , k ( 1 ) \begin{aligned} \frac{\partial E}{\partial w_{j,k}^{(2)}} &=\frac{\partial E}{\partial x^{(3)}_{out,i}} \frac{\partial x^{(3)}_{out,i}}{ \partial v_i^{(3)}} \frac{ \partial v_i^{(3)}}{\partial x_{out,j}^{(2)}}\frac{ \partial x_{out,j}^{(2)} }{ \partial v_{j}^{(2)} } \frac{\partial v_{j}^{(2)}}{\partial w_{j,k}^{(2)} } \\ &=-e_{i}(n) \varphi^{(3)'}[ v_i^{(3)} ]w^{(2)}_{i,j} \varphi^{(2)'}[ v_j^{(2)}] x^{(1)}_{out,k} \\ &= -\delta_i^{(3)}w^{(2)}_{i,j}\varphi^{(2)'}[v_j^{(2)}]x_{out,k}^{(1)} \end{aligned} ?wj,k(2)??E??=?xout,i(3)??E??vi(3)??xout,i(3)???xout,j(2)??vi(3)???vj(2)??xout,j(2)???wj,k(2)??vj(2)??=?ei?(n)φ(3)[vi(3)?]wi,j(2)?φ(2)[vj(2)?]xout,k(1)?=?δi(3)?wi,j(2)?φ(2)[vj(2)?]xout,k(1)??
但是我们可以看到上式的i是一个不定量,因为我们在对 w j , k ( 2 ) w_{j,k}^{(2)} wj,k(2)?进行求导的时候,我们没有包含i的信息。而且 w j , k ( 2 ) w_{j,k}^{(2)} wj,k(2)?对于第三层中的所有输出都会有影响,因此实际上这里的链式法则应该对i进行求和!
? E ? w j , k ( 2 ) = ? ∑ i n 3 [ δ i ( 3 ) w i , j ( 3 ) ] φ ( 2 ) ′ [ v j ( 2 ) ] x o u t , k ( 1 ) \begin{aligned} \frac{\partial E}{\partial w_{j,k}^{(2)}} =- \sum_i^{n_3} [ \delta_i^{(3)}w^{(3)}_{i,j}]\varphi^{(2)'}[v_j^{(2)}]x_{out,k}^{(1)} \end{aligned} ?wj,k(2)??E?=?in3??[δi(3)?wi,j(3)?]φ(2)[vj(2)?]xout,k(1)??
此时,我们定义一个变量: δ j ( 2 ) = ∑ i n 3 [ δ i ( 3 ) w i , j ( 3 ) ] φ ( 2 ) ′ [ v j ( 2 ) ] \delta_j^{(2)}=\sum_i^{n_3} [ \delta_i^{(3)}w^{(3)}_{i,j}]\varphi^{(2)'}[v_j^{(2)}] δj(2)?=in3??[δi(3)?wi,j(3)?]φ(2)[vj(2)?]
那么第二层的权重可以写作:
Δ w j , k ( 2 ) = ? δ j ( 2 ) x o u t , k ( 1 ) \Delta w_{j,k}^{(2)} = - \delta_{j}^{(2)}x_{out,k}^{(1)} Δwj,k(2)?=?δj(2)?xout,k(1)?

第一层权重

同样的形式,我们可以写成:
δ k ( 1 ) = ∑ j n 2 [ δ j ( 2 ) w j k ( 2 ) ] φ ( 1 ) ′ [ v k ( 1 ) ] Δ w k , l ( 1 ) = ? δ k ( 1 ) x l \begin{aligned} \delta_k^{(1)} &=\sum_j^{n_2}[\delta^{(2)}_j w^{(2)}_{jk}] \varphi^{(1)'}[v^{(1)}_k]\\ \Delta w^{(1)}_{k,l} &= -\delta_k^{(1)}x_{l} \\ \end{aligned} δk(1)?Δwk,l(1)??=jn2??[δj(2)?wjk(2)?]φ(1)[vk(1)?]=?δk(1)?xl??

Back Propagation

我们可以看到,对于每一个数据点 [ x 1 ( n ) , x 2 ( n ) , … , x m ( n ) ] T [x_1(n), x_2(n), \dots, x_m(n)]^T [x1?(n),x2?(n),,xm?(n)]T,我们可以正向传递得到最后的结果,然后根据正向得到的 δ i ( 3 ) \delta_i^{(3)} δi(3)?反向去求解 δ j ( 2 ) \delta_j^{(2)} δj(2)?,根据 δ j ( 2 ) \delta_j^{(2)} δj(2)?求解之前的 δ k ( 1 ) \delta_k^{(1)} δk(1)?,根据不同层的 δ \delta δ对不同层的权重进行更新。
在这里插入图片描述

真正的权重更新

Δ w j i ( s ) ( k ) = α Δ w j i ( s ) ( k ? 1 ) + η ( s ) δ j ( s ) ( k ) x o u t , i ( s ? 1 ) ( k ) = α 2 Δ w j i ( s ) ( k ? 2 ) + η ( s ) [ α δ j ( s ) ( k ? 1 ) x o u t , i ( s ? 1 ) ( k ? 1 ) + δ j ( s ) ( k ) x o u t , i ( s ? 1 ) ( k ) ] = η ( s ) ∑ t = 0 k α k ? t δ j ( s ) ( t ) x o u t , i ( s ? 1 ) ( t ) \begin{aligned} \Delta w_{ji}^{(s)}(k) &= \alpha \Delta w_{ji}^{(s)}(k-1)+ \eta^{(s)}\delta_j^{(s)}(k)x^{(s-1)}_{out,i}(k) \\ &= \alpha^2 \Delta w_{ji}^{(s)}(k-2) + \eta^{(s)}[ \alpha \delta_j^{(s)}(k-1)x^{(s-1)}_{out,i}(k-1) +\delta_j^{(s)}(k)x^{(s-1)}_{out,i}(k) ] \\ &=\eta^{(s)}\sum_{t=0}^{k} \alpha^{k-t}\delta_j^{(s)}(t) x_{out,i}^{(s-1)}(t) \end{aligned} Δwji(s)?(k)?=αΔwji(s)?(k?1)+η(s)δj(s)?(k)xout,i(s?1)?(k)=α2Δwji(s)?(k?2)+η(s)[αδj(s)?(k?1)xout,i(s?1)?(k?1)+δj(s)?(k)xout,i(s?1)?(k)]=η(s)t=0k?αk?tδj(s)?(t)xout,i(s?1)?(t)?
这样每次权重的更新 都是之前所有误差项的加权平均。 越往后的误差项,权重越高。这样的更新相当于增加了惯性项。 同时权重的更新并不只是一个点数据的影响,而是之前所有点数据的影响:这样的梯度方向相当于能够使得之前所有的点误差减小,因此能够使得结果更加的稳定。

更新停止的几种方式:

  1. 总误差小于阈值
  2. 总的迭代次数到了一定值
  3. 误差的平均值的变化趋于0
  4. 权重的变化趋于0

神经网络如何设计

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:08:29  更:2022-02-14 21:09:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 19:33:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码