了解卷积神经网络如何使用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,其实不懂的还是有点多,当然第一次笔记主要是给自己心中 ...
随机推荐
- Linux驱动开发3——devfs udev procfs sysfs debugfs傻傻地分不清楚
Linux调试文件系统 1.1.procfs 早期的Linux内核中,内核通过procfs输出调试信息,可以在用户态通过读写procfs节点与内核进行交互,用来获取处理器.内存.设备驱动.进程等各种信 ...
- 小程序mpvue中动态切换echarts图表
如果你用mpvue,而且还想用echarts,那么这个包你可以以来一下 https://github.com/F-loat/mpvue-echarts 考虑到多个页面都休要用,所以抽出来作为一个组件, ...
- Pandas 50题练习
f行的age改为1. df.loc['f', 'age'] = 1.5 这样比 df.loc['f']['age'] 好 计算df中每个种类animal的数量 df['animal'].value_c ...
- shift()函数
用于对dataframe中的数整体上移或下移, 当为正数时,向下移. 当为负数时,向上移. 缺少的会填充NaN 参考: https://blog.csdn.net/kizgel/article/det ...
- ssm项目的创建思路
·DAO层: 代码:pojo.映射文件.接口文件——Mybatis逆向工程自动生成 配置:ApplicationContext-dao.xml——数据源.连接池.会话工厂.mapper包扫描 ·Ser ...
- 介绍一款代理端口管理工具--Proxfier
官网下载地址: https://www.proxifier.com/download/ProxifierSetup.exe 用户名随意填注册码下边 5EZ8G-C3WL5-B56YG-SCXM9-6Q ...
- 1.关于狗书《Flask Web开发 基于Python的web开发应用实战》身份验证的改进
在我学习用户身份验证的时候,我发现这里有个小弊端,在用户注册完成后想要验证邮箱的时候,点击邮箱中的网址进行验证,此时还要登陆,这及其不符合我们的习惯.一般情况下我们只需要点击网址就可以验证成功并且进入 ...
- 今天起,重新开头学习Java - 一、安装环境
先拜领路人 https://blog.csdn.net/u011541946/article/category/6951961/3? 一.安装JDK 1. 下载 www.java.com JDK是Ja ...
- [Python3] 012 元组:list,我们不一样!
目录 0. 元组的独白 1. 元组的创建 2. 元组的特性 (1) 概述 (2) 少废话,上例子 1) 索引 2) 分片 3) 序列运算 4) 成员检测 3. 元组的遍历 (1) 简单总结 (2) 少 ...
- java项目中,针对缓存问题的处理方式【接口中的处理方式】
1.在service包中,分别建立了关于缓存的一系列的接口.类等,封装到一个工具包中: 临时缓存的接口(代码部分): package com.tools; import java.util.Date; ...