##########(好好好)基于深度机器学习算法DBNs的风险识别模型

本文主要是介绍##########(好好好)基于深度机器学习算法DBNs的风险识别模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:最初关注深度机器学习是听了NUS的汪晟博士关于深度机器学习平台SIGNA的介绍,当时就发现深度机器学习是人工智能的一个革新的进步。但是由于从事的云计算和大数据方向的工作,所以平时只是作为自己的兴趣领域看了一些相关的入门级资料。最近事业部的同事在讨论文物保护的风险识别问题,不自觉地想到能否将深度机器学习运用到文物保护的风险识别中,于是做了一些较深入的研究,设计了一个基于深度机器学习DBN算法的风险识别模型。

一、传统机器学习与深度机器学习

传统机器学习最初是来源于Back Propagation算法的发明,因此人们在研究中发现可以使用BP算法和人工神经网络模型对大量的样本数据进行学习并最终经过反复调整和优化可以得到样本数据的统计规律,利用这一统计规律可以进行普通数据的分析以及对将要引起的反应进行一定程度上的预测。这种传统的机器学习非常依赖于样本数据的质量,如果没有高质量、高特征的样本数据,会导致预测模型的准确性大大降低。但是这和通过手工的编写SQL正则表达式来进行数据判断的方式相比,已经是大大的进步。传统的机器学习从上世纪80年代末被发现并得到热捧以来,在风险识别、商业智能、经济预测等领域得到大量的应用,相应的也开发出了大量的机器学习算法如SVM、决策树、聚类算法等。总的来说,这是人工智能第一次引起人们的重大关注和应用,也让人们更加的憧憬人工智能的未来。 
深度机器学习的兴起是来源于《科学》杂志上一篇文章《Reducing the dimensionality of data with neural networks》,这篇文章的作者是加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和他的学生RuslanSalakhutdinov。这篇文章表达了两个主要观点:1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服。自此人们开始了深度机器学习的研究和探索,目前深度机器学习的算法还是主要借鉴传统的机器学习算法,但是在不断的实践和研究中一些神一样存在的大牛也开发出了几个深度机器学习算法如(RBM)限制波尔兹曼机 、Deep Belief Networks深信度网络等。

二、Deep Belief Networks深信度网络

Depp Belief Networks(DBN)深信度网络也是加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton在一篇文章中提出的,一个经典的DBN神经网络如图1。DBN相比于传统的机器学习算法如SVM、聚类算法、决策树等有一个更加智能等优势,就是DBN可以自主的在训练过程中发现样本数据之间的关联关系和规律,并会通过调节自身的权重值来持久化发现的关联关系和规律。

图1

(图1 ) 
DBNs是一个概率生成模型,与传统的判别模型的神经网络相比,概率生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅评估了P(Label|Observation)。对应到上图就是P(v|h)和P(h|v),输入值v通过P(v|h)可以得到隐藏层h,而经过参数值调整之后隐藏层h通过P(h|v)可以得到一个与之前输入值近似的(理论上是完全一样)v1,这样隐藏层就可以作为一个特征模型(类似于卷积算法中的卷积核)存在,也就能对输入值进行识别。 
DBNs的核心组件就是RBM(限制玻尔兹曼机),限制玻尔兹曼机是一种特殊类型的马尔科夫随机场,它含有一层随机隐藏单元和一层随机可见单元。RBM能表示一个二分图,所有可见的单元链接到所有隐藏单元,而且没有可见—可见或者隐藏—隐藏之间的链接。具体解释就是所有的隐藏层的输入都作为可见层的输入,所有可见层的输入都作为隐藏层的输入,那么在经过多层的RBM之后,如果最终得到的V1和V值近似相同,那么我们就可以到一个识别模型,通过在最高层加入监督学习进行最优权重的调整就可以得到一个比较完美的识别模型。

三、基于深度机器学习DBN算法的风险识别模型

在进行风险识别的机器学习模型训练中,传统的机器学习算法往往会遇到一个无法解决问题的,那就风险样本数据不足,能够提取的特征有限。因为在正常的生产环境中,无害数据远远大于有害数据,而基于统计学的传统机器学习算法只有在大量的、高质量的样本数据训练下才能得到比较理想的识别模型。基于深度机器学习DBN算法的风险识别模型的思想是使用可以使用有限无害数据进行训练,通过多层神经网络(RBM)的迭代来进行多维度、多层次的学习,这来快速的增加学习得到特征数量,这种通过RBM叠加进行贪婪逐层学习的方法在很多领域都取得了很好的效果。下图2是基于DBN算法风险识别的训练模型。

图2

(图2) 
在完成风险识别模型的训练后,就会形成一个稳定的神经网络。这个神经网络是会自动进行更新学习的,就像人在学习到新的之后会覆盖掉原来旧的或者错误的知识一样。完成训练的风险识别模型如下图3:

图3

(图3) 
其中y1,y2,y3是进行监督学习时的标签神经元,w1,w2,w3是经过监督学习的BP算法后得到的最优权重值,h1,h2,h3,h4则是隐藏层的神经元,v1,v2,v3,v4是可视化层的神经元。 
经过训练的DBN神经网络就可以作为风险识别模型进行风险的识别,风险识别模型的工作流程如下图4:

图4

(图4)

参考资料:

《Deep Learning(深度学习)学习笔记整理系列之常用模型(四、五、六、七)》:http://www.xuebuyuan.com/1541870.html 
《Deep Learning(深度学习)学习笔记整理系列》:http://blog.csdn.net/zouxy09/article/details/8775360

这篇关于##########(好好好)基于深度机器学习算法DBNs的风险识别模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/402628

相关文章

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的