TowardsDataScience-博客中文翻译-2016-2018-二百二十二-

24 阅读1小时+

TowardsDataScience 博客中文翻译 2016~2018(二百二十二)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

论文复制:深层神经进化

原文:towardsdatascience.com/paper-repro…

Obligatory evolution picture. From www.techcrates.com/evolution-o…

在这篇文章中,我们复制了最近的优步论文“深度神经进化:遗传算法是训练深度神经网络进行强化学习的一种有竞争力的替代方法”,该论文令人惊讶地表明,在诸如 Atari 游戏等经过充分研究的问题上,简单的遗传算法有时比表面上先进的强化学习算法表现得更好。

在优步最终用这篇论文解决冻伤问题之前,我们自己将会在冻伤问题上达到艺术表现的状态,这是一个困扰强化学习算法多年的游戏。我们还将学习使用遗传算法训练神经网络的黑暗艺术。

在某种程度上,这可以被认为是我的深度强化学习的第 3 部分,但我认为这篇文章也可以独立存在。请注意,与之前的教程不同,这篇文章将使用 PyTorch 而不是 Keras,主要是因为这是我个人选择的,但也因为 PyTorch 确实更适合这个特定的用例。对于第 0 至第 2 部分,请参见:

[## 用深度强化学习打败雅达利!(第 0 部分:RL 简介)

2013 年末,一家当时名不见经传的公司 DeepMind 在钢筋领域取得了突破…

becominghuman.ai](becominghuman.ai/lets-build-…)

设置环境

以下内容与 DQN (Mnih 等人,2015 年)相同:(1)数据预处理,(2)网络架构,以及(3)随机环境,以多达 30 个随机的初始无操作操作开始每一集。

很好,所以预处理和我们用 DQNs 做的一样!那非常方便。提醒一下,这需要做些什么:

  • 我们应该使用 OpenAI gym 的“确定性 v4”环境,它们可以自动跳过 4 帧,这似乎是 DQN 论文中的标准。
  • 我们应该使国家灰度,并调整其大小为 64 乘 64。我们还应该确保像素值在 0 和 1 之间,而不是 0 和 255 之间。
  • 状态应该由我们看到的前 4 帧组成。

我使用 OpenCV 做了预处理,得到了:

请注意,我后来意识到,这做了调整大小的双线性插值,而我认为最近邻可能是规范,不清楚这是否可能有很大的影响,但值得注意。

就效果而言,这是我们看到的转变:

变成了:

基本上就是这样,现在我们只需要堆叠 4 个这样的元素来得到我们的状态。

模型

我们使用来自 Mnih 等人(2015)的更大的 DQN 架构,该架构包括 3 个具有 32、64 和 64 个信道的卷积层,后面是一个具有 512 个单元的隐藏层。卷积层使用 8 × 8、4 × 4 和 3 × 3 滤波器,步长分别为 4、2 和 1。所有隐藏层之后是整流器非线性(ReLU)。该网络包含超过 4M 个参数。

没有我们以前没见过的,让我们把它写下来!

好了,现在我们可以开始有趣的事情了:

遗传算法的简单解释

一种遗传算法(荷兰,1992;Eiben 等人,2003)进化出 N 个个体的群体 P(这里是神经网络参数向量θ,通常称为基因型)。在每一代,对每个θi 进行评估,产生一个适合度分数(又名奖励)F(θi)。我们的 GA 变体执行截断选择,其中前 T 个个体成为下一代的父母。为了产生下一代,下面的过程重复 N-1 次:通过替换均匀地随机选择一个父代,并通过对参数向量应用加性高斯噪声来进行变异:θ’=θ+σε其中ε∾N(0,I)。对于每个实验,根据经验确定适当的σ值,如补充信息(SI)表 3 所述。第 n 个个体是上一代最佳个体的未修改副本,这种技术称为精英主义。

这对我来说似乎相当清楚,但我将尝试重新解释它:基本上,我们不是随机生成一个网络并使用梯度下降修改其权重,而是随机生成一组网络,构成一个“代”,然后评估它们。当然,他们中的一些人会表现得稍微好一点。我们挑选出表现最好的一个,留给下一代。然后在前几个网络中,我们通过多次复制它们并稍微修改每个副本的权重来创建新一代。因为每次只选择顶级网络,而且因为我们不断更换网络,所以我们的性能似乎应该不断提高,事实上也确实如此!

在我们的例子中,因为我们关注 Atari 游戏,所以群体大小是 5000,截断阈值是 10,σ参数是 0.005。他们提到的 I 参数,简单来说就是从一个单位方差的正态分布中抽样(I 是单位矩阵)。

那么,你可能会问,我们什么时候停止世代?优步非常清楚,他们在 10 亿后停止,而不是在固定数量的代后,所以我们将确保跟踪我们看到的帧数,一旦超过 10 亿就停止。提醒一下,神经网络上的帧和前向传递是有区别的,因为每次前向传递运行 4 帧是标准的(即网络每 4 帧只选择一个动作)。如果你在 OpenAI 健身房用了一个Deterministic-v4,这个 4 帧的跳帧是自动为你实现的,那么只需将你调用.step的次数乘以 4,当那个数达到十亿时就停止。

模型压缩

优步在这篇论文中提供的一个有趣的创新是在神经网络压缩方面。

我们提出了一种新的方法,通过将每个参数向量表示为一个初始化种子加上产生应用于θ的一系列突变的随机种子的列表,来紧凑地存储大参数向量。这项创新对于使遗传算法能够在深度神经网络的规模上工作至关重要,因此我们称之为深度遗传算法。这种技术的好处还在于提供了一种最先进的压缩方法(第 5 节)。

正如上面的引用所暗示的,我们绝对需要来实现这种压缩,不是因为它很酷,而是因为我们需要在几台不同的机器上工作,相互传递神经网络,并且能够有效地序列化神经网络,以便它们可以快速地从一台机器转移到另一台机器,这是非常重要的。

幸运的是,实现这一点非常简单!正如论文中提到的,这只是关于记住我们每次生成随机数时使用的随机种子,即我们需要记住:

  • 我们用来初始化网络的种子
  • 我们每次进化网络权重时使用的种子。

就是这样!每当我们传递网络时,我们只是发送种子而不是实际的网络,在正确设置每个种子后,通过重新运行初始化和进化很容易重新创建它。

使用 PyTorch 设置随机种子的方法很简单torch.manual_seed,您可以向其传递一个数字。为了确保随机种子总是不同的,我传入了一个由 Python 的random.randint生成的数字,从 0 到 2^31 - 1 进行采样(你为什么问这个数字?我不确定哪些数字可以作为随机种子,但这确保了我传递的任何东西都适合 32 位有符号整数,我觉得这几乎肯定是可以接受的,而更大的数字可能就不行了)。

学习:使用随机种子,而不是随机状态。

PyTorch 还有一种方法可以使用torch.get_rng_state获得其当前的随机状态,并使用torch.set_rng_state设置它。起初我用这个是因为可能的随机状态比随机种子多得多,所以对我来说它看起来更“随机”。最大的问题是每个随机状态的大小已经是 5kB 左右了(相比之下,一个随机种子只有 4 个字节,或者少了 1000 倍),这意味着我的系统由于涉及到大量的数据而变得非常慢。不要和我犯同样的错误!

既然我们理解了模型压缩和模型演化,我们就可以完成模型代码来处理这两者。我选择创建一个名为 CompressedModel 的单独的类来表示压缩模型,并且可以在两者之间来回切换。这需要对模型进行一些更新,以便它支持一个接受种子并对其进行演化的evolve函数,这样它就可以在初始化自己时接受种子。我们得到:

分布式计算:作业队列和现场实例

公平的警告:在这一部分,我假设你已经对 AWS 或其他一些云提供商有所了解,比如谷歌云或微软 Azure。如果你不知道,至少看看一些使用 AWS 进行深度学习的教程可能是值得的(例如:https://towards data science . com/how-to-set-up-a-deep-learning-environment-on-AWS-with-keras-the ano-b 0f 39 e 3d 861 c)),或者至少意识到你可能必须进行一些谷歌搜索,因为我将跳过一些重要的基本内容。

使用遗传算法训练神经网络在以下方面不同于使用梯度下降训练神经网络:使用梯度下降,我们需要在单个网络上进行大量的数学运算,而使用遗传算法,我们需要在许多网络上进行少得多的数学运算(只是向前传递,而不是向前和向后)。这使得我们可以在大量的 CPU 上训练我们的遗传神经网络,而不是在单个 GPU 上。

我们说的有多大?让我们看看优步对此有什么看法:

当大量分布式计算可用时,GA 和 ES 都比 Q-learning 和策略梯度方法更快(这里,几十台机器上有 720 个 CPU 内核)。

720 ?哇哦。我倾向于认为我自己的硬件是相当高端和最新的,但即使在我的台式机和笔记本电脑之间,我总共有 8 个 CPU 核心…

那么这又是一篇使用了我们普通人完全无法获得的大量资源的论文吗?不是这样的!我们只是需要学习更多关于基础设施的知识。

作业队列

问题是,我们绝对不可能在一台机器上获得 720 个 CPU 内核。更合理的是,我们可以得到 64 或更多。这意味着如果我们想像优步那样处理东西,我们将需要多台机器。

为此,我们将使用任务队列的概念,有一个主人(或经理)和工人。主服务器将任务放到任务队列中,而工人将从队列中取出作业,运行它们,并将结果写回。这个过程可以在这个图表中看到。

Source: www.alberton.info/batching_vs…

在我们的例子中,作业是评估当前一代中不同神经网络的性能,输出只是每个神经网络的分数,以及它们使用的帧数。这种体系结构的另一个优点是,它允许我们将主设备和工作设备放在不同的机器上,这有助于降低成本:我们可以将主设备放在功能不太强大但非常可靠的机器上,而将工作设备放在功能非常强大但不太可靠的机器上。这样我们可以保存我们的数据(因为所有东西都存储在主服务器上),但是可以使用不可靠的廉价机器作为工人。

我们将使用的任务队列库是 RQ ,这是一个非常容易使用的任务队列库。它依赖于 Redis 数据库,您可以非常简单地将其安装在 Amazon 实例上。

你所需要做的就是确保所有你的工人所需要的代码都在一个.py文件中,而不是在一个笔记本中,因为 RQ 需要.py文件来创建工人进程。然而,你的主人可以在笔记本上。你可以把你需要的.py的任何部分导入到你的主笔记本中。

具体来说,以下内容应该在一个.py文件中:

  • 神经网络模型的代码
  • 神经网络压缩/解压缩代码
  • 用于根据压缩模型和环境名称评估神经网络的函数,该函数至少返回分数和使用的帧数

然后,您的主代码可以使用job = rq.enqueue(...)将一个作业添加到队列中,该作业带有所讨论的函数和它应该采用的参数,并且它可以使用job.result得到结果,如果函数还没有返回,结果将是 None。您应该确保您的代码对于被丢弃的作业是健壮的:如果您长时间没有得到作业的结果,请确保它被重新排队。记得将压缩的神经网络作为参数传递给enqueue,因为这些需要序列化并通过网络传输,所以它们要小,这一点很重要。把这些放在一起,这是我最后的主代码。

一旦你有了所有这些,你应该为你的主人创建一个 AWS 实例,一个小型的就足够了,我个人使用了 t2.medium。你可以在上面安装任何你想要的 Linux,我个人使用了非深度学习的 Ubuntu 16.04 AMI。然后安装代理的所有依赖项,包括 redis-server、rq、pytorch 等。完成后,您应该做以下事情:

  • 编辑刚刚创建的主机的安全组,以允许 redis 连接。为了确保不将 redis 服务器暴露给外界,您可以将流量限制为仅来自同一个安全组内部的流量。从现在开始,确保您创建的任何其他计算机都在同一个安全组中。理想情况下,您应该只启用 redis 流量,但是我懒得找出具体的方法,所以我启用了来自安全组的所有流量,如下所示:

  • 找出你的主机的私有 IP(应该在 EC2 web 界面中)并创建以下两个文件: 一个名为redis.conf的文件包含bind <YOUR PRIVATE IP> 一个名为settings.py的文件包含REDIS_HOST = '<YOUR PRIVATE IP'
  • 运行 redis 服务器:nohup redis-server redis.conf&nohup部分确保服务器将继续运行,即使您的连接中断,而最后的&确保它立即在后台运行,以便您可以做其他事情。
  • 使用rq worker -c settings运行一个 RQ worker。
  • 现在通过运行您的主代码来测试这是否可行,并确保作业确实由工人处理。
  • 杀死 worker,回到 AWS 界面,点击你的实例,进入“Actions -> Images -> Create Image”,这将允许你创建一个包含你刚刚安装的所有包的 AMI,这样就可以很容易地在其他机器上启动 worker!

我们现在可以继续创建实际的工人。

AWS Spot 实例

事实证明,访问大量 CPU 是相当容易的:例如,AWS 上的 c5.18xlarge 实例包含惊人的 72 个 CPU,是我们所需的 1/10!只要有 10 个这样的实例,我们就会拥有与优步使用的 CPU 数量完全相同的 CPU。甚至有一个实例有 96 个 CPU(m5.24xlarge),但值得注意的是,它的 CPU 比 c5.18xlarge 略慢,而且它的每 CPU 成本略高,因为它也有更多的内存,这是我们并不真正需要的(c5.18xlarge 有 144 GB 的内存,m 5.24 x large 有 384 GB,但我记得我从未在我使用的任何机器上使用过超过 5 GB 的内存……)。

好的,那么要花多少钱?嗯,在美国西部地区,单个 c5.18xlarge 每小时的成本为 3.06 美元(其他地区应该差不多),优步声称,他们能够使用相当于 10 个 c5.18xlarge 在大约一小时内训练他们的网络,因此,假设一切顺利,训练单个网络应该花费 30.60 美元。这其实没那么糟糕!但是我们可以使用点实例做得更好。

现货实例是亚马逊如何处理并非所有机器在任何给定时间都被预订的事实:他们为闲置机器的使用设立拍卖,出价最高的人可以获得这些机器。这使得价格更低,但有一个问题:如果有人超过你的最高出价,或者亚马逊必须满足全价要求,你正在使用的机器可能会被夺走。

此外,与常规的按需实例相比,您实际支付的价格更难预测:实例的现货价格会随着需求的增加和减少而波动,只要当前现货价格低于您的最高出价,您就总是支付当前现货价格。因此,如果一个实例以每小时 1 美元的价格交易,而你出价 2 美元,你可能一开始会支付 1 美元,但随着时间的推移,你可能会开始支付每小时 1.5 美元,或 0.5 美元等。幸运的是,实例市场现在足够稳定,这不是一个大问题:如果您只使用您的实例几个小时,最有可能您将支付您第一次创建 spot 实例时看到的价格的 5%左右。

不过总的来说,我们上面描述的设计对于 spot 实例来说是完美的,因为您可以让一个“主”服务器运行在一个小型的随需应变实例上,并使用您想要的任何数量的高 CPU spot 实例。如果您正确地编写了代码,它应该相对不会出现实例死亡:它只会重试作业,不会丢失数据。在撰写本文时,一个 c 5.18 x 大型 spot 实例的成本为 1.08 美元,比使用按需实例的成本低近 3 倍。这意味着,乐观地说,在一个游戏上训练应该花费大约 11 美元。然而,请注意,由于我训练了 3 个游戏(冻伤、突破和太空入侵者)以及我在这个过程中犯的许多错误,整个实验花费了我大约 115 美元,所以在开始做这个之前,请尽量格外小心或确保你愿意花费大约 100 美元。

那么,如何创建 spot 实例呢?让我们现在就做吧!作为一个提醒,请确保您对您的设置有足够的信心(即您已经创建了一个 AMI,并且您已经确认您可以轻松地在另一台机器上运行该系统)。

在 EC2 面板中,单击右侧的“Spot 请求”,然后单击“请求 Spot 实例”按钮。您将被带到此页面:

许多参数可以保留为默认值,只需记住执行以下操作:

  • 选择你的总容量(10 会给你优步所使用的,但我个人选择使用 5 个实例,并简单地等待 2 小时,而不是 1 小时。您必须使用 ssh 访问每台机器,因此较低的数量更易于管理)。
  • 选择您刚刚创建的 AMI。
  • 从实例类型列表中删除 c3.large 实例类型,并添加一个 c5.18xlarge。“选择实例类型”窗口将实际显示所有可用的实例及其价格。 有可能在你看的时候另一个实例类型会对你更有利。我的建议是,在计算哪个实例是最好的时,只需将当前的现货价格除以 CPU 的数量,就可以得到每个 CPU 最便宜的实例。但是,请注意,名称以“c”开头的实例是计算优化的,这通常意味着它们的 CPU 比其他实例上的 CPU 更快,即使内核数量相同。
  • 选择与主服务器相同的可用性区域(可能没有必要)。
  • 选择您先前创建/编辑的安全组。

一些可选的事情是设置您的最高价格(默认情况下是按需出价,这也是我推荐的价格),并且可能在固定的时间内保留您的 spot 实例(这样可以保证您的实例在接下来的 3 个小时内不会被抢占,但是您可能会比普通的 spot 实例支付更多的费用)。

一旦完成,您就可以登录到各种 spot 实例并在其上运行 rq workers。这是我用来启动 72 个 workerss 并让每个 worker 将其日志写入不同文件的脚本:

for i in {0..72}
do
nohup rq worker -c settings > $i&
done

现在,假设您正在主盒上运行您的主代码,您应该最终在您的训练中取得进展!

英特尔 MKL 的一个重要消息

英特尔 MKL 公司是数值计算领域一个非常酷的新发展。这是一个由英特尔开发的速度极快的数学库,它利用最新的指令和多线程来非常快速地执行数值计算。PyTorch 使用它进行 CPU 计算,并帮助减少神经网络的 CPU 和 GPU 性能之间的差异(尽管 GPU 仍然更快)。

不幸的是,MKL 会给我们带来麻烦!这是因为它将自动使用几个 CPU 核心来向前传递单个神经网络,但我们已经设置好了,以便每个神经网络使用一个 CPU 核心。我发现这似乎让事情变得更慢,这就是为什么我建议在 MKL 禁用多线程。这可以通过在 python ( conda install mkl-service)中安装 mkl-service 并在导入 pytorch 之前将以下代码行放在 worker 文件的顶部来实现:

import mkl
mkl.set_num_threads(1)

我们来看结果!

最后是一两个小时后,看你选择用多少台机器,我们有结果了!

那么我们如何评价我们代理人的表现呢?优步对此有几点要说:

将我们的结果与其他算法的结果进行公平的比较是极其困难的,因为这种比较本质上在许多不同的方面是风马牛不相及的。一个重要的考虑因素是,是否在随机开始(随机数量的无操作动作)上对代理进行评估,这是他们接受训练的制度,或者从人类游戏中随机采样的开始,这测试一般化(Nair 等人,2015)。 由于我们没有从 抽取人力开工数的数据库,我们的代理商是用随机开工数进行评估的。在可能的情况下,我们将我们的结果与其他算法的结果进行比较,这些算法的随机开始结果是可用的。这对 DQN 和 ES 来说是正确的,但对 A3C 来说就不正确了,在 A3C 中,我们必须包括人类起跑的结果。

我强调缺乏一个人类起点的数据库:我认为这太糟糕了,事实上似乎没有这样的数据库,我认为建立一个会很棒。

无论如何,听起来我们应该评估我们的代理的方式是在开始之前简单地使用随机数量的无操作操作,这就是我们最初是如何进行培训的。这里没有指定无操作的数量,但是其他地方给出的数量在 0 到 30 之间,所以这就是我们要做的。因为存在这种随机性(更不用说在单个 Atari 游戏中产生随机数的可能性),我决定运行游戏 30 次,并显示最好、最差和中间值结果。开始了。

冻伤

Best score for Frostbite

我们可以看到,我们得到了一个对冻伤表现非常好的代理:4570 是它的最好成绩,接近优步的 4801,据我所知,这是目前最先进的水平!非常刺激。

不幸的是,这个代理甚至对随机启动都不够健壮!中位数只有 170,最差 160!我不清楚为什么优步没有报告这个问题:这是我的实现中的一个问题吗?一些发生在他们身上但他们没有报告的事情?实施过程中的问题?(例如,如果他们实现了糟糕的随机启动,这可能不可见)。

Median performance of the best agent for Frostbite

这似乎解释了当我经历几代人时,中值分数和最佳分数之间的巨大差异(优步的“中值”分数图没有使用这个定义,这就是为什么我不能将它们与我的发现进行比较:在优步的定义中,它是最佳代理在多次运行中的中值):这并不是说代理对其权重的微小变化非常敏感,而是他们对其起点的微小变化非常敏感!

Performance of the best and median agent at each generation

我真的很想在将来解决这个问题。在我看来,有两件事可以帮助解决这个问题:

  • 不是在一次运行中而是在多次运行中评估每个神经网络,每次运行都以不同数量的不操作开始。
  • 重温 epsilon 贪婪的遗传算法:这似乎很疯狂,因为它似乎不像 GA“需要”一个探索策略,这就是为什么优步没有实施一个,但它可能是探索不仅有助于强化学习代理发现新的高回报状态,而且有助于变得强大,以发现自己在不可预见的情况下。现在看起来 GA 网络过度适应了游戏中一个非常特殊的动作序列。编辑:在重新考虑这个问题后,我认为,虽然包含ε-greedy 可能有助于提高某些游戏的遗传算法的性能,但它可能会冻伤。这是因为在冻伤中,很容易通过一个单一的动作杀死自己(例如,在错误的时刻跳跃),因此随机选择动作可能是危险的。相比之下,在像 breakout 这样的游戏中,通常很容易修复随机动作的效果(只需撤销上一个动作的移动)。这意味着我们需要一个更好的冻伤探索策略。

越狱

Best (!) performance for Breakout

哦,好家伙…煤气做可怕的在突破。为什么?

我可以看到几个原因:

  • 你需要运行一个特定的动作,否则突围不会开始(具体来说,突围有 4 个动作:什么都不做,开始游戏,向左移动和向右移动)。当遵循诸如ε-贪婪的随机探索策略时,这不是问题,因为行动将在某个点或其他点被选择,但是没有任何探索,这意味着大部分代理将永远简单地什么也不做。为了防止这种情况,我甚至在最初几代中减少了游戏的最大长度,并惩罚了那些一直无所事事的代理。然而,显然它并没有那么好。
  • 突破中很少有像素改变,所以代理继续执行相同的动作。 在冻伤中,即使代理什么都不做,也保证有差不多 50%的像素发生变化。在突破中,只有一个小球,桨,也许还有一两块砖会改变,而且只有当代理人实际做了一些事情。对于随机初始化的神经网络,这可能不足以让它决定执行不同的动作。

同样,我认为有办法解决这个问题,包括在训练中加入贪婪探索。这值得进一步探索。

太空入侵者

Best performance on Space Invaders

代理在《太空入侵者》中表现相对较好,类似于我们在 DQNs Part 2 中训练的代理,虽然远非最先进,但仍然相当不错。此外,不管初始随机无操作,它实际上执行相同的操作。

然而,我对它的策略有点担心,至少在一开始,它只是简单地呆在左边并试图射击母舰:这看起来更像是一个怪异的局部最优,而不是代理已经获得的实际技能。我也很好奇是什么让它学到了看起来更像游戏中真正的技巧而不是懒惰的策略。

结论

我对优步论文中的结果感到兴奋。事实上,它在冻伤方面做得如此之好是非常惊人的,我不清楚这是否意味着传统的 RL 算法特别弱,或者 GA 惊人地强。然而,我认为,遗传算法似乎有一些优步没有指出的重大问题,部分原因是他们无法使用人类启动的数据库来评估他们的算法(我认为这将显示各种代理的脆弱性),尝试解决这些问题会很有趣。我计划在未来尝试包括ε贪婪探索,我认为这将有助于代理的鲁棒性,正如优步指出的,有大量关于遗传算法的文献,他们只尝试了最基本的可能。谁知道更先进的气体会把我们带到哪里。

论文综述:神经协同过滤的解释和实现

原文:towardsdatascience.com/paper-revie…

Figure Source: Pixabay

神经协同过滤(Neural Collaborative Filtering,NCF)是新加坡国立大学、哥伦比亚大学、山东大学、德克萨斯 A&M 大学于 2017 年发表的论文。它利用神经网络的灵活性、复杂性和非线性来构建推荐系统。证明了矩阵分解这种传统的推荐系统是神经协同过滤的特例。此外,它还显示了 NCF 在两个公共数据集上优于最先进的模型。本文将解释 NCF 的概念,并演示如何在 Pytorch 中实现它。

视频版本:

Video

先决条件

在深入研究之前,你应该知道什么是推荐系统,以及一些基本的推荐系统。你可以阅读我的上一篇文章,快速装备自己相关知识。

矩阵分解

让我们从矩阵分解开始。它将效用矩阵分解成两个子矩阵。在预测期间,我们将两个子矩阵相乘以重构预测的效用矩阵。效用矩阵被因式分解,使得这两个矩阵的乘积与真实效用矩阵之间的损失最小化。一种常用的损失函数是均方误差。

本质上,每个用户和项目都被投射到一个潜在空间,由一个潜在向量表示。两个潜在向量越相似,对应的用户偏好就越相关。因为我们将效用矩阵分解到同一个潜在空间中,所以我们可以用余弦相似度或点积来度量任意两个潜在向量的相似度。事实上,每个用户/项目条目的预测是通过相应潜在向量的点积来计算的。

The prediction equals the inner product of latent vectors

然而,该论文认为点积限制了用户和项目潜在向量的表达能力。让我们考虑下面的情况。我们首先关注效用矩阵的前三行。

设 S{x,y}表示用户 x 和用户 y 之间的相似性。通过计算用户 1、2 和 3 之间的余弦相似性,我们知道 S{2,3} > S{1,2} > S{1,3}。不失一般性,我们将用户映射到如下的二维潜在空间。

现在,我们考虑用户 4。与其他相似性比较,我们得到 S{1,4} > S{3,4} > S{2,4}。然而,无论我们把潜在向量 P4 放在 P1 的左边还是右边,它都不可避免地比 P3 更靠近 P2。

因此,这个例子显示了内积在完全模拟潜在空间中用户和项目之间的交互方面的局限性。

神经协同过滤

论文提出了如下图所示的神经协同过滤。在输入层,用户和项目是一次性编码的。然后,用相应的嵌入层将它们映射到隐藏空间。神经 FC 层可以是任何种类的神经元连接。例如,多层感知器可以放在这里。它声称,由于神经 CF 层中的复杂连接和非线性,该模型能够恰当地估计潜在空间中用户和项目之间的复杂交互。

NCF architecture

那么,NCF 是如何推广矩阵分解的呢?让我在下图中展示给你看。我们首先将神经 CF 层替换为乘法层,它对两个输入执行逐元素乘法。然后,我们将从乘法层到输出层的权重设置为 K 乘 1 的固定单位矩阵(全为 1 的矩阵),采用线性激活函数。

然后,我们有下面的等式。

未观察到的相互作用ŷ_ui 的预测表示重构的效用矩阵上(u,I)项的预测值。l 是线性激活函数,而⊙表示逐元素乘法运算。p_u 和 q_i 分别是用户和项目的潜在向量,J 是维数为(K,1)的单位矩阵。由于 J 是单位矩阵,所以线性函数内部变成了潜在向量 p_u 和 q_i 之间的内积,而且由于线性函数的输入和输出是相同的,所以归结到最后一行。预测标签是相应用户和项目潜在向量的内积。该等式与矩阵分解部分所示的等式相同。因此,这证明了矩阵分解是 NCF 的特例。

NeuMF

为了引入额外的非线性,提出的最终模型 NeuMF 除了广义矩阵分解(GMP)层之外,还包括多层感知器(MLP)模块。

GMF 和 MLP 模块的输出被级联并与 sigmoid 激活输出层连接。

表演

本文用留一法评价了 NCF 模型和其他模型。也就是说,每个用户的最后一次交互被保留下来进行评估。考虑两个评估指标,命中率为 10,NDCG 为 10。命中率@ K 表示给定每个用户 10 个推荐的预测命中的分数。假设我们为每个用户推荐 10 件商品,10 个用户中有 4 个与我们推荐的商品进行了交互,那么命中率@ 10 = 0.4。另一方面,NDCG 可以被视为命中率的扩展,只是它考虑了命中的顺序。这意味着,如果你击中发生在较高的建议,NDCG 将更高。

性能比较如下图所示。在所有情况下,NeuMF 的表现都优于其他模型。

此外,本文还展示了对 NeuMF 的各个模块进行预训练的有效性。在分别训练了 GMF 和 MLP 之后,他们将训练后的 GMF 和 MLP 的权重设置为 NeuMF 的初始化。

履行

在这一节中,我将向您展示如何在 Pytorch 中轻松实现 NeuMF。您只需要为每个模型指定两个函数,一个是指定模型结构的 init() 函数,另一个是定义如何前馈输入张量的 forward() 函数。

该论文声称对 MLP 和 GMF 使用单独的嵌入层会产生更好的性能。因此,我们为这两个模块定义了指定的嵌入层。此外,ModuleList 还用于构建多层感知器。

forward() 函数相当简单。我们只是让用户和物品索引流过 init() 中定义的网络。需要特别注意的一点是,我在 GMP 和 MLP 模块的末尾添加了 Dropout 层,因为我发现这有助于调整网络并提高性能。

结论

您已经学习了神经协同过滤的概念以及如何在 Pytorch 中实现它。如果您有任何问题,请查看顶部的 Youtube 视频,或者在下面留下您的评论。

【论文摘要】音乐标注深度神经网络音频信号预处理方法的比较

原文:towardsdatascience.com/paper-summa…

GIF from this website

我的一个朋友正在用神经网络处理音频文件,他推荐我读这篇文章。

请注意,这篇帖子是为了我未来的自己复习这篇论文上的材料,而不是从头再看一遍。

摘要

本文作者使用深度神经网络对音乐标注进行了实验。他们比较了对数幅度压缩、频率加权和缩放等不同的预处理方法,发现幅度压缩是最好的预处理方法。

简介

机器学习中的许多优化都是通过超参数调整来完成的,然而输入数据的质量不容忽视。这也适用于音频预处理,本文比较了对数压缩技术和数字音频压缩技术。

log(X+alpha)其中 alpha 可以是任意常数,例如非常小的数(例如 10e-7)或 1

其他预处理技术。

实验和讨论

在本节中,作者描述了网络体系结构以及输入数据结构。简而言之,他们使用了一个具有 ELU 激活的卷积神经网络,输入数据的维数为(1,96,1360)。他们还从百万首歌曲数据集中获取音乐数据,并使用离散傅立叶变换将音频转换为 96 * 1360 维。(使用 python 库 KapreLibROSA 。)

2.1。不同初始化的差异

在这里,作者描述了他们没有选择使用 k 倍交叉验证的事实,相反,他们重复了 15 次实验,并比较了每次实验的 AUC 分数。

2.2。时间-频率表示法

STFTmelspectrogram 是音频分类中最流行的表示输入数据的方法。(一般认为 melspectograms 是更小数据集的更好选择。)然而,当作者使用这两种预处理方法进行各种体验时,他们发现情况并非如此。

2.3。比例效应和频率轴权重的分析

在本节中,作者试验了两种不同的输入表示 log-melspectrogram 和 melspectrogram,三种频率加权方案 per-frequency、A-weighting 和 bypass,以及两种缩放方法 X10 (on)和 X1 (off)。

如上所述,当用 log()函数预处理音频时(使用或不使用缩放因子 10,我们可以观察到 AUC 分数的增加。

2.4。量值的对数压缩

将 log()函数应用于音频文件是一个好主意的原因之一,因为它将数据的分布改变为高斯分布。如下所示,当对 melSpectrogram 应用 log()函数时,我们可以观察到平滑的钟形曲线。

结论

作者发现对数标度是音乐分类任务的最佳预处理方法。

最后的话

这是一本相当有趣的读物。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你想看我所有写作的列表,请在这里查看我的网站

与此同时,请在我的 twitter 这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。我也实现了广残网,请点击这里查看博文 pos t

参考

  1. Cho,k .,Fazekas,g .,Cho,k .,和 Sandler,M. (2017 年)。音乐标注深度神经网络音频信号预处理方法的比较。Arxiv.org。检索于 2018 年 6 月 23 日,来自arxiv.org/abs/1709.01…
  2. 什么是 A、C 和 Z 频率权重?——noise news。(2011).噪音新闻。检索于 2018 年 6 月 24 日,来自https://www . cirrus research . co . uk/blog/2011/08/what-are-a-c-z-frequency-weightings/
  3. 歌曲元数据以及为什么它隐藏在您的数字音乐文件中。(2018).救生索。检索于 2018 年 6 月 24 日,来自 www.lifewire.com/what-is-mus…
  4. 百万首歌曲数据集。(2018).Labrosa.ee.columbia.edu。检索于 2018 年 6 月 24 日,来自 labrosa.ee.columbia.edu/millionsong…
  5. LibROSA — librosa 0.6.1 文档。(2018).librosa . github . io . 2018 年 6 月 24 日检索,来自librosa.github.io/librosa/
  6. keunwochoi/kapre。(2018).GitHub。检索于 2018 年 6 月 24 日,来自github.com/keunwoochoi…
  7. 短时傅立叶变换。(2018).En.wikipedia.org。检索于 2018 年 6 月 24 日,来自en.wikipedia.org/wiki/Short-…
  8. 梅尔声谱图。(2018).Fon.hum.uva.nl .检索于 2018 年 6 月 24 日,来自www.fon.hum.uva.nl/praat/manua…

移动机器人视觉感知森林路径的机器学习方法

原文:towardsdatascience.com/paper-summa…

GIF form this website

分类任务的一个很好的例子就是踪迹跟踪。

请注意,这篇文章是让未来的我回顾和回顾这篇论文上的材料,而不是从头再看一遍。

纸质视频

Video from AAAI Video Competition

论文作者也有很好的总结视频,如果有人感兴趣的话。

摘要

本文作者利用深度神经网络解决了森林山地路径导航问题,并且能够优于传统方法。(回到 2015 年)

简介

对于机器人来说,绕过人造小径,如徒步旅行者或山地自行车手走过的路,是极其困难的。(这是合理的,因为它不是典型的道路。).为了成功地穿越森林,机器人不仅要知道自己的位置,还要及时做出反应,修正自己的方向。

如上所述,对于一个人来说,甚至不清楚在某些路线上应该朝哪个方向走。通常,计算机视觉任务集中在高速公路类型的道路上,这些道路非常标准并且看起来彼此相似。解决这个问题的其他方法是通过分割,(即在给定的图像中执行分割,并查看道路在哪里。)但是执行好的分段本身就是一个极端的挑战。因此,作者通过人类追踪器收集的数据,将此作为分类任务。(解决这个问题的另一种方法是通过模仿学习,就像 NVDIA 对自动驾驶汽车所做的那样。)

问题公式化/数据集/用于轨迹感知的深度神经网络

在这一节中,作者描述了他们是如何将这一任务公式化为一个简单的分类任务的。总之,它们有一些轨迹方向 t 和观察点方向 v,根据这两个方向之间的角度(α),可以将其分为左、直或右。

接下来,作者描述了他们是如何获得这些数据的,同样是在短期内。一个人戴着三个不同角度的 go pro 相机,在小路上散步。(类似下面看到的东西。)

最后,他们描述了解决这一分类任务的网络架构。(典型的完全连接层的卷积层,共 10 层。)

实验结果

如上所述,作者进行了两个不同的实验。三个分类之一(左、右、直)和两个分类之一(直、非直),且在这两个分类中,他们模型能够超越人类的准确性。

如上所述,网络表现非常好,但并不完美,有一些情况下,图像被错误地分类。最后,他们实现了一个简单的系统来执行无人机驾驶任务。

结论

总之,作者能够训练一个能够在森林小径中引导无人机的分类器。通过直接在 RGB 像素上执行分类,他们能够绕过痕迹特征形成的问题。

遗言

非常聪明的问题表述方式。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你希望看到我所有写作的列表,请在这里查看我的网站

同时,在我的推特这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。我也实现了广残网,请点击这里查看博文 pos t。

参考

  1. 使用深度神经网络在森林中进行四轴飞行器导航。(2018).YouTube。检索于 2018 年 6 月 25 日,来自www.youtube.com/watch?time_…
  2. (2018).Rpg.ifi.uzh.ch 检索于 2018 年 6 月 25 日,来自rpg.ifi.uzh.ch/docs/RAL16_…
  3. (2018).People.idsia.ch 于 2018 年 6 月 25 日检索,来自people.idsia.ch/~giusti/for…

[论文摘要]回顾临床工作人员和信息系统的药物调节问题和经验—第 1 部分

原文:towardsdatascience.com/paper-summa…

Image from this website

我想知道更多关于药物调节的事情,以及为什么这在医疗保健行业是一个如此麻烦的事情。另外,这篇文章很长,所以我会把它分成不同的部分。

请注意,这篇帖子是给未来的自己看的,用来回顾和复习这篇论文上的材料。

总结

药物调节是一个过程,其中将患者的药物治疗历史列表与独立的患者信息源进行比较,以防止重复用药或在医疗保健机构(或提供者)之间发生错误。

Image from this website

该列表的内容因机构而异,但通常包含医生姓名和药物名称等。然而,尽管 2006 年联合委员会已经认识到这一制度的重要性,但该制度的正确实施仍有待完成。因此,本文给出了该问题的概述和一些可能的解决方案。

简介

本质上,医疗错误仍然是患者伤害的重要来源(2010 年有 7000 例与医疗错误相关的药物死亡),并且与药物调节相关的停止伤害的过程早在 2003 年就已经开始。卫生保健提供者面临的一些问题是复杂的疾病名称以及患者使用的大量药物。

背景

作者介绍了产生药物和解程序的三个原因。一是非处方药的开发和销售增加。第二,仿制药的品牌名称变得越来越相似,从而造成混淆。最后是老年人群,他们可能缺乏清晰判断的能力(例如痴呆),但仍然必须服用各种药物。事实证明,记录每位患者服用的药物仍然是一项容易出错的任务。最常见的错误发生在从家庭护理到医院的过渡期间(换句话说,在住院期间),遗漏家庭医疗是最常见的错误。

药物识别

作者指出,药物识别可分为两个部分。1)创建患者服用的药物的黄金标准列表,2)将该黄金标准列表与列出患者药物历史的其他可用来源进行比较。作者还指出,临床术语缺乏标准化使得药物识别具有挑战性。成功的系统可以在本地建立(意味着一个机构有自己的版本或程序来处理这些问题),但这种方法使解决方案与其他医疗保健机构不兼容。

用药对账和电子病历

2005 年,联合委员会宣布成功的药物治疗和解是他们的第八大目标。创建药物列表的第一阶段称为入院前药物列表(PAML),将该列表传送给其他医疗保健提供者的第二阶段称为出院药物调节(DMR)。当在 EHR 系统中被很好地采用时,该过程可以被自动化。

纸质用药对账

在卫生保健机构没有采用电子系统来交换信息的情况下,可以通过首先与患者(或他们的护理人员)交谈以了解他们正在服用的药物的名称来执行基于纸张的药物调节。然而,与电子方法相比,纸质方法可能缺乏准确性,并且更新列表的能力可能有限。

遗言

我相信这也是网络组件和人工智能系统可以创造效率的另一个领域。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你想看我所有写作的列表,请在这里查看我的网站

同时,在我的 twitter 这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。我也实现了广残网,请点击这里查看博文 pos t。

参考

  1. 威特曼、布朗、s .、&波切利出版公司(2010 年)。对临床工作人员和信息系统的药物调节问题和经验的回顾。应用临床信息学,01(04),442–461。doi:10.4338/ACI-2010–02-r-0010
  2. Barnsteiner,J. (2008 年)。药物调和。美国卫生保健研究和质量局。从www.ncbi.nlm.nih.gov/books/NBK26…取回
  3. (2018).Jointcommission.org。检索于 2018 年 5 月 21 日,来自 www.jointcommission.org/

[论文摘要]对基于反向传播的可视化的复杂行为的理论解释

原文:towardsdatascience.com/paper-summa…

GIF from this website

我实际上也对这个想法很好奇,反向传播张量是什么样子的?关于这些张量我们能了解到什么?如果我们研究这些,我们有可能最终理解神经网络是如何学习的吗?这篇论文是我第一次读到这些话题。

请注意,这篇文章是为了让未来的我回顾并记住这篇文章的内容,而不是阅读整篇文章。

摘要

为了可视化和理解卷积神经网络(CNN)是如何学习的,引入了引导反向传播( GBP )和去卷积网络( DeconvNet ),但是在证明它们的行为时,一些理论丢失了。作者声称 GBP 和 DeconvNet 正在部分地进行图像恢复,因此与网络决策过程无关。

简介

由于深度学习在自动驾驶汽车等危险情况下的使用越来越多,理解模型的内部工作变得至关重要。如上所述,已经引入了一些可视化反向传播的方法,但是这些方法真的回答了网络内部正在学习什么的问题吗?

GBP 和 DeconvNet 给出了比显著性映射技术更好的图像分辨率,然而,尽管类别不同,由它们的方法产生的可视化通常保持相同。(因此,在分辨率质量和指出图像中哪个位置被认为对网络重要之间可能会有一个折衷。)

本文提供的实验表明,GBP 和 DeconvNet 本质上是在进行(部分)图像恢复,而不是突出显示与类别相关的像素或可视化学习到的权重,这意味着原则上它们与神经网络的决策无关

基于反向传播的可视化

在这里,本文讨论了不同的方法之间的差异可视化的梯度反向传播和所有这些可以总结在一个图像。(我理解为显著图→正常背道具,Deconv →反向激活,GBP →两者结合)

作者还为每种方法提供了良好的可视化效果。(通过观察它们,我们可以观察到来自 GBP 的结果非常清晰。)

的确,为了成为一个好的可视化,人类的可解释性是非常重要的。然而,作者指出,GBP 和 DeconvNet 产生如此清晰的图像的原因是因为它们修改了真实的梯度,因此当模型试图执行分类时,阻碍了对哪些像素是重要的了解。

理论解释

论文的这一部分涉及大量的数学知识,因为它不仅解释了前馈运算,还解释了非常简洁的方程中的反向传播。所以现在就下结论,我们可以注意到一些事情。

  1. 显著图和去卷积可视化都应该产生随机噪声,传达关于输入图像和类逻辑的很少信息。
  2. 然而,对于更复杂的模型,DeconvNet 的行为不像显著性映射。
  3. 在一个简单的模型(如 3 层 cnn)中结合 backward ReLu() GBP 实际上可以近似地恢复原始图像。当我们希望了解网络的内部运作时,这是不可取的。旁注:当我们希望可视化清晰时,本地连接是非常重要的属性。

理论解释:更真实的模型/预训练模型

在这里,作者引入了最大池操作,并修改了原始方程,以适应更现实的 CNN 架构/预训练模型,并发现了三个重要的发现。

  1. 在更真实的设置行为中取消配置,如英镑
  2. 增加深度不会改变 GBP 和 DeconvNet 的行为。
  3. 即使在预先训练的模型中,GBP 和 DeconvNet 可视化也不区分类别。

实验

作者提供了用三种不同类型的网络进行的实验的结果:a)三个 CNN 层网络,b)三个全连接网络,c) VGG-16 网络。

如上所述,GBP 产生的图像非常清晰,任何人都可以分辨出这是 cat。(美国有线电视新闻网和 FCN)。

此外,在简单的 CNN 网络以及 VGG-16 网络中添加 max-pooling 层之后,我们可以观察到 DeonveNet 开始产生更易于人类理解的图像,这证实了理论分析。作者还对网络深度的变化进行了不同的实验,发现基于反向传播的方法的行为没有改变。

最后,作者给了网络一个对抗性的输入,看看它如何影响可视化。理论上,它应该显著地影响显著性映射,因为中间层的预测类别标签和触发状态都已经改变。然而,没有太多的图像恢复任务。如上所述,顶行是原始输入,底行是对抗输入。我们可以观察到,所得到的可视化仅针对显著性映射而改变。因此,作者得出以下结论。

请注意,作者已经用“部分训练权重的 VGG”和“平均 l2 距离统计”进行了实验,并获得了类似的结论。

结论

本文的作者提供了大量的实验,表明 GBP/DeconvNet 实际上正在执行图像恢复任务。通过反向 Relu()、本地连接和最大池的组合。因此证明需要开发更好的方法来可视化 CNN 的内部工作。

最后的话

当我们想要了解一个人时,我们需要和他有相同的看法。理解他们的观点,也许这是我们想了解 CNN 时需要做的,GBP/DeconvNet 对我们有好处,但只对我们…

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你希望看到我所有写作的列表,请在这里查看我的网站

同时,在我的 twitter 这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。我也实现了广残网,请点击这里查看博文 pos t。

参考

  1. 聂,张,杨,&帕特尔,A. (2018)。基于反向传播的可视化令人困惑的行为的理论解释。Arxiv.org。检索于 2018 年 5 月 26 日,来自arxiv.org/abs/1805.07…
  2. 千层面/食谱。(2018).GitHub。检索于 2018 年 5 月 26 日,来自https://github . com/Lasagne/Recipes/blob/master/examples/studentity % 20 maps % 20 和% 20 guided % 20 back propagation . ipynb
  3. (2018).Papers.nips.cc .于 2018 年 5 月 26 日检索,来自https://papers . nips . cc/paper/5485-deep-convolutionary-neural-network-for-image-convolution . pdf

[论文摘要]对抗性自动编码器

原文:towardsdatascience.com/paper-summa…

Photo by 90 jiang on Unsplash

请注意,这篇帖子是给未来的自己看的,回顾这篇论文上的材料,而不是从头再看一遍。

Paper from this website

摘要

本文作者利用 GAN 提出的方法制作了一个自动编码器,它通过将自动编码器的隐码向量的聚合后验概率与任意先验分布相匹配来进行变分推理。使用这种技术,它使解码器能够从先前空间的任何部分产生有意义的样本。这种自动编码器有许多应用,如分类或降维。

简介

对于创成式模型,捕获丰富分布的任务是要执行的关键任务。直到最近,许多方法,如受限玻尔兹曼机器(RBM)和深度信念网络(DBNs)都是由基于 MCMC 的算法训练的。然而,最近已经发现了能够通过反向传播直接训练生成模型的方法。(例如 VAE、重要性加权自动编码器、GAN 或 GMMM)。本文提出了一种将自动编码器转化为生成模型的新方法,称为对抗性自动编码器。主要地,自动编码器具有两个目标,重建损失以及对抗训练损失,该对抗训练损失将自动编码器的潜在表示的聚集后验分布与任意先验分布相匹配。结果,编码器学习如何将给定数据编码成先验分布,而解码器学习将强加的先验分布映射到数据分布的深度生成模型。

生成对抗网络

在一个非常简单的形式中,在一个 GAN 中有两个组件,发生器网络和鉴别器网络。鉴别器是一个神经网络,它计算数据空间中的点 x 是来自我们试图建模的数据分布的样本(正样本)而不是来自我们的生成模型的样本(负样本)的概率。并且生成器是将来自先前 p(z)的样本 z 映射到数据空间的网络。并且该模型的主要目标可以由上面看到的等式来表达。

对抗性自动编码器

如果我们让… P(z) 是我们想要强加于潜在码的先验分布 q(z|x) 是编码分布 p(x|z) 是解码分布 pd(x) 是数据分布 p(x) 是模型分布

自动编码器功能的编码可以被认为是如上所述,基于隐藏代码向量上的 q(z) 的聚集后验分布。AAE 是一个自动编码器,它将聚合后验 q(z)与任意先验 p(z)相匹配。如下所示,为了匹配给定函数的潜在分布,可以在常规自动编码器中添加一个对立部分。当自动编码器试图重建给定的数据时,对抗方试图在自动编码器给出的分布和我们希望强加给潜在向量的分布之间进行区分。

有趣的是,自动编码器的发生器部分也是自动编码器的编码器部分。随着训练的继续,自动编码器将试图欺骗鉴别器并匹配给定数据的分布。并且在训练中有两个阶段,首先是最小化重建损失,以及网络试图匹配分布的正则化阶段。一旦训练过程完成,自动编码器的解码器将定义生成模型,该模型映射 p(z)的强加先验。AAE 编码器部分的选择包括…

  1. 确定性:其中编码器与自动编码器的结构相同,其中 q(z)中唯一的随机性是数据分布 pd(x)。
  2. 高斯后验:这是类似的 VAE,其中 q(zjx)是高斯分布,其均值和方差由编码器网络预测。在这种情况下,q(z)中的随机性来自编码器输出端的数据分布和高斯分布的随机性。(使用了重新参数化技巧。)
  3. 后验通用逼近器:我们可以使用自动编码器来训练网络的编码器分布,作为后验通用逼近器。如果我们将编码器部分设置为 f(x,n),其中 x 是输入,n 是噪声,具有固定分布,那么我们可以假设 q(z|x) = δ (z-f(x,n)),我们可以将编码器分布定义为。

在上面的情况下,我们不再需要假设编码器的分布是高斯分布(或者我们开始时的固定分布),我们可以学习任何任意的后验分布。(这可以通过直接传播错误来完成。)注意,在本文的其余部分,作者仅报告了确定性版本的结果。

与可变自动编码器的关系

虽然这项工作与 VAE 在光线匹配中的潜在向量分布相似。VAE 使用 KL 发散,AAE 使用对抗训练。

上面可以看到 VAE 的损失函数,第一项可以认为是重建项,而后两项可以认为是正则化项。然而,在 AAE,这两个正则项被对抗性训练过程所取代,该过程鼓励 q(z)匹配 p(z)的整个分布。

通过上面的例子,我们可以看到 AAE 的优越性,当在 MNIST 数据集上构造高斯分布时,我们可以看到 AAE 与 VAE 相比产生了明显的潜在空间。(以及当我们将分布设置为 10 个 2-D 高斯分布的混合物时。).两种架构的主要区别在于,对于 VAE,我们需要获得先验分布的精确函数形式,而在 AAE,我们只需要从先验分布中取样,以使 q(z)与 p(z)相匹配,这使得绘制高度复杂的分布成为可能。(瑞士卷)

与 gan 和 GMMNs 的关系

Gan 在网络输出上施加像素级的数据分布,则依靠自动编码器训练来捕捉数据分布。(这导致了更好的测试可能性)。在生成矩匹配网络(GMMN)之间,模型之间的相似之处在于它们都依赖于自动编码器来捕捉数据分布。然而,两者之间的区别在于,作者方法的对抗训练过程充当正则化器,其在从头训练自动编码器时形成代码分布;然而,GMMN/AE 模型首先训练标准的丢失自动编码器,然后拟合预训练网络的代码空间中的分布。(作者的方法能够产生更好的检验可能性。)

将标签信息并入对抗规则化

在我们知道给定数据的标签的情况下,这可以帮助我们形成 AAE 分布。(如上图。).标签的一个热编码表示连同目标分布一起被馈入鉴别器网络。这里要注意的一件有趣的事情是,在一个热编码向量中,我们保留了一个额外的空间,用于给定数据没有与之相关联的标签的情况。在正相期间,用户可以通过独热向量向鉴别器提供混合物成分的标签。并且在负相期间,用户可以通过独热向量向鉴别器提供训练点图像的标签。

使用这种技术,我们能够更好地调整给定的网络,上面的图形看起来已经很熟悉了。但是关于图 B 有趣的一点是,样式表示在每个混合组件中是一致表示的,与它的类无关。(写作风格,如右上方等…)

对手自动编码器的可能性分析

GIF from this website

在本节中,作者希望按照 GAN 论文中介绍的相同程序,测量 AAE 作为生成模型的能力。当在隐潜向量 z 中施加高维高斯分布时,作者在 MNIST 和多伦多人脸数据集上训练 AAE。(上面的 gif 显示了 TFD 的学习流形。).

考虑到目前可用于评估生成模型(如 GANs)可能性的指标存在严重缺陷,作者 AAE 仍然能够实现优于其他先进方法的对数可能性。

受监督的对抗性自动编码器

最近,生成模型成为半监督学习中最流行的方法之一,因为它们能够以一种有原则的方式将类别标签信息从许多其他潜在的变异因素中分离出来。这里作者描述了如何从图像样式信息中分离出类别标签信息。

实现这一点的方法是通过类似上面的方法,其中类标签被赋予生成器网络,因此编码器主要需要学习样式。

通过这样的学习,我们能够生成具有相同风格的图像,并且 SVHN 数据的学习风格流形可以在下面看到。

Gif from this website

结论

在这项工作中,作者提出了生成式自动编码器,它在许多不同的数据集上实现了竞争性测试可能性。此外,作者描述了如何将该方法扩展到半监督的情况。最后,作者讨论了如何使用这种方法来理清图像的风格和内容,无监督聚类,维数减少和数据可视化。(我暂时省略了三个部分,半监督,无监督,降维。)

参考

  1. (2018).Arxiv.org。检索于 2018 年 9 月 12 日,来自arxiv.org/pdf/1511.05…

[论文摘要]英国医院的不良事件:初步回顾性记录综述

原文:towardsdatascience.com/paper-summa…

GIF from from website

我是从 Google Deep Mind 的健康主页上找到这篇论文“ 英国医院的不良事件:初步回顾性记录回顾 ”,想更深入的看一下,总结成一两句话。

请注意,这个帖子是给未来的自己回过头来看资料的。

摘要

本文主要研究是否有可能检测到一些不良事件,这些事件会导致患者的症状恶化甚至导致死亡。

简介

简而言之,世界各地都有病人因管理不善而生病(或有时死亡)的情况,而不是某些伤害,所有这些事件都有严重的经济后果。

方法(设计和程序)

作者回顾了来自两家不同医院的 1014 例病例,其中 26.9%的记录来自普通内科(包括老年病学),28.6%来自普通外科,27.3%来自矫形外科,17.2%来自产科。

方法(审核流程)

高度合格的护士审查病例,当记录显示阳性病例时,将其发送给分析任何不良事件并填写详细问卷的临床医生。

结果

在 1014 例病例中,有 110 例出现不良事件(当我们计算多个不良事件时,该数字增加到 119),在这 110 例病例中,有 53 例声称是可预防的。所以 53/1014 的病例中大约有 5%有不良事件,并且是可以预防的。由于这些不利事件以及 290,268 加元(518,418.65 加元)的额外费用,总共延长了大约 999 天。

不良事件示例

由于管理不善,一名 53 岁的男子在医院多住了 26 天。

讨论

总之,在这项研究中,许多造成巨大经济后果的不良事件是可以预防的。然而,作者警告读者两件事…

a)本研究主要是试点性的,有一定的局限性,只研究了两家医院的数据。

b)此外,病例组合不能准确反映医院实践。医疗保健中可能还有另一个领域会产生更多的不良事件。(或更少)

最后的话

听到一些可预防的不良事件导致患者死亡,真的很令人难过。我想知道在韩国以及全世界有多少这些不良事件没有被发现。

如果发现任何错误(因为我仍在学习,会有很多),请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你希望看到我所有写作的列表,请在这里查看我的网站

同时,在我的推特这里关注我,访问我的网站,或者我的 Youtube 频道了解更多内容。如果你感兴趣,我还在这里做了解耦神经网络的比较。

参考

  1. c .文森特、g .尼尔和 m .沃罗什诺维奇(2001 年)。英国医院的不良事件:初步回顾性记录回顾。英国医学杂志,322(7285),517–519。
  2. 不利事件。(2018).En.wikipedia.org。检索于 2018 年 4 月 10 日,来自en.wikipedia.org/wiki/Advers…

【论文摘要】独立分量分析导论:InfoMax 和 FastICA 算法

原文:towardsdatascience.com/paper-summa…

GIF from this website

请注意,这篇帖子是给未来的自己看的,用来回顾和复习这篇论文上的材料。

Paper from this website

摘要

本文介绍了不同于主成分分析的独立成分分析。其中优化了给定数据统计独立性。

简介

现在,进行某种数据分析是非常容易的,并且有各种各样的方法,如 pca 或因子分析。与此相关的一个重要概念是给定数据的分布,特别是分布的正态性。原因是因为这决定了某些方法在分解某些数据时是否会成功。如上所述,取决于方法和假设的分布,一些方法将成功地正确识别独立信号,而其他方法则失败。(注意 ICA 也有其自身的局限性,与排列或符号有关,但我们也有一种称为独立向量分析的方法。)

独立成分分析的理论基础

在这一节中,作者简要讨论了 ICA 的基本原理,例如寻找混合矩阵的逆的非混合矩阵。作者提出了关于 ICA 的 5 个假设。 1)来源在统计上是独立的。 2)混合矩阵为正方形,满秩。 3)不应有外部噪声 4)数据为零均值 5)源信号不得具有高斯概率密度函数。(至少其中一个。)

统计独立性

当我们有两个随机变量 x1 和 x2 时,我们可以通过下面的等式定义这两个变量之间的不相关性。

另一方面,我们可以将统计独立性定义为下面的等式。

并且在特定情况下,当联合 pdf 是高斯不相关时,不相关等同于独立。作者介绍了两种度量独立性的方法,即最小化互信息法和最大化非高斯性法。(这是相同的解决方案。)

互信息最小化

当我们有两个变量 X 和 Y 时,互信息可以被视为在观察到 Y 之后关于变量 X 的不确定性的减少。因此,通过具有寻求最小化互信息的算法,我们正在搜索最大程度独立的分量(潜在变量)。(InfoMax 是算法的名字)。

非高斯性最大化

当我们有两个变量 X 和 Y 时,我们可以通过迫使它们尽可能远离正态分布来实现独立性。为了做到这一点,我们用负熵来度量非高斯性。(这是高斯性的一个积极量度。).并且我们计算近似的负熵而不是直接计算。(FastICA 是算法的名字。)

我不打算写任何关于“如何使用 ICA 包”的东西,因为它只是使用高级 api。

示例/讨论

本文作者将三幅图像混合,采用不同的独立分量分析方法提取原始信号。

如上所述,我们可以观察到 ICA 方法能够比 PCA 更清晰地提取信号(原始图像)。此外,在执行 ICA 时,必须考虑多个概念,比如白化数据。FastICA 和 InfoMax 都很健壮,但是必须事先提供正确的分布类型。

参考

  1. (2018).Mail.tqmp.org。检索于 2018 年 9 月 4 日,来自 mail.tqmp.org/RegularArti…

[论文摘要]通过深度表现实现更好的混合

原文:towardsdatascience.com/paper-summa…

Photo by Free Nature Stock on Unsplash

请注意,这篇帖子是给未来的自己看的,是为了回顾和复习这篇论文中呈现的材料。

Paper from this website

摘要

给定数据的更深层次的表示在解开变异的潜在因素方面做得更好。本文作者研究了一个相关的猜想,更好的表示,在更好的解纠缠的意义上,可以用来产生更快混合的马尔可夫链。为了更好地理解为什么会发生这种情况,作者提出了第二个猜想:更高级别的样本更均匀地填充它们占据的空间,当在更高级别上呈现时,高密度流形倾向于展开。

简介及背景

深度学习算法发现给定数据的多个级别的表示,并且通常认为更高的表示可以潜在地捕捉与兴趣分布相关的更高级别的抽象。(通过实验已经表明,增加表示的深度会有很大的好处。).较低级别的特征可以在形成较高级别的表示中被重复使用,并且随着表示的深度增加,潜在的收益变成指数级的。深度学习算法依赖于重用低级特征的想法。(这就是为什么参数共享是如此强大和有效的方法。).深度表示的另一个(很少讨论的)优点是,它可能有助于理清变异的潜在因素。(如果我们有一种算法可以轻松地分离数据,这将使进一步的处理变得容易得多。) (当我们说我们的目标是建造一台了解周围环境的机器时,这可能意味着这台机器能够理清它所涉及的因素和原因,因此在这个方向上的进展似乎很重要。)如果习得表征在解开隐藏因素方面做得很好,它甚至可以抵消维度诅咒的影响。已经进行了许多观察,深度学习算法有助于这种解开,然而,我们仍然不知道为什么或程度如何。

无监督学习算法试图捕捉给定数据分布的显著结构,而大多数深度学习算法用于学习特征,并利用它们进行分类或回归任务。由于其无监督学习的性质,一些算法可以用于生成样本,但是这可能会遇到混合的基本问题:当这些被大的低密度区域分隔时,马尔可夫链很难从一种分布模式跳到另一种模式,这是现实世界数据中的常见情况,并且是在流形假设下。(该假设指出,数据中呈现的自然类别与分布集中的输入空间中的低维区域相关联,并且不同类别的流形被密度非常低的区域很好地分开。慢速混合意味着从一种模式到另一种模式需要许多连续的采样步骤,甚至需要更多的步骤才能覆盖所有模式。).发生这种情况是因为在模式之间的低密度空隙周围跳跃是罕见的和不太可能的。

当学习算法没有给定数据的良好表示时,模型倾向于对应于更平滑和均匀的分布,将质量放在更大体积的输入空间中,特别是在模式之间。(这可以在我们生成少量图像样本时看到,它们看起来更加模糊和嘈杂。).随着模型的改进,其相应的分布在数据集中的地方变得尖锐,混合变得相当慢。由于采样对许多机器学习算法至关重要,这表明学习将会很慢或很差,甚至在某些情况下会由于学习算法的限制而停止。

为了改善混合,引入了回火。想法是使用更平滑的密度在模式之间进行快速但近似的跳跃,但使用清晰的“正确”模型在这些模式内实际生成感兴趣的样本,并允许样本在不同温度水平之间交换。

并介绍了他们的主要假设。

在更高的代表级别采样时,混合更容易。

作者的主要目的是调查这一假设,并研究为什么会发生这种情况,以及测试更具体的假设。深度生成模型产生更好的特征和更高质量的样本的想法并不新颖,并且已经被有前途的研究人员研究过。

假说

想象一个对象图像数据的抽象表示,其中一个因素是“反转视频位”,它反转黑白像素。(所以 1-x)。当默认值为 0 时,前景对象为黑色,背景为浅色。翻转比特不会改变图像的大多数其他语义特征,这些特征可以用其他高级特征来表示。然而,在每个图像级模式中,将会有一个反视频对应模式,其中该位被翻转。并且这两种模式将被输入空间中的巨大空白区域分开,使得输入空间中的任何马尔可夫链都不太可能从这两种模式中的一种跳到另一种。

相反,如果我们考虑具有“反向视频”位的更高表示,则在大多数马尔可夫链转移概率下,仅翻转该位将是非常可能的事件,因为翻转将是保持高概率的小变化。(这就是为什么 H2 会帮助解释 H1。).

在 H2 要考虑的另一个有趣的事实是解缠程度的概念。深度学习算法并不能完美地解决问题,当前的算法是分阶段进行的,在更高的级别提取更抽象的特征。(更好的理清将意味着一些习得特征与一些已知因素具有更高的互信息。).对一个因素具有高度预测性的特征对其他因素变得不变的预测性较低。(我们指的是学习解开表象的目标)。从那里我们可以考虑一个额外的假设,专门 H2。

H3 指出,高层次表示空间中的高密度流形比原始输入空间中的相应高密度流形更平滑,更容易建模。

表示-学习算法

作者使用了两种学习算法:深度信念网络和压缩自动编码器

实验

MNIST 和多伦多人脸数据库使用了两个不同的数据集,使用的网络架构见下图。

更高级别的样品

如上所述,在更深的层中生成的图像在视觉上更有可能混合得更快。此外,当作者测量生成样本的质量时,它更高。并且该观察结果与 H3(b)的观点一致,即在流形已被扩展的较高级别表示空间中移动比在原始输入空间中移动提供了更高质量的样本,在原始输入空间中移动可能很难停留在高密度区域。

通过在邻居之间插值来可视化表示空间

从上面的图像我们可以看到,在更深的层次插值给出了视觉上更可信的样本。

通过计算访问班级的数量来测量混合

从上面的直方图我们可以看到,更深的架构访问更多的类,CAE 混合比 DBN 更快。

在数据点周围占据更多的体积

此外,作者还发现,CAE 和 DBN 的高级表示中,更大比例的局部体积被可能的配置占据,例如,更靠近输入空间流形,实际数据生成分布集中在该流形附近。

辨别能力 vs 体积膨胀

人们可以认为,由于不同类别的更高级别表示彼此“更接近”,这将混淆模型,导致更低的分类准确度。然而,从上表中我们可以看出,更深层次的特征有助于更好的分类性能,尽管它们具有更好的生成能力和更好的混合。

结论

总之,已经检验了三个假设

  1. 更深的表示可以产生更好的样本和更好的混合。
  2. 这是由于更好的解开
  3. 这与数据集中的流形的展开以及良好样本在表示空间中占据的体积的扩展有关。

并且所执行的实验证实了作者的假设,在更高的水平上,获得了更好的样本和更好的混合。(即使在示例之间插值或添加各向同性噪声时)

最后的话

这张纸是金色的,但是极其难懂,我还是不懂。但总的来说,我认为这篇论文是在说明,随着深度的增加,数据的表现会更好。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你想看我所有写作的列表,请在这里查看我的网站。

同时,在我的 twitter 这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。

参考

  1. y .本吉奥、g .梅斯尼尔、y .多芬和 s .里法伊(2012 年)。通过深度表现进行更好的混合。Arxiv.org。检索于 2018 年 9 月 19 日,来自arxiv.org/abs/1207.44…

[论文摘要]医疗保健领域的大数据分析:前景和潜力

原文:towardsdatascience.com/paper-summa…

Gif from here

所以今天,我将总结这篇文章“ 医疗保健中的大数据分析:前景和潜力 l”,每一节都用一两句话来概括。再次,请注意这篇文章是给未来的自己看的。

Paper from this website

简介

基本上,作者说,医疗保健行业产生越来越多的数据,大数据分析有巨大的潜力。

医疗保健的优势领域

一般优势的例子: a)更早地发现疾病,它们可以更容易地得到治疗 b)预测不同病人的住院时间 c)节省资金,避免做浪费的研究( 麦肯锡估计 3000 亿美元 )

具体好处举例: a)临床操作: 降低患者诊断费用。

b)研究&开发: 让研究过程整体高效。

c)公共卫生: 在危机事件中更有效地处理事件

d)循证医学: 利用不同来源的过去结果(如 EMR,或手术数据)预测未来结果。

e)基因组分析: 更高效地分析基因数据或进行基因测序

f)审前欺诈分析: 分析运营数据,看是否存在欺诈

g)设备/远程监控: 分析从 IOT 设备获得的数据

医疗保健领域大数据分析的 4 个“Vs”

卷: 数据量,我们将要拥有越来越多的数据。

速度: 每个数据加起来的速度,这几天越来越多的数据进来的速度很快。

种类: 不同特性的数据,有些数据是 DICOM 格式,其他的可以是 excel 格式。

准确性: 我们对医疗保健数据进行分析的正确性。一些例子可以是手写诊断识别。

建筑框架

我们不能在一台计算机上分析大数据,我们需要某种分布式计算系统,然而,我们需要使分布式系统更加用户友好。这里可以使用的一些技术有 Hadoop

方法论

下面是医疗保健组织如何部署成功的大数据分析项目的分步指南表。

例题

医疗保健组织开展大数据项目的一些成功案例。

a)北约克综合医院*:改善患者预后 b)患病儿童:*对婴儿进行分析,以防止婴儿容易发生威胁生命的“院内感染”上升

挑战

一些挑战包括可扩展性、用户友好性、安全性和可用性。(分布式系统面临的一般问题)

结论

大数据潜力巨大,但安全或政府法规等问题仍是需要解决的问题。

最后的话

很好地概述了大数据和机器学习如何使医疗保健系统普遍受益。然而,下一步是确定哪些是真正可以实施的,哪些只是炒作。

参考

  1. Raghupathi,w .,& Raghupathi,V. (2014 年)。医疗保健中的大数据分析:前景和潜力。卫生信息科学与系统2 (1)、3。
  2. 美国医疗保健的大数据革命:加速价值和创新。(2018).麦肯锡公司。检索于 2018 年 3 月 28 日,来自https://www . McKinsey . com/industries/health care-systems-and-services/our-insights/the-big-data-revolution-in-us-health-care
  3. 欢迎使用 Apache Hadoop!。(2018).Hadoop.apache.org。检索于 2018 年 3 月 28 日,来自hadoop.apache.org/
  4. 北约克总医院——合并医院和社区数据以推进研究。(2018).Nygh.on.ca 检索 2018 年 3 月 28 日,&郎=1
  5. 北卡罗来纳州博加特(2013 年)。大数据分析研究致力于拯救早产儿的生命。全球新闻。检索于 2018 年 3 月 28 日,来自https://global news . ca/news/696445/research-in-big-data-analytics-work-to-save-life-of-早产儿/

[论文摘要/borealisai]t-SNE 困惑的自动选择

原文:towardsdatascience.com/paper-summa…

GIF from this website

我发现了 borealisai 的这篇论文,我立刻就想阅读它。

请注意,这篇帖子是给未来的自己看的,回顾这篇论文上的材料,而不是从头再看一遍。

Paper from this website

摘要

T-sne 是最广泛用于高维数据的降维方法,但是它有一个超参数叫做困惑度。在这篇文章中,作者提出了一种方法,可以自动调整这个参数与忽略不计的额外计算成本。

简介

根据马滕和辛顿 t-SNE 的结果对困惑的设置是稳健的,然而,在应用中,用户必须比较来自不同困惑值的结果来选择最佳值。在选择该超参数时缺乏自动化可能会导致数据失真。

t 分布随机邻居嵌入

T-sne 通过将成对距离转换成成对联合分布,试图在低维空间中保持来自高维空间的局部邻域结构。然后使用 KL 散度来尝试匹配分布。(对于高维和低维)在等式 2 中,我们可以看到引入了困惑项,这个超参数,不严格地说,描述了每个数据点有多少个邻居。

自动选择困惑度

如上所述,随着困惑度的增加,KL 散度的损失减少,通过这一事实,我们知道,仅使用 KL 散度作为损失函数,我们将最有可能以高困惑度值结束。然而,这些高困惑值并不总是最佳的。当我们将困惑度设置为最大值(即数据点的数量)时,它无法捕捉数据中任何有趣的结构。考虑到困惑和 KL 散度之间的权衡,作者引入了下面的标准。

为了自动设置 prep 值,可以相对于 Perp 对 S 进行无导数优化,例如使用贝叶斯优化。

解释为经由伪 BIC (pBIC)的反向复杂度调谐

如上所述,在贝叶斯信息标准中,第一项测量最大似然估计模型的拟合优度,第二项通过惩罚自由参数 k 的数量来控制模型的复杂性。我们可以看到,上面的方程在形式上类似于作者的方程,并且平衡了数据拟合和复杂性。这两个方程之间的区别不是增加模型的复杂性以更好地拟合数据,而是增加困惑值,降低要建模的数据中模式的复杂性。(由于我们将越来越多的数据点视为邻居,作者还讨论了一个有趣的事实。当低估概率而不是高估概率时,KL 散度损失函数具有大的成本。换句话说,如果 p 很大,而 q 很小,KL 偏离该项就很大,但在相反的方向,小 p 和大 q,KL 不受影响。)此外,作者还将最小化某些描述长度联系起来。

利用推断的人类专家对困惑的偏好进行验证

为了检验作者方法的有效性,作者将从标准方程中选择的困惑值与专家选择的困惑值进行了比较。在各种各样的数据集上。如上所述,我们注意到,与专家选择值相比,作者公式选择的值没有太大差异。

结论

本文介绍了一种在使用 t-sne 时自动选择最佳困惑值的新方法。

参考

  1. 曹,王,李(2017)。t-SNE 困惑的自动选择。Arxiv.org。检索于 2018 年 9 月 11 日,来自arxiv.org/abs/1708.03…

结肠镜检查的计算机辅助诊断

原文:towardsdatascience.com/paper-summa…

GIF from this website

深度学习如何影响医疗保健行业的另一个伟大的用例。

请注意,这篇帖子是给未来的自己看的,回顾这篇论文上的材料,而不是从头再看一遍。此外,我没有足够的医学知识来完全理解这篇论文上的材料,然而我只是在推动自己学习。

Paper from this website

摘要

由于深度学习的最新发展,计算机辅助诊断(CAD)系统越来越受欢迎。在这些 CAD 系统中,在实时研究期间对结肠直肠息肉的自动检测和分类正在帮助内窥镜专家。这篇文章提供了这个主题的概述,特别关注证据,局限性和临床应用。

简介

不幸的是,即使经过培训,医生仍有 80%的准确率将检测到的息肉诊断为腺瘤。此外,人类在结肠镜检查中有 20%的机会漏掉息肉。为了克服这些问题,CAD 系统越来越受欢迎,以帮助医生变得更加准确。

在临床实践中,我们对 CAD 有什么期望?

在结肠镜检查筛查期间安装 CAD 系统的主要好处是:1)提高息肉检测的准确性;2)帮助培训需要提高腺瘤检测率的新手和更有经验的内窥镜专家。

技术概述

如上所述,当检测到息肉时,CAD 系统可以通过声音或其他机制警告医生,并通过标记描绘轮廓。一个有趣的事实是 ADR 增加 1%与癌症风险降低 3%相关。为了使这些系统成功,它们需要满足两个要求,第一,CAD 系统必须具有关于息肉检测的高灵敏度,第二,它们需要足够快以在实时场景中运行。

结肠直肠息肉的自动分类

通过息肉的自动检测和分类,我们可以避免增生性息肉的不必要的息肉切除术,仅在美国,估计每年节省 3300 万美元。

已经进行了许多研究来对不同组的图像进行分类,例如“ ”用于通过使用窄带成像放大结肠镜检查(具有视频)来预测结肠直肠肿瘤的组织学的计算机辅助系统。 。还有许多仍在进行中,甚至是细胞内镜检查,它使接触显微镜(× 500)能够进行体内细胞成像,是 CAD 系统产生积极影响的另一个伟大领域。(关于细胞内镜检查的一个优点是,它提供固定大小的聚焦的、一致的图像,使得 CAD 能够进行更容易和更鲁棒的图像分析。)最后,自体荧光光谱也是 CAD 系统应用的另一个领域。

深度学习的出现

检测和分类息肉的传统方法通常严重依赖于先进的医学图像,因此在实时场景中,它们很难很好地执行。然而,深度学习方法,如 CNN,对噪声和方差更加鲁棒,这使它们在现实生活应用方面具有优势。

临床研究

如上所述,已经有许多使用 CAD 系统来执行息肉的自动检测和分类的情况。每项研究使用不同的方法获得不同的准确性。

我们需要什么样的证据?

虽然已经有很多研究,我们仍然需要更多的证据,如实时检测和分类的前瞻性研究,随机试验,以及解决 CAD 模型的潜在有害影响。

要解决哪些问题?

总结一下我们仍需克服的一些技术问题。 1)需要更多数据,用于结肠镜检查的 CAD 系统中使用的最大图像量约为 6k,这在当今的标准中并不算多。 2)对于 CAD 系统,我们还需要讨论一些法律问题,但是目前这些问题还没有得到解决。 3)在将 CAD 系统应用于结肠镜检查之前,应该有用于实施 CAD 系统的更严格的路线图。

结论

总之,深度学习的进步显示了改进 CAD 系统的良好迹象,但是我们需要克服四个障碍。 1)医学专家和计算机科学家之间的合作 2)为成功的培训获取大量数据 3)通过严格的临床试验评估 CAD 4)法律和保险报销问题

最后的话

这些系统很酷,我希望有一天能实现这个系统。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你想看我所有写作的列表,请点击这里查看我的网站。

同时,在我的推特这里关注我,访问我的网站,或者我的 Youtube 频道了解更多内容。我还实现了广残网,请点击这里查看博文 pos t。

参考

  1. (2018).[在线]见:https://www . research gate . net/publication/317147787 _ Computer-aided _ diagnosis _ for _ colonels【2018 年 7 月 5 日获取】。
  2. 竹村 Y,e. (2018)。利用窄带成像放大结肠镜检查预测结肠直肠肿瘤组织学的计算机辅助系统(带视频)。公共医学——NCBI。Ncbi.nlm.nih.gov。检索于 2018 年 7 月 5 日,来自www.ncbi.nlm.nih.gov/pubmed/2219…

【论文摘要】具有自适应计算图的卷积网络

原文:towardsdatascience.com/paper-summa…

GIF from this website

我总是对不同类型的网络体系结构感兴趣,本文介绍了非常特殊的网络体系结构。

请注意,这篇帖子是为了我未来的自己回顾和复习这篇论文上的材料,而不是从头再看一遍论文。

Paper from this website

摘要

神经网络通常有一个固定的结构,但它真的必须如此吗?在某一层之后,网络可能已经非常确信它正在图像中看到一只狗或一只猫,但是由于固定的结构,它必须使用所有的层,这可能损害它的性能。本文提出了一种新的网络算法——具有自适应计算图的卷积网络。与具有较少参数的 ResNet 34 相比,它在 Imagenet 数据上实现了更好的性能,并且对对立的例子更健壮。

简介

卷积神经网络不仅用于分割,还用于各种其他领域,众所周知,网络越深入,网络的性能就越好。关于这些网络的一个共同事实是,它们都是与输入图像无关的固定模型。然而,已经证明有些层对网络性能的贡献不是很大,现在要问的问题是…

我们真的需要一个固定的卷积网络结构吗?或者,我们可以根据输入动态地组装一个网络图吗?

本文提出了具有自适应计算图的卷积网络。而且大致思路可以看上面。一个挑战是,每个选通单元需要对是否使用下一层做出离散的决定,并且直接通过反向传播训练网络是困难的。因此,作者基于最近的工作,即离散随机节点的可微近似。这种架构的结果是网络的诞生,它能够为不同的高级类别生成不同的计算图。

相关工作

作者在这篇论文上的工作实际上涉及多个领域,如神经网络组成(通过构建计算图)、神经网络的自适应计算时间(通过动态计算时间)、带有随机噪声的正则化(通过丢弃某些层)和注意机制。(通过选择特定的重要层来组装计算图。)

适应性 / 适应性计算图

首先,每个卷积层可以用数学方法表示如下…

秒 resnet 可以表示如下…

并且自适应 resnet 可以表达如下…

一个重要的注意事项是,上述公式看起来类似于高速公路网络(如下所示),但注意自适应图网络不必执行每一层。

现在让我们来谈谈这个网络的核心,也就是门控单元。这个单元非常重要,因为它必须理解输入数据,进行离散决策,并且易于执行。因此,作者提出了具有两个组件的门单元,第一个组件估计下一层应该被执行的概率,第二个组件获取估计的概率并从中抽取离散样本。(大致思路见上图。)

如上所述,在被传递到门单元之前,特征图通过在通道尺寸上的全局平均汇集而被缩小。(所以现在 dim 是 11C)。

接下来,该特征图被馈送到一个小全连接网络中,以产生一个二维向量,每个向量分别代表计算和跳过下一层的对数概率。之后,他们使用 Gumbel-Max 技巧,特别是其最近的连续松弛,来执行离散操作。(是否跳层。)所以作者在这里做了一件聪明的事。(为了清楚起见,上面的 beta 项被设置为 alpha。)

g 是一个遵循 Gumbel 分布的随机变量,在前馈操作中,它们使用上述函数。但是,在 back prop 期间,它们使用 softmax 函数。(特别是一个可微分的函数)。

注意,如上所述,根据 T 项,softmax 函数可以被视为 argmax 函数。值得注意的是,作者只能将方程 7 用于前馈操作和反馈操作,但通过实验,他们找到了最佳配置。

训练学员

由于新颖的结构,作者不得不引入额外的损失函数。有三件事需要考虑,1)网络可能学会使用所有的层,2)一些层可能消失,3)减少批量大小。作者首先使用传统的多类逻辑损失函数,此外,他们还引入了目标率损失(见下文)函数。

其中 z 表示层 l 在一个小批中执行的次数,t 是目标速率。因此,结合这两个损失,我们获得如下。

此外,为了成功训练,网络被初始化(最初)为偏向于门的打开,并且门控单元的学习速率被降低。

实验

  • notes Adanets in which all layers are executed and their output is scaled by the expected execution rate

作者从 Resnet 110 创建了 Adanet 以及创建了 wide Adanet,并且他们使用了权重衰减为 5e-4 的动量优化器,具有 350 个时期和 256 个小批量。如上表所示,我们可以看到,在减少计算时间的同时,改进算法能够优于不同的 Resnet 算法。

为了研究网络如何分配计算,作者绘制了不同类别图像的执行速率。从上面我们可以看到,下采样层是至关重要的,wide Adanet 显示了类之间更多的变化,这表明更多的容量可能有助于各个层专注于数据的某些子集,并且大多数类间变化来自网络的后续层。

接下来,作者在 Imagenet 数据集上测试了 Adanet,如上所述,Adanet 能够降低计算成本。值得注意的是,Adanet 的性能优于 Resnet 34,Resnet 34 的参数更小,但计算代价更大。

绘制执行速率图时,作者能够观察到更大范围的执行速率(第 9 层和第 10 层很少用于某些类),下采样层/最后一层至关重要,在后面的层中,人造物体与动物的执行速率有显著差异。

当我们绘制前 30 个时期不同层的执行率时,我们可以直接观察到这些层迅速分成关键层和不太关键的层。

当我们绘制一个直方图,显示不同类别使用了多少层时,我们会得到类似上面的结果。平均执行 10.81 层,标准偏差为 1.11。然而,如上所述,鸟的图像比消费品的图像少用一层。(超级有趣)。

对抗攻击的鲁棒性

为了知道特殊化层如何执行对抗攻击的效果,作者使用快速梯度符号攻击来创建对抗示例,并将其提供给网络。(作者还对创建的对抗实例进行了 JPEG 压缩防御。).如上所述,自适应算法对常规结果更健壮。

接下来,为了观察对立的例子是否影响不同层次的执行率,作者绘制了常规鸟图像和对立的鸟图像的执行率条形图。我们可以看到执行率并没有受到太大的影响。

结论

总之,本文作者介绍了一种新的网络体系结构,称为 Adanets。其具有根据输入数据学习要执行哪些层的能力。通过多次实验,作者发现这种类型的体系结构不仅性能优于常规的 resnets,而且对恶意攻击也更具鲁棒性。

遗言

非常聪明和新颖的建筑设计,我特别惊讶地知道网络是如何区分人造物品和动物的。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你想看我所有写作的列表,请在这里查看我的网站

同时,在我的 twitter 上关注我这里,访问我的网站,或者我的 Youtube 频道了解更多内容。我还实现了广残网,请点击这里查看博文 t。

参考

  1. (2018).Arxiv.org。检索于 2018 年 7 月 19 日,来自arxiv.org/pdf/1711.11…
  2. Veit,a .,& Belongie,S. (2017 年)具有自适应计算图的卷积网络。Arxiv.org。检索于 2018 年 7 月 19 日,来自arxiv.org/abs/1711.11…

[论文摘要]——深度思维健康:共同设计深度思维健康的患者和公众参与(PPIE)策略

原文:towardsdatascience.com/paper-summa…

Gif from this website

我已经知道 DeepMind 的存在,任何一个人工智能迷都会知道阿尔法围棋,一个阿尔法零的存在。但我想更多地了解 DeepMind 健康部门和他们的理念。所以我决定读一读它们(并总结一下),摘自 Mustafa SuleymanRosamund Snow 的论文“共同设计一个病人和公众参与 DeepMind Health 的参与(PPIE)策略,安息吧…

请注意,这个帖子是给未来的自己看的。

介绍信

Deep Mind 是通过机器学习来解决社会最大的问题的,他们确实取得了一些伟大的成就。特别是检测早期急性肾脏退化和提高视网膜扫描上威胁视力疾病的诊断。下面是他们九月份的活动。

注意这是一个两小时的视频

简介

许多卫生组织不接受病人的贡献。因此,当允许(并要求)患者和护理人员发表意见时,有许多领域可以改进。一个令人惊讶的事实是,即使是为了深度精神健康,当他们向世界公布他们的项目清单时,他们也受到了审查。

PPIE 长什么样好

就像公司试图听取客户的反馈以改进服务或产品一样,医疗保健组织也必须倾听患者(或护理人员)的意见以提高服务质量。然而,如果他们与他们的病人作为一个团队来建立它,它可能会更有效。同样,病人的意见似乎没有得到重视,确保病人得到平等对待(在许多方面)是迈向良好 PPIE 的一步。

我在 DeepMind Health 学到了什么

Rosamund 了解到,在 DeepMind 中,他们将患者作为一个团队来打造产品和服务。他们不是为他们而建,而是和他们一起建。然而,保持这种开放性是非常重要和具有挑战性的任务。

主要建议(供咨询活动中进一步讨论)

Rosamund 提出了八个可以改进的关键点,如让患者领导、创建患者小组、执行患者建议的项目以及创建患者测试小组。但是,可以简化为一句话,“T3”在每一级临床医生都有影响力的地方,保证患者也是如此。

最后的话

作为一个医生的儿子和一个经常生病的人。我真的很喜欢读这篇论文,并学到了很多东西。

如果你想看我所有作品的列表,请点击这里查看我的网站。

同时,在我的 twitter 这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。我还对医学图像进行了分割,在这里查看一下。

参考

  1. AlphaGo Zero。(2018).En.wikipedia.org。检索于 2018 年 4 月 6 日,来自en.wikipedia.org/wiki/AlphaG…
  2. AlphaGo | DeepMind。(2017).深度思维。2018 年 4 月 6 日检索,来自deepmind.com/research/al…
  3. 与美国退伍军人事务部一起研究病人病情恶化。(2018).深度思维。检索于 2018 年 4 月 6 日,来自https://deep mind . com/blog/research-department-veterans-affairs/
  4. 霍布斯,A. (2018)。一只眼睛的人工智能:DeepMind 专注于眼疾诊断|商业互联网。商业互联网。检索于 2018 年 4 月 6 日,来自https://internetofbusiness . com/deep mind-ai-eye-disease-diagnostics/
  5. DeepMind Health 患者和公众参与活动。(2018).YouTube。检索于 2018 年 4 月 6 日,来自www.youtube.com/watch?v=wBf…

【论文摘要】基于好奇心的内在动机引发结构化行为

原文:towardsdatascience.com/paper-summa…

GIF from this website

我从 Carlos E. Perez ( 自我意识深度学习中的自我运动)的一篇博客文章中看到了这篇论文,我立刻就想读它。另外,如果你有时间,我强烈建议你阅读这篇博文,因为它非常有趣。

请注意,这篇文章是为我未来的自己写的,目的是回顾这篇论文上的内容,而不是从头再看一遍。

Paper from this website

摘要

婴儿是在非结构化环境中产生新的结构化行为的专家,在这种环境中没有明确的奖励系统。(我不知道这到底是什么意思,但一般来说,我的理解是,当婴儿出生时,他们通过观察周围的人或事物开始不断学习。他们慢慢地但肯定地获得了世界是如何在他们周围构建的知识。问题是,当婴儿学习时,没有明确的解释或奖励系统,但不知何故,他们或我们能够学习。)

作者通过使用神经网络复制了这些能力,神经网络是一种由好奇心驱动的代理。

简介

从出生的那一刻起,我们人类就擅长驾驭我们的环境。(而这些环境可以是随机的、自发的、缺乏一般结构的。)换句话说,我们非常擅长模拟我们周围的世界,谢天谢地,与最先进的机器人相比,即使是婴儿在这方面也做得更好。(所以他们还没有接管世界。)

但是主要的问题是我们怎样才能学会这样做?总的来说,我们有非常强大的内置系统(如物体注意/定位和数字感等),帮助我们完成对周围世界建模的任务。另一个想法(本文研究的)是,我们的动机是对周围世界的好奇。以及通过探索新任务(其中的任务是新颖的,但仍然可以理解)。)我们能够围绕我们的周围开发出一个非常好的模型。这里要指出的另一个重要事实是循环的概念,一旦我们习惯了这个任务,我们就会寻找更多新的令人兴奋的东西。由于这种循环,我们能够将我们的模型发展成更复杂的模型,所以这是自我监督的学习。另外,作者介绍了“婴儿床里的科学家”这个主题,我找到了一个与这个主题相关的好视频。(见下图)

Video from ECETP

最后,作者介绍了论文的主要主题,其中他们创建了一个由基于好奇心的内在动机驱动的代理。

神经网络 A →训练预测代理行为的结果 神经网络 B →训练对抗挑战模型的当前状态(代理策略)(我猜这就是作者所说的好奇心)

通过成功地训练所有的网络,作者证明了创造一个能够理解自我产生的自我运动的代理是可能的,在这种运动中,他们有选择地关注、定位和与物体互动,而不必内置任何这些概念。

代理架构和环境

作者使用 Unity 来训练一个智能体,其中它有一个世界模型,试图理解智能体周围世界的动态,还有一个损失模型,试图逼近未来时间戳的世界模型损失,以对抗世界模型的学习。最后,作者没有加载任何预先训练的权重,使代理从零开始学习。

交互环境

在这一节中,作者描述了实验是如何设置的。例如,代理是一个正方形房间中的球体,它接收离散时间戳中的 RGB 图像等……此外,作者还详细介绍了他们如何定义状态空间(在时间戳 t 和 t -1 捕获的图像)和动作空间(x,y,z 力/扭矩和向前/向后运动)。

世界模特

(这部分对我来说很难,因为我不知道什么是广义动力学问题。)首先,给定状态和动作的历史片段(H ),有两个函数。A(H) →输入映射函数// T(H) →真实映射函数并且其中一个神经网络正在尝试将 A(H)映射到 T(H)。总之,代理正试图学习一个与真实世界相似的世界模型。最后,作者强调他们把问题公式化为逆动力学预测。与其预测未来,不如填写缺失的动作。

损失模型

在这一节中,作者描述了他们如何创建一个损失模型。它由卷积神经网络构成,在 CNN 的最后几层增加了多层感知。他们使用 softmax 交叉熵损失进行分类。然而,我现在还不能 100%确定有哪些不同的职业。(所以我将不得不学习更多的 RL 并回到这个问题上来,如果任何人确切地知道他们在谈论什么,请在下面评论。)

行动策略

在这里,作者描述了模型的动作策略。我们知道,当给定 T 中的状态以及建议的下一个动作 a 时,损失函数能够为我们提供 T(概率分布)。似乎作者创造了另一个函数σ,它接受这些分布并给出一个实值。接下来,我们将通过一些β项来缩放真实值,最后取最终结果的指数。(这部分和损失模型对我来说很难理解。)

实验

实验从将试剂随机放置在 10*10 平方的房间中开始。(有一定的播放距离,场景每 8000 到 30000 步重置一次。).关于这个实验的一个非常有趣的事实是,随着(一个代理可以与之交互的)对象数量的增加,代理实际上更喜欢与所有的对象进行交互。(我猜这就是好奇心的动力来源,例如,在玩了圆形之后,代理可以移动到球形,然后移动到三角形。因为它是由新的令人兴奋的形状等激发的。)最后,作者将学习权重/好奇心策略(LW/CP-40)与随机权重/随机策略(RW/RP)和学习权重/随机策略(LW/RP)进行了比较。

自我运动学习

如上所述,RW/RP(绿线)不能很好地学习,损失值很高。LW/RP 能够快速收敛到一个较低的值,因为它从一个恒定的随机分布中学习,而没有对抗性的策略。(无对抗性政策)。但是 LW/CP-40 是两者的混合,首先它能够收敛到一个较低的值,但是由于敌对政策,损失增加。

物体注意的出现

随着 LW/CP-40 损失值的增加,其目标播放频率也增加,如上所示。(出于好奇)。我们可以观察到其他权重和策略根本不与对象交互。

改进的逆动力学预测

如上所述,当作者测量不同代理在 1)自我运动确认损失 2)对象动作上的表现时,我们可以清楚地观察到 LW/CP-40 优于这两个任务。(不是因为自我运动验证损失,因为 LW/RP 也具有相当低的值。)

改进的目标检测和定位

此外,为了证明 LW/CP-40 在目标定位和存在方面的性能优势,他们训练了一个线性/逻辑回归模型。(训练/验证数据都来自代理所处的环境。)如上所述,LW/CP-40 策略具有最低的误差,表明代理能够学习更好的视觉特征。

导航和规划

此外,为了证明代理的导航和规划能力,作者已经可视化了损失地图,如上所示。当红色区域表示更多更高的损失时,接受过 LW/CP-40 政策培训的代理将实际采取更接近目标的行动。(非常有趣,尽管错误率很高,但代理实际上会朝那个方向移动…)

多对象交互的出现

最后,即使对于两个对象交互实验,我们也可以观察到,在 LW/CP-(40 或 20)策略上训练的代理倾向于与不同的对象进行交互。(而且他们似乎更乐于接受学习新东西的想法。)具体来说,我们可以看到 LW/CP-40 策略比 LW/CP-20 策略更好地学会了使用 2 个对象。

讨论及未来工作

总之,作者能够创建一个由好奇心驱动的代理,通过自我监督学习系统,代理能够适应周围的复杂世界。例如,在开始时,代理人集中精力学习自己的自我运动的动力学。之后,它开始学习物体的存在或定位,因此放弃了无聊的自我运动预测任务,接受新的挑战。

此外,作者还指出了当前工作的一些不足之处。(例如适当具体化的带有手臂的代理,以模拟更真实的交互或更好的策略等)

遗言

作为强化学习的初学者,我发现这篇论文上的材料非常难掌握。我迫不及待地想深入研究 RL :D。另一篇与这个主题相关的好论文是“学习使用内在激励的自我意识代理 s”

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你想看我所有写作的列表,请在这里查看我的网站。

同时,在我的 twitter 这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。我还实现了广残网,请点击这里查看博文 pos t。

参考

  1. 自我意识深度学习中的自我运动-直觉机器-媒介。(2018).中等。检索于 2018 年 6 月 17 日,来自https://medium . com/intuition machine/ego-motion-in-self-aware-deep-learning-91457213 CFC 4
  2. 北达科他州哈伯市、姆罗卡特区、飞飞市和亚明斯特区(2018 年)。基于好奇心的内在动机的结构化行为的出现。Arxiv.org。检索于 2018 年 6 月 17 日,来自 arxiv.org/abs/1802.07…
  3. 婴儿床里的科学家。(2018).YouTube。检索于 2018 年 6 月 17 日,来自 www.youtube.com/watch?v=HnR…
  4. (2018).Arxiv.org。检索于 2018 年 6 月 17 日,来自arxiv.org/pdf/1802.07…
  5. 团结。(2018).团结。检索于 2018 年 6 月 18 日,来自unity3d.com/

论文摘要:对下游和语言探测任务中句子嵌入的评估

原文:towardsdatascience.com/paper-summa…

分解一篇论文,分解不同句子嵌入的一些利弊

一句话嵌入什么?

不久前,我写了一篇关于单词嵌入的文章,介绍了我们为什么使用单词嵌入以及一些不同类型的单词嵌入。我们可以把句子嵌入看作是提取的下一个层次:句子的数字表示!

但是就像我们不想用简单的数字表示单词一样,我们也希望我们的句子表示包含丰富的含义。我们希望他们能对词序、时态和意义的变化做出反应。

这是一项艰巨的任务!有一些方法可以做到这一点,但是最近,“下游和语言探测任务中的句子嵌入评估”决定尝试解开“句子嵌入中有什么?”这个问题在这篇文章中,他们不仅研究了差异句子表征在受益于句子表征的下游任务中的表现,还研究了在纯语言任务中的表现(根据语言特征和规则显示句子智能表征的任务)。

这篇论文就是我们在本帖中解剖的!

不同的句子表征

那么评估了哪些表示呢?

  • ELMo (BoW,all layers,5.5B):来自 AllenNLP ,这是预先训练好的 ELMo 嵌入。这是在 5.5 亿单词语料库(维基百科和单语新闻抓取的组合)上训练的英语表示。因为 ELMo 有两层,所以这种表示是总共 3072 个维度的所有层输出。ELMo 只是一个单词嵌入,所以这种表示是通过将所有单词平均在一起为句子创建的。
  • ELMo (BoW,all layers,original):ELMo 的另一个变体,但只是在新闻抓取方面受过训练。同样,它的维度为 3072。
  • ELMo (BoW,顶层,原始):ELMo 的另一个变体,只有最终输出。这个嵌入只有 1024 维。
  • 快速文本(鞠躬,普通爬行):从脸书,我们得到快速文本。我之前的单词嵌入谈到了为什么 FastText 非常棒,但是因为它只是单词嵌入,所以通过对所有单词进行平均,这些被转换为句子嵌入。它有 300 个维度。
  • GloVe (BoW,Common Crawl): GloVe ,像其他单词嵌入一样平均在一起。它有 300 个维度。
  • Word2Vec (BoW,Google News): Word2Vec ,一起平均。它有 300 个维度。
  • p-mean(单语):一种不同的单词平均方式, p-mean 可通过 TensorFlow Hub 获得。然而维度是巨大的,达到 3600。
  • 跳过思考:我们看到的第一个实际的句子嵌入。Skip-think使用 word2vec 方法根据当前句子预测周围的句子。这是通过编码器-解码器架构实现的。这是我们最大的代表,有 4800 个维度。
  • InferSent (AllNLI):脸书训练的另一组嵌入, InferSent 使用语言推理的任务进行训练。这是一个数据集,其中两个句子放在一起,模型需要推断它们是矛盾的,中性的配对,还是蕴涵。输出是 4096 维的嵌入。
  • USE (DAN): Google 的基本通用句子编码器(USE),通过 TensorFlow Hub 可以获得深度平均网络(DAN) 。使用 512 维的输出向量。
  • 使用(变压器):最后,谷歌的重型使用,基于变压器网络。使用 512 维的输出向量。

模型的训练和维度总结如下:

下游任务

本文的下游任务取自 SentEval 包。它们以五组任务为特色,这些任务被确定为对句子嵌入有帮助的关键任务。这五个组是:二元和多类分类、蕴涵和语义相关度、语义文本相似度、释义检测和字幕图像检索。

这些类别给出了我们试图使用这些嵌入的任务类型的见解(如果你好奇,你应该检查一下这个包),然而,它们包含了所有经典的任务,如情感分析、问题类型分析、句子推理等等。

分类任务的完整列表及示例可在此处查看:

和语义相关的任务可以在这里看到:

为了评估这些嵌入的好处,使用了简单的模型。这意味着具有 50 个神经元的简单多层感知器、逻辑回归或其他非常基本的模型。这里没有花哨的 CNN。没有 RNNs。只是一些基本的模型来看看这些表现如何公平。

语言任务

同样取自 SentEval,有 10 个探测任务被用来评估句子嵌入的不同语言特性。这些很酷。他们是:

  • 二元移位:两个词是否颠倒
  • 坐标倒置:给定两个坐标从句,它们是否倒置?
  • 宾语号:宾语是单数还是复数?
  • 句子长度
  • 语义奇数人出:随机名词/动词可能被替换。检测它是否已经。
  • 主语号:主语是单数还是复数?
  • 过去时:主要动词是过去时还是现在时?
  • 顶层成分:顶层语法模式的类别是什么?
  • 语法树的深度:被解析的语法树有多深?
  • 单词内容:句子中编码了一千个单词中的哪一个?

这里的想法是,句子嵌入不仅应该在下游任务中表现良好,它还应该编码这些关键的语言属性,因为它们将有助于产生智能和可解释的嵌入!

下表总结了这一切:

结果呢???

嗯…没有明显的赢家!

ELMo 在 5/9 的任务中表现最好。USE 在产品审查和问题分类任务中表现出色。InferSent 在释义检测和推断任务上表现出色。

虽然 p-mean 没有超过顶级表现者,但它确实超过了所有基线单词嵌入,如 word2vec、GloVe 和 FastText。

以下是分类的下游结果:

和语义相关度:

信息检索是另一个大测试(根据前 n 名中检索到多少正确结果来评分,其中 n 是一个整数)。InferSent 实际上表现最好,尽管 ELMo 和 p-mean 是其他势均力敌的竞争者:

至于语言探索,ELMo 又一次表现得很好,尽管其他表现也没有落后太多。所有语言探索任务的结果可以在这里看到:

那么这意味着什么呢?正如作者所说,这意味着我们还没有真正拥有一个坚实的通用句子编码器。没有一个句子嵌入在每项任务中都表现最佳,我们仍然可以通过语言探索和测试学到很多东西。

对我来说,这意味着这个领域仍然是成熟的探索!我们还没有实现一个奇妙的句子嵌入,尽管这些都是可靠的模型。现在轮到我们走出去,尝试我们自己的嵌入想法的句子了!

如果你喜欢这篇文章或者觉得它有任何帮助,为什么不发给我一两美元来资助我的机器学习教育和研究呢!每一美元都让我离成功更近一步,我永远心存感激。

原载于T5【hunterheidenreich.com】

[论文摘要]上下文无关注意算子的进化设计

原文:towardsdatascience.com/paper-summa…

GIF from this website

让我们做一个简单的实验,见下图。

你的眼睛最关注哪个区域?蓝色的商店标志还是电话亭?甚至棕色的墙壁。向下滚动一点,我给你看另一张图片……

更多

更多

更多

更多

更多

是你眼睛最关注的圆圈区域吗?对我来说肯定是。我们关注这些地区有什么原因吗?我们能预测人类会最关注哪个区域吗?甚至围绕它开发一个框架?本文提出了一个示例框架。

Paper from this website

摘要

在这篇论文中,作者介绍了一个模仿灵长类动物视觉注意系统的框架。这个框架不仅考虑了心理物理学方面的原因,也考虑了数学方面的原因。通过应用一组注意力算子,每个图像被转换成表示该图像的感知重要性的图。

简介

当我们看一幅图像,(或一个场景)时,我们认为我们在看一切,但我们真的不是。我们周围的信息中只有很少一部分能真正解释我们的行为。目前,我们有大量的证据支持引导我们视觉注意系统的双组分系统。

1。自下而上的图元组件 →纯图像刺激 2。自上而下组件 →认知控制

在本文中,作者将模拟一个自下而上的注意系统。在这个主题上已经有了先前的工作,例如选择性视觉注意力的' '转移:朝向潜在的神经回路 '或用于定义视觉感兴趣区域的' 算法:与眼睛注视 的比较。一个有趣的发现是,图像局部中特定特征的强度本身并不能保证人们的注意力会被吸引到该图像区域。例如,如果一幅图像有很大的变化,那么我们将主要关注同质区域,即变化较少的区域。所以换句话说,彼此不同的区域会获得人类更多的关注。最后,虽然有不同的方法来模仿人类的视觉注意机制,但似乎有一个重叠的区域,在那里他们开始从给定的图像中提取较低层次的特征。

型号

在本节中,作者描述了该模型的 4 个关键组成部分。

  1. RGB 图像被分为强度/色调/方向通道(这是通过应用方向的 Gabor 滤波器完成的)。)
  2. 非线性滤波运算符,用于响应引起更多关注的信号。(这些滤波器是通过随机搜索由局部范围的二次沃尔泰拉滤波器组成的函数空间找到的。)和过滤器的结构可以在下面看到。

其中 S 代表滤波器起作用的区域。h 的参数通过遗传算法优化确定。看到成本函数

SI → 香农自我信息测度 D →图像 I 对应的实验密度图

3.信息操作者接受高级特征,并将其放入更准确地反映人类视觉系统可能预期的响应的域中。

4.将每个通道的平均运算转换为一个单一输出。

这种架构不同于其他架构的原因是 1)定制过滤器的训练和 2)包含信息操作符。

结果

如上所述,我们可以看到该模型运行良好,并对人类可能最关注的地方做出了很好的预测。黄色圆圈代表置信度最高的地方,下面是不同图像的结果。

讨论

这篇论文的作者能够成功地创建一个模仿人类视觉注意系统的模型。

最后的话

这篇论文令人印象深刻的一点是,这篇论文发表于 2003 年,当时深度学习甚至还不存在。但是如果你观察这个模型,你会发现它非常像一个卷积神经网络。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你想看我所有写作的列表,请在这里查看我的网站。

同时,在我的 twitter 上关注我这里,访问我的网站,或者我的 Youtube 频道了解更多内容。我还实现了广残网,请点击这里查看博文 t。

参考

  1. (2018).Www-sop.inria.fr .于 2018 年 6 月 26 日检索,来自www-sop.inria.fr/members/Nei…
  2. (2018).Cseweb.ucsd.edu。检索于 2018 年 6 月 27 日,来自https://CSE web . ucsd . edu/classes/fa09/CSE 258 a/papers/Koch-ull man-1985 . pdf
  3. Gabor 滤波器。(2018).En.wikipedia.org。检索于 2018 年 6 月 27 日,来自en.wikipedia.org/wiki/Gabor_…
  4. 5 个非线性滤波器。(2018).Dspalgorithms.com。检索于 2018 年 6 月 27 日,来自www.dspalgorithms.com/aspt/asptno…
  5. (2018).[在线]见:https://www . research gate . net/post/how _ are _ Volterra _ filters _ applied _ to _ images【2018 年 6 月 27 日访问】。
  6. 自我信息。(2018).En.wikipedia.org。检索于 2018 年 6 月 27 日,来自en.wikipedia.org/wiki/Self-i…

独立分量分析的快速鲁棒定点算法

原文:towardsdatascience.com/paper-summa…

GIF from this website

这篇论文已经这么有名了,我想我不需要提供什么解释了。

请注意,这篇帖子是为了我未来的自己复习这篇论文上的材料,而不是从头再看一遍。

Paper from this website

摘要

独立成分分析,将给定的数据分解成尽可能独立的成分。本文作者使用了两种方法来获得这一结果,即 Comon 的信息论方法和投影寻踪方法。并且使用最大熵近似,作者引入了新的目标函数。(我们将互信息最小化。)

简介

寻找合适的表示是神经网络以及统计等其他领域的中心问题。这些表示通常被认为是原始数据的线性变换。(有一些方法可以找到这些表示,如 PCA、因子分析等……)。ICA 两个应用是盲源分离和特征提取。ICA 的特征提取受到神经科学的启发,神经科学表明冗余减少的相似原理解释了大脑早期处理感觉数据的一些方面。本文引入了新的目标函数,认为问题是最小化互信息。

ICA 的对比功能

看待 ICA 的另一种方式是对上面看到的数据的以下生成模型的估计。(其中 S 是独立的潜在向量,X 是原始数据,最后 A 是学习的变换矩阵,而 W 是 A 的逆)。Comon 展示了如何获得更一般的 ICA 公式,如下所示,其中我们从随机向量 y 定义了差分熵 H。(这个概念是基于互信息的。)

上述方程可以归一化为负熵,它对于线性变换是不变的。(负熵也可以解释为非高斯性的度量。)

最后,使用微分熵的概念,我们可以定义 n(标量)随机变量之间的互信息 I 如下。

使用上面显示的所有概念,本文的作者已经将 ICA 问题定义为 s = Wx,其中 W 是学习的权重,使得变换分量 s 的互信息最小化。(这也等于找到负熵最大化的方向。)

通过负熵近似的对比函数

为了使用上述概念来执行 ICA,我们首先需要找到一个简单的负熵估计。从其他文献中,作者告诉我们,我们可以使用上述函数,其中 G 是非二次函数,C 是常数,V 是标准化变量,y 是均值和单位方差为零的随机变量。为了找到单个独立分量,我们可以使用下面的等式。(注意,如果我们多次迭代下面的方案,我们可以估计多个独立分量。)

并且当分量的负熵之和最大化时,互信息最小化。因此,我们可以将问题重新表述为优化问题,如下所示。(带有附加约束。)

估计量的分析和对比函数的选择

在本节中,作者已经证明了几个事实,例如 a. W 是 ICA 数据模型中一个分量的一致估计量。 (如果 W 是向量) b .当非二次函数 G 的形式如下所示时,W 的渐近方差最小。(fi(。)是 si 的密度函数,k1,k2,k3 是任意常数)

c .如果函数 G 有界,那么学习到的 W 对于异常值是鲁棒的

对比功能的实际选择

上述三个函数是函数 G 的一个很好的选择,作者方法的一个巨大优势是它们提供了适用于独立分量的任何分布和对比函数的任何选择的估计量。

独立分量分析的定点算法

在这一节中,作者提供了执行 ICA 的完整算法,关于最小化互信息。本文提出的方法也可以通过梯度下降来求解,但是用户必须注意这样的事实,即学习速率可以中断或使收敛。为了克服这个问题,作者使用了定点迭代算法,在该算法中,计算是成批进行的,并且具有并行、分布式、计算简单和需要很少存储空间的优点。

为了估计单个独立分量,我们可以使用如上所示的定点迭代算法。(详情请阅读论文。)并且上面的方法可以转换成梯度下降法,如下所示。(下面的方法更稳定。)

最后,如果原始数据之前没有被白化,我们可以使用下面的算法。

多个单位的定点算法

现在,作者介绍了一种算法来为多个单元执行 ICA,这里需要注意的一点是,为了防止不同的神经元收敛到相同的最大值,我们必须对每一步的输出进行去相关。(同样,如果原始数据已经被白化,那么符号 C 可以省略。)

第一种方法是逐个找到单个组件,并重新规范化它们。

其他两种方法涉及对称装饰关系,其不具有任何比其他向量优先的向量。不动点算法的一些性质是收敛更快,没有超参数,更稳健,并且能够逐个或批量估计独立分量。

模拟和实验结果

经过多次实验,作者证明了这种方法对异常值更鲁棒、更有效、更快(收敛)的事实。

结论

本文作者提出了一种通过最小化互信息实现独立分量分析的定点算法。并且该算法可以应用于原始数据或白化数据。此外,通过使用对称装饰关系,还可以批量估计独立分量。

遗言

这是一种执行 ICA 的巧妙方法。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你想看我所有写作的列表,请在这里查看我的网站

同时,在我的 twitter 这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。我也实现了广残网,请点击这里查看博文 pos t。

参考

  1. (2018).Cs.helsinki.fi 于 2018 年 8 月 17 日检索,来自www.cs.helsinki.fi/u/ahyvarin/…

[论文摘要]Google Deep Mind——走向深度学习和神经科学的整合——第 1 部分

原文:towardsdatascience.com/paper-summa…

Gif from here

谷歌,深度思维,精英中的精英。我们这一代最具创新性的人工智能研究实验室之一。他们有惊人的出版物。今天,我将尝试对他们的论文“ 走向深度学习和神经科学的融合 e”做一个一到两句话的总结。另外,请注意这篇论文有 60 页,所以我需要把这篇总结分成几篇文章。

请注意这篇文章是给未来的我看的。

摘要

由于更复杂的机器学习模型以及复杂的成本函数的发展,现在有可能弥合机器学习和神经科学之间的差距。

简介

作者再次声明神经科学和计算机科学之间存在脱节。且继续陈述机器学习中三个发展 1)成本函数优化 2)更复杂的成本函数的发展 3)更复杂的网络架构的发展现在可以帮助弥合该差距,并且引入三个假设。

1.1 假设 1——大脑优化成本函数。

人类之间优化的一个例子可以是简单的移动,作者认为,人类已经进化到优化能源消耗,同时最大化财务和移动收益。这种机制也适用于机器。

1.2 假设 2-成本函数因地区而异,并随着发展而变化。

这里的主要思想是成本函数不必是全局的。我们的大脑可能会使用均方差来优化运动时的能量消耗。但是同一个大脑可能使用类似于 softmax 的具有交叉熵损失的成本函数来进行分类。这种专业化成本函数的混合可以使学习更有效率。

1.3 假设 3-专用系统允许有效解决关键计算问题。

这部分挺长的,但是本质上… 1。大脑的不同部分做不同的事情(例如丘脑大脑的一部分可能充当信息路由门,而像基底神经节这样的区域帮助做出离散的决策)因此,开发不同结构的机器学习模型对于效率来说是至关重要的(LSTM、RNN、CNN 等)。

2.然而,人类的大脑是非常特殊的,因为即使世界给了我们有限的标记数据,我们也能够学习差异并正确地区分彼此。现有的无监督学习算法没有一个能做我们人类做的事情。(截至今日)

3.因此,找到正确的成本函数序列是非常重要的,可以根据该序列训练无监督模型以提供正确的行为。

2。大脑可以优化成本函数

作者声称,我们可以将大脑视为一台优化机器,它可以为不同的任务提供不同的成本函数。同时优化学习过程中的每个成本函数。这些复杂成本函数中的一些可以是反向传播、尖峰时序相关可塑性树枝状计算局部兴奋-抑制网络,或者可以导致比任何优化算法更强大的学习过程的任何其他优化函数。

遗言

现在,我就讲到这里,因为我还有一些作业要交,但是我很快会回到这篇论文上来。抱歉,帖子写得很短。

参考

  1. 马布尔斯通,A. H .,韦恩,g .,&科丁,K. P. (2016)。走向深度学习和神经科学的融合。计算神经科学前沿10 ,94。
  2. 基底神经节。(2018).En.wikipedia.org。于 2018 年 4 月 3 日检索,来自en.wikipedia.org/wiki/Basal_…
  3. 安纳亚·曼达尔博士,硕士(2010 年)。丘脑是什么?。News-Medical.net。检索于 2018 年 4 月 3 日,来自https://www . news-medical . net/health/What-is-the-cathamus . aspx
  4. 锋电位时间依赖性可塑性。(2018).En.wikipedia.org。检索于 2018 年 4 月 3 日,来自https://en . Wikipedia . org/wiki/Spike-timing-dependent _ plasticity
  5. (2018).Neurophysics.ucsd.edu。检索于 2018 年 4 月 3 日,来自https://neuro physics . ucsd . edu/courses/physics _ 171/annurev . neuro . 28.061604 . 135703 . pdf
  6. (2018).Ocw.mit.edu。检索于 2018 年 4 月 3 日,来自https://OCW . MIT . edu/courses/brain-and-cognitive-sciences/9-641j-introduction-to-neural-networks-spring-2005/lecture-notes/le C14 _ ex cinh . pdf

【论文摘要】Google deep mind——使用机器学习技术对计算机视觉的视网膜成像进行自动分析

原文:towardsdatascience.com/paper-summa…

Gif form this website

我发现了另一篇很棒的论文,来自《深度精神健康》,我想更深入地研究这篇论文,同时将每一部分总结成一两句话。这也被媒体以“ 谷歌 DeepMind 正在资助 Moorfields 眼科医院 l 的 NHS 研究”的标题报道。

请注意,这个帖子是为了我未来的自己回顾和审查材料。

摘要

有成千上万的英国人正在失明,而患有糖尿病等疾病会使患者失明的几率增加 40%。医生要么使用眼底的数码照片,要么使用光学相干断层扫描获取视网膜图像并做出诊断。

背景

作者再次指出,由于年龄相关性黄斑变性,有许多人失明。在那里,作者描述了机器学习取得的进展,并举例说明了这些算法如何积极地有益于医疗保健(例如,“ ”大脑表达的外显子在纯化选择下富集了自闭症谱系障碍中的从头突变)。 ”)。最后讨论了历史和在 Moorfields 眼科医院的治疗质量。

目的和目标

这项研究的目标再清楚不过了。 1。研究计算机算法是否可以检测/分类病理特征

如果达到了上述目标并取得了成功的结果… 2。提供识别和分析某些病理特征的新算法 3。提供监测和分析,直到疾病得到治疗。

研究设计(纳入/排除标准)

作者多次指出,所有将在这项研究中使用的数据都将在一切之前去人格化。(因此无法识别病人。)作者还指出,除非患者明确说明,否则在 2007 年 1 月 1 日至 2017 年 1 月 31 日期间访问 Moorfields 眼科医院并进行眼部检查的患者的所有数据都将包含在本研究中。

研究设计(样本量/数据)

大约 100 万审计将被包括在数据集中,这些数据主要是数字眼底照片/ OCT 图像的图像。此外,图像中还会包含一些元数据(如年龄),但是这些数据都不能用于识别特定的患者。所有的数据在使用前都会被摩尔菲尔德医院的工作人员仔细检查。

研究设计(算法开发/统计分析)

这里作者讨论的是可以用来开发这种情况的算法类型,对于 AI 来说,基本上都是。(有监督的、无监督的、强化的等等)此外,作者认为性能测量(准确性等等..)将由专家确认。

数据保护

这整个部分可以总结为一句话:DeepMind 将在 5 年内拥有来自 Moorfields 眼科医院的无法识别的数据,在此期间,所有数据都将被销毁,在此期间,数据将被保存在最先进的安全数据库中。

同样,没有进入 DeepMind 的数据可用于识别患者。

道德考量

在这里,作者回顾了 DeepMind 获准使用医疗数据的时间和日期,以及一些负责监测的人员的姓名(缩写),包括临床人员和 DeepMind 人员。

传播

作者在此明确声明,这项研究的所有结果都将发表在学术论文中。(等不及看那篇论文了!)

结论

作者讨论了在这个项目成功的情况下,他们将提交真实世界用例的附加应用程序。

遗言

读完这篇论文后,我想我对这类研究在行业中实际上是如何进行的有了更具体的理解。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你想看我所有写作的列表,请在这里查看我的网站。

同时,在我的推特这里关注我,访问我的网站,或者我的 Youtube 频道了解更多内容。如果你感兴趣的话,我还做了解耦神经网络的比较。

参考

  1. j .德法乌、p .基恩、n .托马舍夫、d .维森廷、g .范登德里斯切、m .约翰逊、…& t .佩托(2016)。使用用于计算机视觉的机器学习技术自动分析视网膜成像。f 1000 研究,5。
  2. Shead,S. (2018 年)。谷歌 DeepMind 正在资助 Moorfields 眼科医院的 NHS 研究。商业内幕。检索于 2018 年 4 月 12 日,来自http://uk . business insider . com/deep mind-is-funding-NHS-research-2017-7
  3. 眼底照相。(2018).En.wikipedia.org。检索于 2018 年 4 月 12 日,来自 en.wikipedia.org/wiki/Fundus…
  4. 光学相干断层扫描。(2018).En.wikipedia.org。检索于 2018 年 4 月 12 日,来自 en.wikipedia.org/wiki/Optica…
  5. 黄斑变性。(2018).En.wikipedia.org。检索于 2018 年 4 月 12 日,发自en.wikipedia.org/wiki/Macula…
  6. Uddin M,e. (2018)。在自闭症谱系障碍中,纯化选择下的脑表达外显子富集了新突变。公共医学——NCBI。Ncbi.nlm.nih.gov。检索于 2018 年 4 月 12 日,来自www.ncbi.nlm.nih.gov/pubmed/2485…
  7. 穆尔菲尔德眼科医院国民健康保险基金信托。(2018).Moorfields.nhs.uk 于 2018 年 4 月 12 日检索,来自www.moorfields.nhs.uk/

H-DenseUNet:用于从 CT 体积中分割肝脏和肿瘤的混合密集连接 UNet

原文:towardsdatascience.com/paper-summa…

GIF from this website

最近我在玩 3D 卷积运算,我想知道更多关于。


Paper from this website

摘要

分割肝脏和其他器官是一项具有挑战性的任务,2D 卷积运算没有充分利用第三维,而 3D 卷积运算具有高计算成本。为了克服这些问题,作者提出了一种新的混合密集连接 UNet 架构,其中他们使用 2D DenseUNet 来提取切片内特征,并使用 3D 计数器部分来分层聚集体积上下文。所有这些网络都是通过端到端的学习来训练的。

简介

肝癌是最常见的癌症之一,因此准确的诊断非常重要。这就是为什么分割正确的肝脏区域是重要的。但是肝脏和肝脏病变是由放射科医师在逐切片的基础上描绘的,这可能导致错误并消耗大量时间。在 CT 中分割肝脏区域是困难的,因为它缺乏其他器官之间的对比度。(见上图,这就是为什么许多放射科医生使用注射协议来增强对比度。)此外,分割肿瘤更具挑战性,因为形状不规则,没有清晰的边界线,并且许多 CT 扫描包括沿 z 轴方向变化很大的各向异性维度。已经提出了许多不同方法来自动化这个过程,例如使用手工制作的特征或完全卷积的神经网络。

通常,放射科医师根据沿 z 轴的许多相邻切片来观察和分割肿瘤,然而 2D 基卷积方法没有考虑 z 轴。(一些研究人员已经应用了对于每个 xy、yz 和 xz 平面具有 3 个 2D 卷积神经网络并对它们进行平均的方法,然而,这些方法有其自身的局限性。)3D 卷积神经网络占用更多的 GPU 内存和训练时间。此外,现有的预训练 3D 卷积模型并不多。为了克服这些问题,作者提出了混合密集连接的 UNet。关键因素是增加网络深度和混合特征探索。

相关工作

开发了许多其他分割方法,例如使用手工制作的特征,如水平集方法(如纹理特征向量),结合传统的机器学习算法,如支持向量机。但是在深度学习的热潮之后,卷积神经网络成为执行分割的主要方法。(使用 3D 条件随机场等方法)

方法

上图显示了作者方法的总体轮廓,一个有趣的事实是,实际上有 4 个网络,2D Res Net,2D Dense-UNet,3D Dense-UNet 和 HFF 层。

用于切片内特征提取的深层 2D dense unet

2D 密集 UNet 是由密集连接的块组成的 UNet 架构。(而大致的框架框架见下图。).这个网络的两大优点是:第一,它通过密集连接最大化了层间的信息流;第二,它通过 UNet 型连接利用了高级功能和低级功能。(此外,2D 密集 UNet 的深度为 167,另外请注意,我不会详细说明输入数据或输出数据的确切维度。)上采样是通过双线性插值完成的,使用线性单位(ReLU)作为激活函数。

用于混合特性探索的 H-dense unet

2D 密集 UNet 能够从给定的 ct 扫描中提取高级特征,但是,它仍然没有充分利用 z 轴中存在的数据。为了克服这一点,作者提出了一种 H-DenseUNet 来联合融合和优化所学习的切片内和切片间特征,以便更好地分割肝脏肿瘤。在 2D 密集 UNet 的最后一层之后,输出的特征地图被转换成如下所示的体数据。

此特征地图是 3D Dense UNet 的输入数据,当用数学等式表示时,可以认为如下所示。

最后,从两个网络输出的数据相加并传递到 HFF 层。

完整的网络架构如下所示。

损失函数、训练和推理方案

作者使用加权交叉熵损失函数通过端到端的方式训练网络。

并且每个网络训练的顺序可以列举如下 1。Resnet →得到粗肝分割 2。2D DenseUNet →用 DenseNet 的权重(编码器)初始化权重,同时随机初始化解码器 3。在没有 UNet 连接的情况下开始 2D 密集 UNet 的训练,并且在一定时期之后进行 UNet 连接。 4。使用上述方案训练 2D 密集 UNet 5。在训练 2D UNet 之后,训练 3D 密集 UNet,同时固定 2D 密集 UNet 的参数。 6。在 3D 密集 UNet 被训练后,使用损失函数微调整个网络,如下所示。

实验和结果

Image from this website

使用来自 MICCAI 2017 LiTS challenge 的数据,该数据包含分别用于训练和测试的 131 次和 70 次对比度增强的 3D 腹部 CT 扫描,作者在-200 和 250 之间截断了图像强度值。(删除了所有不相关的细节。).所有模型都通过 Dice per case 评分、Dice global 评分和均方根误差进行评估。工作使用的框架是 Keras,学习率为 0.01,学习率衰减。

预训练模型的有效性/2D 和 3D DenseUNet 的比较

如上所述,当作者比较有和没有预训练权重的模型的训练损失以及骰子得分时,很明显需要预训练权重以获得更好的性能。此外,当比较 2D 密集 UNet 和 3D 密集 UNet 的性能时,很明显 2D 密集 UNet 的性能更好。最后,UNet connected 也为实现更好的性能发挥了作用。

混合特征融合的有效性

如上所述,作者比较了具有和不具有混合连接的网络,发现具有混合连接的网络产生更清晰的分段掩码。

与其他方法的比较

甚至当与其他现有技术的网络相比时,我们可以观察到作者提出的方法在所有不同的测量中具有最高的性能分数。

讨论

作者提出的方法能够在不同的测量标准下获得最佳性能。为了更好地理解性能增益,作者分析了每个患者肿瘤大小的有效性。当作者绘制肿瘤大小的散点图时,我们可以注意到一个很大的变化。如下所示,作者的方法提高了大肿瘤组和小肿瘤组的 dice 评分准确性。

结论

总之,本文的作者提出了一种新的混合架构,该架构可以有效地探测高级别代表性片内和片间特征,随后通过混合特征融合层优化这些特征。并且克服了 2D/3D 卷积神经网络的问题。

最后的话

网络的训练方式给我留下了特别深刻的印象。事实上,该网络没有从头到尾进行训练是一个败笔,但是作者提出了一个非常聪明的方法来训练一个复杂的网络。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你想看我所有写作的列表,请在这里查看我的网站

与此同时,请在我的 twitter 这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。我也实现了广残网,请点击这里查看博文 pos t

参考

  1. (2018).Arxiv.org。检索于 2018 年 7 月 31 日,来自 arxiv.org/pdf/1709.07…
  2. 李,谢,陈,洪,齐,谢,窦,秦,傅,陈,恒,彭(2017)。H-DenseUNet:用于从 CT 体积中分割肝脏和肿瘤的混合密集连接 UNet。Arxiv.org。检索于 2018 年 7 月 31 日,来自 arxiv.org/abs/1709.07…
  3. CodaLab —竞争。(2017).Competitions.codalab.org。检索于 2018 年 7 月 31 日,来自competitions.codalab.org/competition…

【论文摘要】horo VOD:tensor flow 中快速简单的分布式深度学习

原文:towardsdatascience.com/paper-summa…

GIF from this website

我想知道更多关于 Tensorflow 中的分布式学习,它是如何完成的以及背后的细节。

请注意,这篇帖子是给未来的自己看的,回顾这篇论文上的材料,而不是从头再看一遍。

Paper from this website

摘要

训练深度神经网络是一个占用大量计算内存的过程。如果我们可以使用多个图形处理器,那么训练速度会更快。然而,有两个问题,GPU 的内部通信和用户必须修改他们的代码,以兼容分布式训练。本文的作者介绍了 Horovod,它可以自动处理这些问题。

简介

近年来,深度学习已经在各地应用,以创造有意义的体验。优步在他们的许多产品中使用张量流。

走向分布式

随着模型规模的增加,所需的计算成本也在增加。为了解决这个问题,优步转向了分布式培训,在尝试了标准的 tensorflow 分布式软件包后,他们显然需要做出一些调整。tensorflow 中的标准分布式库很难调试,扩展性也不好。(如上图所示)

利用不同类型的算法

首先,他们尝试了脸书的方法,其中结合了数据并行的原则和创新的学习率调整技术。(如上图。)这种方法的一般方法如下所示。

在这种方法中,每个进程都有两个潜在的角色,要么成为工作节点(读取数据,并计算梯度),要么成为参数服务器(平均梯度)。这种方法是可行的,但是它有两个潜在的问题,1)确定工人与参数服务器的正确比例,以及 2)处理增加的 TensorFlow 程序复杂性。在 2017 年初,一种称为 ring-allreduce 的算法对梯度进行平均,并将这些梯度传递给所有节点,(该方法如何运行的视觉效果可以在下面看到,详细信息请阅读论文。)已被提出。

介绍 Horovod /通过 Horovod 分配您的培训工作

Horovod 这个名字来自传统的俄罗斯民间舞蹈,表演者手挽手围成一圈跳舞,类似于分布式训练的工作方式。并且本文作者已经实现了 tensorflow 版本的 ring-allreduce 算法,具体可以看下面。

正如上图所示,使用 Horovod 非常简单,只需要几行额外的代码。

Horovod 时间轴/张量融合

在谷歌 chrome 的帮助下,每个用户都可以轻松地跟踪培训的进度,这可以准确地显示每个节点在整个培训工作的每个时间点都做了什么。

此外,作者注意到在训练时,有许多微小的缩减操作。如果张量足够大,ring-allreduce 可以以最佳方式利用网络,但如果张量非常小,则不能有效或快速地工作,因此作者提出了张量融合,一种将张量融合在一起的算法。通过这种方法,作者能够观察到 65%的改善。

Step by Step of Tensor Fusion.

Horovod 基准/后续步骤

当作者比较标准库和 Horovod 之间的情况时,他们能够观察到性能的异常提高,如上所示。

使用远程直接内存访问(RDMA)而不是 TCP,作者还注意到性能的巨大提高。如果随着模型中参数数量的增加,它变得更加有效。最后,作者注意到了改进的空间,例如 1)使安装 MPI 变得更容易,2)收集和分享关于调整分布式深度学习的模型参数的学习,以及 3)添加非常大的模型的示例。

最后的话

这是一个令人兴奋的消息,我希望有一天能够使用这个框架。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你希望看到我所有写作的列表,请在这里查看我的网站

同时,在我的 twitter 这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。我也实现了广残网,请点击这里查看博文 pos t。

参考

  1. 阿·谢尔盖耶夫和米·德尔·巴尔索(2018 年)。horo VOD:tensor flow 中快速简单的分布式深度学习。Arxiv.org。检索于 2018 年 8 月 13 日,来自arxiv.org/abs/1802.05…

[论文摘要/ICLR 2014]k-稀疏自动编码器

原文:towardsdatascience.com/paper-summa…

GIF from this website

自动编码器的变体之一,旨在学习给定数据的稀疏表示。


Paper from this website

摘要

最近已经注意到,学习给定数据的稀疏表示提高了用于分类任务的网络的性能。这里,作者提出了一种新的架构,其中在编码部分,仅选择 k 个最大的隐藏层元素来重构原始数据。

简介

有多种实现稀疏编码的方法,我们可以直接学习字典,或者我们可以使用在成本函数中添加了稀疏惩罚的神经网络。

在忽略所有细节(例如所需的计算成本)的情况下,大多数稀疏编码方法的基本思想是学习最小化上述成本函数的字典 W 和稀疏表示 z。另一种方法是使用自动编码器,但是它们也有自己的问题,比如不能保证每个输入的稀疏表示。在本文中,作者提出了 k 个稀疏自动编码器,其中在重构给定输入时仅使用某些最高隐藏层。

算法描述

基本自动编码器背后的想法是简单地重构给定的输入,同时通过某个权重 W 和偏差值 b 来参数化。在 k 个稀疏自动编码器的情况下,在隐藏层(如下所示)之后,仅使用选定的 k 个值来重构给定的输入。

suppk()表示仅选择给定输入值中最高的 k 值,这是唯一的非线性。并且这些学习的权重 W 可以用于分类任务。

使用稀疏自动编码器的整个训练和编码阶段可以在上面看到。

k 稀疏自动编码器的分析

最初,迭代硬阈值处理是一种重建稀疏信号的方法,然而在这项工作中,作者使用了上述方法的一种变体,称为“具有反演的迭代阈值处理”,其中变得与 k-稀疏自动编码器相同。并且在非常简短的总结中,具有反转的迭代阈值处理具有如下所示的两个步骤。(在没有所有数学细节的情况下,下面两个等式可以被认为是最小化原始数据和稀疏重构数据之间的平方差。)

简而言之,我们可以将 k-稀疏自动编码器视为在稀疏恢复阶段使用 ITI 的稀疏编码算法的近似。最后,作者介绍了最后一个概念,即不连贯的重要性。这基本上意味着给定字典中原子之间的差异。如果字典是不完整的,我们不能将字典的每一列表示为其他列的线性组合。当字典过于完备时,情况正好相反。并且当 k-稀疏自动编码器收敛时,它成功地找到了给定数据的稀疏表示,这意味着所学习的字典必须是充分不相干的。

实验

本节作者在三组不同的数据集上进行了实验,分别是 MNISTNORBCIFAR-10 。作者没有纯粹地训练自动编码器,而是,他们首先将 k 值设置为 100,然后慢慢降低到目标稀疏度,如 15。这样做的原因是为了防止隐藏层内死亡神经元的形成。如果稀疏性从一开始就很低,它可能会阻止梯度流动。对于无监督和有监督的学习任务,作者使用了带动量的随机梯度下降。

稀疏程度的影响

从上图中我们可以看到,随着稀疏度的增加(意味着我们使用越来越多的原子来表示原始数据),字典倾向于学习更多的局部特征,但是随着稀疏度的降低,网络被迫只使用更少的原子来表示给定的数据,因此创建的特征变得更加全局。(比如数字的笔画。)但是强制太多的稀疏性会导致数据的过度拟合,并且没有学习到有用的特征。

以上是从 CIFAR 10 数据集学习到的滤波器,我们可以观察到学习到的滤波器类似于本地化的 Gabor 滤波器。

无监督特征学习结果

为了比较无监督学习任务的结果,作者从不同的方法中提取了学习过的过滤器,并使用简单的逻辑分类器来执行分类。我们可以观察到 k 稀疏自动编码器能够实现最低的错误率。

浅层监督学习结果/深层监督学习结果

此外,作者在较浅的网络的初始层上使用通过无监督学习获得的网络权重,同时使用反向传播来调整添加的层以及微调先前的层。(这个过程有时被称为区别性微调。).从上表中我们可以看到 k 稀疏自动编码器取得了有竞争力的结果。

结论

本文介绍了一种新的稀疏编码方法,称为 k 稀疏自动编码器。该方法的新颖性主要在于如何在重建原始数据时仅使用选定的少数神经元。

最后的话

本文提出了一种非常简单的方法来实现给定数据的稀疏表示。

如果发现任何错误,请发电子邮件到 jae.duk.seo@gmail.com 给我,如果你希望看到我所有写作的列表,请在这里查看我的网站

同时,在我的 twitter 这里关注我,并访问我的网站,或我的 Youtube 频道了解更多内容。我也实现了广残网,请点击这里查看博文 pos t。

参考

  1. (2018).Arxiv.org。检索于 2018 年 8 月 12 日,来自arxiv.org/pdf/1312.56…
  2. MNIST 手写数字数据库,Yann LeCun,Corinna Cortes 和 Chris Burges。(2018).Yann.lecun.com。检索于 2018 年 8 月 12 日,来自yann.lecun.com/exdb/mnist/
  3. CBLL,研究项目,计算和生物学习实验室,库兰特研究所,NYU。(2018).Cs.nyu.edu。检索于 2018 年 8 月 12 日,来自cs.nyu.edu/~yann/resea…
  4. CIFAR-10 和 CIFAR-100 数据集。(2018).Cs.toronto.edu。检索于 2018 年 8 月 12 日,来自www.cs.toronto.edu/~kriz/cifar…

[论文摘要]使用 DAGSVM 和三元组丢失改进深度网络的多类分类

原文:towardsdatascience.com/paper-summa…

GIF from this website

有趣的多类分类方法。

请注意,这篇帖子是为了我未来的自己复习这篇论文上的材料,而不是从头再看一遍。

Paper from This website

亮点

本文提出了一种提高多类分类精度的新方法。主要通过替换 softmax 函数并具有三重损耗。

摘要

在大多数多类分类任务中,许多研究者使用 softmax 函数作为一个整体来处理分类任务。但是在这篇论文中,作者提出了一种新的方法来做同样的事情。主要是将 softmax 函数替换为以树或 DAG(有向无环图)结构组织的一组二进制 SVM 分类器。因此,每个 SVM 侧重于对两个类别进行分类。

简介

许多论文使用 softmax(多项逻辑回归)作为最终分类层来进行多类分类。多类分类是机器学习中最重要的任务之一。这里,作者提出了一种方法,其中网络的早期层不变,仅最外层发生变化。(所以 N 个多类分类问题变成 N(N-1)/2 个二元问题。主要是将 softmax 替换成 DAG 结构中的二元分类器。(这通过学习更多的成对区分特征来提高准确度。)主要思想可以在上图中看到。

相关工作

有不同方法来执行多类分类,例如,一对一对所有、一对一对最大获胜、纠错输出编码、基于输出编码的多类提升和 DAGSVM。这里,作者关注 DAG 方法,因为它允许模型学习更多的区别特征,并且它具有较低的时间复杂度。与其他方法的一个不同之处在于,作者将问题分解为一个更简单的二元分类任务。

方法论

作者方法背后的主要思想是,每个分类器都成为区分特征的专家,因此与使用 softmax 输出层作为最终分类层相比,模型的整体准确性要高得多。这种方法的另一个优点是,每个单独的分类器可以被微调,以进一步提高模型的准确性。(我觉得这挺酷的)。

DAG

如上所述,DAG 是以分层结构组织的节点的排列,当每个节点代表一个 SVM 时,它被称为 DAGSVM。对于 N 类问题,DAG 有 N(N-1)/2 个节点。本文的作者说他们不会改变上图中的体系结构,但是他们知道可以使用不同类型的体系结构来提高模型的性能。

学习更多的判别特征

使用三重损失(如上所示)是在最近邻分类法的背景下产生的。并且当与不同类别进行比较时,该损失函数利用网络将相似类别的图像分组在一起。

实验结果

该论文的作者使用了三种不同的模型来观察所提出的方法的性能。a)具有修改的 VGG 型网络,B)具有修改的 NIN,C)具有修改的 ResNet。此外,mini batch 设置为 128,并使用 SGD。每个网络的训练曲线如下所示。

在所有的基础网络被训练(使用 Softmax 分类)之后,最后一层(softmax)通过 DAGSVM 被替换,并且再次被训练以提高性能。

上面是一个分类器的准确性直方图,我们可以观察到,微调每个分类器是非常可能的。从而提高整个模型的性能。

对于 STL10 数据集,作者使用了不同的网络,称为小网络 1、小网络 2 和一个大网络。

S1 由具有 64 和 128 个滤波器的两个卷积层组成,随后是两个全连接层,每个层具有 256 和 10 个神经元。

S2 由四个卷积层组成,分别具有 64、128、256 和 512 个滤波器,其后是两个全连接层,每个层具有 512 和 10 个神经元。

L1 与用于 CIFAR 10 数据集的网络 A 相同。而训练曲线可以看到下图。

同样,当使用具有三重损失的 DAGSVM 进行微调时,我们可以观察到网络的性能能够提高。

讨论

所执行的实验的一个有趣的事实是,对于较大的网络,与较小的网络相比,DAGSVM 能够以较大的裕度提高模型的性能。这可能是因为在更大的网络中有更多的权重可以被微调。此外,如下所示,我们可以观察到,随着二元分类器的平均精度增加,模型的整体精度也增加。

结论和未来工作

总之,本文作者提出了一种将多类分类问题转化为更小的二元分类问题的方法。这种方法不仅通过学习更多的区别特征来提高性能,而且能够对网络进行微调。这种方法的一些限制是,它对于大量的类在计算上是不可行的,并且它不是端到端的训练系统。

遗言

我感兴趣的一个领域是不同类型的损失函数。

参考

  1. Agarwal、v . Balasubramanian 和 c . Jawahar(2018 年)。使用 DAGSVM 和三元组丢失通过深度网络改进多类分类。模式识别字母。doi:10.1016/j . patrec . 2018 . 06 . 034