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=-ω13

e3=t3-a3=0-X3W=-ω23

e4=t4-a4=1-X4W=1-ω123

MSE=((ω3)2+(ω13)2+(ω23)2+(1-ω123)2)/4

对MSE的ω1求偏导数,得:∂MSE/∂ω11+0.5ω23-0.5;

对MSE的ω2求偏导数,得:∂MSE/∂ω2=0.5ω123-0.5;

对MSE的ω3求偏导数,得:∂MSE/∂ω312+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. 神经网络_线性神经网络 1 (Nerual Network_Linear Nerual Network 1)

    2019-04-08 16:59:23 1 学习规则(Learning Rule) 1.1 赫布学习规则(Hebb Learning Rule) 1949年,Hebb提出了关于神经网络学习机理的“突触 ...

  2. 神经网络_线性神经网络 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. 设 ...

  3. 单层感知机_线性神经网络_BP神经网络

    单层感知机 单层感知机基础总结很详细的博客 关于单层感知机的视频 最终y=t,说明经过训练预测值和真实值一致.下面图是sign函数 根据感知机规则实现的上述题目的代码 import numpy as ...

  4. 使用MindSpore的线性神经网络拟合非线性函数

    技术背景 在前面的几篇博客中,我们分别介绍了MindSpore的CPU版本在Docker下的安装与配置方案.MindSpore的线性函数拟合以及MindSpore后来新推出的GPU版本的Docker编 ...

  5. 『PyTorch』第四弹_通过LeNet初识pytorch神经网络_下

    『PyTorch』第四弹_通过LeNet初识pytorch神经网络_上 # Author : Hellcat # Time : 2018/2/11 import torch as t import t ...

  6. 自适应线性神经网络Adaline

    自适应线性神经网络Adaptive linear network, 是神经网络的入门级别网络. 相对于感知器, 采用了f(z)=z的激活函数,属于连续函数. 代价函数为LMS函数,最小均方算法,Lea ...

  7. RBF神经网络和BP神经网络的关系

    作者:李瞬生链接:https://www.zhihu.com/question/44328472/answer/128973724来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  8. 神经网络与BP神经网络

    一.神经元 神经元模型是一个包含输入,输出与计算功能的模型.(多个输入对应一个输出) 一个神经网络的训练算法就是让权重(通常用w表示)的值调整到最佳,以使得整个网络的预测效果最好. 事实上,在神经网络 ...

  9. BZOJ_2460_[BeiJing2011]元素_线性基

    BZOJ_2460_[BeiJing2011]元素_线性基 Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔 法矿石炼制法杖的技术.那时人们就认识 ...

随机推荐

  1. mysql windows 安装 错误

    1 免压缩版安装会经常提示需要c++库,还是要用安装版. 2 安装板默认在c盘,修改目录要注意目录权限. 3 要把datadir的data目录全部考到新目录下.

  2. vue 双向数据绑定的实现学习(一)

    前言:本系列学习笔记从以下几个点展开 什么是双向数据绑定 双向数据绑定的好处 怎么实现双向数据绑定 实现双向数据数据绑定需要哪些知识点 数据劫持 发布订阅模式 先看看我们要实现的目标是什么,如下动图: ...

  3. Vue + Element UI项目初始化

    1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...

  4. C++11 double转化为string

    C++11转化double为string是一件很容易的事情. 方法: 1:使用C中的sprintf函数,这里就不说了. 2:使用std::ostringstream.这个与std::cout是一样的. ...

  5. NOIP2018Day1T1 铺设道路

    题目描述 春春是一名道路工程师,负责铺设一条长度为 \(n\) 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是 \(n\) 块首尾相连的区域,一开始,第 \(i\) 块区域下陷的深度 ...

  6. java - day003 - 循环嵌套, 循环命名, while, 数组

    1.循环嵌套 break 中断循环或switch(跳出循环).中断后继续往下执行 continue (跳到循环的下一轮继续执行) return (结束方法) 2.循环命名 内层循环控制外层循环.需要给 ...

  7. linux线程 join/detach

    linux中创建线程时,可以通过 __attr 指定线程的属性 extern int pthread_create (pthread_t *__thread, __const pthread_attr ...

  8. Django 2.0 与 Django1.0在内部方法上的差异

    models.Customer.tags.rel 方法 对于Django1 可以通过 models.Customer.tags.to.model.objects.all() 获取一个model下的Ma ...

  9. Java实现一个简单的循环队列

    在某些时候,我们不能被要求像数组一样可以使用索引随机访问,而是需要被限制顺序处理业务,今天介绍一种先进先出(FIFO)的线性数据结构:队列, 当然,还有后进先出(LIFO)的处理方式,即为栈(后续有时 ...

  10. Redis数据类型SortedSET

    Sorted Set有点像Set和Hash的结合体.和Set一样,它里面的元素是唯一的,类型是String,所以它可以理解为就是一个Set.但是Set里面的元素是无序的,而Sorted Set里面的元 ...