深度学习教程与项目索引

来自集智百科 - 复杂系统|人工智能|复杂科学|复杂网络|自组织
思无涯咿呀咿呀讨论 | 贡献2020年10月14日 (三) 23:20的版本 (创建页面,内容为“本页面收集了大量深度学习项目的代码链接。所有代码均按照所属技术领域建立索引,以便大家查阅使用。 ==基本教程== ===…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

本页面收集了大量深度学习项目的代码链接。所有代码均按照所属技术领域建立索引,以便大家查阅使用。


基本教程

基础教程

PyTorch Tutorials

https://github.com/MorvanZhou/PyTorch-Tutorial.git

著名的“莫烦”PyTorch系列教程的源码。


Deep Learning with PyTorch: a 60-minute blitz

http://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html

PyTorch官网推荐的由网友提供的60分钟教程,本系列教程的重点在于介绍PyTorch的基本原理,包括自动求导,神经网络,以及误差优化API。


Simple examples to introduce PyTorch

https://github.com/jcjohnson/pytorch-examples.git

由网友提供的PyTorch教程,通过一些实例的方式,讲解PyTorch的基本原理。内容涉及Numpy、自动求导、参数优化、权重共享等。


入门实例

Ten minutes pyTorch Tutorial

https://github.com/SherlockLiao/pytorch-beginner.git

知乎上“十分钟学习PyTorch“系列教程的源码。


Official PyTorch Examples

https://github.com/pytorch/examples

官方提供的实例源码,包括以下内容:

  • MNIST Convnets
  • Word level Language Modeling using LSTM RNNs
  • Training Imagenet Classifiers with Residual Networks
  • Generative Adversarial Networks (DCGAN)
  • Variational Auto-Encoders
  • Superresolution using an efficient sub-pixel convolutional neural network
  • Hogwild training of shared ConvNets across multiple processes on MNIST
  • Training a CartPole to balance in OpenAI Gym with actor-critic
  • Natural Language Inference (SNLI) with GloVe vectors, LSTMs, and torchtext
  • Time sequence prediction - create an LSTM to learn Sine waves


PyTorch Tutorial for Deep Learning Researchers

https://github.com/yunjey/pytorch-tutorial.git

据说是提供给深度学习科研者们的PyTorch教程←_←。教程中的每个实例的代码都控制在30行左右,简单易懂,内容如下:

  • PyTorch Basics
  • Linear Regression
  • Logistic Regression
  • Feedforward Neural Network
  • Convolutional Neural Network
  • Deep Residual Network
  • Recurrent Neural Network
  • Bidirectional Recurrent Neural Network
  • Language Model (RNN-LM)
  • Generative Adversarial Network
  • Image Captioning (CNN-RNN)
  • Deep Convolutional GAN (DCGAN)
  • Variational Auto-Encoder
  • Neural Style Transfer
  • TensorBoard in PyTorch


PyTorch-playground

https://github.com/aaron-xichen/pytorch-playground.git

PyTorch初学者的Playground,在这里针对一下常用的数据集,已经写好了一些模型,所以大家可以直接拿过来玩玩看,目前支持以下数据集的模型。

  • mnist, svhn
  • cifar10, cifar100
  • stl10
  • alexnet
  • vgg16, vgg16_bn, vgg19, vgg19_bn
  • resnet18, resnet34, resnet50, resnet101, resnet152
  • squeezenet_v0, squeezenet_v1
  • inception_v3


图像

图像生成

绘画风格到图片的转换:Neural Style

https://github.com/jcjohnson/neural-style

这个项目是用 Torch 对 Leon A. Gatys, Alexander S. Ecker, 和 Matthias Bethge 等人的论文“A Neural Algorithm of Artistic Style”的一个实现。论文中提出一种算法,用卷积神经网络将一幅图像的内容与另一幅图像的风格进行组合。

图像类比转换:image-analogies

https://github.com/awentzonline/image-analogies

“神经图像类比”(neural image analogies)这个项目基本上是 A. Hertzmann et. al(2001)的论文“Image Analogies”的一个实现。在这个项目中,我们使用了 VGG16 的特征,利用 Chuan Li, Michael Wand (2016) 的论文“Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis”中描述的方法进行patch的匹配和混合。初始代码改编自 Keras 的“神经风格迁移”示例。

根据涂鸦生成图片:Neural Doodle

https://github.com/alexjc/neural-doodle

使用深度神经网络把你的二流涂鸦变成艺术一般的作品!这个项目是 Champandard(2016)的论文 “Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artworks”的一个实现,基于 Chuan Li 和 Michael Wand(2016)在论文“Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis”中提出的 Neural Patches 算法。

根据涂鸦类比图片:Sketchy

https://github.com/janesjanes/sketchy

这个项目可以根据用户手绘的涂鸦,匹配出类似的图片。

根据图片生成铅笔画:Pencil

https://github.com/fumin/pencil

把一副图像变成铅笔水粉画。

手写文字模拟:rnnlib

https://github.com/szcom/rnnlib

这个项目可以做到手写文字模拟。

转换风景图片:Transient Attributes for High-Level Understanding and Editing of Outdoor Scenes

http://transattr.cs.brown.edu

这个项目可以识别和理解图片中的风景,并且可以根据用户提出的条件,定向改变原风景画中的环境(比如more night)

图片变Emojis表情:What emojis will the Emojini 3000 grant your photos?

http://engineering.curalate.com/2016/01/20/emojinet.html

将用户提供的图片转化成相关的表情图标

增加图片分辨率:srez

https://github.com/david-gpu/srez

srez(super-resolution through deep learning),即通过深度学习实现图像超分辨率。这个项目是利用深度学习将 16x16 的图像分辨率增加 4 倍,基于用来训练神经网络的数据集,所得到的图像具有鲜明的特征。

图片自动上色:Colornet

https://github.com/pavelgonchar/colornet

Colornet 是一个给灰度图像自动上色的神经网络。

生成可爱的动漫头像:AnimeGAN

https://github.com/jayleicn/animeGAN

使用PyTorch实现的GAN,可以自定义生成漂亮的动漫妹子头像,附带训练数据集哦!


骡子变斑马:CycleGAN and pix2pix in PyTorch

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.git

图到图的翻译,著名的 CycleGAN 以及 pix2pix 的PyTorch 实现。

强大的图像生成器:DiscoGAN in PyTorch

https://github.com/carpedm20/DiscoGAN-pytorch.git

《Learning to Discover Cross-Domain Relations with Generative Adversarial Networks》的 PyTorch 实现。

使用RNN生成手写数字:DRAW implmentation

https://github.com/skaae/lasagne-draw

使用RNN生成手写体数字。

使用CNN来放大图片:waifu2x

https://github.com/nagadomi/waifu2x

使用CNN来放大图片,与普通图片放大不同的是,使用CNN“生成”放大,使低分辨率的图片在放大后也不会出现像素锯齿。

看图说话

根据图片生成一段描述:Show and Tell

https://github.com/tensorflow/models/tree/master/im2txt

这是 Oriol Vinyals et. al.(2016)的论文“Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Challenge”的用TensorFlow实现的 image-to-text 图片说明生成模型。

根据图片讲故事:neural-storyteller

https://github.com/ryankiros/neural-storyteller

Neural-storyteller 是一个能够根据图像内容生成一个小故事的循环神经网络。这个 GitHub 库里包含了使用任意图像生成故事的代码,以及用于训练新模型的说明。

根据图片将故事2:NeuralTalk2

https://github.com/karpathy/neuraltalk2

循环神经网络(RNN)可以用于给图像取标题。NeuralTalk2 比原始版本的 NeuralTalk 更快而且性能更好。与原来的 NeuralTalk 相比,NeuralTalk2 的实现是批量的,可以使用 Torch 在 GPU上运行,并且支持 CNN 微调。这些都使得语言模型(~100x)的训练速度大大加快,但由于我们还有一个 VGGNet,因此总体上的提升没有很多。但是这仍然是个好模型,可以在 2~3 天里训练好,而且表现出的性能非常好。


识别图片中的文字:CRNN for image-based sequence recognition

https://github.com/bgshih/crnn.git

这个是 Convolutional Recurrent Neural Network (CRNN) 的 PyTorch 实现。CRNN 由一些CNN,RNN和CTC组成,常用于基于图像的序列识别任务,例如场景文本识别和OCR。

图像识别

用于物体识别的全卷积网络:PyTorch-FCN

https://github.com/wkentaro/pytorch-fcn.git

一个性能出众的物体识别全卷积神经网络,使用PyTorch实现。

引入注意力的卷积网络:Attention Transfer

https://github.com/szagoruyko/attention-transfer.git

论文 "Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer" 的PyTorch实现。

物体识别实例:Deep-Learning

https://github.com/priya-dwivedi/Deep-Learning/blob/master/Object_Detection_Tensorflow_API.ipynb

一个基于Ipython Notebook的物体识别实例,使用了Tensorflow Object Dectection API

物体识别API:Tensorflow Object Detection API

https://github.com/tensorflow/models/tree/master/object_detection

Google Tensorflow Object Dectection API 的开源代码。

推理场景结构:SfMLearner

https://github.com/tinghuiz/SfMLearner

用单张图片推理场景结构:UC Berkeley提出3D景深联合学习方法

用于分辨色情图像的open_nsfw

https://github.com/yahoo/open_nsfw

这是雅虎构建的用于检测图片是否包含不适宜工作场所(NSFW)内容的深度神经网络项目,GitHub 库中包含了网络的 Caffe 模型的代码。检测具有攻击性或成人内容的图像是研究人员进行了几十年的一个难题。随着计算机视觉技术和深度学习的发展,算法已经成熟,雅虎的这个模型能以更高的精度分辨色情图像。 由于 NSFW 界定其实是很主观的,有的人反感的东西可能其他人并不觉得如何。雅虎的这个深度神经网络只关注NSFW内容的一种类型,即色情图片,所以该模型不适用于检测素描、文字、动画、暴力图片等内容。

人脸识别:Open Face

https://github.com/cmusatyalab/openface

OpenFace 是一个使用深度神经网络,用 Python 和 Torch 实现人脸识别的项目。神经网络模型基于 Google Florian Schroff 等人的 CVPR 2015 论文“FaceNet: A Unified Embedding for Face Recognition and Clustering” ,Torch 让网络可以在 CPU 或 CUDA 上运行。

易用人脸识别:Face_recognition

https://github.com/ageitgey/face_recognition#face-recognition

这也提供了一个简单的 face_recognition 命令行工具,你可以打开命令行中任意图像文件夹,进行人脸识别!

快速人脸识别:MobileID

https://github.com/liuziwei7/mobile-id

据说是个超级快速的人脸识别程序,可以用在手机上

图像识别框架1:AlexNet & VGG Net & GoogleNet & ResNet

AlexNet

https://gist.github.com/JBed/c2fb3ce8ed299f197eff

VGG Ne

https://github.com/fchollet/keras/blob/master/keras/applications/vgg16.py

GoogleNet

https://github.com/fchollet/keras/blob/master/keras/applications/inception_v3.py

ResNet

https://github.com/fchollet/keras/blob/master/keras/applications/resnet50.py

图像识别框架2:ResNeXt & RCNN & YOLO & SqueezeNet & SegNet

ResNeXt

https://github.com/titu1994/Keras-ResNeXt

RCNN (基于区域的 CNN)

https://github.com/yhenon/keras-frcnn

YOLO (You Only Look once)

https://github.com/allanzelener/YAD2K

SqueezeNet

https://github.com/rcmalli/keras-squeezenet

SegNet

https://github.com/imlab-uiip/keras-segnet

预训练的图像识别模型:functional-zoo

https://github.com/szagoruyko/functional-zoo.git

由PyTorch和Tensorflow实现的常用图像识别模型包含预训练参数。

预定义的CNN过滤器: PyScatWave

https://github.com/edouardoyallon/pyscatwave

一套预定义的filter,用于增强图像识别的效果。

计算图片中物体的相似度:Conditional Similarity Networks (CSNs)

https://github.com/andreasveit/conditional-similarity-networks.git

《Conditional Similarity Networks》的PyTorch实现,可以根据不同的条件计算图片中物体的相似度。

量子化学中的神经信息传递(・_・;Neural Message Passing for Quantum Chemistry

https://github.com/priba/nmp_qc.git

论文《Neural Message Passing for Quantum Chemistry》的PyTorch实现,讲的是量子化学里的神经信息传递!听起来碉堡了。

图像理解

Visual Question Answering in Pytorch

https://github.com/Cadene/vqa.pytorch.git

一个PyTorch实现的优秀视觉推理问答系统,是基于论文《MUTAN: Multimodal Tucker Fusion for Visual Question Answering》实现的。项目中有详细的配置使用方法说明。

Facebook看图答题:Clevr-IEP

https://github.com/facebookresearch/clevr-iep.git

Facebook Research 论文《Inferring and Executing Programs for Visual Reasoning》的PyTorch实现,讲的是一个可以基于图片进行关系推理问答的网络。

视频

视频生成

视频绘画风格滤镜:Multi-style Generative Network for Real-time Transfer

https://github.com/zhanghang1989/PyTorch-Style-Transfer.git

其实是绘画风格转换器的视频版,同时支持视频和图片的实时风格转换,就一个字,快!

物体识别

强大的实时物体识别:CortexNet

https://github.com/e-lab/pytorch-CortexNet.git

一个强大的,模仿人类视觉系统的,能够实现实时视频物体检测的神经网络技术。

识别视频场景并生成字幕:Video Caption with Neuraltalk2

https://github.com/cgq5/Video-Caption-with-Neuraltalk2

视频版的 Neuraltalk2。可以实时跟随视频生成文字描述,并可以导出srt字幕文件。

根据条件提取视频片段:Miles Deep - AI Porn Video Editor

https://github.com/ryanjay0/miles-deep

是一个在 Caffe 上实现的深度学习色情视频分类器/编辑器。使用有残差连接的卷积神经网络,Miles Deep 能根据性行为的类别将色情视频按没秒的场景快速分为六个类别,准确率达到 95%。然后,它能够利用该分类自动编辑视频,可以删除所有不包含性接触的场景,或者编辑出一个特定的行为。 与雅虎的使用相似架构的 NSFW 模型不同,Miles Deep 能区分裸体和其他显性的性行为之间的区别。这是第一个也是唯一一个也是唯一一个公开发布的色情内容分类及编辑工具。

声音

语音识别

句子级语音识别:Speech-to-Text-WaveNet

https://github.com/buriburisuri/speech-to-text-wavenet

这是一个基于 DeepMind 的 WaveNet 和 TensorFlow 的端到端句子级语音识别项目。这是DeepMind 的论文“WaveNet: A Generative Model for Raw Audio”的一个实现。虽然已经有研究者用 TensorFlow 实现了 WaveNet,但他们没有实现语音识别。DeepMind 最近的一些论文很难复制。这篇论文中省略了有关实现的具体细节,所以这个 GitHub 库中提供了作者的方式来补充缺失的细节。

音乐生成

爵士乐生成器:Deep Jazz

https://github.com/jisungk/deepjazz

这是一个使用 Keras 和 Theano 生成爵士乐的深度学习项目。作者 Ji-Sung Kim 在参加黑客马拉松(hackathon)的36个小时内建成这个模型,它使用两个深度学习库 Keras 和 Theano 生成爵士音乐。具体来说,它构建两层的 LSTM,从跟定的 MIDI 文件中学习,利用深度学习技术生成音乐。 Deep Jazz 生成的 Jazz 可以在这个网站上欣赏:https://soundcloud.com/deepjazz-ai

Google的AI作曲家:Magenta

https://github.com/tensorflow/magenta

Google Brain团队的一组研究人员发布了一个项目Project Magenta,其主要目标是利用机器学习创作艺术和谱写曲子。Project Magenta使用了 TensorFlow系统,研究人员在GitHub上开源了他们的模型和工具。 研究人员称,机器生成的音乐已经存在了许多年,但它们在都缺乏长的叙事艺术。Project Magenta就试图将故事作为机器生成音乐的重要部分。Google公布了一个DEMO(MP3)表现Magenta项目的成果。


古典音乐生成:Biaxial Recurrent Neural Network for Music Composition

https://github.com/hexahedria/biaxial-rnn-music-composition

一款生成古典音乐的递归神经网络工具。

文本

文本生成

生成莎士比亚剧本:char-rnn

https://github.com/karpathy/char-rnn

一个基于RNN的文本生成器。可以自动生成莎士比亚的剧本或者shell代码。

生成汪峰歌词:wangfeng-rnn

https://github.com/phunterlau/wangfeng-rnn

基于char-rnn的汪峰歌词生成器

文本理解

文章摘要总结:AbstractiveSummarization

https://github.com/facebookarchive/NAMAS

由Facebook开发的文本摘要系统。

机器自己做阅读理解:DeepMind Teaching Machines to Read and Comprehend

https://github.com/thomasmesnard/DeepMind-Teaching-Machines-to-Read-and-Comprehend

让机器做阅读理解,给机器一段document和一个question,让机器从document中找到能够回答这个question的answer

语言

基础教程

以NLP为主题的教程:DeepLearningForNLPInPytorch

https://github.com/rguthrie3/DeepLearningForNLPInPytorch.git

一套以 NLP 为主题的 PyTorch 基础教程。本教程使用Ipython Notebook编写,看起来很直观,方便学习。

从RNN出发的NLP教程:Practial Pytorch with Topic RNN & NLP

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

以 RNN for NLP 为出发点的 PyTorch 基础教程,分为“RNNs for NLP”和“RNNs for timeseries data”两个部分。

资源集合:Deep Learning for NLP resources

https://github.com/andrewt3000/DL4NLP

一套以NLP为主题的资源集合,其中包括了大量NLP相关的文章、博客。

NLP解决方案集合:Solving NLP tasks using Deep Learning

https://github.com/zhuruihe/Deep-Learning-for-NLP-Resources#solving-nlp-tasks-using-deep-learning

一些使用深度学习解决自然语言处理问题的集合,内容包主体识别、文本理解、机器翻译等,有相当的参考价值

工具

清华大学NLP实验室GitHub小站

https://github.com/thunlp

著名的清华大学NLP实验室的GitHub站点,其中有知识图谱TransX的模型实现,一些必读的NLP Paper资源,以及一些中文语言处理的工具。

复旦大学NLP实验室GitHub小站

https://github.com/xpqiu

著名的福大大学NLP实验室的GitHub站点,其中提供了一套用于中文语言处理的工具,以及一个2016年微博分词的数据集

中科院Kaggle全球文本匹配获奖项目

https://github.com/HouJP/kaggle-quora-question-pairs/

16-中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程。

汉语处理工具包:Han Language Processing

https://github.com/hankcs/HanLP

HanLP是由一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。

Ansj中文分词

https://github.com/NLPchina/ansj_seg

ansj分词.ict的真正java实现.分词效果速度都超过开源版的ict. 中文分词,人名识别,词性标注,用户自定义词典

语句相似度计算:FuzzyWuzzy

https://github.com/seatgeek/fuzzywuzzy

可以在多种尺度上比较两句话的相似度,比如fuzz.ratio("this is a test", "this is a test!") output:97。

机器翻译

基于PyTorch的机器翻译系统:PyOpenNMT

https://github.com/OpenNMT/OpenNMT-py.git

一套由PyTorch实现的机器翻译系统。

谷歌的注意力机制模型:Attention is all you need

https://github.com/jadore801120/attention-is-all-you-need-pytorch.git

Google Research 著名论文《Attention is all you need》的PyTorch实现。

可复用Seq2Seq模型:Sequence to Sequence Learning with Keras

https://github.com/farizrahman4u/seq2seq

一套可以结合到自己网络中的Seq2Seq模型,使用起来非常灵活,可以直接使用,也可以集成在自己的网络中,且有多级别的Seq2Seq模型可以选择使用。

机器翻译中的自动对齐方法

https://github.com/nyu-dl/dl4mt-tutorial/blob/master/session2/nmt.py

不同于传统的统计机器翻译系统,神经机器翻译完全采用大规模的神经网络模型。而大多数神经机器翻译方法均采用encoder-decoder模式,将源文本编码成固定长度的向量化表示。问题是随着句子长度增长,基于此模式的翻译性能大幅度恶化。为避免此问题,本方法在encoder-decoder模式中融入一种自动对齐策略。相关论文:《Neural Machine Translation by Jointly Learning to Align and Translate》。

可交谈机器人

维基百科问答机器人:DrQA

https://github.com/facebookresearch/DrQA#drqa

一个基于维基百科的开放域问题问答系统

剑桥的餐厅推荐机器人:NNDIAL

https://github.com/shawnwun/NNDIAL#nndial

剑桥大学机器对话系统小组的成果,可以用自然语言与人交流,从而根据用户的需求推荐相应的餐厅。从网上的评价来看,这个聊天机器人的构架以及训练方法和数据集都是非常靠谱的,是目的服务型聊天机器人的典型范例。项目论文:《A network-based end-to-end trainable task-oriented dialogue system》,集智AI学园“打造自己的聊天机器人”课程,第3节课是对这个系统的详细解析。

一个中文聊天机器人:chatbot-zh-torch7

https://github.com/majoressense/chatbot-zh-torch7

一个开放领域的聊天机器人,使用中文训练。

一个英文聊天机器人:Deep Q&A

https://github.com/Conchylicultor/DeepQA

一个基于论文《A neural conversational model》实现的聊天机器人,在GitHub上挺有名的。

脸书的谈判机器人:Deal or No Deal?

https://github.com/facebookresearch/end-to-end-negotiator.git

Facebook AI Research 论文《Deal or No Deal? End-to-End Learning for Negotiation Dialogues》的 PyTorch 实现。开放了数据集,支持使用自然语言与人谈判,还支持以强化学习的方式自我学习。

可推理问答机器人:memnn

https://github.com/facebook/MemNN

memnn的一个官方实现。可以根据文字描述,针对描述中的实体进行推理问答。

用端到端的记忆做QA:End-To-End Memory Networks

https://github.com/npow/MemN2N

类似于《Memory Networks》的工作,采用Recurrent attention model + large external memory,然而本工作采用一种End-to-end模式进行训练,无需知道背景信息中哪些是支撑事实。更适用于实际场景。采用一种神经机器翻译策略的扩展方法。该模型可灵活地解决QA问题(对比Memory Networks)及语言建模问题(对比RNN和LSTM)。

建立在人工数据集上的问答系统:bAbI tasks

https://github.com/facebook/bAbI-tasks

Facebook Research 认为QA系统应该先在人造数据集上取得突破性进展才能比较好的应用于开放域非人造数据集中。当现实数据不够大时,研究方法通常会设计较为复杂的方法并陷入局部收敛问题中,而设计一种人造数据是避免此问题一种比较好的途径。

传统的对话是很难评估的,这是AI的长远问题,而问答系统中对问题的响应是比较容易评估的。

传统的QA方法是基于大规模知识库,并采用人工构造模版及特征。

对之前的MemNNs的一些问题进行改进。

问我啥都行:Dynamic Memory Networks for NLP

https://github.com/swstarlab/DynamicMemoryNetworks

提出了一个Dynamic Memory Network,

Input:所有evidence句子作为sequence过GRU,有几个句子就生成几个hidden state;

Question:一句话,过GRU;

Episode: 以question output作为初始化,每次(共TM[Math Processing Error]次)过一轮GRU;

Answer:用mTM[Math Processing Error]作为初始化,根据具体情况决定输出y1...yn[Math Processing Error]还是yn[Math Processing Error]。

基于强化学习的聊天机器人:KB-InfoBot

https://github.com/MiuLab/KB-InfoBot

论文《Towards End-to-End Reinforcement Learning of Dialogue Agents for Information Access》的代码实现。

游戏

AI打游戏

民间AlphaGo:RocAlphaGo

https://github.com/Rochester-NRT/RocAlphaGo

这个项目是有学生主导的一个独立项目,使用 Python 和 Keras 重新实现了 DeepMind 在2016年发表的论文 "Mastering the game of Go with deep neural networks and tree search"(《用深度神经网络和树搜索学习围棋》)。使用 python 和 Keras 的这个选择优先考虑了代码清晰度,至少在早期阶段是如此。 这个项目目前仍在进行中,还不是 AlphaGo 的完全实现。项目先期关注 DeepMind AlphaGo 中神经网络的训练方面,而且已经得到论文中的树搜索算法(tree search algorithm)的一个简单单线程的实现,虽然速度上无法与 DeepMind 相比。

AI玩FlappyBird:DeepLearningFlappyBird

https://github.com/yenchenlin/DeepLearningFlappyBird

这个项目使用深度Q网络(Deep Q-Network,DQN)学习玩 Flappy Bird 游戏。 这个项目灵感来自使用深度增强学习玩 Atari 游戏(Mnih, Volodymyr, et al. "Playing atari with deep reinforcement learning." 2013),论文中提出深度Q学习算法(Deep Q Learning algorithm),我们发现这个算法可以推广到 Flappy Bird 游戏上。

AI玩雅达利游戏::DeepMind-Atari-Deep-Q-Learner

https://github.com/kuz/DeepMind-Atari-Deep-Q-Learner

DeepMind实现的可以将雅达利游戏玩的比人类还好的AI。

AI打星际2:CommandCenter: StarCraft 2 AI Bot

https://github.com/davechurchill/commandcenter

一个已经训练好的可以打星际2的AI。

AI打星际基础环境:PySC2 - StarCraft II Learning Environment

https://github.com/deepmind/pysc2

使用AI打星际2的基础环境。


强化学习常用算法包:Baselines

https://github.com/openai/baselines

由OpenAI提供的常用强化学习算法包

Deep Reinforcement Learning with pytorch & visdom

https://github.com/onlytailei/pytorch-rl.git

多种使用PyTorch实现强化学习的方法。


Value Iteration Networks in PyTorch

https://github.com/onlytailei/Value-Iteration-Networks-PyTorch.git

Value Iteration Networks (VIN) 的PyTorch实现。

A3C in PyTorch

https://github.com/onlytailei/A3C-PyTorch.git

Adavantage async Actor-Critic (A3C) 的PyTorch实现。

深度学习通用技术

通用训练技巧

Big batch training

https://github.com/eladhoffer/bigBatch.git

《Train longer, generalize better: closing the generalization gap in large batch training of neural networks》的 PyTorch 实现。

对付不均匀分布:Out-of-Distribution Detector for Neural Networks

https://github.com/ShiyuLiang/odin-pytorch.git

这是一个能够检测“分布不足”(Out-of-Distribution)样本的方法的PyTorch实现。当“true positive rate”为95%时,该方法将DenseNet(适用于CIFAR-10)的“false positive rate”从34.7%降至4.3%。


DenseNets

https://github.com/gpleiss/efficient_densenet_pytorch.git

DenseNets的PyTorch实现,优化以节省GPU内存。