"> "> Yufei Luo's Blog - But I was so much older then, I am younger than that now.

概述

图像风格迁移是一种用不同风格渲染图像语义内容的图像处理方法,简单地说,就是提供一幅表示风格的图片,然后在尽可能保留图像内容的情况下,将照片转化为该风格。传统非参数的风格迁移方法只能通过提取图像的低层次特征(色彩、纹理等)来进行纹理合成,无法提取图像高层的特征。非参数风格的方法包括基于笔划的渲染、图像类比、图像滤波、纹理合成等。

近年来,随着深度神经网络在其它视觉感知领域(例如物体与人脸识别)的广泛应用,其在风格迁移领域也具有良好的表现。神经网络具有良好的特征提取能力,能够提取到丰富的语义信息,而这些信息正是风格迁移的基础。

阅读全文 »

时域与频域

时域和频域是用来分析信号的两个不同角度。在时域中,自变量为时间,表现在函数图像上也就是横轴为时间,纵轴为信号的变化。而在频域内,自变量为频率,表现在函数图像上就是横轴为频率,纵轴是该频率信号的幅度。将频域内不同频率的信号分量全部叠加起来,便可以还原得到时域内的信号。

上述定义用一个比较常见的例子解释就是钢琴曲,我们耳朵听到的曲子是一段随着时间变化的振动,这相当于是它在时域上的信号;而演奏钢琴曲的时候,是按照乐谱在钢琴上面敲下不同的按键,乐谱就相当于是钢琴曲在频域内的表现形式。

傅里叶分析就是用来实现时域和频域相互转换的工具,它的基本原理是将信号分解为一系列三角函数的叠加。根据时域上的数据是否具有周期性,可以分为傅里叶级数和傅里叶变换两种运算;而根据时域上的数据是离散或是连续,则又可以分为离散形式和连续形式的变换。

阅读全文 »

简介

目前在各类文章中所提到的图卷积网络(Graph Convolutional Network)有两层含义:广义的GCN指的是图神经网络中的一个子类,泛指使用了图卷积运算的网络结构(例如综述文章Deep Learning on Graphs: A Survey中,GCN一词的含义);而狭义的GCN则特指Kipf和Welling在文章SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS中提出的GCN网络结构。本文中如果无特殊说明,则使用的是泛指的概念。

“图卷积”指的是将欧式数据(如图像、时间序列这类规则的数据)上的卷积操作进一步泛化到非欧式的图结构数据中。它的主要思想是通过聚合结点自己及其相邻结点的特征,从而得到结点的表示。下图展示了图卷积网络是如何进行计算的:

Multi-layer Graph Convolutional Network (GCN) with first-order filters.

阅读全文 »

注:本文的内容主要来自于三篇图神经网络综述文章A Comprehensive Survey on Graph Neural Networks,Graph neural networks: A review of methods and applications和Deep Learning on Graphs: A Survey的总结。

概述

传统的卷积神经网络、循环神经网络等结构在提取欧氏空间数据(例如语音、图像、自然语言等结构化的序列或者网格数据)的特征上面取得了巨大的成功。但是实际许多应用场景的数据是从非欧氏空间产生的,例如社交网络、知识图谱、分子结构等。相比于文本和图像,这些非结构化的图结构数据比较复杂,例如结点数量任意且顺序不固定、结点之间的关系复杂、可能包含多模态的特征等。

image-20210715210026148

因此,图数据的复杂性给传统的机器学习算法带来了很大挑战。一些对于欧氏数据的运算(如卷积)不能直接应用在图结构上。为了将深度学习方法应用到图结构数据上,图神经网络(Graph Neural Network,GNN)便由此出现并不断发展。

阅读全文 »

引言

在使用机器学习算法对语言文字进行处理的时候,我们需要对文字做一些预处理,将其变为算法可以识别的数据格式(即向量)。在下文中,我们假设已经从某些渠道获取到了一些文本(如网页爬虫、日志记录、文本语料库、等等),接下来对这些文本进行预处理的过程主要为如下几个步骤:

  1. 数据清洗:去掉非文本部分、停用词,分词,进行大小写转换,拼写纠错,等等
  2. 标准化:词干提取、词型还原等
  3. 特征提取:tf-idf,word2vec等

对于中文与英文来说,它们的处理过程大致都符合上述流程,但是各自存在一些特殊性,在下文将进行详细说明。

阅读全文 »

简介

Transformer的来历

Transformer是Attention is All You Need论文中提出的一种新的框架。在Transformer结构中,抛弃了传统的CNN和RNN,整个网络的结构仅由Self-attention和全连接的前馈网络组成。

由于Attention机制最初是基于seq2seq提出的,因此下文将首先简单地介绍seq2seq和Attention机制,然后再详细介绍Transformer。

阅读全文 »

简介

生成式对抗网络(Generative Adversarial Network,GAN)基于博弈论场景,共包含两部分:判别器和生成器,其中生成器网络需要与一个判别器网络进行竞争。生成器网络\(g\)直接产生样本\(\boldsymbol{x}=g(\boldsymbol{z};\boldsymbol{\theta^{(g)}})\)\(\boldsymbol{\theta^{(g)}}\)指生成器网络的参数),其中\(\boldsymbol{z}\)为一个向量,通常是按照均匀分布或者正态分布生成的随机噪声;而它的对手判别器网络\(d\)则试图区分从训练数据抽取的样本和从生成器抽取的样本,判别器计算得到由\(d(\boldsymbol{x};\boldsymbol{\theta}^{(d)})\)\(\boldsymbol{\theta}^{(d)}\)为判别器网络的参数)给出的概率值,指示\(\boldsymbol{x}\)是真实训练样本而不是从模型抽取的伪造样本的概率。

img

GAN网络的目标函数如下: \[ \arg \min_{g}\max_{d} V(\boldsymbol{\theta}^{(g)},\boldsymbol{\theta}^{(d)}) \] 其中\(V(\boldsymbol{\theta}^{(g)},\boldsymbol{\theta}^{(d)})\)的表达式为: \[ V(\boldsymbol{\theta}^{(g)},\boldsymbol{\theta}^{(d)})=E_{\boldsymbol{x}\sim P_{data}}[\log d(\boldsymbol{x})]+E_{\boldsymbol{x}\sim P_{G}}[\log (1-d({\boldsymbol{x}}))] \]

阅读全文 »

概述

自编码器是神经网络的一种,经过训练后能尝试将输入复制到输出。这个网络可以看作由两部分组成:一个由函数\(\boldsymbol{h}=f(\boldsymbol{x})\)表示的编码器,和一个生成重构的解码器\(\boldsymbol{r}=g(\boldsymbol{h})\)。其中,\(f()\)\(g()\)分别表示编码器和解码器所对应神经网络的函数表达式。

image-20210624214214403

需要注意的是,如果一个自编码器只是简单地学会将处处设置为\(g(f(\boldsymbol{x}))=\boldsymbol{x}\),那么这个自编码器就没有什么特别的用处,且不能被推广到新的实例。相反,通常是向自编码器强加一些约束,使它只能近似地复制,并且只能复制与训练数据相似的输入。这种约束强制模型考虑输入数据的哪些部分需要被优先复制,这样往往可以学到数据的有用特性。

目前,自编码器的应用主要包括降维、特征学习、去噪、图像生成、异常检测等。

阅读全文 »

并发

在下面一个简单的示例程序中,通过使用CUDA流来使得一些CUDA操作可以被并发执行:

阅读全文 »

联邦学习简介

数据孤岛问题

训练机器学习模型通常需要大量的数据,但是在实际情况下通常会面临数据孤岛问题,即数据碎片化和数据隔离的问题。产生这一问题的原因通常有:

  • 数据所有权问题,以及用户隐私和数据安全的问题
  • 各方协同分享大数据的益处不明显
  • 随着物联网和边缘计算的发展,数据的分布将会更分散
阅读全文 »