“Deep Learning for Industrial Application 2.0”的版本间的差异

来自集智百科
跳转到: 导航搜索
人脸识别:Open Face
Facebook开源PyTorch版本fairseq翻译模型
 
(未显示2个用户的33个中间版本)
第5行: 第5行:
  
 
===图像生成===
 
===图像生成===
 +
 +
====图片自动上色====
 +
 +
=====插画界爆火的:PaintsChainer=====
 +
 +
PaintsChainer是在插画界鼎鼎有名的应用,它可以直接把画师的线稿手稿进行简单的上色,说是简单,其实有时候也能达到经验的效果。
 +
 +
下面就是使用这个应用完成的一种效果,可以看到经上色后已经可以达到成品水平了。
 +
 +
[[File:Paint chainer 0.png|缩略图|居中|Paint chainer 0.png]]
 +
 +
[[File:Paint chainer 1.png|缩略图|居中|Paint chainer 1.png]]
 +
 +
它同时还支持半引导式上色,用户可以在某些位置指定色域,PaintsChainer会在这个位置按用户的需求来上色。
 +
 +
[[File:Paint chainer 2.png|缩略图|居中|Paint chainer 2.png]]
 +
 +
这种可以自动上色的应用其实和“自动化妆”、“苦脸变笑脸”、“男人变女人”等应用一样,都是通过对抗生成网络(GAN)来实现的。
 +
 +
可以理解为:GAN通过学习大量的“线稿图”和“上色图”,学习到了其中的关系,而这种关系就是上色的方法。
 +
 +
相关开源实现:
 +
 +
https://github.com/pavelgonchar/colornet
  
 
====绘画风格转换:Neural Style====
 
====绘画风格转换:Neural Style====
第18行: 第42行:
 
https://github.com/jcjohnson/neural-style
 
https://github.com/jcjohnson/neural-style
  
====字迹模拟 :RNNLib====
+
====字迹模拟====
  
 
=====签名生成软件=====
 
=====签名生成软件=====
第33行: 第57行:
  
 
https://github.com/szcom/rnnlib
 
https://github.com/szcom/rnnlib
 
====图片自动上色:Colornet====
 
 
=====插画界爆火的:PaintsChainer=====
 
 
PaintsChainer是在插画界鼎鼎有名的应用,它可以直接把画师的线稿手稿进行简单的上色,说是简单,其实有时候也能达到经验的效果。
 
 
下面就是使用这个应用完成的一种效果,可以看到经上色后已经可以达到成品水平了。
 
 
[[File:自动上色0.png|缩略图|居中|自动上色0.png]]
 
 
相关开源实现:
 
 
https://github.com/pavelgonchar/colornet
 
  
 
====图片装换====
 
====图片装换====
第105行: 第115行:
 
https://github.com/wkentaro/pytorch-fcn.git
 
https://github.com/wkentaro/pytorch-fcn.git
  
==== 引入注意力的卷积网络: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
+
 一 般这些系统都可以判断一段图像是属于色情、性感还是正常。
  
====推理场景结构:SfMLearner====
+
[[File:Jianhuang 01.png|缩略图|居中|Jianhuang 01.png]]
  
https://github.com/tinghuiz/SfMLearner
+
  相关开源实现:
 
+
  用单张图片推理场景结构:UC Berkeley提出3D景深联合学习方法
+
 
+
====用于分辨色情图像的open_nsfw====
+
  
 
https://github.com/yahoo/open_nsfw
 
https://github.com/yahoo/open_nsfw
  
这是雅虎构建的用于检测图片是否包含不适宜工作场所(NSFW)内容的深度神经网络项目,GitHub 库中包含了网络的 Caffe 模型的代码。检测具有攻击性或成人内容的图像是研究人员进行了几十年的一个难题。随着计算机视觉技术和深度学习的发展,算法已经成熟,雅虎的这个模型能以更高的精度分辨色情图像。
+
====人脸识别====
由于 NSFW 界定其实是很主观的,有的人反感的东西可能其他人并不觉得如何。雅虎的这个深度神经网络只关注NSFW内容的一种类型,即色情图片,所以该模型不适用于检测素描、文字、动画、暴力图片等内容。
+
 
+
====人脸识别 :Open Face====
+
  
 
=====Face++ & 商汤科技 等等=====
 
=====Face++ & 商汤科技 等等=====
第148行: 第151行:
 
https://github.com/ageitgey/face_recognition#face-recognition
 
https://github.com/ageitgey/face_recognition#face-recognition
  
====易用人脸识别:Face_recognition====
+
=== 图像理解===
  
https://github.com/ageitgey/face_recognition#face-recognition
+
====OCR光学文字识别====
  
这也提供了一个简单的 face_recognition 命令行工具,你可以打开命令行中任意图像文 夹,进行人脸 识别
+
=====证 件识别=====
  
====快速 识别 :MobileID====
+
支付宝有一个证件校验系统。证件校验系统是为了支付宝的证件审核开发的,它使证件校核时间从1天缩小到1秒,同时提升了30%的通过率。以前是靠 人识别 ,可能会误判,比如人识别是50%的识别率,那么机器他现在比如说做80%的识别率,这是非常了不得的。
  
https://github.com/liuziwei7/mobile-id
+
[[File: 证件识别.jpg|缩略图|居中|证件识别.jpg]]
  
  据说是个超级快速 人脸 识别 程序 可以用在手机上
+
  这种将证件图片扫描,将证件图片中的文字及图片提取出来 技术叫做光学文字 识别 技术 即OCR。
  
==== 像识别框架1:AlexNet & VGG Net & GoogleNet & ResNet====
+
[[File:OCR.png|缩略 |居中|OCR.png]]
  
AlexNet
+
目前最先进的OCR技术采用的是LSTM+CTC的实现方法。LSTM+CTC的框架技术最初是用在自然语言语音识别领域,应用在OCR上,可以实现“一句话”的文字识别效果。
  
https://gist.github.com/JBed/c2fb3ce8ed299f197eff
+
[[File:Advaced OCR.png|缩略图|居中|Advaced OCR.png]]
  
VGG Ne
+
相关开源实现:
  
https://github.com/fchollet/keras/blob/master/keras/applications/vgg16.py
+
LSTM_CTC_OCR
  
GoogleNet
+
https://github.com/ilovin/lstm_ctc_ocr
  
https://github.com/fchollet/keras/blob/master/keras/applications/inception_v3.py
+
Convolutional Recurrent Neural Network
  
ResNet
+
https://github.com/bgshih/crnn
 
+
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
+
[[File: 餐厅识别0.png|缩略图|居中|实时餐厅查询0.gif]]
  
个PyTorch实现 优秀视觉推理问答系统 是基于论文《MUTAN: Multimodal Tucker Fusion for Visual Question Answering》实现 。项目中有详细 配置使用方法说明
+
Google Lens有 个很酷 功能 通过用手机扫街边 餐厅,可以直接获得餐厅 评分推荐等信息
  
====Facebook看 答题:Clevr-IEP====
+
这其实就是将“光学文字识别技术”应用在现实增项中。通过将实时的景象分割成 片,然后识别图片中的文字,通过识别出的餐厅名字以及当前的定位信息搜搜餐厅信息,再通过AR显示技术,实时的显示在摄像图像中。
  
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
+
人工智能的发展同样可以改变残障人士的生活质量。
  
 其 实是绘画风格转换器 视频版 同时支持 视频 片的 实时 风格转换 就一个 字, 快!
+
  有一种能够根据图像生成 相关描述 技术 叫做NeuralTalk。将这种技术应用于摄像头捕捉的 视频图 像,可以 实时 生成对当前环境的描述 在将描述的文 转化为语音 可以让视觉障碍的人们找回认知周围世界的能力。
  
===物体识别===
+
[[File:Environment reco 0.png|缩略图|居中|Environment reco 0.png]]
  
====强大的实时物体识别:CortexNet====
+
[[File:Environment reco 1.png|缩略图|居中|Environment reco 1.png]]
  
https://github.com/e-lab/pytorch-CortexNet.git
+
  相关开源 实现
 
+
  一个强大的,模仿人类视觉系统的,能够 实现 实时视频物体检测的神经网络技术。
+
 
+
====识别视频场景并生成字幕:Video Caption with Neuraltalk2====
+
  
 
https://github.com/cgq5/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 能区分裸体和其他显性的性行为之间的区别。这是第一个也是唯一一个也是唯一一个公开发布的色情内容分类及编辑工具。
 
  
 
==声音==
 
==声音==
第273行: 第213行:
 
===语音识别===
 
===语音识别===
  
====句子级语音识别 :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 库中提供了作者 方式来补充缺失的细节
+
 目 前生活在大城市 人们生活节奏非常紧张,即使是 分一秒都显得颇为珍贵 因此 即使是像操作手机 操作 感觉也是非常浪费时间 的。
  
=== 乐生 ===
+
因此市面上出现了“个人语 助手”这样的应用,包括苹果公司的Siri,微软的“小娜”,百度小秘等等。使用这些应用我们只需要对着手机说出我们的需求,比如“下午3点提醒我开会”,“附近有什么好吃的”,语音助手就可以自动为我们设置提醒,搜寻附近符合条件的餐厅等等。一句话就能达到完 自己的需求,不在需要繁琐的手动操作,语音助手着实节省了人们的时间。
  
====爵士乐生成器:Deep Jazz====
+
[[File:魔法小问.png|缩略图|居中|魔法小问.png]]
  
https://github.com/jisungk/deepjazz
+
目前市面上可用的个人语音助手多是通过基于深度学习的人工智能技术实现的。其中包括语音识别系统,这个我们在上面的案例中已经说过。在将用户的语音转换为文字后,为用户提供服务的其实是一套叫做“任务驱动型聊天机器人”的系统。
  
这是一个使用 Keras 和 Theano 生成爵士乐的深度学习项目。作者 Ji-Sung Kim 在参加黑客马拉松(hackathon)的36个小时内建成这个模型,它使用两个深度学习库 Keras 和 Theano 生成爵士音乐。具体来说,它构建两层的 LSTM,从跟定的 MIDI 文件中学习,利用深度学习技术生成音乐。
+
[[File:Chatbot.png|缩略图|居中|Chatbot.png]]
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
+
录音经过后台处理转化成文本,在医生工作站实时展现医患交流内容、自动生成结构化的电子病历。医生只需对电子病历内容进行简单修改确认,即可打印提供给患者,并完成电子档保存。
  
  一款生成古典 乐的递归神经网络工具。
+
[[File:语音识别 脑.jpg|缩略图|居中|语 识别 脑.jpg]]
  
==文本==
+
RNN+CTC 是常用的语音识别技术。CTC 全称 是Connectionist Temporal Classification,是一种改进的RNN模型。RNN模型可以用来对两个序列之间的关系进行建模。但是,传统的RNN,标注序列和输入的序列是一一对应的。语音识别中的序列建模问题不是这样:识别出的字符序列或者音素序列长度远小于输入的特征帧序列。所以不能直接用RNN来建模。CTC解决这一问题的方法是,在标注符号集中加一个空白符号blank,然后利用RNN进行标注,最后把blank符号和预测出的重复符号消除。比如有可能预测除了一个"--a-bb",就对应序列"ab"。这样就让RNN可以对长度小于输入序列的标注序列进行预测了。RNN的训练需要用到前向后向算法(Forward-backward algorithm),大概思路是,对于给定预测序列,比如“ab”,在各个字符间插入空白符号,建立起篱笆网络(Trellis),然后对将所有可能映射到给定预测的序列都穷举出来求和。
  
===文本生成===
 
  
====生成莎士比亚剧本:char-rnn====
+
相关开源实现:
  
https://github.com/karpathy/char-rnn
+
https://github.com/buriburisuri/speech-to-text-wavenet
  
一个基于RNN的文本生成器。可以自动生成莎士比亚的剧本或者shell代码。
+
https://github.com/inikdom/rnn-speech
  
====生成汪峰歌词:wangfeng-rnn====
+
https://github.com/shawnwun/NNDIAL
  
https://github.com/phunterlau/wangfeng-rnn
+
==文本==
 
+
基于char-rnn的汪峰歌词生成器
+
  
 
===文本理解===
 
===文本理解===
  
====文 摘要总结 :AbstractiveSummarization ====
+
====文 摘要总结 理解====
  
https://github.com/facebookarchive/NAMAS
+
=====市场信息自动调研系统:Synapsify  =====
  
由Facebook开发 的文本 要系统。
+
Synapsify是来自美国 自动 文本 分析理解提供商。它可以用几个维度去解读文本内容,揭示文本的质量、平衡性、可信度和主 句子和含义。网站可以借助Synapsify这个分析 系统 来提供内容质量,而出版商可以用Synapsify来评估市场,政府还可以用Synapsify来进行网络舆情监控。Synapsify承诺,使用自己的专利文本分析和搜索技术,将为客户提供强大的能力去分析文字内容。Synapsify未来还打算引入声音分析,Synapsify自称将来通过一个人的日常语言,就可以分析出这个人的习惯、生活习惯和经历、比福尔摩斯还神奇
  
====机器自己做阅读理解:DeepMind Teaching Machines to Read and Comprehend====
+
相关开源实现:
 +
 
 +
https://github.com/facebookarchive/NAMAS
  
 
https://github.com/thomasmesnard/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
+
PyOpenNMT: Open-Source Neural Machine Translation
 
+
以 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
 
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 ====
+
FAIR的开源序列到序列(sequence-to-sequence)引擎现在可以在PyTorch使用了。FAIR今天发布了fairseq-py,这是一个用PyTorch实现的卷积seq2seq模型。fairseq-py是语言翻译以及其他 seq2seq 的NLP任务的一个很好的模型,新的工具包比以前的更高效率:生成翻译的速度比以前的提高了80%,训练速度提高了50%。
  
https://github.com/gpleiss/efficient_densenet_pytorch.git
+
开源的是一个PyTorch版本的fairseq。这个重新实现的原作者是Sergey Edunov,Myle Ott和Sam Gross。该工具包实现了 Convolutional Sequence to Sequence Learning(https://arxiv.org/abs/1705.03122)中描述的完全卷积模型(fully convolutional model),在单个机器上实现多GPU训练,并在CPU和GPU上实现快速 beam search 生成。我们提供英语到法语和英语到德语翻译的预训练模型
  
DenseNets的PyTorch实现,优化以节省GPU内存。
+
GitHub地址:https://github.com/facebookresearch/fairseq-py

2017年9月19日 (二) 12:25的最后版本

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


目录

[编辑] 图像

[编辑] 图像生成

[编辑] 图片自动上色

[编辑] 插画界爆火的:PaintsChainer

PaintsChainer是在插画界鼎鼎有名的应用,它可以直接把画师的线稿手稿进行简单的上色,说是简单,其实有时候也能达到经验的效果。

下面就是使用这个应用完成的一种效果,可以看到经上色后已经可以达到成品水平了。

Paint chainer 0.png
Paint chainer 1.png

它同时还支持半引导式上色,用户可以在某些位置指定色域,PaintsChainer会在这个位置按用户的需求来上色。

Paint chainer 2.png

这种可以自动上色的应用其实和“自动化妆”、“苦脸变笑脸”、“男人变女人”等应用一样,都是通过对抗生成网络(GAN)来实现的。

可以理解为:GAN通过学习大量的“线稿图”和“上色图”,学习到了其中的关系,而这种关系就是上色的方法。

相关开源实现:

https://github.com/pavelgonchar/colornet

[编辑] 绘画风格转换:Neural Style

[编辑] 爆红应用市场的风格转换APP:Prisma

Prisma是曾在手机APP市场爆火的风格转换趣味APP。它通过深度神经网络能把你手机中那些普通的照片模仿出著名艺术家画作的风格。

Prisma的核心技术是卷积神经网络,它利用卷积神经网络中的Feature map,获取著名绘画大师和主要流派的艺术风格,然后对你的照片进行智能风格化。

相关开源实现:

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

[编辑] 字迹模拟

[编辑] 签名生成软件

我们在上网时有时会遇到“免费设计签名”的广告,有时候点进去发现真的可以生成签名,并且笔迹飘逸,感觉还挺专业的。

那这些签名真的是名家给设计的吗?当然不是,实际上有很多都是通过“字迹模拟”来实现的。

给予一个深度神经网络大量的名家笔迹数据,神经网络就能自动总结出这些笔迹中的风格,从而应用在你要求的文字上。

这种字迹模拟技术还可以用在生成用于训练手写文字识别系统的训练数据生成上。

相关开源实现:

https://github.com/szcom/rnnlib

[编辑] 图片装换

[编辑] FaceAPP:人脸转换

在人工智能时代,人们对于娱乐方式的要求也越来越高。比如就“自拍”这件事情,仅仅美颜功能,已经不能满足人们的需求。

有技术团队利用深度学习技术做出了更强大的“美颜”APP,它可以将“死鱼脸”变成“笑脸”,将“年轻的脸”变为“年老的脸”,将“男人的脸”变为“女人的脸”,并且转化及其逼真,毫无违和感。

Faceapp.png

实现这些效果,是利用了一种叫做“生成式对抗网络(GAN)”的深度神经网络模型。

在“生成式对抗网络”模型中,有一种叫做CycleGAN的变种,它采用了一种叫做“对偶学习”的特殊机制,可以自动学习出原图片与目标图片之间的转化关系。

比如我们选定很多张“没有表情的脸”作为原图片,很多张“笑脸”作为目标图片,直接送到CycleGAN模型中,也不用告诉他目的是“转换笑脸表情”,CycleGAN就能自己总结出两套图片的不同点的“规律”,从而学习这种规律,最终可以实现在这种规律间转换的效果。

CycleGAN.jpg


相关开源实现:

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

[编辑] 图像识别

[编辑] 用于物体识别的全卷积网络:FCN

[编辑] 胰岛素囊泡识别

现代医学对糖尿病患者的诊疗依赖于观察胰岛细胞中胰岛素囊泡的分布情况。

但是电镜照片中的胰岛素囊泡分布及其不均匀,医生观察起来费时费力,还容易造成误诊。

胰岛素囊泡电镜照片

如果使用基于FCN的图像分割识别技术,就可以解决这样的问题。

FCN即全卷积神经网络,非常胜任图像分割任务。也就是说,只要将足够多的标注好的囊泡电镜照片传入FCN网络进行训练,那么训练好的网络就可以快速定位出电镜照片中囊泡的位置,其识别正确率可以达到97.73%~98.9%,几乎与人工处理效果无异。

Multi-FCN识别囊泡.png
[编辑] 眼底病变识别

同样的技术还被应用在“眼科智能诊断系统”中。据悉,只要在发病初期定期进行眼底检查,失明风险可下降 94.4%。但由于眼底病灶微小,部分医生经验不足等原因,使得诊断中可能出现漏诊、误诊的情况,而借助 AI 系统辅助诊断是非常可行的问题解决方案。

使用基于FCN的图像分割技术,只需要将训练FCN网络的数据改为“标注好的眼底病变数据”,训练好的网络就可以轻易识别出患者眼底照片中的病变位置。目前这样的系统对病患基数巨大的糖尿病视网膜病变(DR)和老年性黄斑变性(AMD)筛查的诊断准确率已达到九成以上。

眼底标记.png


开源实现参考:

https://github.com/mattmacy/vnet.pytorch

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

[编辑] 色情内容识别

[编辑] 图普科技、阿塔科技图像鉴黄系统

目前有不止两家的服务商都提供云视频、图片鉴黄系统。

对于很多社区网站来说,几乎每时每刻都有用户在上传图片,在这些图片&视频中有时会掺杂着色情内容。

数据量如此之大,使用人力筛选过滤其中的内容是不可能的,所以就出现了现在基于深度学习技术的鉴黄系统。

一般这些系统都可以判断一段图像是属于色情、性感还是正常。

Jianhuang 01.png

相关开源实现:

https://github.com/yahoo/open_nsfw

[编辑] 人脸识别

[编辑] Face++ & 商汤科技 等等

人脸识别目前在市场的应用真是非常普遍,相关的公司也很多,目前国内知名的就是Face++与商汤科技,中科奥森也是国内老牌的人脸识别研发中心。

目前人脸识别技术广泛应用在认证方面,包括人脸识别免面签,以及人脸支付,安防等等。

实现方法多是结合了结构分析的深度学习技术,有些公司还采用了基于双目摄像头的深度图像识别系统。

开源实现参考:

https://github.com/cmusatyalab/openface

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

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

[编辑] 图像理解

[编辑] OCR光学文字识别

[编辑] 证件识别

支付宝有一个证件校验系统。证件校验系统是为了支付宝的证件审核开发的,它使证件校核时间从1天缩小到1秒,同时提升了30%的通过率。以前是靠人识别,可能会误判,比如人识别是50%的识别率,那么机器他现在比如说做80%的识别率,这是非常了不得的。

证件识别.jpg

这种将证件图片扫描,将证件图片中的文字及图片提取出来的技术叫做光学文字识别技术,即OCR。

OCR.png

目前最先进的OCR技术采用的是LSTM+CTC的实现方法。LSTM+CTC的框架技术最初是用在自然语言语音识别领域,应用在OCR上,可以实现“一句话”的文字识别效果。

Advaced OCR.png

相关开源实现:

LSTM_CTC_OCR

https://github.com/ilovin/lstm_ctc_ocr

Convolutional Recurrent Neural Network

https://github.com/bgshih/crnn

[编辑] 扫一扫路边的餐厅,立马跳出该餐厅的评分信息

实时餐厅查询0.gif

Google Lens有一个很酷的功能,通过用手机扫街边的餐厅,可以直接获得餐厅的评分推荐等信息。

这其实就是将“光学文字识别技术”应用在现实增项中。通过将实时的景象分割成图片,然后识别图片中的文字,通过识别出的餐厅名字以及当前的定位信息搜搜餐厅信息,再通过AR显示技术,实时的显示在摄像图像中。

卷积循环神经网络是一种能在图片中快输识别出文字的深度学习模型。

它即保持了卷积神经网络的特性,可以快速定位出图片中文字的位置;又具有循环神经网络的特质,可以将图片中的文字识别的更加准确。

[编辑] 视频

[编辑] 场景识别

[编辑] 盲人用环境认知辅助系统

人工智能的发展同样可以改变残障人士的生活质量。

有一种能够根据图像生成其相关描述的技术,叫做NeuralTalk。将这种技术应用于摄像头捕捉的视频图像,可以实时生成对当前环境的描述,在将描述的文字转化为语音,可以让视觉障碍的人们找回认知周围世界的能力。

Environment reco 0.png
Environment reco 1.png

相关开源实现:

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

[编辑] 声音

[编辑] 语音识别

[编辑] 句子级语音识别

[编辑] 个人语音助手

目前生活在大城市的人们生活节奏非常紧张,即使是一分一秒都显得颇为珍贵。因此,即使是像操作手机这样的操作,感觉也是非常浪费时间的。

因此市面上出现了“个人语音助手”这样的应用,包括苹果公司的Siri,微软的“小娜”,百度小秘等等。使用这些应用我们只需要对着手机说出我们的需求,比如“下午3点提醒我开会”,“附近有什么好吃的”,语音助手就可以自动为我们设置提醒,搜寻附近符合条件的餐厅等等。一句话就能达到完成自己的需求,不在需要繁琐的手动操作,语音助手着实节省了人们的时间。

魔法小问.png

目前市面上可用的个人语音助手多是通过基于深度学习的人工智能技术实现的。其中包括语音识别系统,这个我们在上面的案例中已经说过。在将用户的语音转换为文字后,为用户提供服务的其实是一套叫做“任务驱动型聊天机器人”的系统。

Chatbot.png

这套“任务驱动型聊天机器人”系统往往是由多个模块的深度神经网络组合而实现的。其中可以包括用来识别用户意图(如找餐厅)的“意图神经网络”;用来理解语义,从而可以查询数据库的“语义理解网络”;还有最终用来回复用户信息的“自然语言生成网络”。


[编辑] 解放医生双手:语音电子病历

口腔科医生需要记录每个患者的病历情况。然而在诊疗过程中,医生在牙椅旁戴着手套双手被占用,不便对病历信息进行记录。如果诊疗结束后,再通过手写的方式补填病历,经常出现内容遗忘的情况。此外,手写病历常有文字潦草的情况,因有导致后续诊疗错误的风险。

基于语音识别自然语言理解的语音电子病历可以解决这样的问题。在医生与患者的医疗过程中,使用麦克风,医生只要以口述的方式记录电子病历内容,完全不需要双手参与。

录音经过后台处理转化成文本,在医生工作站实时展现医患交流内容、自动生成结构化的电子病历。医生只需对电子病历内容进行简单修改确认,即可打印提供给患者,并完成电子档保存。

语音识别 脑.jpg

RNN+CTC 是常用的语音识别技术。CTC 全称 是Connectionist Temporal Classification,是一种改进的RNN模型。RNN模型可以用来对两个序列之间的关系进行建模。但是,传统的RNN,标注序列和输入的序列是一一对应的。语音识别中的序列建模问题不是这样:识别出的字符序列或者音素序列长度远小于输入的特征帧序列。所以不能直接用RNN来建模。CTC解决这一问题的方法是,在标注符号集中加一个空白符号blank,然后利用RNN进行标注,最后把blank符号和预测出的重复符号消除。比如有可能预测除了一个"--a-bb",就对应序列"ab"。这样就让RNN可以对长度小于输入序列的标注序列进行预测了。RNN的训练需要用到前向后向算法(Forward-backward algorithm),大概思路是,对于给定预测序列,比如“ab”,在各个字符间插入空白符号,建立起篱笆网络(Trellis),然后对将所有可能映射到给定预测的序列都穷举出来求和。


相关开源实现:

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

https://github.com/inikdom/rnn-speech

https://github.com/shawnwun/NNDIAL

[编辑] 文本

[编辑] 文本理解

[编辑] 文本摘要总结理解

[编辑] 市场信息自动调研系统:Synapsify

Synapsify是来自美国的自动文本分析理解提供商。它可以用几个维度去解读文本内容,揭示文本的质量、平衡性、可信度和主要句子和含义。网站可以借助Synapsify这个分析系统来提供内容质量,而出版商可以用Synapsify来评估市场,政府还可以用Synapsify来进行网络舆情监控。Synapsify承诺,使用自己的专利文本分析和搜索技术,将为客户提供强大的能力去分析文字内容。Synapsify未来还打算引入声音分析,Synapsify自称将来通过一个人的日常语言,就可以分析出这个人的习惯、生活习惯和经历、比福尔摩斯还神奇。

相关开源实现:

https://github.com/facebookarchive/NAMAS

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

[编辑] 机器翻译

[编辑] 百度机器翻译

机器翻译是非常古老的人工智能问题,然而这个问题一度作为人工智能发展的瓶颈,一直不能达到理想的状态。

早期机器翻译采用“基于语言句法”的翻译方法,但是语言的变数是无限的,“基于语言句法”的方案一直无法达到理想的效果。

基于深度学习的“端到端”的模型在很大程度上解决了机器翻译的瓶颈。

“端到端”的模型将自然语言嵌入到一个语义空间中,人类使用不同种语言表达的语义相同的语句,在语义空间中具有相同或相似的坐标,只要对比语义空间中相同坐标的语句,即可完成相关的翻译。

相关开源实现:

PyOpenNMT: Open-Source Neural Machine Translation

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


[编辑] 彩云小译、有道翻译官

FAIR的开源序列到序列(sequence-to-sequence)引擎现在可以在PyTorch使用了。FAIR今天发布了fairseq-py,这是一个用PyTorch实现的卷积seq2seq模型。fairseq-py是语言翻译以及其他 seq2seq 的NLP任务的一个很好的模型,新的工具包比以前的更高效率:生成翻译的速度比以前的提高了80%,训练速度提高了50%。

开源的是一个PyTorch版本的fairseq。这个重新实现的原作者是Sergey Edunov,Myle Ott和Sam Gross。该工具包实现了 Convolutional Sequence to Sequence Learning(https://arxiv.org/abs/1705.03122)中描述的完全卷积模型(fully convolutional model),在单个机器上实现多GPU训练,并在CPU和GPU上实现快速 beam search 生成。我们提供英语到法语和英语到德语翻译的预训练模型

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

个人工具
名字空间
操作
导航
工具箱