分类:神经网络

人工神经网络

神经网络起源于生物学中有关神经元的研究。

神经元通过控制自身的神经突触接受信息。

这些神经突出的连接,又被认为是大脑行为的关键因素。

所谓人工神经网络,就是使用一套函数模型模拟这些相互连接的神经元。

他既可以对连续性目标变量做回归分析,也可以对分类型目标变量做分类分析。


1、神经元

主要分为权重系数,加法器,激活函数3个部分。

1)带有权重系数wj的突触。连接到输入值xj

2)加法器将所有的输入做加,并与一个偏差bias求和,记为 

   可以把偏差bias看作是输入为x0,权重为1的系数w0之积

3)激活函数g(也称为压缩函数)并把g(v)作为神经元中的输出,该函数必须是单调函数。

常见的激活函数

阶跃函数(也称为阈值型函数)

Logistic函数(也称Sigmod型函数)

#激活函数为Logistic函数的神经元代码
ann.cell <- function(x,w,bias){
  v <- sum(w*x)+bias
  o <- 1/(1+exp(-v))
  o
}

2、两层网络

人工神经网络可分为输入层、隐藏层和输出层3个部分。

3、反向传播算法

1)设置神经网络的基本结构和初始参数

       【1】隐藏层的层数和内部的神经元数目

       【2】隐藏层和输出层内所有神经元的加权系数及偏差值

       【3】所有神经元使用的激活函数

2)把样本1中的自变量数据通过输入层正向输入至初始网络模型ANNinit中, 并计算神经网络的输出yout(正向传播)

3)计算样本1中目标变量与yout的误差,并通过输出层反向输入初始网络模型中,通过计算误差的传播来调整各个神经元中加权系数和偏差量的取值(反向传播),

      最后 得到由样本1 修正后的神经网络模型ANN1

4)重复步骤。逐次使用训练集中的样本数据修正神经网络模型中的参数,最后根据停止学习条件,停止模型的修改过程,并完成算法的建立。注意,训练集数据可以被重复学习,不必由于所有训练集均被遍历而停止学习。

#1、正向传播

#以两层神经元为例,其隐藏层层级数为1,
o.hidden <- 0
for(i in 1:nrow(w.hidden))
{
  o.hidden[i] <- ann.cell(x,w.hidden[i,],bias.hidden[i])
}
o.out <- 0
for(i in 1:nrow(w.out))
{
  o.out[i] <- ann.cell(o.hidden,w.out[i,],bias.out[i])
}











  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值