加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

看懂这篇指南,包你掌握神经网络的“黑匣子”

发布时间:2019-06-04 13:14:12 所属栏目:建站 来源:读芯术
导读:人类的神经收集是怎样运行的?这个题目让很大都据科学家感想狐疑。表明某个简朴神经收集的事变机制很是轻易,可是当某个计较机视觉项目中的层数增进1000倍时,该怎么办呢? 终端用户想要相识模子是怎样获得最终功效时,仅用纸和笔来表明深度神经收集的事变机
副问题[/!--empirenews.page--]

“人类的神经收集是怎样运行的?”这个题目让很大都据科学家感想狐疑。表明某个简朴神经收集的事变机制很是轻易,可是当某个计较机视觉项目中的层数增进1000倍时,该怎么办呢?

终端用户想要相识模子是怎样获得最终功效时,仅用纸和笔来表明深度神经收集的事变机制是行不通的。那么,怎样让神经收集不再像“黑匣子”一样隐秘?

可视化可以做到这一点——将神经收集的差异特性可视化能使统统变得清楚明白,也能更直观地泛起卷积神经收集(CNN) 成千上万的图像实习功效。

神经收集

本文将先容卷积神经收集可视化的差异技能。另外,我们还将致力于从这些可视化中提取差异观点,以完美卷积神经收集模子。

留意:本文对神经收集和卷积神经收集的基本常识点将不再举办接头。以下三篇文章可辅佐你重温或相知趣关常识点。

  • A Comprehensive Tutorial to learn Convolutional Neural Networks from Scratch (从零开始进修卷积神经收集的全面教程):https://www.analyticsvidhya.com/blog/2018/12/guide-convolutional-neural-network-cnn/?utm_source=blog&utm_medium=understanding-visualizing-neural-networks
  • An Introductory Guide to Deep Learning and Neural Networks (深度进修与神经收集入门指南):https://www.analyticsvidhya.com/blog/2018/10/introduction-neural-networks-deep-learning/?utm_source=blog&utm_medium=understanding-visualizing-neural-networks
  • Fundamentals of Deep Learning – Starting with Artificial Neural Network (深度进修的基本——从人工神经收集开始):https://www.analyticsvidhya.com/blog/2016/03/introduction-deep-learning-fundamentals-neural-networks/?utm_source=blog&utm_medium=understanding-visualizing-neural-networks

为什么要用可视化解码神经收集?

这是一个值得研究的题目。有许多要领可以辅佐领略神经收集的事变道理,为何要转向可视化这条非同通俗的路呢?

通过一个例子来答复这个题目。譬喻,某个项目必要对雪豹和阿拉伯豹等动物图像举办分类。从直觉上讲,可以通过图像的配景举办区分。

这两种动物的栖息地截然差异。大大都雪豹的图片都以雪为配景,而大大都阿拉伯豹的图片配景多为辽阔的戈壁。

看懂这篇指南,包你把握神经收集的“黑匣子”

那么题目来了:一旦模子开始对雪和戈壁的图像举办分类,怎样确保模子已经正确进修了怎样区分这两种豹的特性呢?谜底就是可视化。

可视化辅佐我们领略是什么特性可以引导模子以对图像举办分类。

有许多种要领可以将模子可视化,本文将先容个中的几种要领。

成立模子系统布局

进修的最好方法是对观念举办编码。因此,本文将直接深入研究Python代码,提供适用的编码指南。

本文行使VGG16系统布局,并在ImageNet数据集上行使预先实习的权重。第一步,将模子导入措施并相识其系统布局。

之后行使Keras中的‘model.summary()’函数将模子系统布局可视化。这是在进入模子构建环节之前异常要害的一步。由于必要确保输入和输出的外形与题目告诉相匹配,因此必要将模子概述可视化。

  1. #importing required modules 
  2. from keras.applications import VGG16 
  3. #loading the saved model 
  4. #we are using the complete architecture thus include_top=True 
  5. model = VGG16(weights='imagenet',include_top=True) 
  6. #show the summary of model 
  7. model.summary() 

下表即为由上述代码天生的模子概述。

神经收集

该表记录了模子的具体架构以及每一层可实习参数的数目。但愿ni可以花一些时刻阅读以上内容,并相识我们今朝到达的程度。

只实习模子层的一个子集(特性提取)时,这一点尤为重要。通过天生模子概述,可以确保不行实习参数的数目与不想实习的层数相匹配。

另外,开拓职员可以行使可实习参数总量来搜查GPU是否可以或许分派足够内存来实习模子。对付行使电脑事变的大大都人来说,这项使命很常见,但也是一种挑衅。

熟悉卷积神经收集各层

相识模子的整体架构往后,就可以实行深入探讨神经收集的每一层了。

究竟上,会见Keras模子的各层并提取每一层的相干参数长短常轻易的,这包罗权重和过滤器数目等其他信息。

起首,建设字典,并将层名称映射到其响应的特性和权重。

  1. #creating a mapping of layer name ot layer details  
  2. #we will create a dictionary layers_info which maps a layer name to its charcteristics 
  3. layers_info = {} 
  4. for i in model.layers: 
  5.     layers_info[i.name] = i.get_config() 
  6.  
  7. #here the layer_weights dictionary will map every layer_name to its corresponding weights 
  8. layer_weights = {} 
  9. for i in model.layers: 
  10.     layer_weights[i.name] = i.get_weights() 
  11.  
  12. print(layers_info['block5_conv1']) 

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读