库、教程、论文实现,这是一份超全的PyTorch资源列表(Github 2.2K星)

机器之心发现了一份极棒的 PyTorch 资源列表,该列表包含了与 PyTorch 相关的众多库、教程与示例、论文实现以及其他资源。在本文中,机器之心对各部分资源进行了介绍,感兴趣的同学可收藏、查用。

项目地址:https://github.com/bharathgs/Awesome-pytorch-list

列表结构:

  • NLP 与语音处理

  • 计算机视觉

  • 概率/生成库

  • 其他库

  • 教程与示例

  • 论文实现

  • PyTorch 其他项目

自然语言处理和语音处理

该部分项目涉及语音识别、多说话人语音处理、机器翻译、共指消解、情感分类、词嵌入/表征、语音生成、文本语音转换、视觉问答等任务,其中有一些是具体论文的 PyTorch 复现,此外还包括一些任务更广泛的库、工具集、框架。

这些项目有很多是官方的实现,其中 FAIR 居多,一般会有系统的使用说明,包含安装、加载、训练、测试、演示等多方面的详细解释。例如哈佛大学的 OpenNMT 项目,它是非常流行的神经机器翻译工具包。从导入自定义数据集、加载词嵌入向量到完成神经机器翻译模型的训练,OpenNMT 能支持整个流程,并且官方也一直在更新。

1.pytorch text:Torch 文本相关的内容。

项目地址:https://github.com/pytorch/text

2.pytorch-seq2seq:在 PyTorch 中实现序列到序列(seq2seq)模型的框架。

项目地址:https://github.com/IBM/pytorch-seq2seq

3.anuvada:PyTorch 中实现的 NLP 的可解释模型。

项目地址:https://github.com/Sandeep42/anuvada

4.audio:PyTorch 的简单音频 I/O。

项目地址:https://github.com/pytorch/audio

5.loop:用于生成多个说话人语音的方法。

项目地址:https://github.com/facebookresearch/loop

6.fairseq-py:用 Python 写的 Facebook AI 研究院提出的序列到序列工具集。

项目地址:https://github.com/facebookresearch/fairseq-py

7.speech:PyTorch ASR 实现。

项目地址:https://github.com/awni/speech

8.OpenNMT-py:开源 PyTorch 神经机器翻译

项目地址:https://github.com/OpenNMT/OpenNMT-py

9.neuralcoref:基于神经网络和 spaCy 的当前最佳共指消解。

项目地址:https://github.com/huggingface/neuralcoref

10.sentiment-discovery:用于鲁棒情感分类的大规模无监督语言建模。

项目地址:https://github.com/NVIDIA/sentiment-discovery

11.MUSE:用于多语言无监督/监督词向量的库。

项目地址:https://github.com/facebookresearch/MUSE

12.nmtpytorch:PyTorch 神经机器翻译框架。

项目地址:https://github.com/lium-lst/nmtpytorch

13.pytorch-wavenet:快速语音生成 WaveNet 的实现。

项目地址:https://github.com/vincentherrmann/pytorch-wavenet

14.Tacotron-pytorch:端到端语音合成的 PyTorch 实现。

项目地址:https://github.com/soobinseo/Tacotron-pytorch

15.AllenNLP:开源 NLP 研究库,基于 PyTorch。

项目地址:https://github.com/allenai/allennlp

16.PyTorch_NLP:用于 PyTorch pytorchnlp.readthedocs.io 的文本实用程序和数据集。

项目地址:https://github.com/PetrochukM/PyTorch-NLP

17.quick_nlp:基于 FastAI 的 PyTorch NLP 库。

项目地址:https://github.com/outcastofmusic/quick-nlp

18.TTS:Text2Speech 的深度学习实现。

项目地址:https://github.com/mozilla/TTS

19.LASER:语言无关的句子表征的 PyTorch 实现。

项目地址:https://github.com/facebookresearch/LASER

20.pyannote-audio:说话人追踪的神经构建块:语音激活检测、说话人变化检测、说话人嵌入。

项目地址:https://github.com/pyannote/pyannote-audio

计算机视觉

该部分项目涉及神经风格迁移、图像分类、人脸对齐、语义分割、RoI 计算、图像增强等任务,还有一些特殊的 CNN 架构,例如第 5、6 和 13 个项目,以及一些预训练模型的集合。其中第 4 个项目可以用于将你的定制图像分类模型和当前最佳模型进行对比,快速知道你的项目到底有没有希望,作者戏称该项目为「Project Killer」。

1.pytorch vision:计算机视觉领域的数据集、转换和模型。

项目地址:https://github.com/pytorch/vision

2.pt-styletransfer:PyTorch 实现的神经分割迁移,作为一个类。

项目地址:https://github.com/tymokvo/pt-styletransfer

3.OpenFacePyTorch:使用 OpenFace's nn4.small2.v1.t7 模型的 PyTorch 模块。

项目地址:https://github.com/thnkim/OpenFacePytorch

4.img_classification_pk_pytorch:快速对比你的图像分类模型和当前最佳模型(例如 DenseNet、ResNet,等)。

项目地址:https://github.com/felixgwu/img_classification_pk_pytorch

5.SparseConvNet:子流形稀疏卷积网络。

项目地址:https://github.com/facebookresearch/SparseConvNet

6.Convolution_LSTM_pytorch:多层卷积 LSTM 模块。

项目地址:https://github.com/automan000/Convolution_LSTM_pytorch

7.face-alignment:基于 PyTorch 的 2D 和 3D 人脸对齐库。

项目地址:https://github.com/1adrianb/face-alignment

8.pytorch-semantic-segmentation:语义分割的 PyTorch 实现。

项目地址:https://github.com/ZijunDeng/pytorch-semantic-segmentation

9.RoIAlign.pytorch:这是一个 PyTorch 版本的 RoIAlign。这个实现基于 crop_and_resize,并支持 CPU 和 GPU 上的前向传播、反向传播。

项目地址:https://github.com/longcw/RoIAlign.pytorch

10.pytorch-cnn-finetune:PyTorch 实现的微调预训练卷积神经网络

项目地址:https://github.com/creafz/pytorch-cnn-finetune

11.detectorch:PyTorch 实现的 detectron 图像分割模型。

项目地址:https://github.com/ignacio-rocco/detectorch

12.Augmentor:Python 图像增强库。

项目地址:https://github.com/mdbloice/Augmentor

13.s2cnn:这个库包含一个用于球面信号(例如,全向摄像机、地球信号等)的 SO(3) 等变 CNN 的 PyTorch 实现。

项目地址:https://github.com/jonas-koehler/s2cnn

概率/生成库

该部分项目主要涉及概率编程、统计推理和生成模型

1.ptstat:PyTorch 上的概率编程和统计推理。

项目地址:https://github.com/stepelu/ptstat

2.pyro:基于 PyTorch 和 Python 的深度全局概率编程。

项目地址:https://github.com/uber/pyro

3.probtorch:Probabilistic Torch 是深度生成模型的 PyTorch 扩展库。

项目地址:https://github.com/probtorch/probtorch

4.paysage:Python/PyTorch 中的无监督学习生成模型

项目地址:https://github.com/drckf/paysage

5.pyvarinf:Python 包,方便在 PyTorch 中利用变分推理执行贝叶斯深度学习方法。

项目地址:https://github.com/ctallec/pyvarinf

6.pyprob:一个基于 PyTorch 的概率编程和推理编译库。

项目地址:https://github.com/probprog/pyprob

7.mia:对机器学习模型运行成员推理攻击的库。

项目地址:https://github.com/spring-epfl/mia

教程和示例

这一部分包含了很多 PyTorch 教程,它不仅有官方教程与示例,同时还包含很多开发者在学习过程的经验与理解。从难易程度上看,它们首先介绍了如何入门 PyTorch 这一个框架,并使用 MNIST 等简单数据集展示了一般搭建模型的方法,这些都非常适合初学者入门机器学习。其次会有一些练习题及示例脚本,这些资源可以帮助更好地理解机器学习与 PyTorch 框架。最后就是一些具体任务与模型架构的实现,例如基于 ImageNet 实现 Inception_v3 或 ResNet_50 等。

这里值得注意的是 PyTorch 官方教程,基本上初学者只要跟着官方教程走就行了,它们非常丰富与具体。PyTorch 的教程确实很完美,它不仅从入门基础、计算机视觉、文本处理、生成模型和产品部署等方面全面覆盖了 DL 的使用范围,同时每一个教程不仅解释了模型原理,还注释了大多数的代码。小编感觉相对于 TensorFlow 的教程解释(需要大量查找文档),PyTorch 更加具体。如下展示了 PyTorch 的入门主题:

1.Practical Pytorch:解释不同 RNN 模型的教程。

地址:https://github.com/spro/practical-pytorch

2.DeepLearningForNLPInPytorch:基于 IPython Notebook 的深度学习教程,关注于自然语言处理

地址:https://github.com/rguthrie3/DeepLearningForNLPInPytorch

3.pytorch-tutorial:为研究者准备的 PyTorch 深度学习教程。

地址:https://github.com/yunjey/pytorch-tutorial

4.pytorch-exercises:PyTorch 练习题集。

地址:https://github.com/keon/pytorch-exercises

5.pytorch tutorials:各种官方 PyTorch 教程。

地址:https://github.com/pytorch/tutorials

6.pytorch examples:通过示例展示如何使用 PyTorch 的项目。

地址:https://github.com/pytorch/examples

7.pytorch practice:一些 PyTorch 脚本示例。

地址:https://github.com/napsternxg/pytorch-practice

8.pytorch mini tutorials:根据 Alec Radford's Theano 教程改编的极简教程。

地址:https://github.com/vinhkhuc/PyTorch-Mini-Tutorials

9.pytorch text classification:基于文本分类任务的简单 CNN 实现。

地址:https://github.com/xiayandi/Pytorch_text_classification

10.cats vs dogs:用于 kaggle 竞赛 Dogs vs. Cats Redux 的模型,该解决方案目前总排名第 27。

地址:https://github.com/desimone/pytorch-cat-vs-dogs

11.convnet:在各种数据集上(ImageNet、Cifar10、 Cifar100 和 MNIST)使用深度卷积神经网络的完整示例。

地址:https://github.com/eladhoffer/convNet.pytorch

12.pytorch-generative-adversarial-networks:简单的生成对抗网络实现。

地址:https://github.com/mailmahee/pytorch-generative-adversarial-networks

13.T-SNE in pytorch:基于 PyTorch 的 t 分布随机近邻嵌入(t-SNE)实现。

地址:https://github.com/cemoody/topicsne

14.AAE_pytorch:对抗自编码器

地址:https://github.com/fducau/AAE_pytorch

15.Kind_PyTorch_Tutorial:很容易的 PyTorch 入门教程。

地址:https://github.com/GunhoChoi/Kind_PyTorch_Tutorial

16.pytorch-poetry-gen:实现字符级的 RNN 模型。

地址:https://github.com/justdark/pytorch-poetry-gen

17.pytorch-REINFORCE:REINFORCE 的 PyTorch 实现,该项目支持 OpenAI gym 中的连续型和离散型环境。

地址:https://github.com/JamesChuanggg/pytorch-REINFORCE

18.PyTorch-Tutorial:快速上手搭建神经网络

地址:https://github.com/MorvanZhou/PyTorch-Tutorial

19.pytorch-intro:展示如何执行卷积神经网络和循环神经网络的一些脚本。

地址:https://github.com/joansj/pytorch-intro

论文实现

最近 Frankensteinian 等开发者爬取并统计了 ICLR 2019 提交论文提及不同框架的论文数量,其中 TensorFlow 的论文数量从 2018 年的 228 篇略微提升到了 266 篇,Keras 从 42 升到 56,但 Pytorch 的数量从 87 篇提升到了 252 篇。从这里可以看出来 PyTorch 在研究中有非常广泛的应用,很多研究论文都采用 PyTorch 作为首选框架。

因为动态计算图的便利,很多原本使用 TensorFlow 实现的论文都有 PyTorch 复现版,例如下面的高速公路网络和多人实时姿态估计(CVPR'17)等。而更多的是本来就由 PyTorch 实现的论文,包括 DiscoGAN、AnimeGAN 和 TCN 等。这一部分收录了 273 篇论文实现,但是限于长度,我们只展示了前 20 个项目,读者可查阅原项目了解更多。

1.google_evolution :该项目实现了 Esteban Real 等人完成的图像分类器大规模演化结果。

地址:https://github.com/neuralix/google_evolution

2.pyscatwave:通过 CuPy/PyTorch 实现的 Fast Scattering Transform。

地址:https://github.com/edouardoyallon/pyscatwave

3.scalingscattering:论文《Scaling The Scattering Transform : Deep Hybrid Networks》的实现

地址:https://github.com/edouardoyallon/scalingscattering

4.deep-auto-punctuation:PyTorch 实现字符级的自动标点符号模型。

地址:https://github.com/episodeyang/deep-auto-punctuation

5.Realtime_Multi-Person_Pose_Estimation :GitHub 项目 Realtime_Multi-Person_Pose_Estimation 的 PyTorch 版。

地址:https://github.com/tensorboy/pytorch_Realtime_Multi-Person_Pose_Estimation

6.PyTorch-value-iteration-networks:价值迭代网络(NIPS'16 论文)的 PyTorch 实现。

地址:https://github.com/onlytailei/PyTorch-value-iteration-networks

7.pytorch_Highway:基于 PyTorch 实现的高速公路网络。

地址:https://github.com/analvikingur/pytorch_Highway

8.pytorch_NEG_loss : 实现 NEG 损失函数

地址:https://github.com/analvikingur/pytorch_NEG_loss

9.pytorch_RVAE:实现生成序列数据的循环变分自编码器(Recurrent Variational Autoencoder)。

地址:https://github.com/analvikingur/pytorch_RVAE

10.pytorch_TDNN :时延神经网络(Time Delayed NN)的实现。

地址:https://github.com/analvikingur/pytorch_TDNN

11.eve.pytorch:Eve Optimizer 的实现,该最优化器在论文《proposed in Imploving Stochastic Gradient Descent with Feedback》中提出。

地址:https://github.com/moskomule/eve.pytorch

12.e2e-model-learning:基于任务的端到端模型学习。

地址:https://github.com/locuslab/e2e-model-learning

13.pix2pix-pytorch:使用条件对抗网络实现图像到图像的转换。

地址:https://github.com/mrzhu-cool/pix2pix-pytorch

14.Single Shot MultiBox Detector :单次多框检测器的 PyTorch 实现。

地址:https://github.com/amdegroot/ssd.pytorch

15.DiscoGAN:论文《Learning to Discover Cross-Domain Relations with Generative Adversarial Networks》的 PyTorch 实现

地址:https://github.com/carpedm20/DiscoGAN-pytorch

16.official DiscoGAN implementation:论文《Learning to Discover Cross-Domain Relations with Generative Adversarial Networks》的官方实现。

地址:https://github.com/SKTBrain/DiscoGAN

17.pytorch-es:进化策略的 PyTorch 实现。

地址:https://github.com/atgambardella/pytorch-es

18.piwise : 基于 VOC2012 数据集实现逐像素的分割。

地址:https://github.com/bodokaiser/piwise

19.pytorch-dqn:实现深度 Q 学习。

地址:https://github.com/transedward/pytorch-dqn

20.neuraltalk2-pytorch:实现图像描述模型,其中 CNN 根据任务可微调。

地址:https://github.com/ruotianluo/neuraltalk2.pytorch

PyTorch 其它项目

这一部分主要介绍了 PyTorch 其它各种资源,包括教程论文列表、个人的学习经验与实践、好用的 PyTorch 插件等。这一部分相对于其它部分比较散,但是有一些项目还是非常有意思的,例如在 PyTorch 项目模板中,其介绍了构建 PyTorch 项目一般所采用的结构,包括文件夹及文件结构、各文件的编写规范和示例等。这个项目一直在更新,下图展示了构建 PyTorch 项目的一般文件结构:

1.the-incredible-pytorch:包含 PyTorch 各种教程、论文、项目和社区的项目。

地址:https://github.com/ritchieng/the-incredible-pytorch

2.generative models:收集 TensorFlow、Keras 和 PyTorch 的生成模型,即 GAN 和 VAE。

地址:https://github.com/wiseodd/generative-models)

3.pytorch vs tensorflow:reddit 上 PyTorch 与 TensorFlow 对比。

地址:https://github.com/wiseodd/generative-models

4.Pytorch discussion forum:PyTorch 论坛。

地址:https://discuss.pytorch.org/

5.pytorch notebook: docker-stack :类似于 Jupyter Notebook 的项目。

地址:https://hub.docker.com/r/escong/pytorch-notebook/

6.drawlikebobross:使用神经网络做图象风格迁移。

地址:https://github.com/kendricktan/drawlikebobross

7.pytorch-tvmisc:PyTorch 个人实现项目。

地址:https://github.com/t-vi/pytorch-tvmisc

8.pytorch-a3c-mujoco:在 Mujoco gym 环境下实现 A3C 项目。

地址:https://github.com/andrewliao11/pytorch-a3c-mujoco

9.pytorch_chatbot:使用 PyTorch 实现 ChatBot。

地址:https://github.com/jinfagang/pytorch_chatbot

10.sketchnet:输入图像并生成处理源码,其可以再生成改图像。

地址:https://github.com/jtoy/sketchnet

11.Deep-Learning-Boot-Camp:非赢利公司,5 天的深度学习训练营。

地址:https://github.com/QuantScientist/Deep-Learning-Boot-Camp

12.Amazon_Forest_Computer_Vision:使用 PyTorch 或 Keras 的卫星图像标注代码,它有非常多 PyTorch 技巧。

地址:https://github.com/mratsim/Amazon_Forest_Computer_Vision

13.AlphaZero_Gomoku:用于五子棋的 AlphaZero 算法实现。

地址:https://github.com/junxiaosong/AlphaZero_Gomoku

14.pytorch-cv:目标检测、语义分割和姿态识别的实现项目。

地址:https://github.com/youansheng/pytorch-cv

15.deep-person-reid:深度人脸再识别 PyTorch 实现项目。

地址:https://github.com/KaiyangZhou/deep-person-reid

16.pytorch-template:PyTorch 项目模板。

地址:https://github.com/victoresque/pytorch-template

17.Deep Learning With Pytorch TextBook:使用 PyTorch 构建基于文本或视觉方面的神经网络指南。

地址:https://www.packtpub.com/big-data-and-business-intelligence/deep-learning-pytorch

18.compare-tensorflow-pytorch:对比使用 TensorFlow 写的模型和用 PyTorch 写的模型。

地址:https://github.com/jalola/compare-tensorflow-pytorch

工程PyTorch自然语言处理计算机视觉资源GitHub
9
相关数据
艾里克·雷德福人物

OpenAI 机器学习开发者/研究者,indico联合创始人、顾问。本科毕业于富兰克林欧林工程学院。

深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

自动编码器技术

自动编码器是用于无监督学习高效编码的人工神经网络。 自动编码器的目的是学习一组数据的表示(编码),通常用于降维。 最近,自动编码器已经越来越广泛地用于生成模型的训练。

发现跨域关系的生成对抗网络技术

DiscoGAN是一种能够自动学习并发现跨域关系的生成对抗网络。该模型建立了从一个领域到另一个领域的映射关系。在训练过程中,使用两个不同的图像数据集,并且这两个数据集之间没有任何显式的标签,同时也不需要预训练。该模型把一个领域中图像作为输入,然后输出另一个领域中的对应的图像(如下图所示)。该模型的核心是把两个不同的GAN结合在一起——每一个GAN保证产生式函数能够把一个领域和另一个领域映射起来。该模型的主要应用之一是图像的风格迁移。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

时延神经网络技术

时间延迟神经网络(TDNN)是一种人工神经网络结构,其主要目的是对图案进行不受位移影响的分类,即不需要事先确定图案的起点和终点。TDNN最先被提出是用来分类语音信号中的音素以用于自动语音识别,因为语音识别中精确的分段或特征边界的自动确定是困难的或不可能的,而TDNN识别音素及其基本的声学/语音特征,与时间上的位置无关,不受时间偏移影响。

迭代 技术

模型的权重在训练期间的一次更新。迭代包含计算参数在单个批量数据上的梯度损失。

神经机器翻译技术

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题。

变分自编码器技术

变分自编码器可用于对先验数据分布进行建模。从名字上就可以看出,它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector)。解码器吸收数据的低级表征,然后输出同样数据的高级表征。变分编码器是自动编码器的升级版本,其结构跟自动编码器是类似的,也由编码器和解码器构成。在自动编码器中,需要输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比原始方法的随机取一个随机噪声更好,因为这包含着原图片的信息,然后隐含向量解码得到与原图片对应的照片。但是这样其实并不能任意生成图片,因为没有办法自己去构造隐藏向量,所以它需要通过一张图片输入编码才知道得到的隐含向量是什么,这时就可以通过变分自动编码器来解决这个问题。解决办法就是在编码过程给它增加一些限制,迫使其生成的隐含向量能够粗略的遵循一个标准正态分布,这就是其与一般的自动编码器最大的不同。这样生成一张新图片就比较容易,只需要给它一个标准正态分布的随机隐含向量,这样通过解码器就能够生成想要的图片,而不需要给它一张原始图片先编码。

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

语音合成技术

语音合成,又称文语转换(Text to Speech)技术,是将人类语音用人工的方式所产生,能将任意文字信息实时转化为标准流畅的语音朗读出来,相当于给机器装上了人工嘴巴。它涉及声学、语言学、数字信号处理、计算机科学等多个学科技术,是信息处理领域的一项前沿技术,解决的主要问题就是如何将文字信息转化为可听的声音信息,也即让机器像人一样开口说话。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

深度生成模型技术

深度生成模型基本都是以某种方式寻找并表达(多变量)数据的概率分布。有基于无向图模型(马尔可夫模型)的联合概率分布模型,另外就是基于有向图模型(贝叶斯模型)的条件概率分布。前者的模型是构建隐含层(latent)和显示层(visible)的联合概率,然后去采样。基于有向图的则是寻找latent和visible之间的条件概率分布,也就是给定一个随机采样的隐含层,模型可以生成数据。 生成模型的训练是一个非监督过程,输入只需要无标签的数据。除了可以生成数据,还可以用于半监督的学习。比如,先利用大量无标签数据训练好模型,然后利用模型去提取数据特征(即从数据层到隐含层的编码过程),之后用数据特征结合标签去训练最终的网络模型。另一种方法是利用生成模型网络中的参数去初始化监督训练中的网络模型,当然,两个模型需要结构一致。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

t分布随机邻嵌入技术

t分布随机邻嵌入(t-SNE)是由Geoffrey Hinton和Laurens van der Maaten 开发的一种降维的机器学习算法。 这是一种非线性降维技术,特别适合将高维数据嵌入到二维或三维空间,然后可以在散点图中将其可视化。 具体来说,它通过二维或三维点对每个高维对象进行建模,使得类似的对象由附近的点建模,不相似的对象由远点建模。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

序列到序列技术

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

图像增强技术

图像增强技术用于增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合。它通过有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。

长短期记忆网络技术

长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。

图网技术

ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

对抗自编码器技术

对抗自编码器通过使用对抗学习(adversarial learning)避免了使用 KL 散度。在该架构中,训练一个新网络来有区分地预测样本是来自自编码器的隐藏代码还是来自用户确定的先验分布 p(z)。编码器的损失函数现在由重建损失函数与判别器网络(discriminator network)的损失函数组成。

暂无评论
暂无评论~