了解卷积神经网络如何使用TDA学习
在我之前的文章中,我讨论了如何对卷积神经网络(CNN)学习的权重进行拓扑数据分析,以便深入了解正在学习的内容以及如何学习它。
这项工作的重要性可归纳如下:
它使我们能够了解神经网络如何执行分类任务。
它允许我们观察网络的学习方式
它允许我们看到深层网络中的各个层如何在它们检测到的内容上有所不同
在这篇文章中,我们展示了如何将这种理解用于实际目的。那些是:
如何使用持久同源性的条形码长度来推断CNN的准确性。
我们的研究结果如何从一个数据集推广到下一个数据集。
使用持久同源条形码方法如何定量测量数据集的定性性质。
我们需要回顾上一篇文章中的一些想法。引入的一个想法是使用持久同源作为测量数据形状的工具。在我们的例子中,我们使用持久同源性来测量圆形的大小和强度或“明确定义”。
我们首先回顾一下持久同源性的概念。持久同源性分配给任何数据集并标注“条形码”,它是间隔的集合。在维度=0时,条形码输出反映了数据集分解为集群或组件。
对于更高维度,持久同源性测量除聚类分解之外的几何特征的存在。在dimension=1的情况下,条形码测量数据集中循环的存在。
在左边,条形码包括一个长条和一些更短的条。长条反映了圆的存在,而较短的条反映了噪声。在右边,我们再次有对应于噪音的短杆和两个不同长度的长杆。这些条反映了两个环的存在,条的不同长度对应于环的大小。条形的长度也可以反映出可能被称为循环的“明确定义”的东西。
在左边,我们有一个非常明确的循环及其条形码。在右侧,循环中添加了一些噪声,使得更加分散且定义不太明确。右边最长的条比左边的条长。因此,最长条的长度可以反映环的明确定义。
推断CNN的准确性
实际上是通过条形码中存在一个长条来确认的。我们现在想要了解随着训练的进展,循环形状是如何演变的。
我们通过检查条形码中最长条的长度(可以在训练的任何阶段计算)与训练点的准确度之间的相关性来实现这一点。我们对两个数据集MNIST和第二个房号数据集进行了这些计算,称为SVHN。
跨数据集的推广
第二个发现涉及从一个数据集到另一个数据集的泛化过程。具体来说,我们训练了基于MNIST的CNN,并在应用于SVHN时检查其准确性。我们使用三种不同的方法进行了培训。
测量可变性
第三个发现涉及检查两个数据集的可变性。定性地,我们可以确定SVHN比MNIST具有更多的可变性。反过来,我们希望SVHN提供更丰富的数据集和更精确的权重向量数据集。实际上,SVHN的持续时间间隔明显长于MINST(1.27对1.10)。这从上面进一步证实,所生成的圆模型的“良好定义性”与神经网络的质量之间存在强相关性。
加起来
拓扑分析在这种类型的分析挑战中有用的原因是它提供了一种将复杂数据集压缩为可理解且可能可操作的形式的方法。在这里,与许多其他数据分析问题一样,获得对数据中“频繁出现的图案”的理解至关重要。上述观察结果表明,拓扑分析可用于获得对CNN学习和泛化能力的控制和理解。这些方面还有许多进一步的想法,我们将在以后的文章中讨论。(欢迎转载分享)
了解卷积神经网络如何使用TDA学习的更多相关文章
- 卷积神经网络CNN与深度学习常用框架的介绍与使用
一.神经网络为什么比传统的分类器好 1.传统的分类器有 LR(逻辑斯特回归) 或者 linear SVM ,多用来做线性分割,假如所有的样本可以看做一个个点,如下图,有蓝色的点和绿色的点,传统的分类器 ...
- 卷积神经网络之AlexNet网络模型学习
ImageNet Classification with Deep Convolutional Neural Networks 论文理解 在ImageNet LSVRC-2010上首次使用大型深度卷 ...
- 卷积神经网络之VGG网络模型学习
VGG:VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION 牛津大学 visual geometry group(VG ...
- 深度学习之卷积神经网络(CNN)学习
1.卷积神经网络中卷积的核心意义是什么?每一组卷集核 权重是一个抽特征的滤波器, 从卷集核的角度抽取特征 2.卷积神经网络很好的特性参数共享机制每一个神经元固定一组a x b x c(图像的通道数) ...
- 卷积神经网络之ResNet网络模型学习
Deep Residual Learning for Image Recognition 微软亚洲研究院的何凯明等人 论文地址 https://arxiv.org/pdf/1512.03385v1.p ...
- 卷积神经网络(CNN)学习算法之----基于LeNet网络的中文验证码识别
由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013+Python2.7.12环境下的C ...
- 【深度学习与TensorFlow 2.0】卷积神经网络(CNN)
注:在很长一段时间,MNIST数据集都是机器学习界很多分类算法的benchmark.初学深度学习,在这个数据集上训练一个有效的卷积神经网络就相当于学习编程的时候打印出一行“Hello World!”. ...
- SIGAI深度学习第七集 卷积神经网络1
讲授卷积神经网络核心思想.卷积层.池化层.全连接层.网络的训练.反向传播算法.随机梯度下降法.AdaGrad算法.RMSProp算法.AdaDelta算法.Adam算法.迁移学习和fine tune等 ...
- Python机器学习笔记:卷积神经网络最终笔记
这已经是我的第四篇博客学习卷积神经网络了.之前的文章分别是: 1,Keras深度学习之卷积神经网络(CNN),这是开始学习Keras,了解到CNN,其实不懂的还是有点多,当然第一次笔记主要是给自己心中 ...
随机推荐
- IDEA简单破解激活操作流程(我在用的)
其实简单的,你需要下一个包,将他放入你的IDEA安装目录的bin下,如下下图 下载地址:https://pan.baidu.com/s/1aJDefDGmfYGrkcJCpZYccA 看到红线的地方了 ...
- Day02 结构类型
1.结构类型是值类型 (类是引用类型) 2.结构中也可以像类一样,定义 字段 属性 方法 但是不能给字段赋初始值 3.结构的构造方法中,必须为所有的字段赋值 4.不能为结构显示定义无参数的构造 ...
- iOS即时通讯之CocoaAsyncSocket源码解析一
申明:本文内容属于转载整理,原文连接 前言: CocoaAsyncSocket是谷歌的开发者,基于BSD-Socket写的一个IM框架,它给Mac和iOS提供了易于使用的.强大的异步套接字库,向上封装 ...
- linux安装 redis
通过源码编译安装 1.下载源码包 wget http://download.redis.io/releases/redis-4.0.10.tar.gz 2.解压缩redis tar -zxf redi ...
- 将String转化成Stream,将Stream转换成String, C# Stream 和 byte[] 之间的转换(文件流的应用)
static void Main( string[] args ) { string str = "Testing 1-2-3"; //convert string 2 strea ...
- 函数介绍——MulDiv
http://blog.sina.com.cn/s/blog_579ebc11010008ql.html 函数介绍——MulDiv (2007-03-27 10:05:30) 转载▼ 分类: 编程 ...
- 分享:陆行鸟BGM合集
第39首是原版哦 https://pan.baidu.com/mbox/homepage?short=pMkAqhX
- Html mate标签的常见功能
一.常用的功能 1.禁止屏幕缩放 <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, us ...
- linux 截取变量字符串
STR=123456abc FINAL=`echo ${STR: -1}` 或者 FINAL=${STR: -1} 都可以让FINAL获得c这个最后一个字符 Linux 的字符串截取很有用.有八种 ...
- Java-XML解析第一篇主流开源类库解析XML
1.流行的XML解析框架 1>底层解析方式:存在编码复杂性.难扩展.难复用.....想了解底层解析方式请参考:浅谈 Java XML 底层解析方式 2>Dom4j:基于 JAXP 解析方式 ...