长期以来,研究人员和开发人员经常在GitHub存储库中搜索更有趣的项目和实现,但我们可能需要一个确切的主题,以及做一些过滤。最近有开发者发布了一个模型聚合平台,我们可以在上面按领域搜索最热门的开源模型。作者根据GitHub项目集合数量、项目所属领域、实现框架对这些模型进行了分类,方便我们快速定位到合适的模型。项目地址:https://modelzoo.co/深度学习最近成为机器学习最热门的子领域,因为它对高维数据有很强的建模能力,在很多不同的任务和领域大放异彩,例如计算机视觉、自然语言处理和代理学习。深度学习模型是一种表示学习方法,即根据模型学习表示本身,而不是像传统机器学习那样只是将表示映射到输出。目前,深度学习主要通过不同层次的神经元从原始数据中自动提取特征,其学习到的表征往往比传统机器学习人工设计的表征具有更好的性能。目前,GitHub上受到关注的ML实现大多是深度学习模型。他们使用不同的层次结构和网络架构来构建模型来逐一解决特定问题。例如,以分层形式堆叠二维卷积层可以从简单到复杂的二维数据(如图像)中提取特征,循环单元的堆叠适用于处理机器翻译等序列标注问题。再加上残差连接、门机制、注意力机制等模块,可以针对特定的任务学习特定的知识。最近有很多关于这些层次表示的深层模型的研究,许多开发人员和研究人员分享了他们的代码和想法。ModelZoo旨在提供一个寻找优秀深度模型的集中平台,并希望为复现论文、构建复杂神经网络、学习模型代码、直接使用预训练模型等提供资源。ModelZoo是一个新建的平台,所以它包含的模型库会不断进化。如果读者发现还有其他优秀的模型没有收录,可以在网站上提交并通知作者。另外,这个网站的开发者目前只是新加坡的一名本科生,他希望通过这样的平台帮助更多的学习者。ModelZoo收集的所有模型都可以在GitHub中找到。作者靖宇根据GitHub项目集合数量、项目领域、实现框架等对模型进行了整理。此外,我们还可以通过关键词搜索来确定我们需要查找的机型。每个模型在页面上展示对应GitHub项目的README文档,方便读者快速判断项目的基本信息和需求。此外,作者还内置了Newsletter模块,每月整理一次当月最新重要机型。目前,该项目中有五类深度学习模型:计算机视觉、自然语言处理、生成模型、强化学习和无监督学习。这些类别或领域相互重叠。例如,许多生成模型可以归类为无监督学习。事实上,许多模型确实属于多个类别。目前包括的实现框架包括Tensorflow、Caffe、Caffe2、PyTorch、MXNet和Keras。虽然还有很多框架没有收录,比如CycleGAN原来的实现是用Lua语言和Torch框架,虽然项目收录已经达到6453个,但这个平台也没有收录。可以从BrowseFrameworks和BrowseCategories分别进入上面的框架分类界面和模型分类界面,按照它们的分类进行浏览。下面的搜索框支持按型号名称搜索。模型基本按GitHub收藏排序(如Magenta的10164星),预览界面还包括项目介绍、实现框架、分类等信息。点击后可以进入项目详情(即GitHub项目对应的README文档)。下面简单介绍一下各个领域最热门的项目:1.计算机视觉GitHubstar:10164实现框架:TensorFlowMagenta是一个用来探索机器学习在艺术和音乐创作中的作用的研究项目,因为有许多应用作者将其分为计算机视觉和强化学习领域。它主要涉及开发新的深度学习和强化学习算法来生成歌曲、图像、草图等。但它也在尝试构建智能工具和界面,以帮助艺术家和音乐家扩展他们使用这些模型的方式。Magenta由GoogleBrain团队的一些研究人员和工程师发起,但还有许多其他人为该项目做出了重要贡献。目前该项目有很多应用实现和演示,读者可以查看https://magenta.tensorflow.org/blog。Mask-RCNNGitHubstar:6104实现框架:KerasMaskR-CNN是一个两阶段框架。第一阶段扫描图像并生成候选区域(proposals,即可能包含目标的区域),第二阶段对候选区域进行分类并生成边界框和掩码。MaskR-CNN是同一作者去年提出的FasterR-CNN的扩展。FasterR-CNN是一种流行的对象检测框架,MaskR-CNN将其扩展为实例分割框架。该项目是MaskR-CNN在Python3、Keras和TensorFlow上的实现。该模型可以为图像中的对象实例生成边界框和分割掩码。其架构基于特征金字塔网络(FPN)和ResNet101骨干网络。repo包含:基于FPN和ResNet101构建的MaskR-CNN的源代码;数据集MSCOCO的训练代码;MSCOCO的预训练权重;用于视觉检测过程每个步骤的Jupyternotebook;用于多GPU训练的ParallelModel类;评估MSCOCO指标(AP);自定义数据集训练示例。2.自然语言处理1.WaveNetGitHubstar:3692实现框架:TensorFlow下图是WaveNet的主要结构,它是一个全卷积神经网络,每个卷积层都有不同的dilationfactor。这允许它的感受野随着层深度呈指数增长并覆盖数千个时间步长。此外,WaveNet是第一个提出因果卷积的模型。直观上,类似于将卷积运算“一分为二”,使其只能对过去时间步的输入进行运算。事实上,后来很多使用卷积网络处理序列标注问题的模型都是借鉴了WaveNet提出的这两种结构。DeepMind提出的WaveNet神经网络架构可以直接生成新的音频波形,在文本到语音转换和音频生成方面具有优越的性能。在训练时,它的输入序列是人类说话者记录的真实波形。训练后,我们可以对该网络进行采样以生成合成话语。在采样的每个时间步,从网络计算的概率分布中提取一个值。然后将该值反馈到输入中,并为下一步生成新的预测。像这样一次一步构建样本在计算上非常昂贵,但这对于制作复杂、逼真的音频至关重要。2.SentenceClassificationwithCNNGitHubstar:3416实现框架:TensorFlow论文《Convolutional Neural Networks for Sentence Classification》的简化TensorFlow实现。三、生成模型1、DCGAN-tensorflowGitHubstar:4263实现框架:TensorFlowGoodfellow等人提出的GAN。是一个通过对抗过程估计生成模型的新框架。在这个框架下,我们需要同时训练两个模型,一个捕捉数据分布的生成模型G和一个估计数据来自真实样本的概率的判别模型D。生成器G的训练过程是最大化判别器出错的概率,即判别器误认为数据是真实样本而不是生成器生成的假样本。因此,这个框架对应于两个玩家之间的极小极大博弈。DCGAN主要使用卷积神经网络作为生成器G和判别器D的架构,因此可以生成相对清晰且优秀的图像。论文《Deep Convolutional Generative Adversarial Networks》的TensorFlow实现,一个稳定的生成对抗网络。上图展示了生成器G的架构,它使用了四个转置卷积进行上采样,即将一个100维的随机变量还原到图像中。在这个项目中,为了防止判别器网络收敛太快,当判别器迭代一次时,生成器网络会连续迭代两次,这与原论文不同。2.Image-to-ImageTranslationwithConditionalAdversarialNetworksGitHubstar:4242实现框架:PyTorch因为CycleGAN最初的实现是用Lua写的,所以很多研究者使用这个项目来重现图像到图像的转换。CycleGAN的主要思想是训练两对生成器-鉴别器模型,将图像从一个域转换到另一个域。在此过程中我们需要循环一致性,即在将生成器应用于图像后,我们应该得到与原始L1损失相似的图像。因此,我们需要一个循环损失函数(cyclicloss),它可以保证生成器不会将图像从一个域转换到与原始图像完全无关的另一个域。该项目是配对和未配对图像到图像转换的PyTorch实现。四、强化学习1.DeepReinforcementLearningforKerasGitHubstar:2639实现框架:Keraskeras-rl可以让人们轻松使用目前最先进的深度强化学习算法,用Keras实现,并结合OpenAIGym来建设项目。目前该项目实现了以下算法:深度Q学习(DQN)双DQN深度确定性策略梯度(DDPG)连续DQN(CDQN或NAF)交叉熵方法(CEM)决斗网络DQN(DuelingDQN)DeepSARSA2。DQN-tensorflowGitHubstars:1610实现框架:TensorFlow论文《Human-Level Control through Deep Reinforcement Learning》的TensorFlow实现。实现包括:DeepQ-networkandQ-learningExperienceReplayMemoryReductionContinuousUpdatedCorrelationNetworksforQ-learningTargetModifiedDuetoIntervalIssuesReduceTargetandPredictedQValuesV.UnsupervisedLearning1.MUSE:MultilingualUnsupervisedandSupervisedEmbeddingsGitHubstar:1298实现框架:PyTorchMUSE是一个多语言词嵌入Python库,其目的是为社区提供最新的基于fastText的多语言词嵌入,以及针对大规模高-用于训练和评估的优质双语词典。该项目使用了两种方法,一种是使用双语词典或相同字符串的监督方法,另一种是不使用任何并行数据的非监督方法。2.DomainTransferNetwork(DTN)GitHubstar:654Implementationframework:TensorFlow论文《Unsupervised Cross-Domain Image Generation》的TensorFlow实现,下图是其模型架构概览。以上是对各品类主要热门机型的简单介绍。还有很多优秀的项目没有展示出来。读者根据平台和特定需求筛选模型。【本文为栏目组织《机器之心》原创文章,微信公众号《机器之心(id:almosthuman2014)》】点此查看作者更多好文
