ADALINE模型

ADALINE模型即自适应线性单元(Adaptive Linear Neuron),主要用于信号处理中的自适应滤波、预测和模式识别。其结构图如下

输入向量X=(x0,x1,x2,...,xn)T每个输入分量可以使数字量或模拟量;权向量W=(w0,w1,w2,...,wn)T该模型有两种输出

(1)当变换函数为线性函数时,输出模拟量,可以作为调节误差的手段,其功能是将期望输出与实际输出相比较,得到一个模拟量的误差信号,以此来调节权值,以保证任何时候始终保持期望输出与实际输出相等(y=d)

y=f(WTX)=WTX

(2)当变换函数为符号函数时,输出为双极性数字量,可以用来线性分类

y=f(WTX)=sgn(WTX)

ADALINE模型采用LMS即最小二乘法作为学习规则:

由LMS规则有 ΔW=η*(d-WTX)X

当输出为模拟量时,采用单位线性函数作变换函数,故y=WTX

所以,期望输出与实际输出的误差为ε=d-y

由此权向量调整公式可改为 ΔW=η*(d-y)X=η*ε*X,将输入向量X除以其模的平方有

ΔW=η*ε*X/||X||2

下面以两输入模拟输出的ADALINE型为例:

设输入向量X=(-1,1.2,2.7)T,d=2.3,初始权值为随机数W(0)=(-1,0.5,1.1)T,η=0.6,则,

y(0)=W(0)TX=(-1,0.5,1.1)T(-1,1.2,2.7)=4.57

ε(0)=d-y(0)=2.3-4.57=-2.27

第一次调整权值计算:

ΔW(0)=η*ε(0)*X/||X||2=0.6*(-2.27)*(-1,1.2,2.7)T/(-1,1.2,2.7)(-1,1.2,2.7)T=(0.14,-0.168,-0.378)T

W(1)=W(0)+ΔW(0)=(-1,0.5,1.1)T+(0.14,-0.168,-0.378)T=(-0.86,0.332,0.722)T

y(1)=W(1)TX=(-0.86,0.332,0.722)T(-1,1.2,2.7)=3.21

ε(1)=d-y(1)=2.3-3.21=-0.91

第二次调整权值计算:

ΔW(1)=η*ε(1)*X/||X||2=0.6*(-0.91)*(-1,1.2,2.7)T/(-1,1.2,2.7)(-1,1.2,2.7)T=(0.056,-0.0672,-0.151)T

W(2)=W(1)+ΔW(1)=(-0.86,0.332,0.722)T+(0.056,-0.0672,-0.151)T=(-0.804,0.265,0.571)T

重复上面的步骤直至实际输出逼近d即可。

ADALINE模型 主要用于语音识别、心电图诊断、信号处理以及系统辨识等方面

时间: 2024-12-22 00:54:04

ADALINE模型的相关文章

基于位置信息的聚类算法介绍及模型选择

百度百科 聚类:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类.由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异."物以类聚,人以群分",在自然科学和社会科学中,存在着大量的分类问题.聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法.聚类分析起源于分类学,但是聚类不等于分类.聚类与分类的不同在于,聚类所要求划分的类是未知的. 分类和聚类算法一直以来都是数据挖掘,机器学习领域的热门课题,因此产生了众多的

Laravel5.1 模型--ModelFactory

今天要说的是模型工厂,它是可以快速生成一些测试数据的东西,之前我们介绍过Seeder,当我们使用模型访问数据时 可以用模型工厂搭配Seeder使用. 1 编写一个ModelFactory ModelFactory的路径在 database/factories/ 下: // 这是系统自带的工厂 $factory->define(App\User::class, function ($faker) { return [ 'name' => $faker->name, 'email' =>

15.1-全栈Java笔记:Java事件模型是什么?事件控制的过程有哪几步??

应用前边两节上一章节的内容,大家可以完成一个简单的界面,但是没有任何的功能,界面完全是静态的,如果要实现具体功能的话,必须要学习事件模型. 事件模型简介及常见事件模型 对于采用了图形用户界面的程序来说,事件控制是非常重要的. 一个源(事件源)产生一个事件并把它(事件对象)送到一个或多个监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接收,监听器将处理这些事件. 一个事件源必须注册监听器以便监听器可以接收关于一个特定事件的通知. 每种类型的事件都有其自己的注册方法,一般形式为: v

11.python并发入门(part13 了解事件驱动模型))

一.事件驱动模型的引入. 在引入事件驱动模型之前,首先来回顾一下传统的流水线式编程. 开始--->代码块A--->代码块B--->代码块C--->代码块D--->......--->结束 每一个代码块里是完成各种各样事情的代码,但编程者知道代码块A,B,C,D...的执行顺序,唯一能够改变这个流程的是数据.输入不同的数据,根据条件语句判断,流程或许就改为A--->C--->E...--->结束.每一次程序运行顺序或许都不同,但它的控制流程是由输入数据和

Linux的I/O模式、事件驱动编程模型

大纲: (1)基础概念回顾 (2)Linux的I/O模式 (3)事件驱动编程模型 (4)select/poll/epoll的区别和Python示例 网络编程里常听到阻塞IO.非阻塞IO.同步IO.异步IO等概念,总听别人装13不如自己下来钻研一下.不过,搞清楚这些概念之前,还得先回顾一些基础的概念. 1.基础知识回顾 注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~~ 1.1 用户空间和内核空间 现在操作系统都采用虚拟寻址,处理器先产生一个虚拟地址,通过地址翻译成物理地址(内

Storm介绍及核心组件和编程模型

离线计算 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据.azkaban/oozie任务调度 流式计算 流式计算:数据实时产生.数据实时传输.数据实时计算.实时展示 代表技术:Flume实时获取数据.Kafka/metaq实时数据存储.Storm/JStorm实时数据计算.Redis实时结果缓存.持久化存储(mysql). 一句话总结:将源源不断产生的数据实时收集并实

ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(4)- 其它

1. 前言 2.可配置的指令使能/禁用控制和trap控制 指令使能/禁用 当指令被禁用,则这条指令就会变成未定义 指令Trap控制 控制某条或某些指令在运行时进入陷阱,进入陷阱的指令会产生trap异常,路由规则如下: (1)当前为EL1,则陷阱异常传递给EL1(HCR_EL2.TGE定义为1时,会路由到EL2); (2)当前为EL2,则陷阱异常传递给EL2; (3)当前为EL3,则陷阱异常传递给EL3; 3. 系统调用 SVC 默认情况下SVC产生supervisor call,同步异常目标级别

【统计学习】随机梯度下降法求解感知机模型

1. 感知机学习模型 感知机是一个二分类的线性分类问题,求解是使误分类点到超平面距离总和的损失函数最小化问题.采用的是随机梯度下降法,首先任意选取一个超平面w0和b0,然后用梯度下降法不断地极小化目标损失函数,极小化过程中不是一次使所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降.假设误分类点集合M是固定的,那么损失函数L(w,b)的梯度: 随机选取一个误分类点,对w和b进行更新: 其中n是步长,又称为学习率(learning rate),这样通过迭代可以使损失函数L(w,b)不

4.利用python生成器实现简单的“生产者消费者”模型

假如说,没有生成器这种对象,那么如何实现这种简单的"生产者消费者"模型呢? import time def producer(): pro_list = [] for i in range(10000): print "包子%s制作ing" %(i) time.sleep(0.5) pro_list.append("包子%s" %i) return pro_list def consumer(pro_list): for index,stuffe