【神经网络】前向型神经网络(Feedforward Neural Networks)

    技术2022-07-13  69

    前向型神经网络(Feedforward Neural Networks)

    M-P模型

    n个输入,n个权值, θ \theta θ为阈值 S = ∑ i = 1 n w i x i − θ S=\sum_{i=1}^n{w_ix_i-\theta} S=i=1nwixiθ φ ( ⋅ ) \varphi(·) φ()为非线性函数输出为: y = φ ( S ) = φ ( ∑ i = 1 n w i x i − θ ) y=\varphi(S)=\varphi(\sum_{i=1}^n{w_ix_i-\theta}) y=φ(S)=φ(i=1nwixiθ) w1 w2 ... wn x1 sum x2 ... xn nonlinear function y

    在M-P模型中,激活函数 φ ( ) \varphi() φ()一般为: φ ( s ) = U ( s ) = { 1 , s ≥ 0 0 , s < 0 \varphi(s)=U(s)=\begin{cases}1,&s\ge0\\0,&s<0\end{cases} φ(s)=U(s)={1,0,s0s<0

    或: φ ( s ) = S g n ( s ) = { 1 , s ≥ 0 − 1 , s < 0 \varphi(s)=Sgn(s)=\begin{cases}1,&s\ge0\\-1,&s<0\end{cases} φ(s)=Sgn(s)={1,1,s0s<0 这种二值化的形式正好符合生物神经元激活/抑制两种状态

    M-P模型特点

    多输入,单输出非线性,阈值效应(thresholding)输入和输出都是二值信号(输入通常来自别的神经元,所以输入也是二值)输入来自其他神经元/信号,在神经元中发生作用是需要通过权值来确定输入的作用

    M-P模型的例子

    逻辑与运算

    y = U ( w 1 x 1 + w 2 x 2 − θ ) = U ( x 1 + x 2 − 1.5 ) y=U(w_1x_1+w_2x_2-\theta)=U(x_1+x_2-1.5) y=U(w1x1+w2x2θ)=U(x1+x21.5)

    逻辑非

    y = U ( − x 1 + 0.5 ) y=U(-x_1+0.5) y=U(x1+0.5)

    逻辑或

    y = U ( x 1 + x 2 − 0.5 ) y=U(x_1+x_2-0.5) y=U(x1+x20.5)

    逻辑异或(XOR)没做出来

    感知机模型(单层)

    模型结构

    还是M-P模型结构

    不同在于,M-P模型中没有给出求解权值的通用办法

    在感知机中,权值和阈值可以通过实例来学习

    给M-P模型赋予了自学习能力

    感知机给出了学习算法,并证明了它是收敛的

    线性可分性(Linear Separability and classification ability of the Perception)

    S = ∑ i = 1 n w i x i − θ S=\sum_{i=1}^n{w_ix_i-\theta} S=i=1nwixiθ

    S = 0 S=0 S=0,即 s = ∑ i = 1 n w i x i − θ = 0 s=\sum_{i=1}^n{w_ix_i-\theta}=0 s=i=1nwixiθ=0,为n维超平面方程,决定了一个n-1维的超平面以二维为例, s = w 1 x 1 + w 2 x 2 − θ = 0 s=w_1x_1+w_2x_2-\theta=0 s=w1x1+w2x2θ=0决定了二维平面内的一条直线,s>0为线的一侧,s<0为线的另一侧

    线性可分:问题本身的点是否是可分的

    n维空间中的点为n维矢量,空间中任意一点不是属于C1,就是属于C2

    如果n维空间中存在一个n-1维的超平面,该平面可以将空间中的点完整的分成两类,则这个空间为线性可分空间。

    关键问题:

    设计感知机,要设法找到权值,阈值,来把所有的样本区分开,如果样本不是线性可分,要找到错误尽量少的超平面。

    例子:

    逻辑与

    线性可分,且直线不唯一,如 w 1 = 1 , w 2 = 1 , θ = 1.5 w_1=1,w_2=1,\theta=1.5 w1=1,w2=1,θ=1.5

    逻辑或

    w 1 = 1 , w 2 = 1 , θ = 0.5 w_1=1,w_2=1,\theta=0.5 w1=1,w2=1,θ=0.5

    逻辑异或

    在二维平面作图发现它线性不可分(两层以上神经网络可解)

    感知机(一层)对于线性可分问题是可以解的,但对于线性不可分问题是不可解的

    如何求 w 1 , w 2 , θ w_1,w_2,\theta w1,w2,θ?——感知机学习算法

    需要通过一个学习过程,基于实例来学习正确的解决方法有点像人类思维,学习的过程

    感知机学习算法

    模型描述

    M-P模型,要学习一组权值和阈值: W = [ w 0 , w 1 , . . . , w n ] T W=[w_0,w_1,...,w_n]^T W=[w0,w1,...,wn]T

    w 0 w_0 w0代表 − θ -\theta θ

    输入向量为: X ( k ) = [ 1 , x 1 ( k ) , x 2 ( k ) , . . . , x n ( k ) ] T X(k)=[1,x_1(k),x_2(k),...,x_n(k)]^T X(k)=[1,x1(k),x2(k),...,xn(k)]T

    s = ∑ i = 1 n x i w i − θ = W T X ( k ) s=\sum_{i=1}^n{x_iw_i-\theta}=W^TX(k) s=i=1nxiwiθ=WTX(k)

    y = φ ( s ) = ∑ i = 1 n x i w i − θ = φ ( W T X ) y=\varphi(s)=\sum_{i=1}^n{x_iw_i-\theta}=\varphi(W^TX) y=φ(s)=i=1nxiwiθ=φ(WTX)

    问题:给出m个例子,即m个x,m个y: ( x ( k ) , d ( k ) ) , ( k = 1 , 2 , . . . , m ) {(x(k),d(k))},(k=1,2,...,m) (x(k),d(k)),(k=1,2,...,m),d为理想输出(desired output)

    理想输出和输入矢量有一个函数关系 d ( k ) = f ( X ( k ) ) d(k)=f(X(k)) d(k)=f(X(k)),f(·)未知,感知机要学习到这个函数关系

    根据例子来学习 W = [ w 0 , w 1 , . . . , w n ] T W=[w_0,w_1,...,w_n]^T W=[w0,w1,...,wn]T

    感知机的目的: y ( k ) → d ( k ) = f ( X ( k ) ) y(k)\rarr d(k)=f(X(k)) y(k)d(k)=f(X(k))

    学习算法:

    给定m组输入输出

    初始化:

    用一组小的随机数设定一组随机权值 W ( 0 ) W(0) W(0),小的修改时间比较短, k = 0 k=0 k=0

    用线性加权和输入得到 y y y

    利用实际输出和理想输出来更新权重

    Δ w j = η ( d ( k ) − y ( k ) ) x j ( k ) \Delta w_j=\eta(d(k)-y(k))x_j(k) Δwj=η(d(k)y(k))xj(k)

    w j ← w j + Δ w j , j = 0 , 1 , . . . , n w_j\larr w_j+\Delta w_j,j=0,1,...,n wjwj+Δwj,j=0,1,...,n

    η \eta η为学习率, 0 < η ≤ 1 0<\eta\leq1 0<η1

    k = k + 1 k=k+1 k=k+1

    继续训练到所有样本都能正确分类为止(针对线性可分问题)

    直到收敛为止,再次循环是,所有的权值改变都非常小(知道结果令人满意为止)

    Processed: 0.014, SQL: 9