神经网络_线性神经网络 2 (Nerual Network_Linear Nerual Network 2)
1 LMS 学习规则
1.1 LMS学习规则定义
MSE=(1/Q)*Σe2k=(1/Q)*Σ(tk-ak)2,k=1,2,...,Q
式中:Q是训练样本;t(k)是神经元的期望输出;a(k)是神经元的实际输出。
线性神经网络的目标是寻找最适合的权值W,使得均方差MSE最小,只要对MSE求ω得偏导数,然后让偏导数等于0,那么就可以计算出MSE的极值。
for example:
原始输入:X1=[0 0]T、t1=0,X2=[1 0]T、t2=0,X3=[0 1]T、t3=0,X4=[1 1]T、t4=1。
更改后的输入:X1=[0 0 1]、t1=0,X2=[1 0 1]、t2=0,X3=[0 1 1]、t3=0,X4=[1 1 1]、t4=1。
(1) 初始化权值 W=[ω1,ω2],偏置值 b=b;
(2) 设ω3=b,则W=[ω1,ω2,ω3],更改后的输入如上;
(3) 求解每一个输入的偏差;
(4) 偏差相加求平均;
(5) 对每个权值求偏导数;
(6) 解方程组。
e1=t1-a1=0-X1W=-ω3;
e2=t2-a2=0-X2W=-ω1-ω3;
e3=t3-a3=0-X3W=-ω2-ω3;
e4=t4-a4=1-X4W=1-ω1-ω2-ω3。
MSE=((ω3)2+(ω1+ω3)2+(ω2+ω3)2+(1-ω1-ω2-ω3)2)/4
对MSE的ω1求偏导数,得:∂MSE/∂ω1=ω1+0.5ω2+ω3-0.5;
对MSE的ω2求偏导数,得:∂MSE/∂ω2=0.5ω1+ω2+ω3-0.5;
对MSE的ω3求偏导数,得:∂MSE/∂ω3=ω1+ω2+2ω3-0.5。
使偏导数等于0,可得方程组:
[2 1 2;1 2 2;2 2 4]T*[ω1 ω2 ω3]T=[1 1 1]T。解该方程,可得
ω1= 0.5;
ω2=0.5;
ω3=-0.25。
因此,可得 0.5x1+0.5x2-0.25=0.5 (0.5是因为期望输出为0和1,取其中间值(0+1)/2=0.5)
计算到这步,则可以使用该几何图形将输入的数据在图形上分开,同时得到最佳权值。除用此方法求权值外,还可以使用迭代法计算权值。将在神经网络_线性神经网络 3中讲解 (Nerual Network_Linear Nerual Network)。
神经网络_线性神经网络 2 (Nerual Network_Linear Nerual Network 2)的更多相关文章
- 神经网络_线性神经网络 1 (Nerual Network_Linear Nerual Network 1)
2019-04-08 16:59:23 1 学习规则(Learning Rule) 1.1 赫布学习规则(Hebb Learning Rule) 1949年,Hebb提出了关于神经网络学习机理的“突触 ...
- 神经网络_线性神经网络 3 (Nerual Network_Linear Nerual Network 3)
1 LMS 学习规则_解方程组 1.1 LMS学习规则举例 X1=[0 0 1]T,t1=0:X2=[1 0 1]T,t2=0:X3=[0 1 1]T,t3=0:X1=[1 1 1]T,t1=1. 设 ...
- 单层感知机_线性神经网络_BP神经网络
单层感知机 单层感知机基础总结很详细的博客 关于单层感知机的视频 最终y=t,说明经过训练预测值和真实值一致.下面图是sign函数 根据感知机规则实现的上述题目的代码 import numpy as ...
- 使用MindSpore的线性神经网络拟合非线性函数
技术背景 在前面的几篇博客中,我们分别介绍了MindSpore的CPU版本在Docker下的安装与配置方案.MindSpore的线性函数拟合以及MindSpore后来新推出的GPU版本的Docker编 ...
- 『PyTorch』第四弹_通过LeNet初识pytorch神经网络_下
『PyTorch』第四弹_通过LeNet初识pytorch神经网络_上 # Author : Hellcat # Time : 2018/2/11 import torch as t import t ...
- 自适应线性神经网络Adaline
自适应线性神经网络Adaptive linear network, 是神经网络的入门级别网络. 相对于感知器, 采用了f(z)=z的激活函数,属于连续函数. 代价函数为LMS函数,最小均方算法,Lea ...
- RBF神经网络和BP神经网络的关系
作者:李瞬生链接:https://www.zhihu.com/question/44328472/answer/128973724来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- 神经网络与BP神经网络
一.神经元 神经元模型是一个包含输入,输出与计算功能的模型.(多个输入对应一个输出) 一个神经网络的训练算法就是让权重(通常用w表示)的值调整到最佳,以使得整个网络的预测效果最好. 事实上,在神经网络 ...
- BZOJ_2460_[BeiJing2011]元素_线性基
BZOJ_2460_[BeiJing2011]元素_线性基 Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔 法矿石炼制法杖的技术.那时人们就认识 ...
随机推荐
- mysql windows 安装 错误
1 免压缩版安装会经常提示需要c++库,还是要用安装版. 2 安装板默认在c盘,修改目录要注意目录权限. 3 要把datadir的data目录全部考到新目录下.
- vue 双向数据绑定的实现学习(一)
前言:本系列学习笔记从以下几个点展开 什么是双向数据绑定 双向数据绑定的好处 怎么实现双向数据绑定 实现双向数据数据绑定需要哪些知识点 数据劫持 发布订阅模式 先看看我们要实现的目标是什么,如下动图: ...
- Vue + Element UI项目初始化
1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...
- C++11 double转化为string
C++11转化double为string是一件很容易的事情. 方法: 1:使用C中的sprintf函数,这里就不说了. 2:使用std::ostringstream.这个与std::cout是一样的. ...
- NOIP2018Day1T1 铺设道路
题目描述 春春是一名道路工程师,负责铺设一条长度为 \(n\) 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是 \(n\) 块首尾相连的区域,一开始,第 \(i\) 块区域下陷的深度 ...
- java - day003 - 循环嵌套, 循环命名, while, 数组
1.循环嵌套 break 中断循环或switch(跳出循环).中断后继续往下执行 continue (跳到循环的下一轮继续执行) return (结束方法) 2.循环命名 内层循环控制外层循环.需要给 ...
- linux线程 join/detach
linux中创建线程时,可以通过 __attr 指定线程的属性 extern int pthread_create (pthread_t *__thread, __const pthread_attr ...
- Django 2.0 与 Django1.0在内部方法上的差异
models.Customer.tags.rel 方法 对于Django1 可以通过 models.Customer.tags.to.model.objects.all() 获取一个model下的Ma ...
- Java实现一个简单的循环队列
在某些时候,我们不能被要求像数组一样可以使用索引随机访问,而是需要被限制顺序处理业务,今天介绍一种先进先出(FIFO)的线性数据结构:队列, 当然,还有后进先出(LIFO)的处理方式,即为栈(后续有时 ...
- Redis数据类型SortedSET
Sorted Set有点像Set和Hash的结合体.和Set一样,它里面的元素是唯一的,类型是String,所以它可以理解为就是一个Set.但是Set里面的元素是无序的,而Sorted Set里面的元 ...