码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习第8周-炼数成金-神经网络

时间:2016-04-23 21:20:41      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

参考书

技术分享技术分享技术分享

 

 

深度学习

深度学习是机器学习研究中的一个新的领域,其动机在亍建立、模拟人脑迚行分析学习的神经网络它模仿人脑的机制来解释数据,

例如图像,声音和文本。深度学习是无监督学习的一种。
深度学习的概念源亍人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。

深度学习通过组合低层特征形成更加抽象的高层表示属性类别戒特征,以发现数据的分布式特征表示。
深度学习的概念由Hinton等人亍2006年提出。基亍深信度网(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。

此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。

 

BP神经网络

error Back Propagation,基亍误差反向传播算法
1986年由Rumelhart和McCelland为首的科学家小组提出
多层前馈网络
目前应用最广泛的神经网络模型之一
多层,可以调整的权值很多,可以使用多种激活函数
能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学斱程
学习规则使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平斱和最小
BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)

 

技术分享

 

多层前馈神经网络

隐藏层不隐藏节点
前馈——每一层的节点仅和下一层节点相连

技术分享

学习规则:最速下降BP法

很早就有多层神经网络的想法,但苦亍没有合适的学习算法
误差反向传播算法催熟了人工神经网络
基本思想:学习过程由信号的正向传播和误差的反向传播两个过程组成
《人工神经网络理论、设计及应用》第47页

 

BP神经网络实现图像压缩

BP神经网络实现图像压缩。依赖BP网络的非线性映射能力进行数据压缩
JPEG压缩
基于小波变换的图像压缩算法
分形压缩编码
矢量量化压缩编码
采用BP神经网络对灰度图像进行压缩,在保证较好峰值信噪比(PSNR)的情况下,达到了较高的压缩比。

 

 

常见的文件压缩软件如WinZip、WinRAR等采用的是无损压缩,能够完全恢复原文件内容。多媒体信息具有信息量大、冗余信息多的特点,往往采用有损压缩技术。

1.根据大面积着色原理,图像必须在一定面积内存在相同或相似的颜色,对于人眼的观察来说才有意义,否则看到的只是杂乱无章的雪花。

因此,图像中相邻象素间存在相似性,这样就产生了图像的预测编码。

2.由于存在视觉的掩盖效应,因此人眼对于颜色细节往往并不敏感。

图像信息上的微小损失往往是无法感知或可以接受的,这样就提供了广阔的压缩空间3.数据都存在统计上的冗余,

如在某一幅描绘海洋的图像中,蓝颜色出现的频率可能远高于红颜色,通过去除统计上的冗余同样可以实现压缩。

 

BP神经网络用于压缩:
只采用一个隐含层,因此整体构成了一个三层的网络。
把一组输入模式通过少量的隐含层单元映射到一组输出模式,并使输出模式尽可能等于输入模式。

因此,隐含层神经元的值和相应的权值向量可以输出一个与原输入模式相同的向量。

当隐含层的神经元个数较少时,就意味着隐含层能用更少的数来表现输入模式,而这,实际上就是压缩。

 

第一层为输入层,中间层为隐含层,网络的映射功能依赖隐含层实现。输入层到隐含层的变换相当于压缩的编码过程;而从隐含层到输出层的变换则相当于解码过程

技术分享

输入层和输出层均由M个神经元组成,隐含层包含K个神经元。网络对数据进行压缩编码,保存在隐含层,再由隐含层输出到下一层

技术分享

技术分享

技术分享

 

技术分享

采用MATLAB神经网络工具箱的feedforwardnet函数创建BP网络,并指定训练算法。为了达到较好效果,采用LM训练法。
保存结果。训练完成后,压缩的结果是每个输入模式对应的隐含层神经元向量的值,以及网络的权值和阈值。使用save命令保存为MAT文件

 

步骤:

解压。

使用load命令加载数据文件

数据反归一化

重建

图像反归一化

图像块恢复

运行bp_imageCompress.m进行压缩

bp_imageRecon进行解压

技术分享技术分享

数据源:ftp://ftp.ics.uci.edu/pub/machine-learning-databases

 

基于BP网络的个人信贷信用评估

德国信用数据库

技术分享

 

对个人信用的评估方法主要分为定性评估和定量评估两种,

前者主要根据信贷人员的主观判断,后者则根据个人客户的资料,利用评分卡和信用评分模型等工具进行分析。

本实例采用BP神经网络,以已知用户信息及信用情况为训练样本,学习得出一个抽象模型,然后对新样本进行评估,

正确率稳定在70%以上对所有客户做二分类,只区分好和差两种情况。数据采用德国信用数据库。

德国信用数据库由Hans Hofmann教授整理,包含1000份客户资料,每位客户包含20条属性,并给出了信用好或差的标注。

 

技术分享

 

(1)读入数据。

(2)划分训练样本与测试样本。在全部1000份样本中,共有700份正例(信誉好),300份负例(信誉差)。

划分时取前350份正例和前150份负例作为训练样本,后350份正例和后150份负例作为测试样本。

(3)样本归一化。使用mapminmax函数对输入样本进行归一化

(4)创建BP神经网络,并完成训练

(5)测试。BP网络输出值并不限定为1或2,而是一个实数,因此还需要将输出转换为整数。

取1.5为阈值,小于该阈值的输出判为1(信用好),否则判为2(信用差)

技术分享

 

 

 

运行脚本credit_class.m测试20次的平均正确率为74.97%,最低正确率为73.4%,迭代次数均为3次

 

 

径向基函数RBF

范数
什么是径向基函数
常用径向基函数:高斯函数,反演S型函数,拟多二次函数
逼近解释
《人工神经网络理论、设计及应用》第165页

 

正则化RBF神经网络

隐藏层节点数即为样本数
使用高斯函数作为隐藏层激活函数,称为基函数
数据中心即样本点,扩展常数可由样本分布(和两两之间距离有关)和样本数决定。所有节点的基函数取相同的扩展常数
输出层使用线性激活函数
是一种通用逼近器
学习算法,类似LMS
《人工神经网络理论、设计及应用》第167页

 

RBF与BP比较

RBF只有一个隐藏层,BP可以多层

RBF隐藏层和输出层使用不同的激活函数,BP全相同
所使用的激活函数特性不一样,RBF选择局部指数衰减的非线性函数(强调局部),BP则使用输入样本亍权向量的内积作为自变量,激活函数采用sigmoid戒限幅函数(强调全局)
BP是对非线性映射的全局逼近,RBF更突出局部特性(回忆SVM的情形)

 

广义RBF神经网络

基本思想还是将低维度线性不可分问题(非线性问题)映射到高维空间变成线性可分问题解决(径向基函数用于逼近映射)
隐藏层节点数一般进进小于样本数
中心不一定在样本点,通过训练算法(可能需要聚类)来选取
扩展常数不再统一,由训练算法得出
输出函数在线性函数中包括阈值顷
训练算法(基亍k-means聚类)

 

机器学习第8周-炼数成金-神经网络

标签:

原文地址:http://www.cnblogs.com/hellochennan/p/5425457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!