神经网络

1. 神经细胞

神经元,又称神经细胞,是构成神经系统结构和功能的基本单位。神经元是具有长突触(轴突)的细胞,它由细胞体和细胞突起构成。细胞突起是由细胞体延伸出来的细长部分,又可分为树突和轴突。每个神经元可以有一或多个树突,可以接受刺激并将兴奋传入细胞体。每个神经元只有一个轴突,可以把兴奋从胞体传送到另一个神经元。如下图所示

我们已经知道,神经元把所有从树突进来的信号进行叠加处理(并不是简单的相加),如果叠加结果超过某个阈值,就会激发神经元进入兴奋状态,这时就会有一个电信号经过轴突传向其它神经元。如果叠加结果没有超过这个阈值,就不会有电信号产生。(当然神经元的真实反应要比上面的描述复杂得多)

2. 人工神经细胞

了解了神经细胞的工作原理,我们可以构造一个有n个输入()的人工神经细胞(以下简称神经细胞)



假设这n条到神经细胞体的输入边的权重分别为(),我们再为神经细胞增加一个边权重为的输入(叫做bias unit),且始终有 = 1(这里可以把的值想像成神经细胞的阈值)。则神经细胞的输出


其中



3. 人工神经网络

已经了解了神经细胞的结构,下面我们可以构造一个4层K类的人工神经网络(以下简称神经网络)

其中第1层是输入层,输入是样例的特征;最后一层是输出层,表示神经网络选择某一类别的几率,和Logistic Regression类似,我们选择几率最大的输出代表类别;介于输入层和输出层之间的是隐藏层,隐藏层通常由1到多层组成,当然也可以没有。注意到除了输出层,我们在每一层都增加了一个'bias unit‘,其值为1,它的作用我们在上一节讲过。我们用
L表示神经网络总的层数
表示第i层第j个神经细胞的激励值,即第i层第j个神经细胞的输出
表示第i层神经细胞的数量(不包括bias unit)
表示第i层第q个神经细胞到第i+1层第p个神经细胞的边的权重
表示第i层神经细胞到第i+1层神经细胞的所有边的权重的矩阵,是一个 的矩阵
则有
,其中
为Sigmoid函数。如果使用矩阵的形式,则有

这样逐层向前,我们最终可以计算得到输出层K个神经细胞的输出,假设最大,则i即为输入的类别。这个过程叫做Forward Propagation。

4. 训练神经网络

前面讲了怎样使用神经网络进行分类,在能得到正确的结果前,我们还需要还对神经网络进行训练。假设有K个类别,则神经网络的输出;有一个样例,同样的,其中表示属于第j个类别。比如,K=5,属于类别3,则有
假设神经网络的输出为
定义其Cost Function为



下面我们介绍一下Back Propagation(反射传播)算法:
for p = 1 to m
 
使用forward propagation计算;其中, 
计算
计算,其中,注意不包括,因为每一层的第一个细胞都没有输入
更新

--------------------------------------------------------------

补充一点: ,它的推导比较简单,这里不再给出。

Back Propagation只是计算了,后面可以使用Gradient Descent对进行更新,直到收敛。

5. Back Propagation的理解

Back Propagation的思想是将输出层的误差分摊到各层神经细胞,得到各神经细胞的误差信号,进而修正相应边的权值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值