特征向量

论文学习记录:PROGRESSIVE GROWING OF GANS

两盒软妹~` 提交于 2020-10-06 09:32:12
论文链接:https://arxiv.org/pdf/1710.10196.pdf 前言 这是一种针对GANs的训练优化方法,从低分辨率图像开始,通过向网络添加层来逐步提高分辨率,如图1。这种递增的特性允许训练首先发现图像分布的大尺度结构,然后将注意力转移到越来越细的尺度细节上,而不必同时学习所有的尺度。 图1: 初始训练时,生成器(G)和鉴别器(D)的空间分辨率都很低,即4x4像素。随着训练的进行,我们逐渐在G和D上增加层,从而提高了生成图像的空间分辨率。在整个过程中,所有现有层都是可训练的。这里N x N是指在N x N空间分辨率下的卷积层。这允许在高分辨率下稳定的拟合,也能够极大地加快训练速度。右边展示了使用渐进式增长生成的6个1024 x 1024像素示例图像。 我们使用生成器和鉴别器网络,它们彼此镜像,同步发展。在整个训练过程中,两个网络中的所有现有层在训练阶段都是可训练的。当新层被添加到网络中时,我们平滑地淡出现有网络,如图2所示,这避免了对已经训练良好的小分辨率层的突然冲击。 图2:当加倍生成器(G)和鉴别器(D)的分辨率时,我们“平滑”地添加新图层。该例子说明了从16×16图像 ( a ) (a) ( a ) 到32×32图像 ( c ) (c) ( c ) 的转换过程。在转换 ( b ) (b) ( b ) 过程中,我们将操作在更高分辨率上的层类似残差块一样处理

独家 | 由第一原理导出卷积

冷暖自知 提交于 2020-10-05 07:15:35
作者:Michael Bronstein 翻译:陈之炎 校对:郑滋 本文 约3200字 ,建议阅读 9 分钟 本文介绍了 第一原理中推导出卷积,并展示它的平移对称性。 标签:卷积 TLDR:你有没有想过卷积有什么特别之处?在这篇文章中,我从第一原理中推导出卷积,并展示它的平移对称性。 某些事物实质上是对其本质的一种支持。(Claude Adrien Helvetius) 在本科学习期间,我在以色列的Technion参与了电气工程,令人感到震惊的一个重要的概念是,突如其来的卷积[1]。就像一粒沙子落入眼睛里,它扰乱了信号处理世界原本美丽的画面。让卷积从第一原则中产生而不只是假定,将会多么美好!正如我将在这篇文章中所展示的,这里的第一原则即平移不变性或对称性。 首先,从基本信号处理课程中教授的公式开始,定义两个n维向量x和w的离散卷积[2]: 为了方便起见,假设所有的索引从零到n−1,并且是n模,自然而然地想到在圆上定义的向量,把上面的公式写成矩阵向量乘法,得到了一个非常特殊的矩阵,称之为循环(circulant)矩阵: 循环矩阵具有多对角结构,每个对角线上的元素具有相同的值。它可以通过将向量w的移位(模n)叠加在一起来生成[3];因此,用C(W)来表示,指的是由向量w形成的循环矩阵。由于任何卷积x∗w都可以等价地表示为循环矩阵C(W)x的乘法,所以将交替使用这两个术语。

K近邻算法哪家强?KDTree、Annoy、HNSW原理和使用方法介绍

微笑、不失礼 提交于 2020-10-03 03:46:33
1、什么是K近邻算法 K近邻算法(KNN)是一种常用的分类和回归方法,它的基本思想是从训练集中寻找和输入样本最相似的k个样本,如果这k个样本中的大多数属于某一个类别,则输入的样本也属于这个类别。 关于KNN算法,一个核心问题是: 如何快速从数据集中找到和目标样本最接近的K个样本? 本文将从这个角度切入,介绍常用的K近邻算法的实现方法。具体将从原理、使用方法、时间开销和准确率对比等方面进行分析和实验。 2、距离度量 在介绍具体算法之前,我们先简单回顾一下KNN算法的三要素: 距离度量、k值的选择和分类决策规则 。 其中机器学习领域常用的距离度量方法,有欧式距离、余弦距离、曼哈顿距离、dot内积等 主流的近邻算法都支持上述不同的距离度量。其中n维特征空间的a、b向量的 欧式距离 体现数值上的绝对差异,而余弦距离基于余弦相似度(两个向量间夹角的余弦值),体现方向上的相对差异。 如果对向量做归一化处理,二者的结果基本是等价的。 实际应用中,需要根据业务目标来选择合适的度量方法。 3、K近邻算法的实现方法 K近邻的实现方式多达数十种,笔者从中挑选了几种常用、经典的方法作为分析案例。 首先最直观的想法(暴力法),是线性扫描法。将待预测样本和候选样本逐一比对,最终挑选出距离最接近的k个样本即可,时间复杂度O(n)。对于样本数量较少的情况,这种方法简单稳定,已经能有不错的效果。但是数据规模较大时

目标检测中的Anchor Free方法

牧云@^-^@ 提交于 2020-10-03 00:27:26
转自: https://zhuanlan.zhihu.com/p/86270414 https://zhuanlan.zhihu.com/p/62103812 最近大致梳理了下最近一些Anchor Free方法的发展脉络,不考虑早期的YOLO和DenseBox等算法的话,SOTA的应该是18年CVPR提出的CornerNet,而进入2019年之后,Anchor Free方法颇有点井喷的感觉。今天将总结一下CornerNet/CenterNet/ExtremeNet这一基于keypoint启发的Anchor Free思路,而FCOS/FSAF/FoveaBox这一完全不同的Anchor Free会放在下次,总结不会涉及太多细节,主要介绍一些Motivation和整体网络思想,细节将在之后具体谈论文的时候给出介绍。 1. 从Anchor Based方法谈起 目前主流的目标检测算法,包括多阶段的各种RCNN和单阶段的SSD、RetinaNet上都是基于Anchor来做的。Anchor的本质是候选框,在设计了不同尺度和比例的候选框后,DNN学习如何将这些候选框进行分类:是否包含object和包含什么类别的object,对于postive的anchor会学习如何将其回归到正确的位置。它扮演的角色和传统检测算法中的滑动窗口等机制比较类似。但是,这种设计思路有很多问题:

主成分分析(PCA)原理总结

北慕城南 提交于 2020-10-02 11:19:49
    主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA,下面我们就对PCA的原理做一个总结。 1. PCA的思想     PCA顾名思义,就是找出数据里最主要的方面,用数据里最主要的方面来代替原始数据。具体的,假如我们的数据集是n维的,共有m个数据$(x^{(1)},x^{(2)},...,x^{(m)})$。我们希望将这m个数据的维度从n维降到n'维,希望这m个n'维的数据集尽可能的代表原始数据集。我们知道数据从n维降到n'维肯定会有损失,但是我们希望损失尽可能的小。那么如何让这n'维的数据尽可能表示原来的数据呢?     我们先看看最简单的情况,也就是n=2,n'=1,也就是将数据从二维降维到一维。数据如下图。我们希望找到某一个维度方向,它可以代表这两个维度的数据。图中列了两个向量方向,$u_1$和$u_2$,那么哪个向量可以更好的代表原始数据集呢?从直观上也可以看出,$u_1$比$u_2$好。     为什么$u_1$比$u_2$好呢?可以有两种解释,第一种解释是样本点到这个直线的距离足够近,第二种解释是样本点在这个直线上的投影能尽可能的分开。     假如我们把n'从1维推广到任意维,则我们的希望降维的标准为

###好好好####多模态中的BERT

百般思念 提交于 2020-10-01 22:33:42
image BERT自问世以来,几乎刷新了各种NLP的任务榜,基于BERT的变种也层出不穷,在很多任务里都可以看到其身影。大浪淘沙,沉者为金,回想第一次看到BERT的论文时,确实不曾想其也能对工业界产生极大的影响。 本文尝试梳理今年BERT在多模态任务(主要涉及视觉和文本模态)上的一些工作,尝试比较各工作的主要思路以及做法上的区别,因此不会过多的涉及细节。总的来看,众多工作的主体模型大同小异,均使用Transformer,从表1(引用自VL-BERT论文)可以对各工作之间的相似和不同之处有个整体的认识。 image 可以看到,各方案之间的差异基本在于模态融合方式、预训练任务、以及下游任务微调,下文也将主要从这几个维度展开介绍和对比(排名不分先后)。 VideoBert image VideoBert主体采用单Transformer同时对文本token和视频片段进行模态表示和融合。与BERT区别在于把原来的句子对是否匹配(是否为下一句),换成了句子视频是否匹配任务。同时对于视频片段帧进行随机的MASK,预测对应的特征向量,文中叫visual words(通过预训练的视觉模型抽取得来,如S3D,然后聚类得到相应特征向量的id),对应于BERT的masked语言模型。 CBT image 和VideoBert不同在于,视频输入和文本输入分成了两支。视频输入经过S3D网络得到视觉特征序列

基于腾讯云的 Rust 和 WebAssembly 函数即服务

可紊 提交于 2020-09-30 17:15:43
腾讯云云函数 (SCF) 已经支持十多种编程语言和运行时框架。腾讯云最近发布的 SCF custom runtime(自定义运行时)更进一步 —— SCF 现在可以支持用任何编程语言编写的函数。 原文首发于 Serverless 中文网 本文将介绍如何在云函数 SCF 中运行用 Rust 编写的 WebAssembly 函数。 我们先介绍一些基本概念,然后回顾一个完整但简单的 hello world 示例,部署您的第一个 WebAssembly 无服务器函数。最后,我们将用一个机器学习即服务 (MLaaS) 示例来做一些有用的事情。该示例接受数据并以 SVG 格式返回拟合模型和可视化。 这是本教程结束时你将创建的 最终应用 。它完全是「无服务器」的,只有使用时会产生成本。 HTML 和 JavaScript UI 可以托管在任何计算机上,包括笔记本电脑上。在腾讯云 Serverless 上的后端函数执行机器学习和 SVG 绘图。 为什么选择 WebAssembly 和 Rust 传统的无服务器函数基于重量级的框架。开发者必须在特定的应用框架中编写函数,比如 Node.js 中的 JavaScript 或 Python Boto。 腾讯云 SCF Custom Runtime 打破了这种模式,允许开发者用任何语言编写无服务器函数。 为了演示这个优势,本文提供了基于 Bash

第一性原理之美:从平移对称性导出卷积

巧了我就是萌 提交于 2020-09-30 00:49:21
     译者 | 陈彩娴   校对 | 青 暮   卷积的概念无处不在。它究竟有什么特别之处呢?在本文中,作者从第一性原理中推导出卷积,并表明它自然地来自平移对称性。   在阅读卷积的起源与历史的过程中,读者有机会了解到卷积概念和卷积运算符的发展历史。卷积积分最早是出现在法国著名数学家达朗贝尔在1754年发表的著作《宇宙体系的几个要点研究》(Recherches sur différents points importants du système du monde)里所介绍的泰勒定理推导中。   人们常误以为卷积积分最早是出现在法国数学家拉普拉斯1773年的论文《行星轨道的平均倾角、地球形状与函数》(Mémoire sur l’inclinaison moyenne des orbites des comètes, sur la figure de la terre et sur les fonctions中,但实际上,拉普拉斯是在1778年撰写概率论时才真正使用卷积。   在早期,卷积被尝试命名为法语“résultante”、意大利语“composizione”、德语“faltung”等,均指向“折叠”、“卷曲”之类的含义。英语用来指代“卷积”的单词“convolution”取自拉丁文“con”(together,“一起”)和volvere(roll up,“卷起”),使德语

解释:深度学习中Attention与全连接层的区别

旧城冷巷雨未停 提交于 2020-09-29 13:09:20
转载地址 https://www.zhihu.com/question/320174043/answer/651998472 解释 正如你所说的,Attention的最终输出可以看成是一个“在关注部分权重更大的全连接层”。但是它与全连接层的区别在于,注意力机制可以利用输入的特征信息来确定哪些部分更重要。 举个例子: 输入层有A,B,C三个特征向量,我们需要构造一层网络来确定三者的权重,然后加权求和得到输出O。也就是得到三个权重 ,然后得到 。 这个式子形式上看上去确实是全连接层没错。然而如果用全连接层有什么问题呢? 问题就在于在全连接层里, 是根据位置确定的。 我第一次给你三个数据ABC,然后你得出了B最重要,也就是让 最大。然而我下次给你的顺序可能是BAC,这次A在刚才B的位置,如果你用全连接层来实现的话,得出的结果就会变成 。这就变成了A最重要了,这显然不是我们想要的结果。 那么如何解决这个问题呢?我们就要根据实体自身的特征,而不是它们的位置来确定它们的重要程度。也就是说, 不该是固定的,而是要与A,B,C的值相关。简单考虑,也就是要定义一个函数f,令 。 于是我们就给每个实体分配了一个与它们的位置无关的权重。 这里的函数f就是我们所说的注意力机制。 注意力机制f的定义方式有很多种,但是不属于这个问题的范围,这里我就不讨论了。 我们最终得出的输出为 可以看出

线性代数重要,选对教材更重要:同济版《线性代数》引发激烈争议

亡梦爱人 提交于 2020-09-28 19:41:16
  机器之心报道    机器之心编辑部    你的线性代数,过了没?   不论是结构力学还是人脸识别,理工类型的科研,深究之后就会发现到处都是线性代数的身影。这样一门课程,要是在大一的时候学不好,可是会要命的。   在国内上过大学的理科同学应该都见过《线性代数》(同济版),就算没有学过,也是听过它的大名。作为一名过来人,只能说,晦涩难懂,章节混杂... 即使不少 985、211 走过高考独木桥的学生,每到期末考试,也要默默祈祷不要挂科。现在想起一些内容:相似矩阵、线性变换、特征值、特征向量…… 真是一个头两个大。      作为一本大学教材,让学习者如此后怕,是该考虑一下教材问题了。如今已经毕业多年,没想到最近在知乎上看到一篇文章《《线性代数》(同济版)——教科书中的耻辱柱》,点赞量快突破五千。对于这篇文章,大家有时间可以读一下,看看是不是同意作者的观点。   线性代数真的很重要,这是很多工程技术人员走上工作岗位的最大感受。好多算法都用到线性代数的知识,就比如现在非常热门的深度学习,它的底层实现方式用到好多线性代数方面的知识。如果底层基础打不好,不明白其中的原理,算法实现方式真的很难理解,更不可能去创新了。好的教材才能起到事半功倍的效果。   目前这本教材已更新了好几版,每次更新的内容看起来也是无关紧要,如果有下次版本更新,还是希望制定教材的老师们听取一下广大学生的建议。