热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

文本分类算法之--单层感知器的神经网络

http:www.cnblogs.comwengzilinarchive201304243041019.html一、感知器的学习结构感知器的学习是神经网络最典型的学习。目前,在控制上应

http://www.cnblogs.com/wengzilin/archive/2013/04/24/3041019.html

一、感知器的学习结构

感知器的学习是神经网络最典型的学习。

目前,在控制上应用的是多层前馈网络,这是一种感知器模型,学习算法是BP法,故是有教师学习算法。

一个有教师的学习系统可以用图1—7表示。这种学习系统分成三个部分:输入部,训练部和输出部。

图1-7  神经网络学习系统框图

输入部接收外来的输入样本X,由训练部进行网络的权系数W调整,然后由输出部输出结果。在这个过程中,期望的输出信号可以作为教师信号输入,由该教师信号与实际输出进行比较,产生的误差去控制修改权系数W。

学习机构可用图1—8所示的结构表示。

在图中,Xl ,X2 ,…,Xn ,是输入样本信号,W1 ,W2 ,…,Wn 是权系数。输入样本信号Xi 可以取离散值“0”或“1”。输入样本信号通过权系数作用,在u产生输出结果 ∑Wi Xi ,即有:

u=∑Wi Xi =W1 X1 +W2 X2 +…+Wn Xn

再把期望输出信号Y(t)和u进行比较,从而产生误差信号e。即权值调整机构根据误差e去对学习系统的权系数进行修改,修改方向应使误差e变小,不断进行下去,使到误差e为零,这时实际输出值u和期望输出值Y(t)完全一样,则学习过程结束。

神经网络的学习一般需要多次重复训练,使误差值逐渐向零趋近,最后到达零。则这时才会使输出与期望一致。故而神经网络的学习是消耗一定时期的,有的学习过程要重复很多次,甚至达万次级。原因在于神经网络的权系数W有很多分量W1 ,W2 ,----Wn ;也即是一个多参数修改系统。系统的参数的调整就必定耗时耗量。目前,提高神经网络的学习速度,减少学习重复次数是十分重要的研究课题,也是实时控制中的关键问题。

二、感知器的学习算法

感知器是有单层计算单元的神经网络,由线性元件及阀值元件组成。感知器如图1-9所示。

图1-9   感知器结构

感知器的数学模型:

(1-12)

其中:f[.]是阶跃函数,并且有

(1-13)

 

θ是阀值。

感知器的最大作用就是可以对输入的样本分类,故它可作分类器,感知器对输入信号的分类如下:

(1-14)

即是,当感知器的输出为1时,输入样本称为A类;输出为-1时,输入样本称为B类。从上可知感知器的分类边界是:

(1-15)

 

在输入样本只有两个分量X1,X2时,则有分类边界条件:

(1-16)

 

     W1 X1 +W2 X2 -θ=0       (1-17)

也可写成

(1-18)

这时的分类情况如固1—10所示。

感知器的学习算法目的在于找寻恰当的权系数w=(w1.w2,…,Wn),使系统对一个特 定的样本x=(xt,x2,…,xn)熊产生期望值d。当x分类为A类时,期望值d=1;X为B类 时,d=-1。为了方便说明感知器学习算法,把阀值θ 并人权系数w中,同时,样本x也相应增加一 个分量xn+1 。故令:

Wn+1 =-θ,Xn+1 =1      (1-19)

则感知器的输出可表示为:

(1-20)

感知器学习算法步骤如下:
1.对权系数w置初值
对权系数w=(W1 .W2 ,…,Wn ,Wn+1 )的各个分量置一个较小的零随机值,但Wn+1 =
—g。并记为Wl (0),W2 (0),…,Wn (0),同时有Wn+1(0)=-θ 。这里Wi (t)为t时刻从第i个
输入上的权系数,i=1,2,…,n。Wn+1 (t)为t时刻时的阀值。

图1-10 感知器的分类例子

2.输入一样本X=(X1 ,X2 ,…,Xn+1 )以及它的期望输出d。

期望输出值d在样本的类属不同时取值不同。如果x是A类,则取d=1,如果x是B类,则取-1。期望输出d也即是教师信号。

3.计算实际输出值Y

4.根据实际输出求误差e

e=d—Y(t)       (1-21)

5.用误差e去修改权系数

i=1,2,…,n,n+1      (1-22)

其中,η称为权重变化率,0<η≤1

在式(1—22)中,η的取值不能太大.如果1取值太大则会影响wi (t)的稳定;的取值也不能太小,太小则会使Wi (t)的求取过程收敛速度太慢。

当实际输出和期望值d相同时有:

Wi (t+1)=Wi (t)

6.转到第2点,一直执行到一切样本均稳定为止。

从上面式(1—14)可知,感知器实质是一个分类器,它的这种分类是和二值逻辑相应的。因此,感知器可以用于实现逻辑函数。下面对感知器实现逻辑函数的情况作一些介绍。

例:用感知器实现逻辑函数X1 VX2 的真值:


X1 0011
X2 0101
XV X2 0111

以X1VX2=1为A类,以X1VX2=0为B类,则有方程组

(1-23)

 

即有:
(1-24)

从式(1—24)有:

W1 ≥θ,W2 ≥θ

令 W1 =1,W2 =2

则有: θ ≤1

取   θ=0.5

则有:X1+X2-0.5=0,分类情况如图1—11所示。

图1-11  逻辑函数X1 VX2 的分类


推荐阅读
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文详细介绍了如何使用ActionScript 3.0 (AS3) 连接并操作MySQL数据库。通过具体的代码示例和步骤说明,帮助开发者理解并实现这一过程。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 信用评分卡的Python实现与评估
    本文介绍如何使用Python构建和评估信用评分卡模型,涵盖数据预处理、模型训练及验证指标选择。附带详细代码示例和视频教程链接。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • 解决SVN图标显示异常问题的综合指南
    本文详细探讨了SVN图标无法正常显示的问题,并提供了多种有效的解决方案,涵盖不同环境下的具体操作步骤。通过本文,您将了解如何排查和修复这些常见的SVN图标显示故障。 ... [详细]
author-avatar
mobiledu2502927147
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有