机器学习笔记(五)——神经网络

模型概述

神经网络中最基本的成分是神经元(neuron)模型,即上述定义中的“简单单元”.在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”(threshold),那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质.
最经典的神经元神经元模型是MP神经元模型
在这里插入图片描述
在这个模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”(activation function)处理以产生神经元的输出.
理想中的激活函数是阶跃函数,它将输入值映射为输出值“0”或“1”,显然“1”对应于神经元兴奋,“0”对应于神经元抑制.然而,阶跃函数具有不连续、不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数.具体可参考之前的文章:机器学习笔记(三)——逻辑回归/对率回归

感知机

感知机(Perceptron)由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元。
在这里插入图片描述

感知机能容易地实现逻辑与、或、非运算。假定感知机网络中的激活函数用的是跃阶函数。
运算: ( x 1 ∧ x 2 ) : 令 w 1 = w 2 = 1 , θ = 2 , 则 y = f ( 1 ⋅ x 1 + 1 ⋅ x 2 − 2 ) , 仅 在 x 1 = x 2 = 1 时 , y = 1 ; (x_1\wedge x_2 ):令w_1= w_2 = 1,\theta=2,则y= f(1 ·x_1+ 1·x_2 - 2),仅在x_1=x_2= 1时, y = 1; (x1x2):w1=w2=1,θ=2,y=f(1x1+1x22)x1=x2=1,y=1;
运算: ( x 1 ∨ x 2 ) : 令 w 1 = w 2 = 1 , θ = 0.5 , 则 y = f ( 1 ⋅ x 1 + 1 ⋅ x 2 − 0.5 ) , 当 x 1 = 1 或 x 2 = 1 时 , y = 1 ; (x_1 \vee x_2):令w_1= w_2= 1,\theta = 0.5,则y= f(1·x_1+ 1·x_2 -0.5),当x_1=1或x_2=1时, y = 1; (x1x2):w1=w2=1,θ=0.5,y=f(1x1+1x20.5),x1=1x2=1,y=1;
运算: ( ¬ x 1 ) : 令 w 1 = − 0.6 , w 2 = 0 , θ = − 0.5 , 则 y = f ( − 0.6 ⋅ x 1 + 0 ⋅ x 2 + 0.5 ) , 当 x 1 = 1 时 , y = 0 ; 当 x 1 = 0 时 , y = 1 (\neg x_1):令w_1= -0.6, w_2 = 0,\theta =-0.5,则y = f(-0.6·x_1+0·x_2+0.5),当x_1=1时, y=0; 当x_1=0时,y = 1 (¬x1):w1=0.6,w2=0,θ=0.5,y=f(0.6x1+0x2+0.5)x1=1,y=0;x1=0,y=1

感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限。事实上,上述与、或、非问题都是线性可分的问题。可以证明,若两类模式是线性可分的,即存在一个线性超平面能将它们分开,则感知机的学习过程一定会收敛。否则感知机学习过程将会发生振荡,例如感知机甚至不能解决异或这样简单的非线性可分问题。在这里插入图片描述
要解决非线性可分问题,需考虑使用多层功能神经元。两层感知机就能解决异或问题。输出层与输入层之间的一层神经元,被称为隐层或隐含层(hidden layer),隐含层和输出层神经元都是拥有激活函数的功能神经元。在这里插入图片描述

前馈神经网络

常见的神经网络是每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为多层前馈神经网络

“前馈”并不意味着网.络中信号不能向后传,而是指网络拓扑结构上不存在环或回路

在这里插入图片描述

反向传播算法(BackPropagation)——BP算法

给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } , x i ∈ R d , y i ∈ R l D = \{ ({x_1},{y_1}),({x_2},{y_2}), \ldots ,({x_m},{y_m})\} ,{x_i} \in { {\Reals }^d},{y_i} \in { {\Reals }^l} D={ (x1,y1),(x2,y2),,(xm,ym)},xiRd,yiRl
输入示例由 d d d个属性描述,输出 l l l维实值向量。
在这里插入图片描述

为了方便讨论,如上图给出一个拥有 d d d个输入神经元, l l l个输出神经元, q q q个隐藏层神经元的多层前馈神经网络结构,其中隐藏层第 h h h个神经元的阈值用 γ h {\gamma _h} γh表示,输出层第 j j j个神经元的阈值用 θ j \theta_j θj表示。输入层第 i i i个神经元与隐藏层第 h h h个神经元之间的连接权重为 v i h v_{ih} vih,隐藏层第 h h h个神经元与输出层第 j j j个神经元之间的连接权重为 w h j w_{hj} whj。记隐藏层第 h h h个神经元接收到的输入为 α h = ∑ i = 1 d v i h x i {\alpha _h} = \sum\limits_{i = 1}^d { {v_{ih}}{x_i}} αh=i=1dvihxi。记 b h b_h bh是隐藏层第 h h h个神经元的输出,输出层第 j j j个神经元接收到的输入为 β j = ∑ h = 1 q w h j b h {\beta _j} = \sum\limits_{h = 1}^q { {w_{hj}}{b_h}} βj=h=1qwhjbh,假设神经网络中隐藏层和输出层神经元都是用Sigmoid激活函数。
对于训练样本 ( x k , y k ) ({x_k},{y_k}) (xk,yk),假定神经网络的输出为 y ^ k = ( y ^ 1 k , y ^ 2 k , … , y ^ l k ) { {\hat y}_k} = (\hat y_1^k,\hat y_2^k, \ldots ,\hat y_l^k) y^k=(y^1k,y^2k,,y^lk),且 y ^ j k = f ( β j − θ j ) \hat y_j^k = f({\beta _j} - {\theta _j}) y^jk=f(βjθ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值