博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
神经网络(一)神经网络基础知识
阅读量:5939 次
发布时间:2019-06-19

本文共 3105 字,大约阅读时间需要 10 分钟。

1.人工神经元模型

神经元信息处理过程的简化概况:

1.每个神经元都是一个多输入单输出的信息处理单元

2.神经元输入分为兴奋性输入和抑制性输入两种类型(即有正负)
3.神经元具有空间整合性和阈值特性
4.神经元输入与输出间有固定的时滞,主要取决于突触延搁
5.忽略时间整合作用和不应期
6.神经元本身是非时变的即突触时延和突触强度是常数

神经元的数学模型

\(x_i(t)\)表示t时刻神经元j接受的来自神经元i的输入信息,\(o_j(t)\)表示t时刻神经元j的输出信息,则

\(o_j(t)=f\{[\sum_{i+1}^{n}w_{ij}x_i(t-\tau_{ij})]-T_j\}\)

其中\(\tau_{ij}\)输入输出间的突触时延

\(T_j\)神经元j的阈值
\(w_{ij}\)神经元i到j的突触连接系数或权重值

输入总和常常称为神经元在t时刻的净输入

\(net'_j(t)=\sum_{i=1}^{n}w_{ij}x_{i}(t)\)
\(net'_j(t)=W_j^TX\)
\(W_j=(w_{1j},w_{2j},...,w_{nj})^T\)
\(X=(x_1,x_2,...,x_n)^T\)
\(x_0=-1,w_{0j}=T_j\)\(net'_j-T_j=net_j=\sum_{i=0}^nw_{ij}x{i}=W^T_jX\)

综上,神经元模型可简化为\(o_j=f(net_j)=f(W_j^TX)\)

2.人工神经网络模型

1.Hebb学习

是一种纯前馈无监督学习

学习信号简单地等于神经元的输出
\(r=f(W_j^TX)\)
权向量调整公式
\(\Delta W_j=\eta f(W_j^TX)X\)
\(\Delta w_{ij}=\eta f(W_j^TX)X=\eta o_jx_i\)
Hebb学习规则要求预先设置权饱和值 防止输入输出无约束增长
此外,还要求权值初始化对\(W_j(0)\)赋予零附近的小随机数

例如T=0,\(\eta=1,X^1=(1,-2,1.5,0)^T,X^2=(1,-0.5,-2,-1.5)^T,X^3=(0,1,-1,1.5)^T,W(0)=(1,-1,0,0.5)\)转移函数为sgn函数

import torch as tdef sgn(x):    if x[0]>=0: return 1    else: return -1w_0 = t.Tensor([[1,-1,0,0.5]])eta = 1x = []x.append(t.Tensor([[1],[-2],[1.5],[0]]))x.append(t.Tensor([[1],[-0.5],[-2],[-1.5]]))x.append(t.Tensor([[0],[1],[-1],[1.5]]))for i in x:    net = w_0.mm(i)    print(net)    w_0 = w_0+eta*sgn(net)*i.t()    print(w_0)
tensor([[3.]])tensor([[ 2.0000, -3.0000,  1.5000,  0.5000]])tensor([[-0.2500]])tensor([[ 1.0000, -2.5000,  3.5000,  2.0000]])tensor([[-3.]])tensor([[ 1.0000, -3.5000,  4.5000,  0.5000]])

2.Percepton学习规则

\(r=d_j-o_j\)

$o_j=f(W^T_jX)=sgn(W^T_jX)= \begin {cases} 1 & W^T_jX\ge0 \ -1 & W^T_jX<0 \end {cases} $
权值调整公式为
\(\Delta W_j=\eta [d_j-sgn(W_j^TX)]X\)
\(\Delta w_{ij}=\eta [d_j-sgn(W_j^TX)]x_i\)
在有误差的情况下由于\(d_j,sgn\)取值为{-1,1},权值调整公式可简化为
\(\Delta W_j=\pm 2 \eta X\)
只适用于二进制神经元 是一种有监督学习

3.\(\delta\)学习规则

学习信号规定为

\(r=[d_j-f(W_j^TX)]f'(W_j^TX)=(d_j-o_j)f'(net_j)\)
要求转移函数可导,只适用于有监督学习中定义的连续转移函数
\(\Delta W_j=\eta (d_j-o_j)f'(net_j)X\)
\(\Delta w_{ij}=\eta (d_j-o_j)f'(net_j)x_i\)

例如\(w_0=T,x_0=-1,\eta = 0.1,X^1=(-1,1,-2,0)^T,X^2=(-1,0,1.5,-0.5)^T,X^3=(-1,-1,1,0.5)^T,d^1=-1,d^2=-1,d^3=1,W(0)=(0.5,1,-1,0)^T\)

import torch as timport mathdef f(x):    return (1-math.e**(-x))/(1+math.e**(-x))def f_d(x):    return (1-f(x)**2)/2w_0 = t.Tensor([[0.5,1,-1,0]])eta = 0.1x = []x.append(t.Tensor([[-1],[1],[-2],[0]]))x.append(t.Tensor([[-1],[0],[1.5],[-0.5]]))x.append(t.Tensor([[-1],[-1],[1],[0.5]]))d = []d.append(-1)d.append(-1)d.append(1)for i,j in zip(x,d):    net = w_0.mm(i)    o=f(net)    w_0=w_0+eta*(j-o)*f_d(net)*i.t()    print(w_0)
tensor([[ 0.5259,  0.9741, -0.9482,  0.0000]])tensor([[ 0.5314,  0.9741, -0.9563,  0.0027]])tensor([[ 0.5046,  0.9474, -0.9296,  0.0161]])

4.LMS学习规则

学习信号定义为\(r=d_j-W_j^TX\)

\(\Delta W_j=\eta (d_j-W_j^TX)X\)
\(\Delta w_{ij}=\eta (d_j-W_j^TX)x_j\)
可以看做\(\delta\)学习的特例
有监督学习 权值可初始化为任意值

5.Correlation学习规则

学习信号为\(r=d_j\)

\(\Delta W_j = \eta d_jX\)
\(\Delta w_{ij} = \eta d_j x_i\)
有监督学习 要求权值初始化为0

6.Winner-Take-All学习规则

只有响应最大的神经元有权利调整权向量

\(W_j^{T_*}X=max(W_i^TX)\)
\(\Delta W_{j^*}=\alpha (X-W_{j^*})\)
\(\alpha \in (0,1]\)为一个小的学习常数

3.小结

1

转载于:https://www.cnblogs.com/ChetTlittilebread/p/10296752.html

你可能感兴趣的文章
GetWindowRect
查看>>
oracle sql语句实现累加、累减、累乘、累除
查看>>
SCNetworkReachabilityRef监测网络状态
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
接口由40秒到200ms优化记录
查看>>
java 视频播放 多人及时弹幕技术 代码生成器 websocket springmvc mybatis SSM
查看>>
Activiti6.0,spring5,SSM,工作流引擎,OA
查看>>
第十三章:SpringCloud Config Client的配置
查看>>
使用 GPUImage 实现一个简单相机
查看>>
CoinWhiteBook:区块链在慈善事业中的应用
查看>>
【二】express
查看>>
Mac上基于Github搭建Hexo博客
查看>>
What does corn harvester involve?
查看>>
阿里云服务器ECS开放8080端口
查看>>
前端常用排序详解
查看>>
Spring中实现监听的方法
查看>>
使用Tooltip会出现一个问题,如果行上出现复选框
查看>>
11.03T1 DP
查看>>
P2924 [USACO08DEC]大栅栏Largest Fence
查看>>
jQuery操作table tr td
查看>>