• 周五. 12 月 13th, 2024

cobots 在工业环境中的采用将显著增加
  原文:TowardsDataScience Blog

  协议:CC BY-NC-SA 4.0

  原文:https://towardsdatascience.com/a-random-session-at-the-roulette-table-with-pandas-and-altair-9a147471dac3?source=collection_archive———13———————–

  最近我去了一家赌场玩,我很好奇,想知道我赢的几率有多大,在给定预算、标准下注金额和下注策略的情况下,我会在赌场呆多久。

  所以我决定快速编写一些代码来可视化轮盘赌桌上的随机会话。我在这里whatsapp官方的网站下载的网站怎么找编写代码的方式与我在轮盘赌桌上进行游戏的方式完全一样:遵循一个下注策略,在固定的旋转次数下相同的赌注(或者直到我的预算资金用完)。

  首先,我们从导入所有必需的库开始:

  这里我们导入了随机包,我们需要它来模拟轮盘赌桌上的随机旋转,pandas 包将我们的结果输出到可读的数据帧中,Altair 包用于快速可视化我们的结果。

  接下来,我们初始化我们的全局变量:我为这个环节预算的资金数量,每次旋转的赌注数量,以及轮盘赌的旋转次数。

  我为这些变量分别设置了 1000、200 和 24。在这里指定这些变量的好处是,你可以很容易地在这里修改它们(而不是在我们后面要写的函数中)。

  接下来,我们将轮盘游戏会话定义为一个函数。这个函数写得有些复杂,包括下注策略支出。不可否认,这不是编写轮盘游戏函数的最佳方式(更好的方式是遵循面向对象的编程,将不同的下注策略作为轮盘游戏类的独立对象),但是让我们将就一下。

  简单介绍一下我使用的下注策略:债券轮盘策略是一种涵盖轮盘上 37 个号码中的 25 个号码(胜率为 67.5%)的策略,如下所示:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Credit for image to https://www.casinoreviews.co.uk/roulette/strategy/.

  如果球落在数字 13 到 18 上,利润是下注金额的 50%,在这种情况下是 100 令吉。如果落在数字 19 到 36,利润是 40%或 80 令吉。如果落在数字 0 上,利润是 80%或 160 令吉。如果它落在数字 1 到 12 上,我们就输掉全部赌注,在这种情况下是 200 令吉。

  然而,像所有轮盘赌策略一样,债券轮盘赌策略无法克服众议院优势,在这种情况下是 2.70%。其他带有附加 00 数字的轮盘赌台的牌局优势甚至更高,为 5.26%。

  因此,预计随着房子的边缘,任何球员将最终耗尽他或她的资金后,一个漫长的游戏。但是大多数玩家不会在赌场停留太长时间。

  在这里,我们将进行一次测试,总共包括 24 次轮盘旋转(假设每次旋转花费 5 分钟,则相当于 2 小时)。

  从下面的代码输出来看,这个测试会话似乎并不好:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Not so lucky this time, lasted only 12 rolls before I ran out of funds!

  这在图表上看起来怎么样?这里我使用了 Altair,这是我最近发现并喜欢的 Python 可视化工具,因为它易于使用。我只需要几行代码就可以生成如下两个不同的图表:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  This chart shows that I got into a losing streak. Like a stock market crash.

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  It looks like I hit number 1 three times unlucky.

  总之,这是一个在轮盘赌桌上可视化随机游戏过程的快速尝试。我最初很想报道游戏的蒙特卡洛模拟,但我认为在牌桌上想象一个单独的随机游戏会更有趣!

  原文:https://towardsdatascience.com/a-recipe-for-using-open-source-machine-learning-models-within-your-company-1aed833a59b5?source=collection_archive———20———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Photo by Luca Bravo on Unsplash

  机器学习继续为越来越多的任务产生最先进的(SOTA)结果,越来越多的公司正在寻找 ML 来解决他们的问题。随着机器学习研究令人难以置信的快速发展,许多这些 SOTA 模型来自开源这些模型的学术和研究机构。通常,使用这些开源模型中的一个来引导您公司内部的机器学习工作,会比从头构建一个模型更有效。

  然而,这些模型通常是由研究人员发布的,他们的重点不一定是使他们的模型易于使用和修改(尽管有许多例外)。将这些开源模型用于您的任务可能会非常困难。

  在这篇文章中,我的目标是提供一个方法,你可以按照这个方法来评估和使用开源 ML 模型来解决你自己的任务。这些是我在自己的工作中反复使用的步骤(在撰写本文时,我已经建立了超过 15 个开源模型的 anaconda 环境)。由于我的工作主要是将深度学习用于视觉和 NLP,因此我在这里的重点是专门使用基于神经网络的模型。

  无论你是试图使用机器学习来解决公司内部的实际问题,还是在家里试验一些有趣的 SOTA 结果,我希望在这篇文章之后,你会有一条通往的道路,采用开源模型,修改并使用它来解决你自己的数据集的任务。

  第一步是弄清楚你的特定任务在研究文献中被称为什么,这样你就可以成功地搜索它。这最初可能会非常令人沮丧。例如,寻找图片中一只狗的所有实例将是一个“对象检测”任务。但是如果你想知道图片中哪些像素对应于狗,这就叫做“图像分割”

  有几种方法可以尝试解决这个问题。首先,如果你碰巧认识任何 ML 研究者或从业者,一定要从那里开始。另一个选择是在 r/machinelearning 或 r/learnmachinelearning 中询问。如果这些都不成功,下一步就是尽你所能去谷歌一下。当你看到研究论文时,你会经常在文献中看到与任务相关的名字。

  一旦您知道要搜索什么,下一步就是找到那些最适合您的任务的开源模型。这里有一些有用的资源:

  papers with code**😗*按任务组织的论文和相关代码的存储库。这是一个非常好的起点,尤其是如果这是一个众所周知的任务。

  arxiv-sanity**😗*很多开源模型都和研究论文有关联。机器学习大部分论文都是(幸好!)公开发表在 arxiv 上。搜索 arxiv 寻找解决您的任务的最新论文是另一个好的起点。并非所有发表的论文都有相关的代码。如果找到喜欢的论文,可以尝试搜索“<论文名称> github”看看代码是否已经发布。

  Kaggle**😗*如果恰好有一个任务与你相似的 ka ggle 比赛,这可能是一个获得高质量、最先进模型的好方法。要特别关注以往比赛的获胜者博客,这些博客通常有很好的解释和代码。用来赢得比赛的小技巧通常对你的任务也很有价值。

  **数据集基准:**如果有一个基准数据集与您正在处理的任务相似,则该基准的排行榜是一种快速查找具有明显 SOTA 结果的论文的方法。

  Google: 像图像分割这样的标准/常见任务,搜索“图像分割 github”、“图像分割 pytorch”或者“图像分割 tensorflow”会给你很多结果。

  这可能是令人生畏的,因为学术论文可能很难获得,即使是对有经验的软件工程师来说。但是如果你把注意力放在摘要、介绍、相关工作、结果上,把很多深层的细节/数学推迟到以后的阅读,你会发现你可以从论文中得到很多,对问题有更深的理解。

  特别注意他们使用的数据集以及这些数据集或其模型的约束。通常,您会发现约束可能对您不适用,但它们是模型设计的基础。例如,imagenet 的分类模型期望在一幅图像中有且仅有一个显著对象。如果您的图像没有、有一个或多个要识别的对象,这些模型可能不直接适用。这不是你在投入时间建立模型后想知道的事情。

  还有,跟着一些参考文献走,尤其是你在多篇论文里看到的!你会经常发现,至少有一篇参考文献非常清晰地描述了这个问题,极大地加深了你的理解。引用的论文也可能变得更有用,并且可能有更好的代码与之相关联,所以在这里做一点挖掘是值得的。

  一旦你找到了一篇有开源代码的论文,确保它是可用的。具体来说:

  **检查许可:**虽然许多代码是在自由开源许可下发布的(麻省理工学院、BSD、Apache 等),但有些不是。你可能会发现这个模型只有非商业使用许可,或者根本没有许可。根据您的使用案例和公司,代码可能对您有用,也可能对您无用。

  **检查框架:**如果你正在使用一个特定的框架(比如 Tensorflow,Pytorch),检查模型内置的框架。大多数情况下,您会被自己得到的东西所困扰,但是有时候,在您喜欢的框架中会有模型的重新实现。快速谷歌一下这个(例如“<论文名> pytorch”)可以帮你省去很多麻烦。

  **检查语言:**类似地,如果模型在 Lua 中,而你不是 Lua 开发人员,这真的很痛苦。看看在你选择的语言中是否有一个重新实现(通常是 Python,因为在深度学习中 Python 应该是你的一部分),如果没有,你最好找另一个模型。

  检查编码风格:研究人员并不都是软件工程师,所以你不能像其他开源项目那样有很高的门槛,但是如果代码完全是一团糟,你可能需要寻找另一种模式。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Results from NVIDIA’s StyleGAN trained on a custom furniture dataset

  一旦你找到了一个你认为合适的模型,试着让它运行起来。这里的目标是按原样运行模型的训练和推理循环,而不是让它在您的特定数据集上运行或进行任何重大修改。您所要做的就是确保您有正确的依赖项,并且模型像宣传的那样训练和运行。为此目的:

  为模型创建一个conda**环境:**你可能在尝试多个模型,所以为每个模型创建一个 conda 环境(假设是 Python)(NVIDIA-docker 在这里是另一个选项,但个人觉得大材小用)。

  我经常这样设置我的环境:

  判断回购使用的 python 版本的一个快速方法是查看语句。如果没有父母,那就是 python 2.7,否则 3.6 应该可以。

  **安装库:**我强烈建议从安装与原始代码用来启动的框架完全相同的版本开始。如果模型说它能与一起工作,不要认为它能与 pytorch 1.0 一起工作。在这个阶段,你不想修复这些类型的错误,所以从开始。您可以用命令安装一个特定版本的框架(例如 pytorch)。许多代码不会有一个文件,所以可能需要一些调查和迭代来找出你需要安装的所有库。

  **获取原始数据集并运行脚本:**此时,您应该能够下载原始数据集并运行测试和训练脚本。您可能需要修改一些路径,并使用自述文件和源代码来计算出正确的参数。如果有一个预先训练好的模型,从测试脚本开始,看看你是否得到了与论文相似的结果。

  一旦您运行了测试脚本,尝试启动培训脚本。您可能需要处理各种异常,并做一些小的修改才能让它正常工作。训练脚本的最终目标是看到损失随着每个时期减少。

  如果是直白的(即。只需要更改一些命令行标志),此时您可以尝试在自己的数据集上运行训练脚本。否则,我们将在步骤 7 中执行此操作。

  在这一点上,您已经确认了模型是有效的,并且您已经设置了能够使用它的合适的环境。现在你可以开始真正地玩它了。在这一点上,我建议创建一个 Jupyter 笔记本,在测试脚本中复制粘贴,然后修改,直到您可以使用它的一个数据项。例如,如果您正在使用一个在图像中找到狗的对象检测模型,您需要一个笔记本,您可以向它传递一张图片并让它输出狗的边界框。

  这里的目标是了解输入和输出、它们必须如何格式化以及模型如何准确工作,而不必处理额外的复杂训练或将您自己的数据转换成正确的格式。我建议在 Jupyter 笔记本上这样做,因为我发现能够看到每一步的输出对弄清楚它非常有帮助。

  现在您已经对模型和数据有了一些了解,是时候尝试创建一个培训笔记本了。与步骤 6 类似,我首先在训练脚本中复制和粘贴,将其分成多个单元,然后修改它以适合我的需要。

  如果您已经对该模型感到满意,您可能希望直接修改培训笔记本,使其适用于您的数据集。这可能涉及编写与模型中现有数据加载器输出相同格式的数据加载器(或者简单地修改这些数据加载器)。如果您还不习惯这样做,可以从让培训脚本在笔记本中按原样工作开始,并删除您认为无用的代码。然后努力让它与你的数据集一起工作。

  请记住,这里的目标不是修改模型,即使它还没有完全解决您想要的确切任务。这只是为了让模型与您的数据集一起工作。

  至此,您应该有一个可以训练模型(包括输出适当的度量/可视化)的笔记本,以及一个可以测试您创建的新模型的笔记本。现在是开始深入研究并对模型进行修改(添加要素、附加输出、变化等)的好时机,以使其适用于您的任务和/或数据集。希望有一个现有的艺术模型的起点能节省你很多时间,并提供比你从零开始更好的结果。

  很明显,在这一步中发生了很多事情,您将使用所有现有的模型构建策略。然而,下面是一些在现有模型基础上构建时可能特别有用的提示。

  **在修改模型之前修改数据集:**将数据转换成模型期望的格式通常比修改模型更容易。隔离问题更容易,引入的错误也更少。令人惊讶的是,有时仅仅通过改变数据就可以将模型推进多远。

  **尽可能多地重用预训练的模型:**如果你的模型变化不是很大,尝试重用预训练的模型参数。你可能会更快地得到结果和迁移学习的好处。即使您扩展了模型,您也可以经常将预训练的参数加载到模型的其余部分(例如,在 pytorch 中加载模型时使用)。

  **进行增量更改并定期检查绩效:**使用现有模型的一个好处是,您对开始时的绩效有所了解。通过进行渐进式的改变,并在每次改变后检查性能,你会立即发现你什么时候犯了一个错误或者走上了一条错误的道路。

  寻求帮助:如果你完全被卡住了,试着联系作者,寻求一些指点。我发现他们经常愿意帮助你,但是记住他们是在帮你的忙,请相应地采取行动。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Automatically texturing a 3D model using neural renderer

  根据许可证和您分发模型的方式,您可能需要向原始代码的开发者提供归属。就算不要求,反正做了也挺好的。

  如果你能的话,请贡献你的力量!如果您在自己的开发过程中遇到了错误并修复了它们,提交一个 pull 请求。我相信写得好的错误报告是受欢迎的。最后,如果没有别的事,给作者发一封简短的感谢信,感谢他们的辛勤工作,总是令人感激的。

  原文:https://towardsdatascience.com/a-rescue-mission-3-ways-deep-learning-could-combat-human-trafficking-85700eb62be5?source=collection_archive———39———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 1: A 2-Dimensional t-SNE feature model illustrating useful and non-trivial relationships in the Trafficking-10k dataset.

  现在是晚上 6 点——阳光透过你后座的窗户,散发出微妙而熟悉的橙色光芒。这是七月的仲夏,你和你的家人开车回到芝加哥紧张的低收入居民区。今天,你的父亲开着车,慢慢地进入有裂缝的车道,直到他到达一个轻松的停车点。当你打开车门时,你被完美的、超凡的、空灵的夏日微风所淹没。最终,灿烂的阳光、23 度的北风和诱人的蓝天最终让你问你的妈妈****我们可以去公园吗?在这个没有任何气氛压力的日子里,你的母亲提供了一个愉快而响亮的“是!”。兴奋地,你和你的妈妈手牵着手,带着纯洁的幸福和天真,像仪式一样漫步到当地的社区公园。操场的平台是用几十年前的混凝土混合物铺成的,它的中心是一个由旧的摇摇欲坠的秋千、单杠和摇摇晃晃的滑梯组成的“临时”迷宫。

  今天,当地的公园看起来很反常,慢慢地陷入了一个深渊,没有了通常的动物般的孩子们荡秋千、追逐打闹和相互追逐。然而,12 岁的“你”独自拥抱这种沉浸式的探索性游戏和活动的时刻,而你的母亲坐在离游戏区 12 码远的木凳上。看起来,你的母亲接到了一个令人震惊的电话——是她的一个朋友打来的——所以她站了起来,走到长椅后面大约 4 码远的地方,低头看着地面,全神贯注地进行着私人谈话。你和你的母亲已经参观这个公园成千上万次了,所以你对这个地方的导航和直觉应该成为你的第二天性。**

  最终,在你从秋千到单杠的过渡过程中,你看到一个中年男子若无其事地向你走来,他穿着一件棕色毛衣和一条破旧的蓝色牛仔裤。几乎同时,他冲向你,抓住你的手,把你扛在肩上,而你则流着惊慌的眼泪向你妈妈尖叫。你妈妈跑步但是不能及时赶到。他把你扔进后座,当汽车驶向你未知目的地的边缘时,他立即锁上车门。最终,“失踪儿童”海报的爆炸在商店、街道和市中心街区的当地公告栏中变得猖獗。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 2: A conventional galleried array of missing children profiles in a Walmart entrance encouraging inflows and outflows of customers to report significant information.

  这个家庭在执法文件、地方-州级犯罪网络和过时的青少年绑架数据库方面花费了数千whatsapp的官方下载网址在哪里和心血,留下了松散连接的关键数据点。商店里的海报和“走失儿童”公告故意等待“合适的人”带着 1。)丰富的信息还是 2。)对关键人口贩运调查的坚定承诺。同时,没有人注意海报上松散联系的信息要点,因为旁观者很少与事件周围的环境有任何相对联系/包含。然而,深度学习(DL)可以在几天内解决一年复杂的人口贩运犯罪调查,方法是将数据置于背景中,对其重要性进行排序,并将最重要的关键点联系起来。最终,DL 有能力改变秘密和非法犯罪企业的边界,人口贩运就是一个显著的例子。

  自然语言处理(NLP)通常利用与递归神经网络(RNN)主干分层的长短期记忆(LSTM)模型来将句子的意图、内在含义和信息置于上下文中。LSTM 体系结构通过建立单词的临时记忆状态、对这些单词进行矢量化、并输出句子中意图/背景含义的推断概率来工作。典型地,针对 NLP 的 LSTM 方法已经被实现用于短文本的情感分类。例如,之前的 Kaggle 竞赛要求用户检测和分类多类有毒评论(例如 Youtube 评论),以便对短句进行自动严重性排名。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 3: A Deep Neural Network (DNN)-based NLP model that uses embeddings for binary classification across a given input sentence.

  王等人在“ 一种基于词嵌入的短文本情感分类方法 ”一文中利用上下文词嵌入来推断社交媒体帖子中的情感。最具活力的用户文本交流平台包括社交媒体平台、短信以及其他相关的快捷交流方式。换句话说,这些平台包含独特的俚语和现代缩写,只为特定的文化/人群所理解。此外,对于深度神经网络(DNNs),短的 50-100 个字符的信息交换不能为有效的分类提供足够丰富的特征。为了推断和概括短上下文行,研究人员可以利用单词嵌入和 LSTM 模型的组合。单词嵌入充当文本的学习表征,其中具有相似意思的单词/短语具有相似表征**。单词嵌入模型对松散紧密相关的单词进行矢量化,以用最少的上下文对句子的意图进行分类和概括。**

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 4: Word embeddings create sequence-lengthed representations of words in a sentence to eventually create output scores in an NLP model.

  由于组合的 LSTM-单词嵌入模型在稀缺特征上概括上下文的能力,它在由混杂或少量字符组成的文本情况下提供了潜在的应用。童等人在论文“ 用深度多模态模型 打击人口贩卖”中,通过执行词嵌入对人口贩卖押运广告的风险进行向量化和推断。他们创建了新颖的 Trafficking 数据集,为这个监督训练任务浮现了超过 10,000 个带注释的广告。更重要的是,研究小组基本上将这些贩运文本/交流的单词嵌入整合到 LSTM 中,以产生新的上下文感知嵌入。最后,本文使用了一个直观的两步过程,首先从原始文本中提取低级嵌入特征,并通过语言 LSTM 网络将其翻译成上下文感知嵌入。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 5: A language network processes tokenized input sentences through four LSTM’s into a Convolutional Decision Network to eventually output classification results for the traffick dataset.

  此外,研究人员创建了一个 2D t-SNE 模型表示的贩运数据集,以证实其在 traffic-10k 中的精细特征分布。t-SNE(t-分布式随机邻居嵌入)模型将三维数据点压缩到 2D 模型中,其中点的聚类表示相似特征的区域。研究人员在下图中说明了他们的基线模型的不同输入特征的离散表示。聚类数据的划分表明,研究人员的新贩运数据集并非微不足道,而是具有可理解和结构良好的特征:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 6: A 2-Dimensional t-SNE feature model illustrating useful and non-trivial relationships in the Trafficking-10k dataset.

  洗钱计划涉及犯罪分子通过金融系统循环非法资金,通常用于大规模金融转移,如跨境贩毒集团,在这种情况下,用于人口贩运。估计有 700,000 人被输出到人口贩运行业,这一行业奴役了 4,000 多万人。在人口贩运领域,人口“出口”可互换地被视为流动利润,因为它们在性贩运和与其他人贩子的交易中具有货币价值。虽然命题是 非常 初步的,但深度学习最有趣的集成涉及到使用图形 CNN 来分析密集/动态的法医金融数据,在韦伯等人的论文“ 可扩展图形学习反洗钱:第一次看 ”中,反洗钱(AML)使用几种广泛和新兴的技术来理解全球经济中可疑货币的流通。本文扩展了图分析法,以确定实体之间的现金流关系(即网络结构)。在图形分析中,金融系统中的单个账户被表示为顶点,单个交易被表示为边。边和顶点的大小与账户和交易的潜在规模成比例。下图说明了图形分析的动态。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 7: An illustration of vertice and edge graph analyses, where nodes (the vertices-circles) represent account holders and the edges (connecting lines) represent transactions.

  对图分析的传统攻击包括通过基于人类的推断来手动绘制顶点和节点之间的关系/边。换句话说,人眼经常负责捕捉个人账户和资产之间的可疑金融关系。然而,在一个大规模的行业中,洗钱每分钟可能涉及数百万个账户处理,这使得一个人/一组人很难定位这些模式。然而,通过采用深度学习和嵌入来矢量化这些账户/财务表示,深度学习模型可以在几秒钟内自动创建和处理这些图表分析。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 8: An example model for AML employed in a business for real-time alerts based on data analytics.

  除了在非法金融关系中建立自动图表分析,Weber 等人还强调了 NLP 在 AML 中的实施。最终,NLP 可以实时处理非结构化的异构数据,以产生可疑性得分和可视化,从而加强人类的法医分析。NLP 研究人员可以利用大量更新的数据流,如新闻文章、财务报告、社交媒体和公共/私人欺诈数据库。国际-国内银行可以与执法机构一起实施该系统,以便在长期内做出明智的反洗钱决策。然而,在实际规模上,基于图的学习通过实时事务关系理解呈现出最有希望的结果。下表展示了 Weber 等人的“1M 节点和 9M 边的训练时间和结果”。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 9: Graph Learning on AMLSim Data (1M nodes, 9M edges)

  分散的人口贩卖中心包括旅馆和汽车旅馆。这些都是性交易和劳动力交易的重要场所,可以迅速展开,不留痕迹。然而,本文中最重要的平台是为广告网站保驾护航。护送网站不仅包括被出口或交换的受害者的注释描述,还附上受害者的数码照片,通常以酒店壁纸/家具为背景。在 Stylianou 等人的论文“Hotels-50K:A Global Hotel Recognition Dataset”中,通过实现用于图像归属和标记的 CNN 来识别和操纵酒店图像背景在人口贩运调查中的价值。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 10: Example of correspondence between query image background and the ground truth prediction in the hotel dataset.

  该研究团队从 50,000 多家酒店收集了超过 100 万张带注释的酒店房间图像。该数据集由从美国东西部、西欧以及世界各地受欢迎的海岸线延伸的多样化酒店位置组成。Stylianou 等人收集的地点是从旅游网站和酒店房间简介网站中提取的。下图显示了他们集体酒店的地理分布-50K 数据集。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 11: Global geographic distribution of the hotel dataset- includes the U.S., Western Europe, and notable coastlines.

  在计算机视觉领域,由于特征提取的性质,场景识别一直是一个主要障碍。当主要特征包括人脸、身体和四肢时,让 CNN 架构提取背景场景对于传统的计算机视觉模型来说是一项困难的任务。该小组使用了在 ImageNet 上预先训练的 Resnet-50 分类网络。Resnet-50 使用残差网络来简化训练,而不管在大型数据分区上训练的极深层。Resnet 架构如下图所示:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure 12: A massive Resnet network which uses a series of Residual layers and convolutions to create easier training.

  最终,多样化的酒店数据集和基于经典 ImageNet 权重/数据集的深度驱动 Resnet-50 架构相结合,可以让执法部门快速识别整个州/国家的潜在酒店位置和感兴趣区域。此外,由于数据集通过整个北美的图像得到了加强,因此任何由人口贩运计划引起的全国性移动都可以被考虑在内。

  人口贩卖的全球剧场是一个超复杂的游戏,包括多层动态的关键人物。更重要的是,坦率地说,人口贩运是一种战略性的经济交易,涉及具有货币价值的人体出口。由于这些转账的金融价值,它已经深深扎根于非法洗钱经济和秘密的在线护送平台。然而,深度学习架构的实施可以将调查时间缩短十倍以上,为执法部门和受害者家属提供更有效的数据保证。通过在文本挖掘、图形分析和图像存储库中大量使用开源数据,模型可以被训练和私人部署,供相关官员及时使用。很明显,随着人口贩卖在 21 世纪变得更加先进,从长远来看,人工智能将会超越它。

  **Stylianou,A. (2019)。Hotels-50K:全球酒店识别数据集。 Arxiv,1–8。检索于 2019 年 7 月 8 日,来自https://arxiv.org/pdf/1901.11397.pdf.

  童,E. (2017)。利用深度多模态模型打击人口贩运。1–10.检索于 2019 年 7 月 8 日,来自https://arxiv.org/pdf/1705.02735.pdf.

  **王,法学博士。基于词嵌入的短文本情感分类的 LSTM 方法。 2018 计算语言学与语音处理会议,214–223。检索于 2019 年 7 月 8 日,来自https://www.aclweb.org/anthology/O18-1021.

  **m .韦伯(2018)。反洗钱的可扩展图学习:初步研究。 Arxiv,1–7。检索于 2019 年 7 月 8 日,来自https://arxiv.org/pdf/1812.00076.pdf.

  原文:https://towardsdatascience.com/a-retrospective-and-predictive-analysis-on-2018-u-s-midterms-with-recurrent-neural-networks-858141838921?source=collection_archive———31———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  尽管几年前曾有怀疑者和批评者,但我猜想过去几个月里,每个人都感受到了社交媒体在公共辩论舞台上的影响和作用,涵盖了社会问题、政策制定、政治和政治选举。

  然而,这往往只能通过新闻媒体来体验,这些媒体描述了经济和政治游说之间极具争议的因果关系或相关性,旨在产生特定的政治影响。有时这是基于客观分析,有时只是基于目击者,甚至只是感知结果…从而导致仍然有争议的权利要求的可论证性。

  另一方面,**技术分析在数据科学、**计算机科学和网络科学社区中不断涌现,它们对此进行了大规模的研究。相反,它们通常非常笼统,不能提供正在发生的事情的实际见解。

  相反,我想在这里报告的是在政治背景下的一个简单的数据科学练习,但是有一个非常集中的目的,旨在回应不明显的问题。

  我们实施了一项分析(意味着一种方法和一种系统),旨在在 2018 年中期选举期间,在竞争最激烈的 68 个众议院选区中,衡量当地对美国两大政党的支持。

  剧透:整个分析实现和结果都有。有关材料和链接,请参见下一页。

  该分析试图反映**【普通投票】民意调查,即对特定地区选民的调查,旨在通过询问参与者他们投票给“普通”民主党或共和党候选人的可能性来衡量全国性政党在当地的受欢迎程度。我们收集了包含 68 个竞争最激烈的地区的全国性政党和政治家的推文。我们所说的最具竞争力指的是他们被库克政治报告评为:投出、 50%-50% 或精益**。

  这意味着我们正在解决一个极具挑战性的分析和预测问题,而忽略了更简单的情况(每个人都擅长预测显而易见的事情!).

  除了这种通用的投票模型,我们还试图捕捉到**“On Ballot”**模型,旨在获得当地候选人的支持,即实际参与国会竞选的候选人。然而,这一模式具有明显的偏见,不能像普通投票模式那样在选举前得到验证。因此,我们只报告第一个分析。

  在这种分析中,查询和提取推文的方法有时会被忽略。但是,查询过程本身可能会引入偏差,这在过程的后期阶段很难检测到,因此需要仔细设计。我们的解决方案采用 Twitter 搜索 API 来查询提到国家领导人或政党的推文,这些推文是从有限的地理区域(即每个特定的国会选区)发布的。例如,以下查询提取了关于共和党的推文:

  特朗普或众议员或共和党人或共和党人或麦克·彭斯或保罗·瑞安或#共和党人或#众议员或 @realDonaldTrump 或 @SpeakerRyan 或 @senatemajldr 或 @VP 或 GOP 或 @POTUS

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  为了将搜索限制在每个国会选区,我们在 API 的搜索查询中使用了 geocode 字段,它基于中心和半径的坐标来查询一个圆形区域。由于国会选区的形状不规则,每个选区都需要多个查询,因此我们构建了一组定制的气泡来近似选区的形状(参见图中的 PA-10 区及其近似值)。其他人已经提出了其他方法,这些方法没有将搜索限制在地理标记的推文中,但对于我们的目的来说,这些方法不够精确。

  为了分析推文,我们采用了递归神经网络,即在推文上训练的 RNN-LSTM 二元分类器。这种架构在包括情感分析在内的许多 NLP 任务中被证明是准确的,因为它能够捕捉单词序列上的依赖性。为了建立训练和测试数据,我们收集了具有明确政治倾向的用户的推文,包括候选人、政治活动家以及不太了解的用户,他们精通政治术语。

  在选举日前的 6 个月里,所选账户在产生了大约 280,000 条推文,这些推文根据作者的政治派别进行标注。

  在标记、预处理和标记化之后,我们保留了 15000 个最常用的单词用于进一步分析。所处理的数据训练 128 宽的 Word2Vec 嵌入层来学习令牌的抽象表示。结果被馈送到由两层组成的 RNN,其在超参数优化之后的维度分别是 256 和 64。许多不同的技术被用来调整网络,包括丢弃或者使用第二层来帮助抽象

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Map of the political alignment of the critical districts in 2018 mid-term elections based on geolocated Twitter data.

  我们首先在选举前验证了我们的方法,通过考虑验证一组 10 个地区,对于这些地区,传统的民意测验给出了有把握的预测(一个政党领先 10%或更多)whatsapp的中文版下载的网站怎么找。在这个集合中,总是预测正确的结果,即,我们的方法获得 100%的成功。

  总体而言,我们的推文分类器在随机验证集上达到了 83%的准确率。培训之后,在卡瓦诺听证会的那一周,收集了一套特别具有挑战性的测试;尽管内容奇特,但该模型无论如何都能正确分类超过 72%的推文。通过设定 75%的置信阈值,准确率提高到了 80%左右。

  最后,在地区预测层面,我们的解决方案对 68 个最具竞争力的地区中的 60%以上进行了正确分类,识别出 10%的其他地区中非常接近的竞选。

  本文基于 2018 年 12 月在华盛顿州西雅图举行的 IEEE 大数据会议上发表的一篇简短的科学论文,以及 Antonio Lopardo 之前的一篇媒体文章。进一步的细节可以在文件中找到。

  如果你想引用这部作品,你可以这样做:

  A.Lopardo 和 M. Brambilla,“用递归神经网络分析和预测 Twitter 上的美国中期选举”, 2018 年 IEEE 大数据国际会议(大数据),美国华盛顿州西雅图,2018 年,第 5389–5391 页。doi:10.1109/bigdata . 2018 . 8622441 . URL:【http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=】T2&ar number = 8622441&is number = 8621858

  在线运行的原型、项目的完整描述、结果和源代码可在 http://www.twitterpoliticalsentiment.com/USA/获得。

  请注意,该方法是一个通用的政治目的的独立于语言的分析框架,可以应用于任何国家或地方的背景。

  原文:https://towardsdatascience.com/a-review-of-bert-based-models-4ffdc0f15d58?source=collection_archive———7———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Image source for the BERT & Ernie figures

  注意——通过对输入进行加权平均来聚焦于输入的显著部分的简单想法,已被证明是一大类神经网络模型中的关键因素。特别地,多头注意力已经被证明是诸如基于 BERT 和 Transformer 的机器翻译模型之类的最新自然语言处理模型成功的原因。多头注意力——实质上是“多个注意力头 参加 到并行输入的不同部分”,使得复杂功能的表达超越了仅仅一个注意力头的加权平均。

  自从 word2vec 产生了如此多的分支模型以来,还没有一个 NLP 模型产生过如此多的分支模型——要么以其名称作为前缀/后缀嵌入其中 ( doc2vec,node2vec,lda2vec 等等。)或在其核心思想上展开 ( 跳过思想向量 s、fast text、Adagram等。)

  BERT 模型值得称赞的是,它的许多分支结合了它的名字和它的核心架构思想。举个例子,

  预whatsapp官方的网站下载的网站训练模型。在领域/应用特定语料库上预处理的模型— BioBERT 【生物医学文本】SciBERT(科学出版物)clinical Bert【1】和clinical Bert【2】【临床笔记】。在特定领域语料库上的训练已经表明,当在下游 NLP 任务如 NER 等上对它们进行微调时,会产生更好的性能。对于那些领域,对比微调 BERT (在图书语料库和维基百科上训练过)。在来自 104 种语言的单语语料库( M-BERT )上预训练的模型,用于零触发跨语言模型转移*(一种语言中的任务特定注释用于微调模型以在另一种语言中评估)*模型在一个大型语料库上进行预训练,该语料库在输入中结合了知识图(厄尼)。几乎在同一时间*(2019 年 3 月至 4 月)*发布了另一款车型,令人惊讶的是,它还将知识融入了预训练中。 ERNIE (2)将知识融入预培训,但通过使用 KG 屏蔽实体和短语。使用三阶段训练方法的模型( TransBERT ) —无监督,然后是两个监督步骤,用于故事结尾预测任务通过将视频帧表示为特殊的描述符标记以及用于预训练的文本,联合学习视频和语言表示学习的模型( videoBERT )。这用于视频字幕。一种结合了图形神经网络和 BERT ( G-BERT )功能的模型,用于医疗/诊断代码表示和推荐。使用 GNNs 对具有分级表示的医疗代码进行编码,并在用 EHR 数据进行预训练期间将其作为输入。然后对其进行微调,以提供医疗建议。微调型号。使用预先训练的模型针对特定任务进行微调的模型— DocBERT (文档分类)、 PatentBERT (专利分类)。除了这些大部分 NLP 任务 POS,NER 等。如前所述,针对应用领域对预先训练好的基于 BERT 的模型进行微调,以获得更好的结果。

  上面的模型只是基于 BERT 的模型的一个子集,代表了广泛的类别。关于 BERT*(arXiv 至今至少 150 篇)的论文不少。其他几个类是对伯特(下面讨论)的探索/可视化,还有几个类研究伯特(也在下面讨论)的局限性。*还有其他工作,比如在认知神经科学研究中使用 BERT,这里没有涉及。

  一个自然产生的问题是

  是什么让 BERT 在如此广泛的任务中如此有效?

  最近的一组论文试图通过使用各种各样的探针来回答这个问题【1】【2】【3】【4】【5】(其中的几个在之前的一篇文章 中有所评述)。

  在我们查看探针之前,快速回顾一下 BERT 模型。

  经过训练的 BERT 模型将句子作为输入,并输出句子中每个单词的向量。它为一个单词输出的向量取决于它出现的上下文。例如,句子“他死于监狱细胞”中的单词细胞的向量与“血液细胞样本被污染”中的单词细胞的向量不同。此外,第一句中单词“细胞”的矢量可能更接近单词的矢量(余弦距离)和单词的矢量,而第二句中的单词细胞将更接近基因的矢量(如下图)。

  BERT 按如下方式构造单词的向量:

  BERT 具有固定大小的词汇,包括单词/子单词 ( 单词块嵌入)——任何输入单词都被映射到这些单词/子单词。例如,一些像“the”这样的常用词,甚至像“quantum”、“constantinople”这样的不常用词都出现在 BERT 词汇表*(base and large model vocab)*——所以这是这些词的直接映射。但是没有电动力学这样的词。所以它被分解成 4 个子词-electro # # dy # # Nami # # cs其中这些子词出现在 vocab *中。*此外,固定大小的 vocab 的一个实际优势是,将 BERT 模型加载到 GPU 中不受语料库中唯一单词数量的限制——任何语料库,无论其唯一 vocab 大小如何,都由大约 30k 的子单词 vocab 表示。在训练过程中,BERT 使用其注意力头*(本质上是一组学习矩阵,我们将在下面看到)和其他变换矩阵(所有这些也是在训练过程中学习的)来学习其固定大小 vocab 的矢量表示。然后,在评估/测试期间,通过首先将单词映射到固定的 vocab 单词/子单词,并将单词在输入句子中的位置编码到其表示中,使用经过训练的模型以及其 vocab 的学习向量来动态构建句子中任何单词的向量。*作为一个具体的例子,考虑“猫和狗是宠物”这句话。所有这些单词都存在于 BERT vocab 中,因此它们不会被分解成子单词。聚焦于单个注意力头部,它将单词“dogs”的向量构建为句子中包括其自身在内的所有单词的向量*(它们的变换版本)的加权和。本质上,单词“dogs”的向量通过不同的度量 被拉得更靠近句子中的所有单词(将向量 A 的小分量添加到向量 B 等于将向量 B 拉得更靠近 A 一点) 每个单词向量的量(例如)。“猫和狗是宠物”句子中的“猫”)对“狗”向量的创建的贡献部分地由注意力头部矩阵(主导因素)、“猫”在句子中的位置(由输入时添加到“猫”的位置编码捕捉),以及两个单词向量有多接近(计算为“狗”和“猫”的向量之间的点积)。这个步骤值得与 word2vec 训练过程进行比较——其中,句子(例如,狗)中每个单词的向量被拉得更靠近其相邻单词(在固定大小的窗口内——比如每边 5 个单词)*,拉的距离由该单词向量与窗口内其他单词向量的接近程度决定。 BERT 使用单个注意头为句子中的单词创建上下文敏感向量,这与 word2vec 中为单词创建全局向量有些相似,尽管 BERT 考虑了单词顺序和单词位置,最重要的是考虑了邻居(包括其自身)的贡献,这在很大程度上由注意头矩阵决定。BERT 模型的每一层都有多个注意力头 (12 个在底部,16 个在大处),一个非线性前馈层接收这些注意力头输出,并允许它们在被馈送到执行上述相同操作的下一层之前相互作用。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  figure from ref. 5

  最后,在论文中对注意头的大多数描述中,我们经常看到*“第三层注意头 1 关注句子中的下一个标记”*这种形式的陈述。虽然这是区分每个头的功能的有用方法,但值得记住的是,在实现中,上面的语句意味着对一个单词的向量输出最大的贡献者是紧随其后的单词。下面的描述用两段简洁的数学形式概括了上面描述的所有内容。关键的一点是,每个注意力头由四个 W 矩阵 (Wk,Wq,Wv 和 Wo) 组成,这些矩阵是在训练中学习到的。它们扮演上述角色——Wo 和 Wv 参与单词向量的加权平均,Wq 和 Wk 参与计算权重αi

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure from ref. 2

  下面描述了单个注意头的等效但可替换的视图,其中矩阵 Wq Wk 和 Wv 被用于输入向量的线性变换,然后加权平均被计算为单词的向量和它的邻居之间的点积。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  figure from ref. 5

  不同的探索/可视化提供了伯特模型所学内容的线索/见解

  视觉化注意力权重*(上面等式中的αI)*就像我们上面看到的,显示了每个头部在每一层都在关注什么。这些注意力地图对应于语法和共指的语言学概念。例如,我们发现中心语非常准确地关注动词的直接宾语、名词的限定词、介词的宾语和共同参照的提及。根据权重 (上述等式中的αI)从句子中两个单词之间的每个注意头构造向量*(对于 12 层 12 头 BERT 模型,该向量将是 144 维的)并且针对句子中的一对单词在该全局注意向量上训练线性分类器,以查看这两个单词之间是否存在关系以及关系的类型,指示句法关系(一个单词对*使用句子输出向量的特定线性变换,显示了 BERT 在它为句子输出的单词嵌入中近似编码语法树。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  figure from ref. 5

  对特定 NLP 任务的每一层的重要性进行评分(例如,POS、NER 等)。),表示在网络中基本句法信息被更早地*(较低层)捕获,随后是更高层的语义信息。这反映在右图中。(这个观察结果也类似于在 ELMo 模型中看到的情况)*。此外,与句法任务相关的信息似乎更多地局限在几个层中,其中语义任务的信息( SPR and Relations)通常遍布整个网络*(见深蓝色阴影条)*检查输出单词向量显示,不仅单词的不同含义被捕获在不同的表示中,它们还以细粒度的方式 (如下所示)。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Example of word sense separation for the word “Fair”

  由于 BERT 将单词意义分成单独的表示,同时考虑到单词的位置(例如,在句子“他带着手机去监狱牢房从囚犯那里收集血细胞样本”中,单词“cell”的表示对于每次出现都有不同的意义),通过简单地将这些单词向量相加而构建的句子向whatsapp官方的下载的网址在哪找量对于搜索任务可能是有用的。例如,使用 bert-as-service 我们可以构建句子向量*(在构建句子向量时,我们需要注意不要使用 SEP 和 CLS 令牌),这对相似性搜索应用程序非常有用。下面显示了几个例子(下面每个响应开头的标签是一个调试文本,显示所有响应都是语义相关的。这些句子来自 Fasttext 句子分类测试数据,其中每个句子被分为大约 14 个类别,并带有标签。第二列值“余弦度量”在作为两个句子之间距离的绝对度量时没有用,最多可以解释为显示输入与句子 1 的距离比与句子 2 的距离近多少的度量)*

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  最后,最近的一项工作通过消除*(消融)*注意力头来评估模型在任务中的表现,从而检验所有注意力头是否同等重要。本研究显示 在测试时间 ,对于许多任务,可以移除几个头,而不会显著降低性能。这将导致推断时间的减少。在一些层中,头的数量可以被修剪以只留下一个头。然而,机器翻译更依赖于多头,其中头的使用不是自我关注,而是编码器/解码器层中的多头关注。

  BERT 及其基于 transformer 的亲戚 GPT-2 最近证明,如果在大型语料库上训练,在句子完成任务*(包括在 Winograd 挑战句子中的适度表现)方面相当不错。然而,最近构建的句子完成任务显示,如果句子完成任务需要无法从语料库中收集的世界知识(常识)*,那么与人类相比,这些模型的表现相当差。下面是一个例子。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Figure from ref. 3

  这也许不是模型的限制。正如 Yoshua Bengio 教授最近提到的那样,这可能是一种指示性的(2019 年 4 月 26 日),我们需要的模型不仅要通过对输入文本进行训练来学习单词嵌入,还要学习这些单词在环境中的含义*(语言学习和世界建模协同进行)。这种形式的学习(称为*)是目前比较活跃的一个研究领域。

  可视化和测量伯特的几何形状,6 月 20 日 1916 个头真的比 1 个头强吗?2019 年 5 月机器能完成你的句子吗?2019 年 5 月BERT 重新发现经典 NLP 管道 2019 年 5 月伯特在看什么?伯特注意力分析,2019 年 6 月 11 日在单词表示中寻找语法的结构探针 2019 年 4 月BioBERT-用于生物医学文本挖掘的预训练生物医学语言表示模型,2019 年 1 月SciBERT:科学文本的预训练语境化嵌入,2019 年 3 月ClinicalBert:模拟临床记录并预测医院再入院,2019 年 4 月公开发布的临床 BERT 嵌入,2019 年 4 月伯特 2019 年 6 月多语种厄尼:用信息实体增强语言表达,2019 年 6 月可转移伯特的故事结局预测 2019 年 5 月VideoBERT:视频和语言表征学习的联合模型,2019 年 4 月PatentBERT:通过微调预训练的 BERT 模型进行专利分类,2019 年 6 月doc Bert—Boer for document class ification,2019 年 4 月用于药物推荐的图形增强变压器预培训,2019 年 6 月注意力是(不是)你进行常识推理所需要的全部,2019 年 5 月Github 到源代码的链接在上面列出的大多数论文中都可以作为脚注链接获得

  原文:https://towardsdatascience.com/a-review-of-neurips-2018-89cf3f38a868?source=collection_archive———24———————–

  苏刘与,R &维数据科学家 穆达诺有限公司 ,爱丁堡英国

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  利用我们的个人发展预算,一个由 Mudano 提出的伟大计划,我和我的同事 Boris 参加了去年在蒙特利尔举行的神经信息处理系统(NeurIPS)会议。这是世界上最大、最著名的人工智能会议,现在已经是第 32 届了,有超过 8500 人参加。注册在几分钟内售罄,所以我们非常幸运地获得了我们的位置!

  这是紧张的六天,充满了机器学习所有领域的教程、研讨会和演示。我们了解了最新的前沿研究,以及世界各地的技术公司如何使用和开发机器学习工具。

  除了谷歌、脸书和微软这样的大公司,我们还与一些小型创业公司的研究人员进行了有趣的讨论,他们中的许多人所研究的问题与我们在 Mudano 遇到的问题类似。我们还与大型咨询公司和金融服务公司(如 EY 和摩根大通)的数据科学家进行了交谈,了解了他们如何利用数据科学和机器学习。

  以下是会议的一些关键主题和我们在这一周学到的东西。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  随着模型变得越来越复杂,理解和信任它们的需求也在增长。剑桥大学的 Spiegelhalter 教授做了一场精彩的全体会议演讲,他描述了他的团队如何谨慎地使用统计学来解释和验证乳腺癌诊断和治疗建议的算法,从而使患者信任这些模型并确保可能的最佳结果。

  在数据科学家处理信用贷款和欺诈检测等问题的金融服务领域,理解机器学习算法所做决策背后的原因也非常重要。在“金融中的人工智能”研讨会上,30 张海报中有超过 10 张致力于模型可解释性的主题。

  对于最近的一个原型,我们使用了一个名为’ shap’ 的新 Python 库来解释哪些特性在分类问题中起了最大的作用。我们在会议上与其他机器学习研究人员讨论了这一点,他们同意这是一个非常好的库,用于解释本地和全球层面上的功能重要性。该算法通过将博弈论(数学的一个分支)应用于开发精确的树解决方案来识别机器学习模型的唯一和一致的特征重要性,以预测每个类别。(在下面的例子中,年龄=37 使候选人更有可能获得贷款。)这将成为我们解释机器学习模型的工具包的一部分。由于‘shap’是一个 Python 库,我们面向客户的数据科学家也可以很容易地访问它。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  另一个有趣的方法是使用模型对其输入的敏感度来评估特性的重要性。它在神经网络中特别有用,因为它们本身是可微分的,并且允许导数(灵敏度)的集合来识别模型的局部和全局行为。来自 J.P. Morgan 的作者使用信用卡默认数据集演示了一种基于敏感度的方法,并制作了一个即将发布的开源 Python 包。

  解决可解释性的另一种方式是通过使用反事实。在这种方法中,计算翻转分类器结果的输入向量组的最小变化。例如,在确定信贷申请结果的问题中,一旦建立了分类器,我们就可以找到导致相反预测结果的申请人的输入变量集(例如,工资、年龄、以前的申请)的最小变化,并对它们的相对重要性进行加权,以通知申请人他们的申请被拒绝的原因。这是一个非常直观的想法,所以我们将实现这个方法,并与 Mudano 的其他团队分享。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  除了可解释性,我们可能感兴趣的其他研究包括如何使用主动学习来分配风险分数,从不平衡数据中重新采样和学习的新方法,使用 textCNN 从基于文本的报告中自动分类客户尽职调查。这些只是几个例子,我们正在筛选会议文件,寻找其他有趣的想法。

  机器学习即服务在过去几年中获得了巨大的吸引力。我们与一些成功的初创公司进行了交谈,包括 Element AI、Borealis AI 和 Stratigi,它们已经从咨询公司发展成为机器学习软件提供商。

  这些公司识别市场需求,并制造机器学习产品,然后出售给他们的客户。这意味着一个产品可以卖给多个买家,让 R&D 的研究人员有时间进行更多的创新研究,并领先于竞争对手。

  这些成功公司之间最显著的共同特征是,机器学习研究得到了软件开发人员和数据工程师团队的良好支持,他们可以构建健壮、高效和适销的产品。这是因为,虽然机器学习科学家花了数年时间来研究和开发前沿算法,但数据工程师和软件开发人员花了类似的时间来构建完全开发的产品,这些产品在所有类型的平台上都是高效、紧凑和健壮的。他们能够在机器学习科学家花费的一小部分时间内将原型投入生产,因为这是他们的专长所在。

  在 QuantumBlack(麦肯锡公司的子公司),开发人员与数据科学家的比例约为 1:1,而在一些更基于产品的公司,这一比例接近 2:1。充分利用前沿研究需要专家工程师的支持,他们可以开发产品并构建安全的基础设施。

  不出所料,一些最好的演讲来自 Deepmind,尤其是他们与穆尔菲尔德医院在视网膜疾病的检测中的合作,该论文发表在 9 月份的《自然》杂志上。就在会议之前,Deepmind 推出了 DeepFold ,这是一种经过预先训练的高效蛋白质结构搜索模型,在药物发现中至关重要。

  鲍里斯会见了 AlphaZero 团队,该团队负责创建一个强化学习自主代理,该代理在没有任何先验知识的情况下,掌握了最复杂的两人完全可观察零和游戏——围棋、国际象棋和五子棋。该算法开始随机与自己对弈,然后学习一个策略,在给定当前位置的情况下,哪些移动最有希望,以及一个估计每个位置获胜概率的值函数。然后它重复这个过程,这一次使用学习到的策略和值函数来与自己对抗。然后,它再次重新训练,四个小时(和数百万次游戏)后,它比任何人类或人类制造的国际象棋引擎都强。

  AlphaZero 团队透露了一些以前不为人知的信息——他们的测试游戏是一种较小规模的围棋游戏,通常由初学者玩,但远未被职业选手解决。这个游戏被认为几乎和国际象棋一样复杂,但 AlphaZero 完全学会/解决了这个游戏,用白色获得了 100%的胜率。

  全体会议是关于人工智能和机器学习的更一般的方面。我们参加了关于如何与公共决策者互动,如何使研究具有可重复性,以及机器学习将如何影响软件开发的会谈。其中一个最吸引人的演讲是关于神经系统外的生物电计算,比如如何通过修改离子通道来创造多头蠕虫。这完全超出了传统机器学习的范畴!这些演讲邀请我们思考人工智能在社会中的作用,提醒我们研究需要严谨才能可信,并跳出框框思考——并对未来感到兴奋!

  机器学习,特别是深度学习,现在已经达到了一个成熟的水平,可以用来解决许多行业问题。在广泛的学科领域,研发仍在快速推进,但在 NeurIPS 2018 上几乎没有突出的关键主题:

  由于在国际象棋、扑克和围棋等游戏中的成功,强化学习现在是一个主要领域,有超过四次会议专门讨论它,并且有最多的研讨会出席。从这个领域的投资金额来看,我们可以看到它有一个长远的未来。人们对可解释的人工智能更感兴趣,这导致了因果学习的教程和研讨会,这是一个与穆达诺非常相关的领域。我们需要一种一致的方法来处理模型和数据中的不确定性,人们对贝叶斯方法有着持续的兴趣和研究。

  在接下来的几个月里,我们将深入研究这些主题,并发展我们对如何应用它们来解决 Mudano 中的机器学习问题的理解。

  我们很幸运在苏格兰有许多世界领先的机器学习研究人员,特别是在爱丁堡大学的信息学系。我们在会议上遇到了他们中的一些人,并了解了他们的研究兴趣,包括强化学习、多任务学习和贝叶斯网络。

  他们总是乐于接受新思想,他们的许多博士生都有工业赞助人。这可能是一种与大学建立更紧密联系的方式,并为 Mudano 带来知识和专业技能。

  我们在蒙特利尔度过了一段美好的时光,这是一个美丽的城市,有着迷人的法国风情。这是忙碌的一周,但也很有趣。这次会议的规模使得会见许多有趣的人成为可能,不管他们在哪个领域工作。我们在演示中也玩得很开心:在其他事情中,人们展示了他们的人形机器人如何响应语音命令来捡起东西;如何使用 ML 教人们演奏巴赫赋格曲,如何学习玩竞争性对抗游戏,以及如何使用 ML 学习跳舞,实时 2D/3D 超分辨率。

   whatsapp官网下载的地方怎么找外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  It’s Boris’ chessboard!

  尤其是鲍里斯,他玩了许多国际象棋和围棋游戏(并且赢了大部分游戏!)并一路结交了朋友。一位国际象棋和围棋选手是德国情报研究员,专注于密码学问题。他提出了一个有趣的见解,即如果你关心你的秘密~15 年后,那么目前的加密方法是不够的。

  基本原理是,当前的加密方法可以很容易地被 500-2000 台量子位计算机破解,这些计算机预计将在 15 年内问世,攻击者可能会耐心地存储您当前的加密通信,并知道他们在以后能够解密它们。并非一切都是暗淡的,因为抗量子攻击的方法已经存在。

  这次旅行给了我们一个与深度学习社区互动的绝佳机会。我们了解了最有趣的问题是什么,谁是特定领域的领导者,以及数据科学公司正在做什么。所有这些在家里都很难学会。这无疑拓宽了我们的视野,也必将为 Mudano 的数据科学和机器学习增添价值。

  原文:https://towardsdatascience.com/a-review-of-stanfords-machine-learning-certification-9614ebee2b06?source=collection_archive———13———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Photo by Andrew Neel on Unsplash

  作为最受欢迎的大规模数据科学开放在线课程(MOOC)之一,注册人数超过 260 万(截至 2019 年 11 月),目前平均用户评分为 4.9/5……毫无疑问,斯坦福大学通过 Coursera 提供的机器学习认证是一个巨大的成功。

  毫无疑问,这在一定程度上要归功于该课程的创始人吴恩达的卓越能力,他将 ML 的一些更复杂的方面简化为直观和易于学习的概念。

  然而,当我开始学习这门课程时,我有两点保留意见:

  这个课程是 2011 年制作的,它仍然有用吗?我会重复我已经知道的事情吗?

  关于后者,在 2018 年夏天,我很幸运地获得了一笔赞助,随后成为一名数据科学家,在我的雇主已经工作了近三年的一份大合同上研究自动化的 NLP(手动,有一个大团队)。这是一个惊人的机会,也是我目前大部分知识的来源。

  在本文的剩余部分,我想回答这两个问题,并概述一下对这门课程的期望。

  这门课程涵盖了 ALOT,它设法在一个看似很短的时期内塞进了大量惊人的细节。这并不是说它缺乏深度,事实上,我认为材料的深度是这门课的优势。

  您将涉及线性和逻辑回归、矢量化、正则化、神经网络、前馈和反向传播(这非常好)、成本函数、网络初始化、支持向量机、降维、监督/非监督学习、主成分分析(PCA)、K 均值聚类、异常检测、推荐系统等等。

  还有许多关于应用机器学习的建议,例如诊断偏差与方差误差,实施训练验证测试集,如何测量模型性能(准确度、精确度、召回率和 F1 分数),哪些算法在大量/缺乏数据的情况下工作得更好,以及如何调整所述算法以更好地适应我们的需求和/或情况。

  这个星期是相当直接的,我认为这是一个很好的介绍,特别是如果你有一段时间没有学习或研究数学的话。还有一些简单的逻辑问题和对统计学和机器学习基础的介绍,如分类对回归和监督对非监督学习。

  本周的评估非常简单,只有两个小测验。还有一个关于线性代数的选修课。我认为,即使你对线性代数很熟悉,浏览一下这一部分也是很好的,因为我发现吴安迪有时会以不同于我通常思维的方式解释事情,我相信从尽可能多的角度理解概念总是有用的。

  本周我们来看看多元线性回归。从单变量线性回归到多变量线性回归并不难,我不认为许多人会觉得这太难。

  还有一个我以前从未使用过的正规方程的介绍,同样,这并不难,但使用起来很有趣!本周最具挑战性的部分是在第一次编程任务中将它翻译成 Octave 代码。

  当然,在分配任务之前,我们会被介绍给 Octave(或者 MatLab,如果你喜欢的话)。Octave 是简单的开源 MatLab,所以如果你使用过 MatLab(或者 Python,语法非常相似),它很容易上手。

  我认为这是课程开始学习更复杂概念的地方。在这里,您将涵盖许多重要的 ML 概念,如分类、假设、决策边界、成本函数、梯度下降(以及高级优化技术的简要介绍)、多类分类、过度拟合、调节等。

  这一周并不太难,但我认为它涵盖了许多重要的话题,所以这肯定是至关重要的一周。本周真正的焦点是逻辑回归,线性回归之后是一个很好的(不太难)进步!

  编程任务很简单,但由于我的代码中的小错误*(想想(1/n*x)而不是(1/n)x) ,我确实被卡住了,令人尴尬的是,我花了比我想承认的长得多的时间来解决这个问题…

  本周我们从两个动机视频开始,着眼于非线性假设和神经网络与大脑神经元之间的暗示。

  本周余下的时间将深入探讨神经网络是如何工作的,安迪在本周出色地解释了神经网络背后的直觉。

  本周以另一个编程任务结束。这个比较复杂,但是不太难,我发现它很有趣!

  在本周,我们将触及成本函数(再次简单地)和反向传播。前半部分是反向传播,背后的数学和直觉。第二部分是如何检查我们是否正确实现了它(梯度检查,非常有用)以及我们如何/为什么随机初始化网络权重。

  这周很难熬。尽管我在大约一年前使用 NumPy 报道过这个问题,但我发现我已经忘记了除了对正在发生的事情的高层次理解之外的一切。反向传播直觉很难。只有当我完成编程任务时,我才意识到我对这个算法的直觉是多么的少。

  我发现不断重复你所采取的步骤真的很有帮助。通过纸上的前馈和反向传播步骤,检查数组维数如何随着每一步而变化,并试图理解它为什么工作。

  令人惊讶的是,正是在这一点上,我的第二个保留意见是“我会重温我已经知道的东西吗?”上来了。然而,我发现自己真的受益于这一周,因为我觉得重做这些材料真的是在我之前的经验上的复合。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  A relationship that explained a lot, was very simple, but I had simply never seen it displayed visually before.

  此外,安迪优雅地详述了每一个优化概念背后的利弊,并将其与数学符号联系起来,这种方式非常棒。虽然我知道这个概念,但我以前从未真正用符号来看它们。总的来说,这是非常好的一周。

  这是我第一周没有真正了解这个主题。我知道支持向量机,我知道它们相对简单,但是我以前没有真正使用过它们。尽管如此,因为我怀疑支持向量机背后的理论和数学很简单,所以我在几个工作日晚上度过了这个星期。

  我很享受这一周,我还在从第五周的恢复中,所以缺乏强度是一种解脱。它很好地涵盖了支持向量机背后的直觉,还引入了高斯核,这也是我意识到但却无意识地回避的东西。我发现关于何时何地使用支持向量机的部分及其背后的直觉特别有用。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  The SVM model decision boundary built during the programming exercise.

  编程练习可能太简单了,我本来想手动实现一个 SVM 模型,但我们只是定义了一个高斯核函数,这非常简单。练习的后半部分很有趣(但也很简单),因为我们使用支持向量机来研究垃圾邮件分类。这让我想起了我在介绍中提到的许多大型商业 ML 项目,其中我使用递归神经网络(RNNs)和 word2vec 以及其他多种方法来分类客户电子邮件,这很酷!

  我这周还没有接触过无监督学习。我知道 K-means 聚类背后的基本概念,但仅此而已。我意识到的第一件事是 K-means 超级简单,这是一种解脱!优化本质上与高斯核函数相同(现在我想到了许多其他优化函数)。尽管如此,它还是非常有趣,我可以看到它非常有用。

  后半周看主成分分析(PCA)。在高层次上,我对此有一些了解,但非常少。我曾经使用过一个叫做 t-SNE 的改进版本来进行单词向量可视化,但是从来没有深入研究过它的内部工作原理。就这门课的范围而言,我认为 PCA 已经讲得很好了,而且也不太难,我怀疑这很大程度上是由于吴恩达的深刻理解和教学能力。

  最后,编程练习并不太难。我发现编码逻辑比第 6 周和第 7 周稍微难一点,但也不太难。我发现这个练习对于完成 K-means 和 PCA 非常有用。

  同样,我对本周的内容没有真正的经验。前半部分着眼于使用高斯和多元高斯分布(或密度估计)的异常检测。这非常直接,但非常有用,我打算测试实现异常检测的多元高斯分布,作为我经常使用的数据分析工具的附加功能!

  本周后半周将重点讨论推荐系统。就我个人而言,我不认为我会发现这很有用,但它肯定很有趣,我喜欢学习复杂程度越来越高的几种算法的形式。

  这两周很短,没有编程作业。更多的是整理和总结我们已经学过的东西。我在从北京到伦敦的长途飞行中完成了这两个星期!幸运的是,因为没有编程作业,你可以下载视频,并从你的手机上完成 2 个测验,这太棒了!

  虽然很短,但我仍然发现 10 和 11 都很有用,是结束课程的一个很好的方式。

  一个优秀的,全面的机器学习基础。优点包括:

  涵盖了广泛的 ML 方法不害怕解决数学问题,吴恩达在教授直觉方面非常出色课程的重要部分集中在神经网络基础上惊人的覆盖如何实际应用方法和大多数 ML 工程师的典型陷阱

  骗局

  后来的编程任务有时过于抽象,后来的几周感觉像是,写一个计算,让其余的预写代码做繁重的工作。

  最终赞成/反对

  编程作业是在 Octave 中完成的——这是一个允许学习者绕过许多其他语言可能出现的语法/逻辑问题的程序。但这是一个缺点,因为它不是一种在行业中特别广泛使用的语言…

  总的来说,我相信在课程结束时,会有更具挑战性和更深入的作业,但除此之外,我真的很喜欢这门课程,我觉得我从中受益匪浅。我强烈推荐任何想进入 ML/数据科学或者想巩固基础的人。

  请让我知道你的想法或在下面的回复中提问!

  在这个课程之后,我开始了 IBM 的高级数据科学专业化,如果您对我在第一个课程中的关键收获感兴趣,请参见这里:

  [## 对 IBM 可伸缩数据科学基础的回顾

  我的想法是,在 IBM 的高级数据中,对可伸缩数据科学基础中的关键概念进行分解…

  towardsdatascience.com](/a-summary-of-the-advanced-data-science-with-ibm-specialization-1-4-5caf48c011df)

  谢谢,

  原文:https://towardsdatascience.com/a-road-map-for-data-science-d1977504a72b?source=collection_archive———6———————–

  数据科学在最基本的层面上被定义为使用数据来获得洞察力和信息,从而提供某种程度的价值。数据科学发展迅速,有着广泛的可能性,因此用这个基本定义来限制它是很基本的。该定义的延伸是,数据科学是编程、数据可视化、命令行工具、数据库、统计、机器学习等技能的复杂组合,目的是分析数据并从大量数据中获得见解、信息和价值。

  对于那些对数据科学的更多细节和它是什么感兴趣的人,你可以从这里的这本书中学到更多…

  你应该学习的第一件事是一些基本的 python 编程。开始学习语法、变量和数据类型、列表和 for 循环、条件语句、字典和频率表、函数和面向对象的 Python。

  对于 python 编程来说,这是你需要的唯一资源

  现在我们想学习数据分析和可视化。首先,您将希望通过学习 pandas 和 numpy 来清理和探索您的数据。然后,您将需要学习 matplotlib 来进行探索性的数据可视化和用数据讲故事。

  这里的是一本让你开始动手进行数据分析的好书。

  接下来,您将需要了解如何导航文件目录、创建和删除目录、如何编辑和管理文件及其权限、如何从命令行使用程序,以及如何创建虚拟环境。您还会想了解用于版本控制的 git 和 GitHub。

  我发现进入命令行的最好方法是每天使用它… 这里有一个关于使用命令行的免费速成班。

  您将希望学习用于查询数据的 SQL 以及用于高级数据库管理的 PostgreSQL。您还应该知道如何使用 API 和 web 抓取来创建自己的数据集。也可以尝试学习 spark 和 map-reduce。

  对于 SQL ,这里有一个很好的实践资源,可以让您立即开始使用 SQL。

  接下来,您需要学习统计学基础知识,包括抽样、频率分布、平均值、加权平均值、中值、众数、可变性测量、Z 分数、概率、概率分布、显著性检验和卡方检验。

  统计学习简介和统计学习要素将为你提供一个统计基础,让你成为所有统计工作的专家…

  你需要学习至少 10 种机器学习的基本算法:线性回归、逻辑回归、SVM、随机森林、梯度推进、PCA、k-means、协同过滤、k-NN 和 ARIMA。

  您还需要了解如何评估模型性能、超参数优化、交叉验证、线性和非线性函数、基础微积分和线性代数、特征选择和准备、梯度下降、二元分类器、过拟合和欠拟合、决策树、神经网络,然后您应该用这些技能构建一些东西,甚至尝试一些 kaggle 竞赛。如果你对这些感兴趣,你也可以继续学习更高级的话题,比如 NLP 和 AI。

  这里有一本非常好的书,可以让你亲自动手学习机器…

  一旦你掌握了基本技能,我建议你在一件事情上变得非常擅长,比如深度学习、人工智能、统计学、NLP 或其他东西,因为它让你成为特定技能的关键人物,如果你想做的话,它看起来非常适合工作面试。

  你真的应该边走边建一些项目。我建议您在学习了基本的 python 和数据可视化工具之后再构建东西。边做边学是真正学习数据科学所需技能的最佳方式之一,它也向其他人证明了您确实可以用数据构建一些东西。

  你会想建立两个先进的项目,你可以把它放在简历或投资组合:

  这表明您可以进行端到端的数据科学项目那么第二个应该是展示你专业技能的项目确保你的项目是像样的,有良好的文档记录,易于理解,并把它们放在 GitHub 上制作一份出色的简历,突出并传达适合你申请的特定工作的正确信息创建一个可靠的 LinkedIn 档案,这样招聘人员可以找到你,你也可以使用 LinkedIn 申请工作

  您的投资组合:

  你的项目应该讲述一个容易理解的故事应该清楚地看到你的结果应该用高质量的、有组织的代码很好地记录包括清楚地写下你做了什么以及为什么证明您可以胜任数据科学家的工作

  你的简历:

  应该很容易在 6 秒或更短的时间内找到相关信息只强调最好/最重要的经历视觉上在千篇一律的应用程序海洋中脱颖而出使用正确的公式从商业影响的角度来描述你的项目和经历(即使它们是个人/学术项目)格式:你做了什么->如何做->产生了什么影响不好:用 python 内置推荐系统好:使用协同过滤和矩阵分解在 python 中构建推荐系统,使购物篮大小增加了 3%,年收入增加了 300 万whatsapp的官方下载网址在哪里确保你的简历易于阅读——使用 www.readable.io 并以五年级的阅读水平为目标使用www.jobscan.co确保你有合适的关键词

  你的 LinkedIn:

  将你的经历从简历中转化到你的 LinkedIn 上写一份总结,展示你独特的技能和个性拍摄一张友好的专业个人资料照片,让你更值得信赖在技能部分填写正确的技能,这样招聘人员就能找到你(去掉那些让你的简历变得杂乱的多余技能)开始通过 LinkedIn 申请工作发送跟进信息—(找到 3-5 名关键决策者(这些人很可能是你申请的公司的人力资源部的人)并向他们发送跟进信息)快速简单地展示你对他们公司的热情简要介绍你的独特技能,以及它们将如何帮助公司(只是简单介绍一下你能做些什么)保持跟进信息不超过 5 句话。(越短越好,更容易被阅读)

  感谢你阅读我的文章,我希望你能从中有所收获。

  我正在创建一些教程、指南和完整的数据科学课程,以帮助所有需要它的人,我计划很快发布它…

  原文:https://towardsdatascience.com/a-road-map-for-deep-learning-b9aee0b2919f?source=collection_archive———11———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  深度学习是机器学习的一种形式,它允许计算机从经验中学习,并从一个概念层次中理解事物,其中每个概念都是从一个更简单的概念中定义的。这种方法避免了人类指定计算机需要的所有知识的需要。概念的层次结构允许计算机学习复杂的概念,通过许多层的深层设置将它们建立在彼此之上。

  当谈到学习深度学习时,你需要学习的第一件事是应用数学,这是深度学习的基本组成部分。

  线性代数是数学的一个分支,广泛应用于整个工程领域。然而,由于它不是离散数学的一种形式,许多计算机科学家对它没有多少经验。对线性代数的良好理解对于理解和使用许多机器学习算法是必不可少的,尤其是那些涉及深度学习的算法。

  线性代数要知道的话题:

  标量、向量、矩阵、张量、乘法矩阵和向量、单位矩阵和逆矩阵、线性相关性和跨度、范数、特殊矩阵和向量、特征分解、奇异值分解、Moore-Penrose 伪逆、迹算子和行列式。

  概率论是我们用来表示不确定性的数学概念。它提供了一种量化不确定性的方法。在人工智能应用中,我们主要以两种方式使用概率:

  首先,它告诉我们我们的人工智能系统应该如何推理。

  第二,我们可以用概率和统计来分析人工智能系统的行为。

  从概率上知道的话题:

  随机变量,概率分布,边际概率,条件概率,条件概率链规则,独立性和条件独立性,期望,方差和协方差,常见概率分布,常用函数的有用性质,贝叶斯规则,连续变量,信息论,概率模型。

  机器学习算法几乎总是需要大量的数值计算。这通常指的是 ML 算法用来解决数学问题的迭代过程。常见的操作包括优化(找到使某个函数最小化或最大化的值)以及求解线性模型和方程组。

  机器学习中数值计算的学习主题:

  溢出和下溢、调节、基于梯度的优化和约束优化

  深度学习实际上是一种特殊的机器学习。要理解深度学习,必须对机器学习有扎实的理解。您需要了解诸如什么是学习算法(如线性回归算法)、如何使数据适合该算法、在数据中寻找模式以及超参数调整等内容。机器学习最终只是非常复杂的应用统计学,它使用计算机,因为它们可以更容易地估计复杂的函数。

  机器学习要学习的主题:

  学习算法、容量、过拟合和欠拟合、超参数、验证集、估计器、偏差和方差、最大似然、贝叶斯统计、监督学习算法、非监督学习算法、随机梯度下降和构建机器学习算法

  深度学习为监督学习提供了一个强大的框架。通过创建一个神经网络,并在每一层中添加更多的层和更多的单元,你就有能力表现越来越复杂的功能。

  深度前馈网络,也称为前馈神经网络,或多层感知器,是典型的深度学习模型。这些前馈网络之一的目标是逼近某个函数 f。

  从深度前馈网络学习的主题:

  基于梯度的学习、隐藏单元、架构设计、反向传播和其他差分算法

  机器学习中的一个常见问题是如何创建一个不仅对训练数据,而且对新输入都表现良好的算法。ML 中的许多策略旨在减少测试错误,通常以增加训练错误为代价。这些策略被称为正规化。深度学习的众多目标之一是开发更有效的正则化策略。

  深度学习正则化要学习的主题:

  参数范数罚分、作为约束优化的范数罚分、正则化和欠约束问题、数据集扩充、噪声鲁棒性、半监督学习、多任务学习、早期停止、参数捆绑和参数共享、稀疏表示、打包和其他集成方法、丢弃、对抗训练、正切距离、正切 Prop 和流形正切分类器。

  深度学习模型在许多方面都涉及到优化。例如,主成分分析等模型中的推理涉及到解决优化问题。深度学习中最困难的优化问题是神经网络训练问题。

  深度模型训练优化要学习的主题:

  学习与纯优化、神经网络优化的挑战、基本算法、参数初始化策略、具有自适应学习速率的算法、近似二阶方法、优化策略和元算法

  卷积神经网络是一种专门用于处理数据的神经网络,具有已知的网格状拓扑。这方面的例子有时间序列数据,它可以被看作是以规则的时间间隔采样的一维网格,我们也有图像,它可以被看作是二维像素网格。卷积是一种特殊的线性运算。

  CNN 需要学习的主题:

  卷积运算、动机、池化、卷积和池化、基本卷积函数的变体、结构化输出、数据类型、高效卷积算法以及随机或无监督特征

  递归神经网络是用于处理顺序数据的神经网络家族。这些与 CNN 非常相似,事实上它是专门用于处理网格值的,但是它们使用一个系统来处理一系列值,并对它们进行归纳。

  学习 RNNs 的话题:

  展开计算图、双向 rnn、编码器-解码器序列到序列架构、深度递归网络、递归神经网络、长期依赖性的挑战、回声状态网络、泄漏单元和多时间尺度的其他策略、长短期记忆(LSTM)和其他门控 rnn、长期依赖性的优化、显式记忆

  成功应用深度学习技术需要的不仅仅是对现有算法和解释它们如何工作的原理的良好知识。在机器学习系统的日常开发过程中,实践者需要了解是否要收集更多的数据、增加或减少模型的复杂性、添加或删除特征、改进模型的优化、改进模型中的近似推理或调试模型的实现等等。所有这些都非常耗时,因此能够确定正确的行动方案非常重要。

  深度学习方法论主题:

  性能指标、默认基线模型、确定是否收集更多数据、选择超参数以及调试策略

  深度学习可用于解决计算机视觉、语音识别、自然语言处理和其他领域的应用。当涉及到设计算法时,这些任务中的每一个都需要某种程度的专门化。

  深度学习应用需要学习的主题:

  大规模深度学习、计算机视觉、语音识别和自然语言处理

  这一节将只列出更有雄心和更先进的深度学习方法的主题。

  概率 PCA 和因子分析、独立分量分析(ICA)、慢特征分析、稀疏编码和 PCA 的流形解释

  欠完整自动编码器、规则化自动编码器、代表性能力、层大小和深度、随机编码器和解码器、去噪自动编码器、具有自动编码器的学习流形、收缩自动编码器、预测稀疏分解以及自动编码器的应用

  贪婪的逐层无监督预训练、迁移学习和领域适应、因果因素的半监督解开、分布式表示、深度的指数增益以及发现潜在原因的线索

  非结构化建模的挑战,使用图形描述模型结构,从图形模型中采样,结构化建模的优势,了解依赖关系、推理和近似推理,以及结构化概率模型的深度学习方法

  抽样和蒙特卡罗方法,重要性抽样,马尔可夫链蒙特卡罗方法,吉布斯抽样,以及分离模式之间混合的挑战

  对数似然梯度、随机最大似然和对比散度、伪似然、分数匹配和比率匹配、去噪分数匹配、噪声对比估计和估计配分函数

  作为优化的推理、期望最大化、映射推理和稀疏编码、变分推理和学习以及学习的近似推理

  波尔兹曼机器、受限波尔兹曼机器、深度信念网络、深度波尔兹曼机器、用于实值数据的波尔兹曼机器、卷积波尔兹曼机器、用于结构化或顺序输出的波尔兹曼机器、其他波尔兹曼机器、通过随机操作的反向传播、定向生成网络、从自动编码器抽取样本、生成随机网络、其他生成方案以及评估生成模型

  所有这些信息将导致对深度学习的超级坚实的理解:

  以下是一些资源,涵盖了大部分(如果不是全部)上述主题:

  伊恩·古德菲勒的深度学习书籍

  神经网络和深度学习

  我还致力于创建一个专属社区,我将与这些人一起成为数据科学家,我在这里创建了一个小组,它完全免费加入:数据科学,机器学习,深度学习&人工智能

  原文:https://towardsdatascience.com/a-robot-says-you-have-cancer-294937f3a69?source=collection_archive———13———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Someday soon, your doctor could be a robot. Would you trust it? Photo by Kendal James.

  如果电脑给你健康建议,你会相信吗?如果一个计算机程序告诉你,你有一个侵略性的癌症肿瘤,并推荐一个有风险的程序来挽救你的生命,你会抓住这个机会吗?

  就在几十年前,从计算机那里接受医疗建议的想法似乎来自于一部老的《杰森一家》卡通片或《星际迷航》中的一集。医学是复杂的,很难想象计算机程序能够成功地取代人类医生,能够将许多不同的报告(测试结果、X 射线和其他扫描以及患者信息)结合成一个单一的诊断。

  然而,如今让计算机程序扮演医生的想法似乎更接近现实。但是,虽然计算机在诊断疾病方面可能越来越好,但人类准备好倾听了吗?

  人工智能程序处理复杂医疗问题并取得惊人成功的一个例子是放射学,即阅读 X 射线、CAT 扫描和其他身体内部可视化的实践。这些图像通常模糊不清,以至于放射学有时被描述为“更像一门艺术而不是科学”。即使是经验丰富的放射科医生有时也很难确定 X 射线上的黑点是癌性肿瘤,还是只是一个污点。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  An example training X-ray, this time with the cancerous mass helpfully circled. Source: NIH

  事实证明,计算机可以做得更好。如果给一个算法一大组 X 射线作为训练数据,它可以胜过真正的医生——在一个案例中,一个算法成功诊断了 75%的结核病病例,相比之下,人类医生的正确诊断率为 62%。

  不仅仅是 x 光。人工智能算法成功地从痣和皮肤病变的照片中诊断出皮肤癌,其速度相当于委员会认证的医生。另一种算法证明通过读取心电图数据检测心律失常(不规则心跳)比人类医生更有效。一些算法甚至试图通过分析语音来诊断认知障碍和智力下降,使用单词之间的停顿和词汇水平等措施来确定某人是否患有痴呆症。

  所以电脑可以比人类医生更准确。有人会听他们的吗?

  最近,加州弗里蒙特的一家医院制造了一条新闻——而且不是好消息——一名 78 岁的病人被机器人告知他即将死亡。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  An example of a telepresence robot. Source: Wikimedia

  这不是人工智能驱动的超级计算机。这是一个人类医生使用远程呈现机器人与病人进行远程交流。因此,尽管有 clickbait 这个标题,但人工智能并没有冷漠地通知病人他要死了——一名人类医生选择通过相当于 FaceTime 视频电话的方式来传达这一痛苦的消息,而不是亲自去。

  然而,这篇文章呼应了任何时候讨论人工智能取代医生时都会出现的一个共同主题:算法没有同理心,不能像有血有肉的医生那样传递坏消息或艰难的诊断。

  这篇文章还提出了一个问题,即医生目前在同理心方面是否比机器人做得更好。许多医生在向病人传达坏消息时都很有同情心和爱心,但有些医生已经采用了机械的、非个人化的语气。这些容易出错、低同理心的医生会成为第一批被更精确的机器人取代的人吗?

  展望未来,医学可能会变得更加需要共同努力,医生依靠计算机来完成诊断疾病的繁重工作,但同时在医患关系中保持一个人来提供解释和安慰。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  “The algorithms say that the tumor is likely serious, but we have options and solutions. It will be okay.” Photo by Arvin Chingcuangco.

  当然,这个概念不太可能在医学界顺利推行。转向依赖计算机和算法来诊断医学疾病可能会引发关于工资和补偿的问题——如果放射科医生的大部分工作由计算机程序处理,他们还应该得到平均每年 371,000 whatsapp的官方下载网址在哪里的报酬吗?

  许多医生已经在与侵入医学的技术作斗争。人们普遍抱怨电子健康记录(EHRs 越来越普遍,许多医生表示,电子健康记录最终不完整、难以填写,并且无法取代与患者的面对面交流。医院管理人员和高管希望改善病人的结果并节省资金,他们可能会支持增加算法的使用,以取代由活体医生处理的部分工作量——但他们将与医生斗争,可以理解的是,医生不希望他们的工作被计算机取代。

  AI 不会完全取代医生。算法可能在诊断问题方面表现得更好,但我们可能仍然需要人手来开处方,复核诊断结果,最重要的是,带着同情和善意向患者传达结果。

  但是也许在不久的将来,当医生给你看 x 光片时,你可以礼貌地请求电脑给出第二种意见。

  原文:https://towardsdatascience.com/a-robots-journey-ce4fcd30aba1?source=collection_archive———43———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Picture courtesy to Starship Technologies

  想象,试着从另一个人的角度看这个世界是很有趣的。去思考做动物的感觉。

  我们的乌龟跑了。他不开心吗?我们的鹦鹉一头撞在墙上。她抑郁了吗?我们的猫曾经在我的床上拉屎。她恨我吗?我们狗的蛋蛋被割掉了。他生气了吗?这些事情让我整个童年夜不能寐,因为没有答案。

  如今,我过得更轻松了。我的周围不是由进化塑造的不可预测的大块肉,而是按照形式逻辑行事的机械人造生物。这些生物的每一个反抗行为都可以通过计算机代码追溯到其根源并被清除。

  作为一名工程师,我的工作就是——把自己放在一个六轮自动送货机器人的位置上,驯服它。这些问题让我成年后夜不能寐,因为我一直在寻找答案:

  像这些人一样,机器人的眼睛是成对的。两只眼睛很容易测量到世界上物体的距离,以三维方式看事物。

  当光线从物体上反射回来,进入我们的眼睛——或者对于机器人来说,进入相机——时,图像就在我们的视网膜上形成了。由于我们的眼睛在头上的位置不同,它们捕捉的图像也略有不同。如果我们将它们重叠在一起,我们会发现图像上相应物体的位置并不完全匹配。所有的东西都会水平移动,在右边的图片上看起来稍微偏左一点,反之亦然。

  转折:一个物体从一个图像转移到另一个图像的次数越多,它就离我们越近。它移动得越少,越远。这是一个惊人的数学事实。为了了解一个物体在真实世界中离我们有多远,我们只需要测量它在图像之间移动的毫米数。

  问题是:匹配对象。为了计算一个物体在两幅图像之间移动了多少,我们必须首先在两幅图像上识别它。人类在这方面特别擅长,我们下意识地这么做。机器人在这方面特别糟糕——感谢上帝,因为它让我有工作。

  机器人是行人——它在人行道上行驶。和行人一样,它被十字路口所困扰。它田园诗般的、无忧无虑的漫步很快被恐怖所取代,因为现在有一股邪恶的两吨重的野蛮人必须通过。快点,你可能会被冷血地击倒。摆摊,你可能会因为提供冷食而被拆穿。

  巨大的任务需要巨大的智慧。机器人的汽车大脑是一个很深的层叠,每一层都是由数百万人工神经元组成的薄片。不同的层类似于传送带上的专业工人,随后的层建立在前面的结果之上。

  一幅图像——机器人无法识别的原始像素的大杂烩——来自摄像机。最底层识别代表边缘的像素组。下一层神经元识别从边缘构建的形状——圆形、矩形和三角形。第三层将这些几何图形放在一起,以识别整个物体:车轮、门、窗和车牌。最上层组装各种汽车部件以识别完整的车辆。

  正是这个单一用途的大脑,专门致力于防止机器人成为马路杀手,允许安全过马路。相比之下,动物只将一小部分思维能力用于识别汽车。这就是为什么你到处看到死的是松鼠,而不是机器人。

  唯一比延迟交货更糟糕的事情是货物丢失。为了避免如此多的痛苦,机器人已经从伦敦出租车司机的剧本中吸取了一页。

  为了获得驾照,这些崭露头角的出租车司机需要通过世界上最难的地理测试(T1),这是一项对伦敦数万条街道、地标和旅游目的地的严格测试。为了准备考试,考生们在将近五年的时间里,数百次开车穿过这座城市,试图将伦敦错综复杂的动脉蚀刻进他们的大脑。

  同样,机器人也需要练习。在他们被给予城市的自由之前,他们在一名人类监督者的陪同下被手动驾驶穿过城市。但是与黑人出租车司机的希望不同,机器人只需要握一次手。

  如果说计算机擅长什么,那就是记忆。在他们独特的地图绘制过程中,机器人每秒钟沿着整个路线拍摄多次照片。接下来,它从图像中提取相关的物体——像公园长椅的单块木板或烟囱的砖块一样细小的物体。最后,耗时的算法计算出所有这些物体的真实世界坐标,然后存储在一个巨大的数据中心,这个数据中心构成了机器人非常详细的存储器。

  此后,每当现在自主的机器人不确定自己的位置时,它就在数据库中搜索与其当前环境最接近的匹配。像伦敦出租车司机一样,他们的人工对应物用存储在他们记忆中的全球知识绘制了当地场景——他们看到的物体如何相互关联——这些物体如何与整个城市相关联。机器人只是在几天内建立这种理解,而不是几年。

  很快,你就会看到这些送货机器人中的一个在你家附近辛勤工作。通常,你会看到他们最好的,高效的和有效的。

  偶尔,你也会看到他们最糟糕的一面。也许在人行道上迷路了。或者害怕过马路。原谅他们的笨拙。正如西奥多·罗斯福所说:“唯一从不犯错误的人是从不做任何事情的人。”机器人做很多事情。他们送货上门。

  原文:https://towardsdatascience.com/a-round-of-applause-for-algorithms-3322f6aa1f8e?source=collection_archive———22———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  外语。黑色和白色。无名演员。这是一场完美的描述风暴,让我对电影失去兴趣。但是,网飞给了我 90 多分。

  虽然这个在线流媒体巨头知道我所有肮脏的观看秘密(完全披露:超级英雄和太空战),但我也是。我不会自愿选择罗马。但是,网飞想当然地认为自己知道一些连我都不知道的事情。所以我给了罗马一个机会。我没有失望。

  现在我并不自称理解算法背后的内在魔力。我认为知情者是科技奇才的精英俱乐部。但是有一件事我明白了。算法为机器学习和深度学习工具提供动力,使处理和分析一组无限的数据点成为可能。一些我的大脑,你的大脑,甚至爱因斯坦的大脑都无法理解的事情。网飞从我令人上瘾的暴饮暴食习惯中收集了大量数据,然后输入其算法,这些数据表明我会喜欢罗马。一些连我都没有意识到的事情。

  对很多人来说,这很可怕。

  48%的欧洲人不知道什么是算法。不到一半的人知道算法已经被用于他们生活的许多领域。

  算法受到了不好的指责:它们单枪匹马地引发了民主的垮台。它们引发不良消费行为。他们将对失去成千上万的工作岗位负责。他们有偏见。他们歧视。他们的决定不可理解,也不可追踪。对于一本基本上被美化了的指导手册来说,有很多负面的报道。

  让这些担忧雪上加霜的是一大群政治顾问、半生不熟的监管措施和普遍的数字文盲。这一切也是一场完美风暴。这是在延续一个错误的说法。一个把更多的注意力放在算法哪里出了问题,而完全忽略了它们哪里做得非常非常正确的问题。

  算法重新定义诊断

  当慕尼黑白血病实验室扩大其设施和人员时,对最先进的下一代测序(NGS)系统进行了大量投资。大数据的大机器。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  科学是复杂的,但简单地说:这些 NGS 系统使分析整个基因组序列(WGS)成为可能,提供了更多的数据,更快地,对我们的遗传物质。为什么这很重要?WGS 提供的数据是检测致病突变、遗传疾病和疾病爆发的关键。而正是这些数据,由算法指令的机器学习应用可以比人眼更好更快地进行分析。

  算法能够以比显微镜更高的精度检测突变和畸变:治疗后检测到 0.3%对 5%的残留白血病细胞。

  在 NGS 诊断学的发展中发挥最大作用的算法之一是对齐算法。它可以排列由 NGS 系统确定的许多冗长的 DNA 和 RNA 序列。对于科学家和医生来说,考虑到大量的数据,这是很困难的,甚至是不可能的。一旦这些序列对齐,就有可能进行比较并检测出遗传密码中的异常。而且非常非常快。

  对于像白血病这样的疾病,时间是至关重要的,速度和数据可能意味着生与死的区别。

  “精准医疗寻求利用基因组数据帮助在正确的时间为正确的患者提供正确的治疗。”

  比对算法提供的分析也在以其他方式推进癌症治疗。肿瘤的测序提供了维持肿瘤生长的特定遗传异常的详细信息。这意味着肿瘤学家可以为患者提供专门针对其基因突变的疗法。这一精确医学领域有可能消除治疗中的大量猜测,这意味着患者将不再被迫接受不必要的复杂程序。他们也将更快地获得最好的、最有针对性的治疗,这对于侵袭性衰弱疾病来说非常重要。

  机器穿衣

  虽然不是所有的算法都带着这样的利他意图运行,但它们在功能上是一致的。他们制定了一套解决问题和执行任务的规则。其中一项让他们声名狼藉的任务恰好是人类臭名昭著的糟糕任务:做决定。

  这就是 Stitch 的生意所在。是 USP?数据科学。这对一家软件公司来说并不罕见。但是史迪奇绝不是。该公司是一家在线服装零售商。成千上万中的一个。但是有一个转折。Stitch 完全承担购物决策过程。

  现在有很多人可能会对算法为我们着装的未来感到恐惧。任何读过算法写的诗,听过算法创作的音乐,看过算法生成的图像的人都见证了反乌托邦噩梦的内容。创造性许可不应该完全委托给机器。

  “机器学习将改变技术的每一个方面,但没有机器能够模仿人类思维的创造能力。”山塔努·纳拉延,土坯

  但请记住,算法可以以人类无法做到的方式导航数据。你给他们的数据越多,他们驾驶的学习工具就越聪明。这就是史迪奇所利用的。

  该公司的造型算法在数据中翻腾:客户数据、产品数据、反馈数据。尺寸,喜欢的颜色,流行的款式。而且每件商品有 30 个以上的测量属性:从有纽扣衬衫的肘部到肩部的距离到裤子的内缝长度。

  一旦算法“选择”了你的完美新线,它们会将最终决定交给人类造型师,也是由算法选择最适合你的风格。这些造型师对出现在你家门口的东西做最后的决定。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  公司的目标之一?消除对尺寸标签的需求,只为每位顾客提供“你的尺寸”。任何买过牛仔裤的人都会看到其中的价值。就我个人而言,我会很高兴地跳过心理创伤和自我粉碎的战斗,挤进 X 号牛仔裤,却一无所有地回家。

  即使在最强大的时候,人工智能也不会取代人类的智能,它只是帮助人们更好更快地做他们喜欢的事情。

  但是还有一个好处。一个很多人不考虑的问题。让我们回到罗马。一部充斥着超级英雄和科幻惊悚片的单色外国电影。打破我们的习惯和模式可能是巨大的努力。打开我们的思想,我们的视频图书馆,我们的壁橱去接受新事物。不是因为我们必然厌恶新事物,或者可以毫不含糊地说我们不会喜欢某样东西。而是因为我们是习惯性动物。

  尽管对一些人来说这可能令人毛骨悚然,但新的数字商业模式正在利用算法来比我们更好地预测我们的好恶,也许我们应该将其视为一个机会。拓展我们视野的机会,摒弃我们的偏好。就我个人而言,我很高兴网飞向我展示了一个超越漫威宇宙的世界。

  原文:https://towardsdatascience.com/a-running-speed-benchmark-for-kernel-non-kernel-algorithms-b7db5bfabcef?source=collection_archive———28———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  The Kernel method, Wikipedia, CC BY-SA 4.0, https://en.wikipedia.org/wiki/Kernel_method

  多年来,我知道线性 SVM 比内核版本快,这是常识,而不是我测试过的东西。不久前,我想知道是否所有基于内核的算法都比它们的非内核版本慢。下面的比较用作几个众所周知的算法的运行时间基准。

  内核方法因使用了内核函数而得名,这使得它们能够在高维、隐式 特征空间中操作,而无需计算该空间中数据的坐标,而是简单地计算特征空间中所有数据对的图像之间的内积。该操作通常比坐标的显式计算在计算上更便宜。这种方法被称为“内核技巧”——来自维基百科

  想直接跑这个基准的可以在我的 Github 里找笔记本。用于该基准的数据集是乳腺癌数据集,它很小,但众所周知。你可以用其他数据集做实验,看看实证结果是否保持不变,我怀疑会的。

  线性 SVM vs 线性核 SVMPCA vs 线性核 PCAK-means vs 内核 K-meansPDF vs KDE (高斯)vs 高斯 KDE

  这种比较是双重的,一次是“适合”,另一次是“预测”或“转换”。请注意,我找不到概率密度函数(PDF)的等效转换方法。支持向量机(SVM)、主成分分析(PCA)、核密度估计(KDE)和 K-means 是众所周知的,并且具有相关的功能,对于核-K-means,我必须查看一个名为 Tslearn 的外部包。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Table 1: Running time for ‘fit’

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Table 2: Running time for ‘predict’ or ‘transform’

  这两种类型之间似乎有很大的差异,对于“fit”(表 1),值得注意的是线性 SVM 比它的内核对应物快两倍,PCA 快大约 30 倍,K-means 快大约 40 倍。对于“预测”(表 2)或“转换”,我们看到的是相同的画面,但比例不同。速度差异可能有多种原因。如果你感兴趣的话,值得检查一下每个算法的实现和时间复杂度,这里没有涉及。

  除非你真的需要某个算法的内核版本,否则应该首先考虑非内核版本。值得注意的是,最快的版本存在于 Sklearn 中,这意味着您不需要查看其他包。

  Ori Cohen 博士拥有计算机科学博士学位,专注于机器学习。他领导着 Zencity.io 的研究团队,试图积极影响市民的生活。

  原文:https://towardsdatascience.com/a-sense-of-purpose-enables-better-human-robot-collaboration-fbe64d0ae913?source=collection_archive———23———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  那是 1954 年。两个美国人,发明家乔治·德沃尔和企业家约瑟夫·恩格尔伯格在一个鸡尾酒会上讨论他们最喜欢的科幻小说作家。迪沃最近在专利局提交了他的最新想法,第一个通用自动化或Unimate*,用机器人机器取代工厂工人的早期努力。他的创造性天才已经诞生了现代世界的两个最早的技术奇迹:一个是带有光电管和真空管的自动门幻影门卫*,另一个是根据需求使用微波能量烹饪热狗的机器 Speedy Weeny 。

  Engelberger 发现 Unimate 工业转移机如此引人注目,以至于七年后,专利一获得批准,他就成立了一家公司来发展 Devol 先生的想法。那家公司的名称是 Unimation 公司 。他们的"编程物品传送",后来重新命名为"机械手"最后是"机器人"(人们只能怀疑 Devol 和 Engelberger 是否在那些鸡尾酒会上讨论过艾萨克·阿西莫夫第一次使用术语" 机器人 ")最终作为一个材料处理和焊接的单元进入了全面生产。

  Unimate makes its public debut in London. “Unimate. A machine that can reach up to seven feet and perform a multitude of tasks in the factory or laboratory, as skillfully as a man but without getting tired. It’s controlled by a built-in memory system which you lead just once through the required measurements and it can then repeat it 24 hours a day, week after week”.

  尤尼马特改造并加速了世界各地制造工厂的生产线。通用汽车、克莱斯勒、福特和菲亚特很快认识到了其中的好处,并下了大量订单,帮助这台机器成为了过去 50 年的50 大发明之一。这只是催生一个新产业的种子:商业机器人。随着时间的推移,Unimation Inc .及其唯一的竞争对手俄亥俄州的辛辛那提米拉克龙公司(Cincinnati Milacron Inc .)将会看到几个日本和欧洲竞争对手的崛起,这些竞争对手采用了新的创新技术,如电子微处理器、伺服枪技术和电弧焊。

  然而,世界可能还要再等一会儿才能看到第一个真正协作的机器人(或 cobot ),它于 2008 年安装在 Linatex 。与它的前辈不同,Universal Robot 的 UR5 重量轻,价格便宜,易于设置,可以由未经培训的操作员重新编程。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  The cobot UR5. Image courtesy of Universal Robots.

  “你不需要输入或计算任何东西来让机器人工作。你只需要向它展示动作”。万能机器人。

  Cobots 旨在与人类共享一个工作空间 —这就是为什么 UR5 不需要放在围栏后面,可以与员工一起安全工作的。这与传统工业机器人形成鲜明对比,传统工业机器人通常被锁在笼子里,因为它们的快速移动和笨重的体积会使它们对人类不安全。一旦安装好,工厂里常见的笨重机械臂就很少动了;大多数实际上是用螺栓固定在地板上的。相反,新一代产品更轻,即插即用,并辅以传感器和视觉技术,使工作空间更易于共享。

  尽管 11 年前就推出了 cobots,但 2018 年售出的所有工业机器人中只有不到 5%是协作型的(根据金融时报)。Cobots 可能不是新东西,但是它们仍然有潜力革新生产,特别是对小公司——占全球制造业的 70%。据估计,cobot 市场将从 2018 年的 1 亿多whatsapp的官方下载网址在哪里增长到 2020 年的 30 亿whatsapp的官方下载网址在哪里,因为这些灵活的机器人比传统的工业机器人便宜得多(根据巴克莱资本的数据,平均价格为每台 24,000 whatsapp的官方下载网址在哪里)。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Sawyer™, a high-performance collaborative robot from Rethink Robotics

  预计在未来几年,cobots 在工业环境中的采用将显著增加。但是它们在其他领域的应用情况如何,比如医疗保健?

  在根托夫特的哥本哈根大学医院,cobot UR5 已经被用于优化血液样本的处理和分类,帮助实验室实现在 1 小时内提供 90%以上结果的目标。Universal Robots 的机械臂还被整合到加拿大 Synaptive Medical 公司开发的Modus V、中,通过提供前所未有的患者解剖视图来协助神经外科手术,并以更高的精度执行侵入性更小的手术。这还不是全部。 Cobots 也开始用于其他医疗领域,例如远程呈现、康复、医疗运输和卫生。

  其中一些场景带来了一系列新的挑战,因为它们充满了动态和不可预测的交互,与工业环境中的交互有很大不同。

  例如,一个机器人护士可能被要求帮助一个病人从一个柜子中取出特定的药物。机器人将需要理解病人以任何方式表达的要求,定位橱柜,在房间内导航避开障碍物,打开橱柜,抓住正确的药物并给病人。为了处理物体,机器人需要为某种形状选择正确的抓手,了解不同的材料如何对力做出反应,以及在将它们交给人时协调反馈和联合步骤。在这些类型的互动中,人类自然会监控他们伴侣的节奏和工作量,并相应地调整他们的交接。机器人在执行任务时也需要达到类似的适应性。

  操纵物体包括一系列与感知、控制和协调紧密相连的动作。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Moxi is a hospital robot assistant that helps clinical staff with non-patient-facing tasks like gathering supplies and bringing them to patient rooms, delivering lab samples, fetching items from central supply, and removing soiled linen bags.

  传统上,机器人技术的重点一直是通过两个指标来成功够到和抓住东西:速度和稳定性。这些是物流中特别感兴趣的,并且在很大程度上受益于计算机视觉和机器学习的最新进展。然而,当涉及到在更加灵活、不可预测的环境中与人类互动时,如医院或家中,它们可能不足以决定机器人行动的成功。

  为了让合作机器人有效地导航这些新领域,他们需要了解人们如何与世界互动,这样他们就可以预测对他们的期望。

  作为人类,我们头脑中有一个直观的物理模型。我们能够想象一个物体,以及如果我们通过推、拉、挤等方式与它互动,它会如何表现。这使得我们能够完成难以置信的操控任务,这些任务远远超出了目前机器人的能力范围。

  昂热大学的研究员弗朗索瓦·奥西乌拉克认为“没有任何 意图 我们就无法感知世界”。各种文化的人类**自发且几乎系统地使用工具来改造世界,**创新并远离以前的技术设备。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  An Oldowan chopper, one of the earliest examples of the stone industry. Ethiopia, c. 1.7 million years before our era. Source: Wikipedia CC.

  这种能力根植于我们获得一项技术并将其应用于各种目标的特殊天赋,并且与我们的进化密切相关。大约七百万年前,两足行走将第一批原始人与其余的四足猿分开。我们的手可以自由地操纵物体,因此我们必须创建关于工具及其相关动作的表示。我们的大脑变得非常擅长处理复杂的空间信息,这反过来又导致了抽象和先验的思维。

  不像非人类动物,他们不能理解一个动作的潜在机制,我们可以推断我们学到的与其他情况的关系。一个单一的对象可以在不同的时间提供多种可能性、、取决于、我们追求的目的、。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  A stone axe in various stages of manufacture, from left to right, from the Neolithic settlement of Vinelz on Lake Biel, Switzerland, c. 2700 BC. Wikipedia CC.

  一百年前,w .詹姆斯写道,当我们写字时,**我们看到一张纸作为题字的表面,**但是如果我们需要点火并且没有其他材料可用,那张纸将是可燃材料。这个物品可以是这两个中的任何一个,或者是一个薄的东西,或者是一个碳氢化合物的东西,或者是一个美国的东西,等等,无止境。

  “没有任何一种财产对任何一件事物都是绝对必要的。在一种情况下是一件事物的本质的同一属性,在另一种情况下就变成了一个非常不重要的特征。”詹姆斯,1890 年/2007 年 b,第 333 页。

  我们将对象视为 启示、 处置,需要一个人在场才能实现它们。同样的技术,例如切割动作,可以用来实现几个不同的目标:觅食、狩猎、自卫。同时,使用不同的对象可以实现相同的目标。

  启示使我们能够灵活地与世界互动。它们允许建立目标和实现目标的不同方式。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Human-human and Human-Robot handovers in a household scenario. From “Adaptive Coordination Strategies for Human-Robot Handovers”, Chien-Ming Huang et. al.

  相比之下,大多数机器人系统都是为完成单一任务而设计的。他们通常知道需要与哪些对象进行交互,并以一种预先计划好的方式进行交互。但是在一个开放、动态的世界中,我们无法明确地说出机器人可能面临的所有可能任务的每一个细节。

  将机器人系统集成到这些新环境中需要开发更好的人机交互、感知和协调。一种方法是展示机器人如何,更重要的是为什么,我们操纵物体。

  将我们的一些操纵能力转移给机器人的一个好方法是,当我们在各种场景中使用工具时,让它们观察我们。

  “复杂的观察可以提取适用于新情况的规则,即使是在观察多个人以不同的风格执行相同的任务时。”戈登·程。

  2017 年,来自麻省理工的计算机科学和人工智能实验室(CSAIL)的研究人员开发了 C-LEARN ,这是一个允许非编码者通过提供一些关于通常如何操纵对象的信息来教会机器人一系列任务的系统,然后向机器人展示任务的单个演示。

  “通过将从演示中学习的直观性与运动规划算法的精确性结合起来,这种方法可以帮助机器人完成他们以前无法学习的新型任务,如使用双臂进行多步装配。”麻省理工学院的克劳迪娅·佩雷斯·达皮诺。

  麻省理工学院的系统将任务的演示与机器人已经知道的世界联系起来。首先,关于如何到达和抓住具有不同约束的各种物体的信息的**知识库被加载到机器人上。然后,操作员使用一系列被称为“关键帧”的相关时刻来执行任务。通过将这些关键帧与知识库中的不同情况进行匹配,机器人可以自动建议运动计划,准确率达到 87.5%。**

  通过试图推断运动背后的原理,这些类型的系统比那些只是试图模仿正在演示的东西的系统灵活得多,并且可以证明在时间敏感和危险的情况下是重要的。该系统实际上是用 Optimus 测试的,这是一个为拆弹而设计的双臂机器人。该机器被教会执行诸如开门、运输物品和从集装箱中提取物品等任务,结果非常有效,以至于它学到的技能可以无缝转移到 CSAIL 的 6 英尺高、400 磅重的人形机器人 Atlas 。

  虽然 C-LEARN 还不能处理某些高级任务,如避免碰撞或为给定任务规划不同的步骤序列,但从人类学习中获得的更多见解能够为机器人提供更广泛的能力只是时间问题。

  麻省理工学院 CSAIL 的团队并不是唯一一个试图解决这个问题的团队。

  来自慕尼黑工业大学的 Karinne Ramirez-Amaro 的团队一直在研究如何使用语义表征来获得和确定对示威者行为的更高层次的理解。这将允许机器人根据人类的期望预测下一个可能的运动 。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  The iCub robot, an open-source child-size humanoid robot capable of crawling, grasping objects, and interacting with people.

  Ramirez-Amaro 的框架由三个模块组成:1) 对人体运动和物体属性的观察以准确提取一项任务最相关的方面;2) 通过分层解释人的行为并生成语义规则来推断目标;和 3) 模仿/再现最佳动作以达到同样的目的。

  该团队用一组真实世界的场景和 iCub 测试了他们的系统,这是在 IIT 开发的人形机器人,是欧盟项目 RobotCub 的一部分。

  测试的场景是做煎饼,做三明治,和摆桌子。

  1。观察和提取任务的相关方面

  iCub 被训练做的第一件事是分割一系列描述简单人类动作的视频。这是在运行中完成的,包括正常速度和快速速度,使用了基于颜色的跟踪算法和 OpenCV 库。手的位置,它的运动和速度,以及某些物体的属性都以令人印象深刻的 95% 精度确定。

  2。推断演示者的目标

  下一个模块使用识别出的手部动作和物体属性来寻找它们之间有意义的关系,并推断出活动、、,例如到达、拿取、切割、浇注、释放等。这是通过使用一系列低级抽象(广义运动,如移动、不移动、或工具使用)和高级抽象(更复杂的人类行为,如*闲置、伸手、拿取、切割、倾倒、将某物放在某处、释放、*等)来完成的。)

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Method for inferring human activities. First, the input video is segmented into hand motions and two object properties. Next, the rules are computed to infer human activities. Ramirez-Amaro.

  3。再现实现目标的最佳动作

  最后,使用在线运动原语选择一个执行计划,这样机器人可以重现步骤二中推断的活动。iCub被证明是一个优秀的测试平台,因为它有 53 个自由度。

  结果

  实验证明机器人可以实时实现对各种场景任务的高精度识别和模仿,甚至包括不同条件和用户的未知场景。提取的语义表示允许构建人类活动的机器/人类可理解的描述,例如:

  如果手(移动)& OBjectInHand(非)& ObjectActedOn(某物)→活动(到达)

  如果手(Not_Move) & ObjectInHand(某物)→活动(取)

  如果手(移动)和物体手(某物)→活动(把某物放在某处

  结果表明,该系统可以处理新的(粒度)行为和重用模型的挑战。因为分割是通过基本的视觉过程完成的,所以这项研究可以通过包括更复杂的物体识别软件来扩大规模。研究人员认为,下一步将是通过整合基于知识的本体 和推理引擎来计算对象和活动之间的新关系并控制决策树的增长,来**按需学习行为。****

  我们不能保证手动存储在系统中的知识在每一个可能的不同场景下都有效,这是灵活协作机器人的主要挑战之一。为了与人类进行更自然的互动,我们需要以有意义的方式发展机器人的知识库**。一个让我们离这个目标更近一步的项目是 KnowRob 。**

  KnowRob 是一个开源系统,目前正在几个机器人上使用,执行复杂的物体操纵任务。KnowRob 不是处理原始的高分辨率连续数据,而是提供按需抽象或符号视图。它的查询将所有抽象层次的推理与一个浅层知识库结合起来,这个浅层知识库作为推理算法的集成层**。**

  Daniel Beßler talks about KnowRob 2.0, a 2nd Generation Knowledge Processing Framework for Cognition-Enabled Robotic Agents.

  这种通用的本体,在表现层次上有点像“胶水”,可以用添加特定领域知识或特殊用途推理方法的微观理论来扩展。为了促进这一点,所有模块共享相同的语言,即 Web 本体语言(OWL)。

  KnowRob 可以表示对象和空间信息、事件和动作,对于我们关于目标和目的的分析特别有用,动作对对象的影响。例如,机器人可以搜索一个将一个设备从 设备状态关 到设备状态开 的 动作,并将获得动作类TurningOnPoweredDevice**。******

  类:TurningOnPoweredDevice

  子类 :

  控制物理设备

  状态对象将某些物理设备

  从状态值 DeviceStateOff

  更改为状态值 DeviceStateOn

  […]

  为了补充这一点,还有程序性的投射规则,用于计算在执行一个动作之后,具体的世界状态将如何变化。

  像 KnowRob 这样的知识系统可以帮助服务机器人处理通常肤浅和符号化的指令,填补空白以生成执行所需的详细、基础和实值信息。由于 KnowRob 是开源的,由第三方开发的扩展包括关于工业装配任务、高山环境中的搜索和救援以及水下机器人等方面的知识。

  随着机器人工厂工人、同事和家庭助理机器人向开放环境和更复杂的任务发展,他们的知识处理系统需要应对来自动态的、以人为中心的世界的挑战*。***

  灵活、智能 cobots 的优点不限于精度、可重复性或遥操作。此时此刻,在加利福尼亚州的帕萨迪纳,翻转汉堡的机器人每天从厨房里为 300 份订单服务,厨房热得让人无法忍受,大多数员工在几周内就辞职了。现在,他们可以自由地专注于接待客户。

  Riken and Sumitomo Riko labs in Japan have created a robotic nurse (Bear) as the country prepares for a growing elderly population.

  在医院里,机器人正在准备载玻片和装载离心机,运送物资和给人做手术。此外,他们开始照顾任务,如移动病人(见视频中的熊机器人),提供标准化的症状管理方法,甚至对抗孤独和无所事事(如帕罗、佩珀和丁索夫)。这些活动可以极大地受益于对上下文的理解以及对词语和情感的解读。

  为了在无限可变数量的设置中与机器人合作,我们需要不同的集成知识领域、来源和推理机制的组合。

  *前面提到的第二代 KnowRob 将包括 叙事使能的情景记忆 *,通过在具有物理和几乎照片般逼真的渲染的虚拟环境中重用组件来获取经验知识的能力。系统将能够得出关于什么动作参数化在现实世界中可能成功的结论。

  这带来了一个有趣的结尾问题:如果机器人将物体视为启示,帮助我们人类不断发明新的做事方式,那么不难想象他们可以提出全新的更好的做事方式。我们得等着看那些是什么。

  本文原载于we volver:https://www . we volver . com/article/a . sense . of . purpose . enables . better . human robot . collaboration

  原文:https://towardsdatascience.com/a-serverless-pipeline-to-retrieve-validate-and-immerse-the-data-to-azure-sql-server-from-twitter-1a5757b39bc8?source=collection_archive———24———————–

  给定一个 twitter ID,获得最少 100 个关注者(修改后保持在 Azure 功能 5-10 分钟超时时间),每个关注者收集最多 200 条推文。

  将元组(twitterID,followerID,tweetID,tweet)存储到 Azure SQL 服务管理的表中。

  1)您必须创建并设置一个免费的 Azure 帐户。

  2)在 Azure 账户中创建一个数据库和一个表。用 API 创建一个 twitter 账户

  4)。给定 twitter ID,收集该 twitter ID 的追随者 ID

  4.1)为每个追随者 ID 收集多达 200 条原始推文

  — —不包括转发、消息

  5)将其存储到 Azure 表中

  6)编写一个客户端来查询 Azure 表。

  6.1)列出给定 twitter ID 的所有推文

  6.2)列出给定 twitter ID 的关注者 ID

  计算机编程语言Twython 库提取 tweeter 数据Azure 函数Azure SQL server

  从本地主机以及 Azure 无服务器和 Azure 数据块使用 Azure SQL Server。Azure 功能。学会了使用 twython 库来提取推文。

  创建了一个 Tweeter 开发者账号。编写了一个 python 脚本来提取给定用户 ID 的追随者 ID。

  Code for getting followers ID for a Given User ID

  3.编写了一个 python 脚本,获取上一步提取的关注者 ID,并为每个人检索最多 200 条推文。

  Code for getting followers Tweet

  4.创建了 Azure SQL 数据库。

  5.编写了一个 python 脚本来获取步骤 3 的结果,并将其保存到 Azure SQL server。

  Code to Save extracted data to Azure SQL server

  6.我创建了一个 Azure 函数项目和 func。修改脚本以处理 Azure 函数。

  7.出于以下目的,再创建 2 个客户端函数。

  列出给定 twitter ID 的所有推文

  List all tweets for a given twitter ID

  列出给定 twitter ID 的关注者 ID

  List follower ID for a given twitter ID

  (这些是模板,供大家过目。我已经关闭了这些链接的激活,这样它们就不会工作了。很遗憾,我并不富有😢 😭。

  任务 1:保存关注者的 ID 和他们各自的推文。(放在 MyFunctionProj 目录的 TweetWork 中)

  https://demo.azurewebsites.net/api/Tweetwork比如 https://demo.azurewebsites.net/api/Tweetwork?name=25073877 的

  任务 2:列出给定 twitter ID 的所有推文。(放在 MyFunctionProj 目录下的 Client1BigData 中)

  https://demo.azurewebsites.net/api/Client1BigData?code = nyhlelxnjbz 08 qbutk 1 jkbaylvdje 9 vaknx 09 cn 1 vrg = =例如 https://demo.azurewebsites.net/api/Client1BigData?的code = nyhlelxnjbz 08 qbutk 1 jkbaylvdje 9 vak 9 cn 1 vrg = =&name = 979178022367461376
whatsapp的中文版下载的地方在哪里
  任务 3:列出给定 twitter ID 的关注者 ID。(放在 MyFunctionProj 目录下的 Client2BigData 中)

  【https://demo.azurewebsites.net/api/Client1BigData? code = nyhlelxnjbz 08 qbutk 1 jkbaylvdje 9 vak 9 cn 1 vrg = =例如https://demo.azurewebsites.net/api/client2bigdata?code = 2MO/r/wvk 5 jqfsbq 1 kka 0 hdwf 1 cfdeyzjpenponkvgis 57 waw = =&name = 25073877

  如果你在 Visual studio 中使用 Mac 调试 Azure 函数,这是非常困难的,因为有时 Visual Studio 不会创建一个确切的扩展/帮助文件来进行调试。我个人觉得,对我来说,一点效果都没有。每次我想检查它的时候,我不得不把功能推到在线。但是我现在找到了解决办法。里面有三个文件。vscode 有时会出错。我会提到他们,应该是什么样子。即,

  task.json

  task.json

  2。launch.json

  launch.json

  3。settings.json

  settings.json

  与 AWS lambda 相比,Azure Functions 有其局限性。当我开始写它的时候,我以为它会和 AWS lambda 一样,因为两者都是无服务器的,但是实现它非常困难,原因有二。第一,Azure 功能不允许在线代码编辑,这是 AWS 提供的。

  如果我是为一家公司做这个,并且有足够的资源,我会选择 Azure function Dedicated App Plan,它的最大时间限制是 30 分钟。

  github:https://github . com/ksw 25/Extract-Data-From-Tweeter-And-Save-In-Azure-SQL-Using-Azure-server less

  这是我在 NYU 坦登工程学院完成的 CS6513 大数据工具和技术的一部分我感谢 IBM Power Systems 学术计划对计算资源的支持。我感谢 MSFT Azure 为学生提供免费的 Azure 访问。

  问候,

  卡兰普里特·辛格·瓦德瓦

  硕士在计算机科学| 2020 级

  纽约大学坦登工程学院

  研究生助教—计算机视觉|纽约大学

  karan.wadhwa@nyu.edu|(929)287–9899 |LinkedIn|Github

  原文:https://towardsdatascience.com/a-shallow-dive-into-bitcoins-blockchain-part-1-consensus-48f62355681b?source=collection_archive———35———————–

  从自然物体到硬币,到黄金支持的纸币,再到纸币,再到数字货币。无论是哪种形式,货币都是一种交换手段,一种支付方式,一种价值标准,一种财富储存手段。

  如今,大多数交易都变得数字化了。例如,当你用你的卡从一个商人那里买东西时会发生这样的事情:

  1.通过将您的 PIN 输入到商家的机器中,您将获得授权

  2.交易和卡数据被发送到商家的银行

  3.商户银行(下图中的收单机构)将详细信息转发给你的卡组织(Visa、Mastercard 等)。)

  4.然后卡组织联系您的银行(下图中的发卡银行)以确保卡是有效的并且里面有钱

  5.一旦商家收到 OK 信息,他们就可以给你商品/服务

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Acquirer is Merchant’s Bank. Issuing Bank is the Customer’s bank. Source

  6.在一天结束时,招商银行将所有有效的交易数据发送给卡组织(例如 Visa)进行结算

  7.卡组织将所有商户的交易转发给客户的银行(发卡银行)

  8.客户的银行需要将资金转移到卡组织

  9.卡组织支付给商户银行的费用减去交换费

  10.商户银行将资金存入商户账户,扣除手续费

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Acquirer is Merchant’s Bank. Issuing Bank is the Customer’s bank. Source

  卡组织充当金融机构的中间人。他们正在促进人们银行账户之间的交易。这就像他们在银行之上,给你一张卡就能安全存取你的资金。

  然而,这篇文章分析了我们如何在自己之间安全地交易。

  让我们试着建立一个不依赖于任何组织的系统。

  第一种方法是建立一个公共场所,保存我们之间发生的所有交易。例如,某处公共服务器上的数据库分类帐。因此,无论何时发生交易,我们都会将其保存在数据库中。数字钱包会自动将交易细节发送到服务器。

  但是您可以很快看到这种方法带来的问题。谁将负责这样的数据库服务器?有权访问服务器的用户将有权随意添加、编辑或删除交易。

  为了消除这种信任,我们可以让网络的每个参与者在他们的机器上保留一份数据库分类帐的副本。

  但这里有另一个问题。参与者如何保持这个分类账同步?你怎么能让每个人都同意同一个账本呢?

  为了应对这一挑战,使用一种被称为工作证明(PoW)的共识算法来替代中央机构。

  旁注:

  战俘的术语是“采矿”。采矿的目的不是为了发现新的硬币,而是为了保证区块链的安全。

  基本思想是信任对其进行了最多计算工作的分类帐。

  请记住,从参与者的角度来看,他不能相信任何人!

  在whatsapp中文版的下载地方是多少网络上,矿工将交易集中在一个区块中,并向其余参与者广播。然而,并不是所有的参与者都需要创建积木(成为一名矿工)。参与者也可以只听和验证新交易的有效性;他们感兴趣的交易。

  例如,手机上的钱包应用程序也可以参与,但不一定支持完整挖掘参与者运行的功能(这包括验证和广播所有新创建的交易和块,创建新块等)。这将需要大量的计算能力和千兆字节的空间。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Alice, running a full mining node, just found a new block and broadcasted it to the rest of the network. Bob, being a participant in the network, listening for new blocks of transactions from the miners, receives the newly created block. Source

  假设你是这个网络的参与者。你怎么能相信矿工会做好他们的工作?换句话说,确保您从他们那里收到的事务块是有效的,同时,其他人也记录了相同的事务块。

  你信任矿工的方式是通过验证他们在创建这些块时投入了一些计算工作(PoW)。这个挖掘过程将在后面更详细地讨论。

  糟糕的演员也可以付出一些努力,给你盖帽,对吗?

  正确!但是这里有一个警告:

  因为为这些块创建 PoW 需要时间和精力,所以不良行为者不能轻易欺骗整个网络。

  假设您收到一个块,其中包含一个坏的矿工事务。过了一会儿,你听到另一个来自一个好矿工的阻塞,但是有一个冲突的事务。从你的角度来看,你真的不知道两个街区该相信哪一个。

  关键点是保留两个块并创建两个单独的区块链(一个分叉事件)并继续监听新的块;连同他们力量。

  有关更多详细信息,请参见该动画的标题:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  In this example, Alice is trying to cheat the network by trying to convince it that her version of the chain is the valid one (and thus the transactions in it). Bob, who is a participant in the network, is trying to understand which blockchain is the correct one. Source

  叉子不一定是坏事。网络里每天都在发生。这是全球网络传输延迟的自然结果。即两个不同的挖掘器同时发现并发送一个块(当创建一个块时,每个挖掘器将包括不同的事务或不同顺序的事务,这可能发生在两个不同的挖掘器同时发现它们的块的随机数的情况下)。但只要所有节点都等待并选择最长的链,网络最终会收敛到一致的状态(通过网络的共识)。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Visualization of a blockchain fork event: two blocks propagate at the same time. Some nodes receive block “triangle” first and some receive block “upside-down triangle” first. Source

  因此,如果坏矿工的区块最终没有做到这一点,并说服网络的其余部分,所有的努力都浪费了,在他们用来制作它的资源中。这也是阻止坏演员作弊的因素之一。

  为了理解这一点,让我们先解释一下加密哈希函数。

  首先要注意的是,数字世界中的一切都可以归结为比特(0 和 1)。

  一个加密散列函数是一个数学函数,它接受任何大小的位(这是输入消息——文本、图像、数字),并输出固定长度的 256 位。这个输出被称为消息的哈希值、摘要或简称为哈希。

  加密哈希函数具有以下属性:

  在不改变哈希值的情况下修改消息是不可行的。如果您稍微改变输入消息,即使是一位,产生的哈希值也会完全改变!不可能找到两个具有相同哈希值的不同消息。相同的输入消息(比特组)将总是给出相同的散列值(256 比特),而两个不同的消息(比特组)将给出不同的散列值(256 比特)。从消息的哈希值生成消息是不可行的。有了 256 位哈希值,您就可以返回并找到用作输入的消息。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Hashing comparison. Note that for readability hexadecimal notation is used for the resulting hash. One hex value represents 4 bits. 64 hex values times 4 bits = 256 bits. Source

  whatsapp中文版的下载地方是多少使用 SHA256 哈希函数。

  这样的函数如何证明参与者确实花费了大量的计算能力?换句话说,我们如何知道一个矿工实际上做了特定事务块所需的工作?

  规则是,挖掘者必须找到一个名为 nonce 的数字,当该数字被添加到事务块中并被散列在一起时,将产生一个 256 位散列(名为块散列),该散列以特定数量的 0 开始。前导 0 的数量由难度等级定义。

  记住,在数字世界里,一切都是用比特来表示的。

  区块链中的每个块包含关于该块的各种信息(交易、创建时间等。).该信息也表示为一组比特。这些位对于每个块都是唯一的,因为它有唯一的创建时间和一组事务。

  对于矿工来说,很难找到额外数量的位( nonce 数),当添加到现有块的位中,并使用 SHA256 哈希函数哈希在一起时,将产生一个具有特定 0 集的哈希值(由难度级别定义)。生成与特定目标匹配的哈希值的唯一方法是反复尝试,随机修改输入(通过尝试不同的随机数),直到所需的哈希值偶然出现。

  花点时间再读一遍。那是工作证明的基石。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Hashing numbers to find the nonce that satisfies the difficulty level. Source

  这个数字(nonce)作为证据,证明为了产生与特定目标匹配的结果散列,做了一定的工作。因此工作证明这个术语。

  使用这种方法的好处是,每个参与者都可以很容易地验证他们做了大量的工作,而不必做同样的努力。拥有 1。块的数据,2。随机数和 3。由此产生的散列,任何人都可以使用相同的函数快速验证其正确性。

  满足难度等级的方块被认为是有效的。

  因此,如果一个坏的参与者将要改变一个事务(实际上是消息中的一些位),那么块散列将会不同,并且很可能不是以所需数量的 0 开始,因此,使该块无效。

  块散列充当数字指纹,或者块标识符。它唯一地标识一个块,并且可以由任何节点通过简单地散列该块的数据(随机数、事务、难度、时间戳等)而独立地导出。).

  我没有提到的一件事是,一个糟糕的矿工不可能改变任何交易。还有一点额外的安全性,我将在第 2 部分的 中讨论——事务 。但目前来看,这是理所当然的。

  有了这个额外的安全措施,一个坏矿工只能改变他自己的一个交易。

  因此,为了欺骗网络,他将不得不去链中的特定块(保存他的事务的块)改变对他有利的事务,并重新做寻找满足该块难度级别的块散列的工作。将这样的块传播到网络的其余部分将被认为是完全有效的。

  除非我们再增加一点安全措施。

  所有的块都是相互连接的!通过散列前一个块的散列,而不仅仅是事务、nonce 和时间戳,我们得到了所有块之间的紧密关系。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Blocks’ contents. All transactions (Tx0, Tx1, Tx2, Tx3) can be represented with just one hash number, called the Merkle Root (Tx_Root in the diagram). Source

  所以,如果你要改变任何一个方块,或者试着交换两个方块的顺序,它会改变后面的方块。由于块上的单个更改会更改其哈希,因此它会更改下一个块的哈希,依此类推,使其后的所有块无效。这将需要重做所有的工作,为这些块中的每一个找到一个新的特殊数字,使它们的散列以特定的数字 0 开始。这需要大量的工作!

  附注:

  在撰写本文时,网络的哈希速率约为每秒 65 万亿次哈希。一个坏演员将需要至少有一半来欺骗网络(被称为多数或 51%攻击)。因为攻击者可以比网络的其他部分更快地生成块,所以他可以简单地坚持他的私有分支,直到它变得比诚实网络构建的分支更长。然而,当前网络的散列率使得它在经济上是不可能的(所需的机器和能量花费了数百万whatsapp的官方下载网址在哪里)。而这仅仅是为了改变他的一笔交易。所以,最好值得!

  前面我说过,PoW 是要找到一个特殊的数字(nonce ),以便块的散列以一个特定的数字 0 开始。

  前导 0 越多,挖掘者就越难找到满足该散列的随机数。这是因为可接受的结果散列的范围变小了。

  但是,为什么一开始就让矿工们为难呢?

  目标是将整个网络开采一个区块的难度保持在 10 分钟以内。

  这是快速确认时间(交易结算)和分叉概率之间的设计折衷。更快的封锁时间会使交易清算更快,但会导致更频繁的区块链分叉,而更慢的封锁时间会减少分叉的数量,但会使结算更慢。

  难度参数每 2016 块动态调整,以保持 10 分钟的块间隔目标。因此,公式是,对于每 2016 个区块,计算矿工的平均区块创建时间,如果该时间超过 10 分钟,难度参数将被调整。例如,如果网络平均花费 12.5 分钟建造一个街区(比 10 分钟的目标多 20%),那么对于接下来的 2016 个街区,难度将降低 20%。块创建时间的这一修订遵循了矿工散列能力(本质上是硬件)的改进。

  旁注:

  今天,许多矿工在一个矿池中合作,竞争开采一个区块。他们分担寻找解决方案的工作,分享报酬。这是集中了整个挖掘思想,但它也有一些 优点 。但是,无论如何,随着当前金融机构因内幕交易而受到密切关注,大型矿池也因不当行为而受到关注。任何不当行为都会让他们失去信誉,甚至更糟,失去用户对whatsapp中文版的下载地方是多少的信心,将整个项目推入深渊。这会让他们破产。

  如今,矿池就像一家银行,保护着人们的资金安全。但是,说到底,大多数都是中央集权的公司!😉对等池也存在。但他们是少数。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  有兴趣了解更多信息吗?阅读我的文章 第二部分—交易 了解更多知识。

  在社交媒体上关注我:

  [## Andreas Lymbouras -应用程序开发人员-法国巴黎银行| LinkedIn

  加入 LinkedIn 经验丰富的应用程序开发人员,并展示其在银行业的工作经历。熟练的…

  www.linkedin.com](https://www.linkedin.com/in/andreas-lymbouras-51211246/) [## 安德烈亚斯·林布拉斯(@alymbouras) |推特

  Andreas Lymbouras 的最新推文(@alymbouras)。软件开发商区块链工程师

  twitter.com](https://twitter.com/alymbouras)

  原文:https://towardsdatascience.com/a-shallow-dive-into-bitcoins-blockchain-part-2-transactions-d4ee83067bae?source=collection_archive———14———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  source

  在之前的文章中,我们讨论了whatsapp中文版的下载地方是多少网络中的共识。

  我们说过,有一种额外的安全措施可以防止坏人从别人的钱包里拿走资金。这将在本文中解释。

  资金保存在数字钱包里。或者我应该说通过数字钱包追踪。有一种普遍的误解,认为你的硬币是放在钱包里的。硬币(或者应该说数字)实际上是以交易的形式存入区块链的;数字钱包创造的交易。

  数字钱包不过是一段代码,通过扫描区块链街区内的交易来跟踪和计算所有者的余额。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Transactions are structures within the block structure. The whole chain of blocks is stored on a bitcoin participant’s hard disk.

  钱包的主要功能之一是代表主人签署交易。

  它们有点像真实世界的签名,但更强大。数字签名可以:

  证明账户所有人是唯一授权使用其资金的人授权证明是不可否认的证明交易签署后没有也不能被任何人修改

  为此,网络中的每个帐户所有者都必须创建一个公钥/私钥对。它们被认为是“一对”,因为公钥是从私钥派生出来的。**你的私钥只不过是一个数字!**数字世界中 0-2 ⁵⁶(remember 之间的 256 位数字一切都用位表示。这是一个巨大的数字范围,这使得两个人得到相同的钥匙在统计学上是不可行的(有 10⁷⁷钥匙可用)。

  这些密钥基于具有特殊性质的数学函数:计算它们很容易,但计算它们的倒数却很难。

  公钥是其相关私钥的数学结果。而且即使知道创建它的数学函数,也无法推断出它的私钥。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Your public key is derived from your private key using elliptic curve multiplication. Your address is derived from your public key. Both of those actions are irreversible. Source

  这里值得一提的是,您的whatsapp中文版的下载地方是多少地址是通过使用单向加密哈希从您的公钥中获得的。你的地址是和其他whatsapp中文版的下载地方是多少持有者交易的方式。它只是代表whatsapp中文版的下载地方是多少需要发送到的目的地。

  不过,创建私钥的方式非常重要。你绝不会选择数字 1 作为你的私钥。那太危险了!任何人,使用相同的数学函数,都可以从私钥推断出whatsapp中文版的下载地方是多少的地址。如果那个whatsapp中文版的下载地方是多少地址拥有硬币,它们很容易被盗。

  事实上,如果您运行一个尝试每个数字(私钥)的脚本,从数字 1 数到 100,000,您会发现(在几秒钟内)几十个可用的whatsapp中文版的下载地方是多少地址!为了发现一个地址是否可用(一个在whatsapp中文版的下载地方是多少网络中拥有一些硬币的地址),人们必须遍历整个区块链,如果找到该帐户的引用,嘣!一个人可以用这个弱生成的数字(私钥)从里面偷走所有的硬币。

  实际上,私钥号 1 衍生出来的whatsapp中文版的下载地方是多少地址是可用的:1 ehna 6 q 4 JZ 2 uvnexl 497 me 43 ikxhwf 6 kzm。

  如果你点击这个链接,你会看到进入这个地址的任何东西都会在几秒钟内被撤回!钱一进来,有人就可以快速创建一个交易(使用自己的地址作为目的地),用私钥数字 1 签名,并传播到网络的其余部分!

  太好了!为什么每个人都不这样做呢?

  原因是检查所有可能的私钥号码是一项非常困难的任务。例如,50 台超级计算机需要大约 3×10⁵年的时间(每秒检查一万亿个键!)耗尽整个 2 ⁵⁶密钥空间。

  一些钱包曾经使用人类提供的密码来创建私钥(本质上是数字)。然而,黑客可以很容易地快速检查弱密码或常用密码(这个范围要小得多)。

  私钥被盗(源自弱密码)的帐户示例:

  ASD—1g 4 mt 5 jltrdj 4 hm 6 mkyaqphmzzvoojlfx 3

  cat—162 trprzvdglvnksmoyjsybfytb 4 q 8 TM

  hello—1 hosfymoqteymr7s 3 jddqmqmggoxacbk 37

  密码—16ga 2 uqnf 1 qpauqeeg 7 stcadtduwdyjav

  测试—1 hkqktmpbtzz 8 H5 zqyewybaawelrdexee

  fuckyou—1

  签署交易的过程涉及一个数学函数,该函数既取决于消息(交易细节),也取决于您的私钥。

  sign(消息,私钥)=签名

  结果是一个签名,可以使用您的公钥和消息(交易详细信息)进行验证。

  验证(消息、签名、公钥)=[真或假]

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Verifying digital signatures. Source

  私钥、公钥和签名这三者加在一起在数学上是相关的。

  验证过程毫无疑问地确定交易可能仅来自具有对应于其公钥的私钥的人。因此,接收交易的网络的所有参与者都确信,该交易只能由私钥所有者批准!

  所有者还可以确保没有人能够更改他的交易的签名部分。这是因为一个简单的改变会使他的交易无效,从而被所有网络参与者放弃。

  专注于用于交易的弱随机数生成器,黑客仍然可以获得对地址硬币的控制。

  用于创建消息签名的数学基础使用一个随机数(见下面的公式)。如果相同的随机数被用于签署两个不同的消息(事务),那么某人使用这两个结果签名可以提取私有密钥数。

  生成签名的数学公式是这样计算的:

  s = k-1(Hash(m)+dA * R)mod p

  其中:

  k 是随机数

  R 是从随机数 k

  dA 是签名私钥

  m 是交易数据

  p 是椭圆曲线的素数阶

  人们实际上因为这个随机数的不经意的重复使用而导致资金被盗。

  为了避免这种漏洞,钱包必须遵循行业标准算法,按照 RFC 6979 中的定义,对该随机数进行确定性初始化。

  现在你已经记住了所有必要的细节,让我们来看看交易的过程:

  你的钱包是一个作为用户界面的应用程序。它显示您的余额,并在汇款时请求您的允许。为了做到这一点,它跟踪你的收入和支出交易,总结你的可消费金额,并代表你创建和签署交易。首先,指定whatsapp中文版的下载地方是多少所有者的金额和目的地地址。基于这些信息,你的钱包构建一个交易(按照whatsapp中文版的下载地方是多少协议)并用你的私钥签名。你的钱包开始通过它的直接对等点向whatsapp中文版的下载地方是多少网络广播你的新交易(包含交易细节、签名和公钥),这些对等点将交易传递给它们的对等点,等等。在几秒钟内,整个网络已经验证了你的交易,并将其传递给whatsapp中文版的下载地方是多少网络上的每个其他节点。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Transaction propagation

  4.网络上收到您交易的每个参与者都会检查其有效性。他们检查签名是否正确,是否有任何错误,你是否试图执行双重消费,等等。如果您的交易不符合任何标准,参与者会完全忽略它。否则,参与者会将您的事务保存在一个名为 mempool 的临时内存中。

  5.费用低于 minrelaytxfee 变量(0.00001 whatsapp中文版的下载地方是多少)的交易被视为免费,只有在 mempool 中有空间时才会被中继;否则,它们将被丢弃。如果附加费用小于平均竞争交易费用(通常由你的钱包计算,但你也可以指定费用),矿工/矿池将在创建区块时给予你的交易较低的优先级。

  6.最终,您的交易到达挖掘池和交易接收者的钱包。后者会在他们的钱包里看到新的交易,并无限期地存储它的副本,但它会以零确认的形式出现。挖掘池通过聚合来自内存池的事务来构建候选块。根据你的费用,他们最终会把你的费用包括在未来的费用中。

  7.池将搜索满足块难度级别的随机数的工作分配给它的池矿工。矿工对你的交易一无所知。他们的工作是处理数字,而不是检查块的有效性,因为那是池的任务。

  8.最终,您的事务被包含在一个得到解决的块中。它通过whatsapp中文版的下载地方是多少网络传播,每个人都将其存储到自己的本地区块链(如果有交易冲突,他们将分叉现有的区块链,并保留两个区块链)。现在,您的事务有了一个确认(网络接受的一个有效块)。

  9.块创建过程继续进行,随着越来越多的块建立在包含您的交易的块之上,它会获得更多的确认。当它达到 6 个或更多确认时,它被认为是完全确认的。确认时间越长,通过攻击使交易无效的难度就越大。

  事务是更复杂的结构。他们在幕后看起来非常不同。它们有输入和输出,伴随着锁定和解锁whatsapp中文版的下载地方是多少价值的脚本。

  但那是另一篇文章;对事务的更深入探究。😃

  在社交媒体上关注我:

  [## Andreas Lymbouras -应用程序开发人员-法国巴黎银行| LinkedIn

  加入 LinkedIn 经验丰富的应用程序开发人员,并展示其在银行业的工作经历。熟练的…

  www.linkedin.com](https://www.linkedin.com/in/andreas-lymbouras-51211246/) [## 安德烈亚斯·林布拉斯(@alymbouras) |推特

  Andreas Lymbouras 的最新推文(@alymbouras)。软件开发商区块链工程师

  twitter.com](https://twitter.com/alymbouras)

  原文:https://towardsdatascience.com/a-shiny-web-app-from-lego-truck-trailer-c977015bc6a9?source=collection_archive———20———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  在 2018 年 9 月的中,我用了一个汽车隐喻来解释一个大规模的闪亮应用。RViews 发表了这篇文章。我将用一句话来概括这篇文章。在 R shiny 中构建大型应用程序(卡车)时,有许多事情需要记住。为了在一个应用程序中涵盖所有这些内容,我提供了这个教程。

  您可以在 https://github.com/zappingseb/biowarptruck下找到该应用的所有文件—文件夹:example_packaged

  我在 RViews 上写的文章告诉读者,任何闪亮的应用程序都有可能在某一天变得巨大。从头开始,它必须是精心策划的。此外,应该可以删除或添加应用程序的任何部分。因此它必须是模块化的。每个模块必须像乐高积木一样工作。乐高积木有不同的功能。这些砖块遵循一定的规则,这使得它们彼此粘在一起。这些规则我们称之为标准。像乐高积木一样设计的模块增加了你的灵活性。因此,你的模块的可重用性增加了。当你设置你的应用程序时,你可以添加无限数量的乐高积木。它可以生长。想象像汽车这样的小规模应用。大规模应用是卡车。这篇文章解释了如何建造一辆乐高卡车。

  如果你用乐高组装你的车,更多不同的零件可以让它成为一辆卡车。

  如果你用标准化的模块构建你的应用程序,你可以灵活地插入更多的功能。

  下图解释了模块化闪亮应用的想法。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  你从一个闪亮的核心应用程序开始。把它看成你汽车的底盘。它是由乐高制成的。乐高制成的任何其他部分都可以粘在你的底盘上。这样的部件可以改变其功能。不同的模块将帮助你制造不同的汽车。此外,您希望有一个砖块说明(计划)。这个计划告诉我们该拿走哪些部分,以增加灵活性。砖块说明的背面可以包含相同砖块的不同型号。如果您可以从您的模块构建一个应用程序,您也可以构建一个包含相同模块的不同应用程序。如果你清楚这一点,我们可以开始在 R-shiny 开发我们的应用程序:

  实施规则:

  每个模块是一个 R 包核心 R 包定义了砖块的标准化核心应用是一个基本的闪亮应用砖块指令(计划)文件不在 R 中

  为什么这些规则存在,读了这篇文章就会明白了。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  我们想要构建的应用程序将从一组用户输入中创建不同类型的输出。这些不同的输出将显示在应用程序中。此外,所有输出将进入一个 PDF 文件。该示例将包括绘图模块中的两个绘图和表格模块中的一个表格。由于每个模块都是一个 R 包,您可以想象逐步添加更多的 R 包。在 shiny 中,很多输出都是可能的。这个应用程序的主要特点是可以添加越来越多的模块。更多的模块不会搞砸 PDF 报告功能或查看功能。在这个应用程序中,模块根本不交互。

  核心包包含模块必须遵循的结构,以适应核心应用程序。有两种结构我们将定义为 R-S4 类。一个表示模块,另一个表示这些模块中的输出元素。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Class diagram of the core application: The left side shows the reports. The app can generate each of those. Each contains a list of elements to go into the report (plots). The right-hand side contains the class definition of such elements. Each element is of kind AnyPlot. This class contains a call (plot_element) that produces the element upon calling evalElement.

  对于任务一,我们称这个对象(类)为报表。报告是我们在核心应用程序中定义的主要模块。它包含:

  此外,Report 类还带有一些生成漂亮输出的功能。此外,它允许创建 PDF 报告。这些功能包含在方法 shinyElement()和 pdfElement()中。在 R-S4 中,这看起来像这样:

  现在我们还要定义,如何构造这样的每个元素。因此,我们定义了一个类 AnyPlot,它携带一个表达式,因为它是唯一的槽。方法将计算这个表达式。方法创建一个可以输出到 PDF 的输出。通过调用创建一个 PlotOutput。方法将表达式写入日志文件。 R-S4 代码显示如下:

  为了使这个例子简单,核心应用程序将包括所有的输入。这个应用程序的输出将是模块化的。核心应用程序必须完成以下任务:

  有一个显示模块的容器阅读计划—添加容器包括将模块打印成 PDF 的按钮想象一下还有一个按钮打印模块来”。png“,”。jpg“,”。xlsx"包括输入

  对于任务一,我们使用给定对象的方法,并将其插入到任何输出中。我为每个模块决定了一个选项卡输出。因此每个模块都在不同的选项卡中呈现。

  现在,应用程序的最难部分来了。正如我所说,我想增加两个模块。一个有图,一个有表。计划(config.xml)文件必须包含这些信息。所以我把它作为一个计划文件:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Construction plan of the web App

  你可以看到我有两个模块。每个模块都有一个包。在这个包中,一个类定义了(参见模块包一节)输出。这个班是我们报班的子班。

  该模块在我们的应用程序中显示为一个选项卡。我们将一步一步地完成这个过程。首先,我们需要一个函数来加载每个模块的包:

  其次,我们需要一个函数来从模块的信息中生成一个选项卡:

  现在我们有了这两个函数,我们可以迭代 XML 文件并构建我们的应用程序。首先,我们需要一个像这样的 UI 中的。之后,我们可以将应用程序的配置读入。因此我们使用功能。函数让我们遍历 XML (config.xml)的每个节点并执行这些任务。

  现在,每个模块都以静态方式加载到应用程序中。下一部分将讨论如何使其具有反应性。

  对于面板的动态渲染,有必要知道一些输入。首先是用户选择的选项卡。变量定义了选择的选项卡。此外,我们闪亮的应用程序的输出必须通过另一个输入更新,。因此,在更改选项卡或更改时,我们需要调用一个事件。这个事件将调用我们的 S4 对象的构造函数。在此之后,方法呈现输出。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  The module class gets reconstructed up on changes in the inputobs

  reactive 是一个可以调用我们 Report 对象的构造函数的函数。对和使用功能,我们称之为反应式。这允许对用户输入做出反应。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Adding a PDF render button to enable the download of PDF files.

  函数将 S4 对象渲染为 PDF 文件。如果这样做很好,PDF 元素加起来就是下载按钮。

  一个额外的标签检查 PDF 渲染是否成功。

  我们完成了核心应用程序。可以在这里找到 app:app。R 还有这里的核心包:核心。

  最后一步是把整辆卡车组装起来。

  这两个模块包现在将包含两个类。两者都必须是类 Report 的子类。这些类中的每个元素必须是类的子类。下图中的红砖代表报告,黄砖代表任何地块。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Final app: The truck consists of a core app with a PlotReport and a TableReport. These consist of three AnyPlot elements that the trailer of the truck carries.

  第一个模块包将生成散点图和直方图。两者都是类定义中的 AnyPlot 的子元素。是该包中报表的类。它在槽中包含了这两个图。有关这些类的构造函数,请参见下面的代码。

  表格包遵循与地块包相同的规则。主要区别在于槽内只有一个元素。这个元素不是情节。这就是为什么它包含一个调用作为它的表达式。

  为了使内部的调用闪亮,我们必须重写方法。我们将返回一个输出,而不是返回一个输出。此外,方法必须返回一个输出。

  打包每个模块的一个主要优点是依赖关系的定义。描述文件指定了模块包的所有依赖关系。例如,表格模块需要包。核心 app 包需要。app 不需要额外的调用。任何同事都可以安装所有依赖项

  现在,您必须有工具来开始构建自己的大型闪亮应用程序。使用包将应用模块化。使用 S4 或任何其他面向对象的 R 风格将其标准化。使用 XML 或 JSON 文档设置应用程序。你可以走了。在一个目录中设置核心包和模块包。你可以用 devtools 加载它们,并开始构建你的闪亮的文件。现在,您可以构建自己的应用程序来交换模块包。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  像每个孩子一样,你现在可以尽情地玩你的卡车了,你可以走了。我不能告诉你是建造更有趣还是滚动更有趣。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  亲爱的读者:写下我在构建模块化闪亮应用程序方面的工作总是令人愉快的。感谢你一直读到这篇文章的结尾。如果你喜欢这篇文章,你可以在 中 或者在github上为它鼓掌。如有任何意见,请在此留言或在我的 LinkedIn 个人资料上留言http://linkedin.com/in/zappingseb.

  如何在闪亮的应用中构建自定义输入如何让人们在一小时内做好准备教程:可视化活检数据的应用

  原文:https://towardsdatascience.com/a-short-history-of-convolutional-neural-networks-7032e241c483?source=collection_archive———5———————–

  卷积神经网络,简称 CNN,构成了许多现代计算机视觉系统的主干。这篇文章将描述 CNN 的起源,从 20 世纪 50 年代的生物实验开始。

  简单和复杂细胞

  1959 年,大卫·胡贝尔和托尔斯滕·威塞尔描述了人类视觉皮层中的“简单细胞”和“复杂细胞”。他们提出两种细胞都用于模式识别。一个“简单单元格响应特定方向的边缘和条,例如这个图像:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  一个“复杂单元也对特定方向的边缘和条做出响应,但它与简单单元的不同之处在于,这些边缘和条可以在场景中四处移动,并且该单元仍然会做出响应。例如,简单的单元格可能只响应图像底部的水平条,而复杂的单元格可能响应图像底部、中间或顶部的水平条。复杂细胞的这种特性被称为“空间不变性”

  本文中的图 1 显示了简单细胞和复杂细胞之间的区别。

  Hubel 和 Wiesel 在 1962 年提出,复杂细胞通过“求和”几个简单细胞的输出来实现空间不变性,这些简单细胞都倾向于相同的方向(例如水平条)但不同的感受野(例如图像的底部、中部或顶部)。通过从一群简单的细胞奴才那里收集信息,复杂细胞可以对任何地方出现的横条做出反应。

  这个概念——简单的检测器可以被“相加”以创建更复杂的检测器——在人类视觉系统中随处可见,也是卷积神经网络模型的基本基础。

  (旁注:当这一概念走上极端时,你会得到“祖母细胞”:即在你大脑的某个地方有一个单一神经元,专门对你祖母的视线做出反应。)

  大脑皮层

  20 世纪 80 年代,Kunihiko Fukushima 博士受到 Hubel 和 Wiesel 关于简单和复杂细胞的工作的启发,提出了“ neocognitron ”模型(原文:https://www.rctn.org/bruno/public/papers/Fukushima1980.pdf)。neocognitron 模型包括称为“S 细胞”和“C 细胞”的组件这些不是生物细胞,而是数学运算。“S 细胞”位于模型的第一层,并与位于模型第二层的“C 细胞”相连。总体想法是捕捉“简单到复杂”的概念,并将其转化为视觉模式识别的计算模型。

  用于手写识别的卷积神经网络

  现代卷积神经网络(CNN)的第一项工作发生在 20 世纪 90 年代,受到 neocognitron 的启发。Yann LeCun 等人在他们的论文“Gradient-Based Learning Applied to Document Recognition”(现在被引用了 17,588 次)中证明了一种将简单特征聚合成逐渐更复杂特征的 CNN 模型可以成功地用于手写字符识别。

  具体来说,LeCun 等人使用 MNIST 手写数字数据库训练了一个 CNN。MNIST 是一个现在著名的数据集,它包括手写数字的图像,这些图像与它们的真实标签 0、1、2、3、4、5、6、7、8 或 9 配对。CNN 模型通过给它一个示例图像来训练 MNIST,要求它预测图像中显示的是什么数字,然后根据它是否正确预测了数字身份来更新模型的设置。最先进的 CNN 模型今天可以在 MNIST 数字分类上达到近乎完美的准确度。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  来自 MNIST 数据集的手写数字示例。

  这项工作的一个直接结果是你的邮件现在由机器分类,使用自动手写识别技术读取地址。

  卷积神经网络看到一切

  在整个 20 世纪 90 年代和 21 世纪初,研究人员对 CNN 模型进行了进一步的研究。大约在 2012 年,在一家名为 AlexNet 的 CNN 在 ImageNet 挑战赛中实现了最先进的图片标签性能后,CNN 的受欢迎程度大幅上升(这种情况一直持续到今天)。Alex Krizhevsky 等人发表的论文“ ImageNet 分类与深度卷积神经网络”描述了获胜的 AlexNet 模型;这篇论文被引用了 38007 次。

  与 MNIST 类似, ImageNet 是一个公开的、免费提供的图像及其相应真实标签的数据集。ImageNet 关注的不是标有 0-9 的手写数字,而是“自然图像”,或世界的图片,上面标有各种描述符,包括“两栖动物”、“家具”和“人”。这些标签是通过大量的人工努力获得的(即人工标记——要求某人为每张图片写下“这是什么图片”)。ImageNet 目前包含 14,197,122 张图像。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  来自 ImageNet 数据集的示例图像。

  在过去的几年中,CNN 在描述自然图像(包括 ImageNet、 CIFAR-10、CIFAR-100 和 VisualGenome )、执行面部识别(包括 CelebA )和分析医学图像(包括胸部 x 光、皮肤病变照片和组织病理学切片)方面取得了出色的表现。这个名为“网络上的 CV 数据集”的网站有一个超过五十个带标签的图像数据集的广泛列表,研究人员可以用它来训练和评估 CNN 和其他类型的计算机视觉模型。公司正在开发许多令人兴奋的应用程序,包括 Seeing AI ,这是一款智能手机应用程序,可以向盲人口头描述周围环境。

  CNN 与人类视觉?

  大众媒体经常谈论神经网络模型如何“直接受到人脑的启发”。在某种意义上,这是真的,因为 CNN 和人类视觉系统都遵循“简单到复杂”的层次结构。但是,实际实现完全不同;大脑是用细胞构建的,神经网络是用数学运算构建的。

  这个视频,Jason Yosinski 的“深度可视化工具箱”绝对值得一看,可以更好地理解 CNN 如何获取简单的特征,并使用它们来检测复杂的特征,如人脸或书籍。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  结论

  在过去的几十年里,计算机视觉取得了长足的进步。想象未来会有哪些新的发展改变该领域,并推动自动化放射学图像解释和无人驾驶汽车等技术,这是令人兴奋的。

  关于特色图片

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  特色图片展示了一只西部草地鹨。有各种各样的鸟类数据集可用于训练 CNN 自动识别鸟类物种,包括加州理工学院-加州大学圣迭戈分校鸟类 200 数据集,其中包括 6033 张显示 200 种鸟类的图像。同样,自然学家正在建立一个众包自动物种识别系统,包括鸟类和许多其他物种。这种系统也许有一天会在保护生物学中大有用处。

  原载于 2019 年 4 月 13 日http://glassboxmedicine.com。

  原文:https://towardsdatascience.com/a-short-journey-of-outlier-detection-bdf143464a92?source=collection_archive———8———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Source: Pexels by Pedro Figueras

  目标单变量异常值检测线性回归模型的异常值检测

  根据我们工作的内容和当前使用的模型,有很多方法可以捕捉异常数据。当我们需要精确的统计数据和模型时,注意异常数据是至关重要的,因为这些数据,如异常值,会极大地影响均值、标准差和方差。在本文中,我们将体验三种类型的技术:

  对于带有 Z-socre 和 IQR 的单变量对于带有简单杠杆统计、库克距离和 DFFITS 的线性回归模型,以及对于具有稳健协方差、局部异常因子和隔离森林的双变量和高维

  我们的主要目标是获得更深一层的理解,而不仅仅是通过阅读文章获得想法,并从实验中获得洞察力。我们还寻求实现它们的能力,这样我们就可以在需要时优化我们的算法,这样我们就可以在使用开源软件时处理意想不到的问题。

  在处理单变量时,我们的方法很简单。因为我们有高中的数学知识,我们已经知道如何处理异常值。

  第一种方法是 IOR(四分位间距)。设 X 为一元变量,一组值,s.t. X ={0,1,2,3,4,5, 6 ,7,8,9,10,11,20}。用 X ,我们简单算一下 Q1、Q2、Q3。在这种情况下,Q1=3,Q2(中位数)=6,Q3=9,IQR 是 Q3-Q1=6。异常值定义为

  Q1-1.5IQR* 或 Q3+1.5IQR* ,

  因此,在这种情况下,如果 a 值小于-6 或大于 18,则为异常值。在数据集 X 中,20 是离群值。

  使用 Z 分数来检测这种异常值也很简单。与 IQR 的不同之处在于首先将原始数据转换成 Z 值。z 分数定义为

  z=(x-μ)/ σ,

  其中 x 是原始数据, μ 只是xσ是 x 的标准差。异常值也被定义为

  Z 值小于 1.0 或大于 3.0 的 x

  在代码以下的数据样本中,30 是一个异常值。

  这是异常检测和单变量检测。Z 分数的概念值得注意,因为它用于计算 Mahalanobis 距离whatsapp的官方下载的地址在哪里。此外,在比较稳健协方差作为异常检测的性能时,马氏距离是一个基本概念。

  接下来我们将看看线性回归模型的异常检测技术,具体来说,杠杆统计、库克距离和 DFFITS 。他们的目的是相同的,然而他们的方法是不同的。

  杠杆统计是对数据与他人的距离/影响力的诊断。这里我们要观察杠杆 点,它是对回归模型没有影响,但对数据集的均值、方差有影响的数据点,以及影响点,它是对两者都有影响的数据点。我们将测量每个点的观测影响,并检测对从观测中提取的信息量有很大影响的异常数据。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Influence point (blue point) v.s. Leverage point (red point)

  设 X 为设计矩阵, x 为 X , x ⊆ X 的变量。在杠杆统计中,我们计算杠杆分数,并将其与临界值进行比较。超过临界值的分数是杠杆或影响点。截止值定义为

  2(全球平均观测影响(OI)/n),OI =痕迹(H),*

  其中 n 为观察数, H 为 X 的投影矩阵。投影矩阵 H = X(XᵀX)⁻ Xᵀ ,各次观测的杠杆分数是的对角线入口。**

  为了实现这一点,我们首先制作简单的样本数据,并用红色添加一个影响点。如果一个杠杆分数超过截止值,那么我们也把它涂成红色。

  **外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传****外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Fig. left: Plot data points with influence point (red). Fig. right: Applying leverage statistics and detecting leverage and influence points(red)**

  从右图中我们可以看到,高度偏离的数据点被检测为杠杆点和影响点。

  当我们拟合了一些估计量的值时,如 OLS,我们可以用 DFFITS 来寻找异常点。当我们在杠杆统计中计算分数时,我们在 DFT ifts 中做同样的事情。DFFITS 用两个不同估计量的拟合值之差来度量分数。其得分公式定义为

  DFFITSᵢ = (ŷᵢ-ŷᵢᵢ) / s*√hᵢᵢ,

  其中,是由估计器基于包括第 I 个观测值的数据集预测的第 I 个拟合值,而【ŷᵢᵢ】是由基于估计器的不包括第 I 个观测值的数据集预测的拟合值。 s 是由基于估计量的数据集预测的独立值和拟合值的误差的标准偏差,不包括第 I 次观察。

  上面的公式等于,

  dffitsᵢ=tᵢ √[hᵢᵢ/(1-hᵢᵢ)】*

  其中 tᵢ 是一个 R-student 。

  在下面的代码中,我们用第 I 个观察值来计算 DFFITS。因此 tᵢ 被称为内化残。

  就 DFFITS 而言,当我们已经知道拟合值时,Cook 距离也是一种有用的方法。该方法通过计算由估计器基于包括第 I 个观察值数据集预测的第 I 个拟合值和由估计器基于排除所有第 I 个数据的第 I 个观察值的数据集预测的拟合值之间的平方误差来测量得分。因此,该公式定义为

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  其中 p 为变量个数, s 为回归模型的均方误差,拟合值定义与 DFFITS 中相同。对于小样本量,临界值推荐为 2(p+1)/n ,对于大样本量, 3(p+1)/n 。**

  上述公式等于

  dᵢ=(tᵢ/ps) √[hᵢᵢ/(1-hᵢᵢ)】

  这方面的术语同上。

  在 Statsmodels 中提供了库克距离和 DFFITS。为了进行 n 次实验,看看库克距离和 DFT ifts 之间的结果有多大差异,现在我们来看下面的代码。我们使用来自 Kaggle( 来源)的跌倒检测数据集。为了方便起见,我们取时间(监测时间)和 HR(心率),检查 cooks_d 和 dffits 值。在这两个图中,蓝线是 OLS 的回归线。Cook 的距离检测 HR 值方面的远杠杆数据和高变量数据点,而 DFFITS 倾向于检测回归线以上的数据点,而不检测位于远右上方的数据点。

  原文:https://towardsdatascience.com/a-short-tutorial-on-fuzzy-time-series-part-iii-69445dff83fb?source=collection_archive———11———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  嗨伙计们!距离我发表这篇教程的第一篇和第二篇已经很久了。与此同时,我有机会与许多在几个不同领域应用 FTS 方法的人交谈,他们帮助我通过修复一些错误和扩展其功能和可用性来改进 pyFTS 库。

  从本教程开始,我们就一直在处理不确定性。我们找到了使用模糊集来建模和描述时间序列的时间行为的方法,但我们没有考虑我们预测的不确定性。预测的不确定性就像一场雾:如果你看得更近,你会看到模糊不清,这可能不会对你产生太大影响,但如果你想看得更远…

  所以,现在是时候深入探讨更多的预测类型和新方法了,这一次我将重点关注非平稳时间序列、概念漂移等。

  本教程的所有例子都可以在谷歌实验室、http://bit.ly/short_tutorial_colab3 网站上找到。请随时联系,提供反馈并提出问题。现在,我们走吧!

  大多数预测方法产生点预测,即单一标量预测。给定一个数值时间序列 Y 及其单个值 y(t) ∈ Y ,一个点的预测通常是一个条件期望 *ŷ(t+1) = 𝔼[Y |y(t),…】。*这个数字代表了在时间 t+1 时 Y 的最佳猜测值,根据我们对 Y 的了解,以及它过去的值 t,t-1, …不管我们的估计量有多好,它仍然是一个猜测值,而不是一个精确的确定值。换句话说,这个数字的背后隐藏着不确定性。

  点预测的问题就在于此:它没有告知周围的不确定性。一个很好的起点是条件方差Var[y(t+1)| y(t)】,但通常不被告知,甚至不知道。

  有一些方法可以解决点预测的这种局限性,它们是区间预测和概率预测。

  一个预测区间𝕀是一个元组𝕀=【u,l】,其中 u 是不确定性上界, l 是不确定性下界,断言估计很可能会落在这个区间内,ŷ(t+1)∈*【u,l】。*

  置信区间是与置信水平α ∈ [0,1]相关联的值σ,其中 ŷ(t+1) ∈ [ ŷ(t+1)-σ,ŷ(t+1)+σ] 具有概率α。置信区间通常是参数化的,即它们假设预测值ŷ(t+1 周围的不确定性由高斯 pdf 描述。

  有几种方法可以衡量区间预测的准确性,最简单的方法是覆盖率(表示落入区间内的真实值的百分比)校准、锐度等。已知 Winkler 分数在一个度量中体现了区间的几个方面

  s(α,x,𝕀)=(u l)+2α(l−x)𝟙(x<l)+2α(x−u)𝟙(x>u)

  其中𝕀 = [u,l], x 为真值,α为置信水平,𝟙(condition) = {条件为真为 1,否则为 0 }。

  一个概率预测是一个概率分布p:u→【0,1】,其中 U 是 Y 的论域,约束为 ∑P(x) = 1,∀x ∈ U 。这意味着我们将为 U 的每一个可能值 x 估计一个概率π,即 ŷ(t+1) = x ,或者换句话说:P( ŷ(t+1) = x) = π,0 ≤ π ≤1 这是表示预测不确定性的最完整的方式,并为我们提供了 ŷ(t+1) 以其概率程度可以假设的可能值的图景。

  有了概率分布 p,我们还可以计算α置信区间(使用累积分布 F 的 α 和1-α分位数,并使用期望值 𝔼[P] = ∑xP(x),∀x ∈ U. 生成点预测

  概率预测的主要准确性测量是连续等级概率得分(CRPS) 。简而言之,CRPS 测量真实值 x 前后的预测概率曲线的面积。该测量值表明概率分布与真实值的接近程度。CRPS 是 MAE 在概率预报情况下的推广,CRPS 值越低越好。

  CRPS(F,x) = ∫ (F(y) -𝟙(y > x)) dy,y = -∞…+∞

  其中 F(x) = P(X ≤ x) 为累积分布函数,X 为真值。

  F 首先,在 pyFTS 库上,每个模型都有布尔标志,指示它能够做出哪种类型的预测。所有模型都支持点预测,但并非所有模型都支持区间预测和概率预测。如果您试图在没有这种技能的模型上使用其中一种预测,将会引发一个异常。

  要在 pyFTS 中生成区间预测,您可以使用与标量预测相同的方法——方法预测 FTS 类中的——并通知参数 type=‘interval’ 。“预测”方法上的“区间预测”类型生成一个元组列表,每个元组有两个值,对应于一个预测区间𝕀 = *[u,l]。*一些模型(如 EnsembleFTS 和 PWFTS)允许指定区间的方法。

  ifts。IntervalFTS (IFTS):生成预测区间的最基本方法,它是高阶函数的扩展。生成的预测区间不具有某种概率意义,它们只是度量预测过程中所涉及的模糊集的上下界,即模糊不确定性。这里描述的是方法。合奏。AllMethodEnsembleFTS:EnsembleFTS 是由几个基础模型组成的元模型。AllMethodEnsembleFTS 为 pyFTS 中实现的每个单变量 FTS 方法创建一个实例,并将它们设置为基础模型。预测是根据基本模型的预测计算出来的。在这里可以找到该方法的简要说明。基本上有两种方法来计算集合中的预测区间:极值和分位数(默认)。在极值方法中,选择基础模型预测之间的最大值和最小值。在分位数方法中,必须告知阿尔法参数,然后对基础模型的预测进行排序,并提取分位数区间。

  pwft。probabilistweightedfts(PWFTS):顾名思义,这是最复杂的方法,仍在审核中(即将发布)。基本上有两种方法可以在 PWFTS 上产生预测区间:启发式(默认)和分位数。在启发式方法中,区间界限被计算为模糊集界限的期望值及其经验概率,而分位数方法生成一个完整的概率分布,然后提取分位数(使用α参数)。

  多变量方法:这种多变量方法使用与 IFTS 相同的方法来产生预测区间。这种加权多元方法使用与 IFTS 相同的方法来产生预测区间。

  在模块 pyFTS.common.Util 中,我们可以找到函数 plot_interval ,它允许我们很容易地绘制间隔:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Intervals generated by the monovariate methods (source)

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Intervals generated by the multivariate methods (source)

  生成的间隔试图展示模型考虑的可能变化范围。您可以看到,有些模型生成的区间比其他模型更宽,有时(尤其是在区间更窄的加权模型上)原始值会超出区间。最好的区间有平衡的宽度,既不会太宽而显示出高度的不确定性,也不会太窄而不能覆盖真实值。

  要在 pyFTS 中生成概率预测,您还可以使用 FTS 类中的方法预测,并通知参数type =‘分布’。predict 方法将返回一个概率分布对象列表。此外,像间隔一样,概率预测也有自己的布尔标志来指示哪些模型能够执行它:

  在中,与区间预测相比,概率预测有自己的类来表示概率分布——类pyfts . probability . probability distribution。有几种方法来表示这种概率分布,根据定义,这是一种离散的概率分布。我们现在对该类的一些方法特别感兴趣: 【密度】 (返回输入值的概率)、 【累积】 (返回输入值的累积概率)、 分位数 (返回输入值的分位数)和(绘制输入 matplotlib 轴上的概率分布)。

  现在让我们看看 pyFTS 上的一些概率预测方法:

  pwfts。T21:这种方法完全是为概率预测而设计的,也是概率预测的最佳方法。其规则包含与模糊集相关联的经验概率,并且还呈现特定的去模糊化规则,该规则将概率分布上的输入(清晰)值转换为未来值;合奏。EnsembleFTS :之前提到的 ensemble 使用核密度估计器(KDE) 在基础模型的点预测上创建概率预测。KDE 还需要指定核函数和宽度参数。

  让我们看看概率预测是什么样子的:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  The probabilistic forecasting of 4 days using the Util.plot_density function (source)

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  The probabilistic forecasting of 24 hours using ProbabilityDistribution.plot function (source)

  在上面的图片中,概率预测从两个不同的角度展示。第一张图片是通过模块中的 plot_density 方法生成的。Util* ,其中每个概率分布绘制为蓝色阴影,其强度对应于概率。这种方法允许绘制原始时间序列和预测概率分布。第二张图使用概率分布的方法 plot 显示了与话语领域相关的每个概率分布。*

  当然不是一切!我们必须考虑未来许多步骤的区间和概率预测,我们希望这能告诉我们不确定性如何随着预测范围的增加而演变。是啊!这很吸引人,但我还有很多东西要展示,所以我会把它作为你的一个练习,好吗?

  让我们现在走在一条最难走的路上…

  你可能还记得那句广为人知的老话:

  “唯一确定的是,没有什么是确定的”。

  是的。预测可能是不公平的,因为事情总是在变化,我们必须应对。平稳性通俗地说就是随机过程的统计性质(如它们的期望值和方差)不随时间变化,其最终均值是稳定的。这对预测模型来说太棒了:测试数据集的行为将和训练数据集完全一样!

  另一方面,非平稳性意味着统计特性的变化。但并不是所有的非固定性都是平等的。其中一些趋势和季节性是可以预测的。处理季节性并不棘手,你可以使用高阶、季节性或多元方法(你可能还记得我们上一个教程)。要处理趋势也不太复杂,您可以使用差异转换来消除数据的趋势。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  The original time series — NASDAQ — and the differentiated time series (source)

  假设我们将上述时间序列一分为二,称这些子集为训练和测试数据。您可以看到测试子集(在实例号 2000 之后)具有以前在训练子集中没有出现的值。这是大多数 FTS 方法的一个缺点:当输入数据超出已知的话语范围时会发生什么?这个模型以前从未见过那个区域,也不知道如何前进,于是它悲惨地失败了。你也可以在上面的图像中看到,微分时间序列表现得更好,事实上,它是平稳的。

  如何在 pyFTS 上使用差分变换?只需从 pyFTS.common 导入转换模块并实例化它。不要忘记将转换通知给分区方法,并将其添加到模型中(使用 append_transformation 方法)。

  看看经典的陈模型在 NASDAQ 数据集上进行差分变换和不进行差分变换时的行为:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  The degradation effect of the FTS when the test data falls out of the known Universe of Discourse (source)

  虽然时间序列仍在已知的话语空间中波动,但两种模型都表现良好。但是,当时间序列跳出训练数据的论域时,没有微分变换的模型开始恶化,因为它不知道如何处理未知数据。

  然后,这些转变不仅帮助我们了解趋势模式,还帮助我们了解话语世界的未知范围。

  但是有些非平稳性是不可预测的,有时候处理起来很痛苦。

  C 有时,这些漂移循环发生(周期不规则),在其他情况下,漂移是暂时的。当概念漂移发生时,有一些问题需要回答:它是暂时的吗?变化是结束了(确立了)还是会一直变化?

  我们还必须区分概念漂移和离群值。异常值不是变化,它们属于已知信号但属于罕见事件。

  概念漂移是噩梦——不仅 fts 方法,其他计算智能和统计技术也害怕它们——但我们需要学习如何与它们共存。尽管这个问题很复杂,但还是有一些简单的(不幸的是有些昂贵的)技术来解决它们。

  时变方法

  A 我们之前看到的 ll FTS 方法都是时间不变的方法,这意味着它们假设时间序列的未来波动会按照之前已经发生的模式表现。换句话说:由模型的模糊时态规则描述的时间序列的行为在未来不会改变。

  这对于许多时间序列(例如我们之前研究过的环境季节性时间序列)来说很好,但对于其他时间序列(例如股票交易资产价格)来说却非常失败。

  在这种情况下,我们需要应用时变模型,

  增量。时变模型 :时变模型是解决概念漂移和非平稳性的最简单(但有效)的方法。这个类实现了一个元模型,这意味着你可以选择任何 FTS 方法作为它的基础方法,然后在每个 batch_size 输入时,元模型用最后的 window_length 输入重新训练它的内部模型。这些是模型的主要参数:窗口长度和批量大小*。作为元模型,您还可以指定使用哪个 FTS 方法( fts_method 参数)以及您希望在其中使用哪个分区器( partitioner_method 和 partitioner_params 参数)。*

  增量。IncrementalEnsembleFTS:工作方式类似于 TimeVariant,但采用的是一种整体式方法。在 TimeVariant 中,只有一个内部模型在 n 次输入后重新创建(这意味着 batch_size 是它拥有的唯一内存)。在 IncrementalEnsemble 上,我们还有 window_length 和 batch_size 参数,还有 num_models ,它表示要保存多少个内部模型。一旦新的模型被创建(利用输入的数据),旧的模型就会被从集合中删除。

  非平稳模糊集非平稳模糊集是可以随时间修改的模糊集,允许它们通过平移和/或缩放其参数来适应数据的变化。NSFTS 方法非常类似于时间不变的 FTS 方法,除了它们的模糊集不是静态的:对于 NSFTS 模型执行的每个预测,误差被计算和存储,并且模糊集被改变以修正该误差。对于这种方法,误差是测试数据与训练数据有多少不同的度量。这个方法正在被出版的路上。

  pyFTS.data 模块包含大量非平稳、概念漂移的时间序列,如纳斯达克、TAIEX、S & P 500、whatsapp中文版的下载地方是多少、以太坊等。您还可以使用类data . artificial . signal emulator来创建合成和复杂的模式。SignalEmulater 被设计为作为一个方法链 / fluent 接口工作,因此您可以通过链接方法来模拟复杂的信号,这些方法产生添加到上一个方法或替换它的特定信号。方法stationary _ signal创建具有恒定均值和方差的简单平稳信号,方法incremental _ Gaussian创建均值和/或方差每次递增的信号,方法periodic _ Gaussian在恒定周期内波动均值和/或方差,方法 blip 在随机位置添加异常值。每次调用其中一个方法时,其效果都会添加到之前的信号中,除非您通知 start 参数——指示该方法何时(哪一次迭代)开始工作——或将布尔参数 additive 设置为 False,从而停止之前的信号并开始这个新信号。要渲染整个信号,你只需要调用函数 运行 。

  现在让我们将所有这些放在一起,创建 3 个非平稳时间序列,带有概念漂移,并使用上述方法来预测它们:

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Performance of the time variant methods for artificial time series with concept drifts (source)

  当处理非平稳性和概念漂移时,ime Variant 方法必须平衡某种开发和探索。利用模型已经知道的东西——它的记忆、从数据中最后学习的模式——或者探索新的数据和学习新的模式。每种方法都有自己的机制:再训练器由 window_length 和 batch_size 控制,增量集成由 window _ length 和 num_models 控制,NSFTS 使用自己的误差大小来调整模糊集。毕竟,适应概念漂移所花费的时间是时变方法最重要的方面之一。我们在以前的教程中看到的原则同样适用于本教程:每个 FTS 方法都有自己的特性和参数,最佳方法将取决于上下文。

  伙计们。今天到此为止,好吗?

  在这些教程中,我们已经涵盖了时间序列预测领域的一个很好的部分,甚至是表面上的,以及它们的问题和使用 FTS 方法的解决方案。我们还没完成呢!我们将永远有问题要解决,新的改进方法和优化。

  在接下来的教程中,我将介绍一些新的方法,比如超参数优化和如何用分布式计算处理大时间序列。伙计们,再见!

  原文:https://towardsdatascience.com/a-shortcut-to-achieving-high-quality-gan-results-bca64a5b9394?source=collection_archive———11———————–

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Above: Generated Samples. Below: After Super-Resolution

  在过去的几周里,我一直在摆弄 StyleGAN,结果真的很奇怪,很酷。在过去的几年里,甘取得了如此大的进步,真是令人吃惊。

  去年花 43.2 万whatsapp的官方下载网址在哪里买下那幅可怕的斑点肖像的人可能已经操之过急了,因为 GANs 现在可以生成一些令人惊叹的真实而美丽的照片。

  [## 此人不存在

  此人不存在

  这个人不是 Existthispersondoesnotexist.com](https://thispersondoesnotexist.com/)

  StyleGAN 真正令人惊讶的是,它第一次给了我们一些接近迁移学习的东西。我们实际上可以使用预先训练好的模型,这些模型是组织花费数十万whatsapp的官方下载网址在哪里训练出来的,并且通过我们自己的数据集得到了不错的结果whatsapp的中文版的下载的网站在哪里。

  [## 用斯泰尔根-Gwern.net 制作动漫脸

  一个教程解释了如何训练和生成高质量的动画脸与 StyleGAN 神经网络,并…

  www.gwern.net](https://www.gwern.net/Faces)

  我说不错,因为不幸的是,它仍然需要相当多的时间和whatsapp的官方下载网址在哪里的培训,以产生任何接近 NVidia 团队已经得到的现实结果。

  随着更多的突破,我确信训练/计算需求会下降,但现在像我这样的平民仍然停留在生成低分辨率的艺术或风景图像上。这本身就是一个巨大的进步,因为我现在至少可以生成低质量的照片,而不是几年前用 DCGAN 得到的斑点。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Generated Landscapes: Not too shabby (in low resolution)

  我在寻找提高 GAN 结果质量的方法,并有了一个想法。

  多亏了杰瑞米·霍华德教授的惊人的 fastai 课程,我在一年前偶然发现了一个很酷的技术:【https://arxiv.org/abs/1603.08155

  主要思想是使用感知损失将图像特征转换到另一个图像上,而不使用 GANs。用这个,我可以给黑白照片上色。

  [## 用深度学习着色巴基斯坦

  深度学习可以很有趣。你给它一些猫和狗的照片,它可以分辨出哪些照片是猫和…

  hackernoon.com](https://hackernoon.com/colorizing-pakistan-5697f7754b2a)

  快进到今天,当我从 StyleGAN 生成这些模糊的照片时,我想知道我是否真的可以使用这种技术来提高最终结果的质量。所以——训练一个模型,将低质量的照片转换成高质量的照片,并在我的 GAN 生成的结果上使用。

  使用预训练的 StyleGAN 模型在某组图像上训练您自己的模型。你可以从 NVidia StyleGAN 代码和他们的一个预训练模型开始:【https://github.com/NVlabs/stylegan

  补充说明:Gwern(上面的链接)对如何设置 StyleGAN 代码并将其用于迁移学习有很好的指导。

  完成训练后,从最终模型中生成并保存一些随机样本whatsapp的官方的网站下载的地址是什么。基于相同的数据集创建超分辨率模型。为了做到这一点,我们需要一个原始数据的源数据集,和一个包含转换图像的目标数据集。对于这个练习来说,可以简单地将原始图像重新保存为较小的尺寸和较低的质量。然后,您可以创建一个模型,尝试将这些图像恢复到原始形式,即提高图像质量。你可以在这里找到这样做的脚本:https://github . com/fastai/course-v3/blob/master/nbs/dl1/lesson 7-super RES . ipynb最后,一旦你训练了一个可以从低质量图像中充分恢复原始图像的模型,你就可以看到你的 GAN 样本是如何通过这种技术得到的。

  这是我从 LandscapeGAN 得到的一些结果。

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Right: GAN generated. Left: After Super-resolution

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  Can see way more details on the right image

  外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  如果我用更多的数据训练我的 StyleGAN 和超分辨率模型更长时间,我相信我可以获得更好的质量最终结果。

  我认为这是一个从你 GAN 结果中获得额外质量的巧妙技巧。GANs 倾向于收敛到一定的图像质量,让它们达到更高的分辨率会导致你必须投入的计算量的回报递减。例如,我只花了几个小时就可以得到这些风景图片,但是从这里到高质量的照片级的图片就要花更长的时间。

  通过使用超分辨率,我们可以让我们的 GAN 模型产生我们想要的图像/视频质量的 80–90%的图像,并对它们应用超分辨率,最终获得高质量的结果。如果我们一直训练我们的 GANs 变得越来越好,这将花费我们更长的时间(和更多的成本)。

seo