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

来自集智百科
跳转到: 导航搜索
语言
游戏
第238行: 第238行:
  
 
https://github.com/thomasmesnard/DeepMind-Teaching-Machines-to-Read-and-Comprehend
 
https://github.com/thomasmesnard/DeepMind-Teaching-Machines-to-Read-and-Comprehend
 
==游戏==
 
 
===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实现。
 
  
 
==深度学习通用技术==
 
==深度学习通用技术==

2017年9月6日 (三) 20:59的版本

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


目录

图像

图像生成

绘画风格转换:Neural Style

爆红应用市场的风格转换APP:Prisma

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

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

相关开源实现:

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

字迹模拟

签名生成软件

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

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

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

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

相关开源实现:

https://github.com/szcom/rnnlib

图片自动上色

插画界爆火的:PaintsChainer

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

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

自动上色0.png

相关开源实现:

https://github.com/pavelgonchar/colornet

图片装换

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

色情内容识别

图普科技、阿塔科技图像鉴黄系统

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

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

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

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

相关开源实现:

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

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

实时餐厅查询0.gif

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

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

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

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

视频

场景识别

盲人用环境认知辅助系统

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

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

相关开源实现:

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

深度学习通用技术

通用训练技巧

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内存。

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