0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度学习最常见的26个模型汇总

电子工程师 来源:lq 2019-05-15 09:23 次阅读

今天更新关于常见深度学习模型适合练手的项目。这些项目大部分是我之前整理的,基本上都看过,大概俩特点:代码不长,一般50-200行代码,建议先看懂然后再实现和优化,我看基本上所有的实现都有明显可优化的地方;五脏俱全,虽然代码不长,但是该有的功能都有,该包含的部分也基本都有。所以很适合练手,而且实现后还可保存好,以后很多任务可能就会用到。

本文包括简介、练手项目和我的建议(建议最好看看这部分)。

简介

本篇是深度学习最常见的 26 个模型汇总的姐妹篇,建议先看那篇再看本篇。本篇新增了 26 个模型的练手项目。

练手项目

2.1 Feed forward neural networks (FF or FFNN) and perceptrons (P)

前馈神经网络和感知机,信息从前(输入)往后(输出)流动,一般用反向传播(BP)来训练。算是一种监督学习。

对应的代码:

https://github.com/danijar/layered

https://github.com/civisanalytics/muffnn

2.2 Radial basis function (RBF)

径向基函数网络,是一种径向基函数作为激活函数的FFNNs(前馈神经网络)。

对应的代码:

https://github.com/eugeniashurko/rbfnnpy

2.3 Hopfield network (HN)

Hopfield网络,是一种每个神经元都跟其它神经元相连接的神经网络。

对应的代码:

https://github.com/yosukekatada/Hopfield_network

2.4 Markov chains (MC or discrete time Markov Chain, DTMC)

马尔可夫链 或离散时间马尔可夫链,算是BMs和HNs的雏形。

对应的代码:

Markov chains:https://github.com/jsvine/markovify

DTMC:https://github.com/AndrewWalker/dtmc

2.5 Boltzmann machines (BM)

玻尔兹曼机,和Hopfield网络很类似,但是:一些神经元作为输入神经元,剩余的是隐藏层。

对应的代码:

https://github.com/yell/boltzmann-machines

2.6 Restricted Boltzmann machines (RBM)

受限玻尔兹曼机,和玻尔兹曼机以及Hopfield网络都比较类似。

对应的代码:

https://github.com/echen/restricted-boltzmann-machines

2.7 Autoencoders (AE)

自动编码,和FFNN有些类似,它更像是FFNN的另一种用法,而不是本质上完全不同的另一种架构。

对应的代码:

https://github.com/caglar/autoencoders/blob/master/ae.py

2.8 Sparse autoencoders (SAE)

稀疏自动编码,跟自动编码在某种程度比较相反。

对应的代码:

https://github.com/caglar/autoencoders/blob/master/sa.py

2.9 Variational autoencoders (VAE)

变分自动编码,和AE架构相似,不同的是:输入样本的一个近似概率分布。这使得它跟BM、RBM更相近。

对应的代码:

https://github.com/mattjj/svae

2.10 Denoising autoencoders (DAE)

去噪自动编码,也是一种自编码机,它不仅需要训练数据,还需要带噪音的训练数据。

对应对应的代码:

https://github.com/caglar/autoencoders/blob/master/da.py

2.11 Deep belief networks (DBN)

深度信念网络,由多个受限玻尔兹曼机或变分自动编码堆砌而成。

对应的代码:

https://github.com/albertbup/deep-belief-network

2.12 Convolutional neural networks (CNN or deep convolutional neural networks, DCNN)

卷积神经网络,这个不解释也都知道。

对应的代码:

CNN:https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_CNN.py

DCNN:https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_DeepCNN.py

2.13 Deconvolutional networks (DN)

去卷积网络,又叫逆图形网络,是一种逆向的卷积神经网络。

对应的代码:

https://github.com/ifp-uiuc/anna

2.14Deep convolutional inverse graphics networks (DCIGN)

深度卷积逆向图网络,实际上是VAE,且分别用CNN、DNN来作编码和解码。

对应的代码:

https://github.com/yselivonchyk/TensorFlow_DCIGN

2.15 Generative adversarial networks (GAN)

生成对抗网络,Goodfellow的封神之作,这个模型不用解释也都知道。

对应的代码:

https://github.com/devnag/pytorch-generative-adversarial-networks

2.16 Recurrent neural networks (RNN)

循环神经网络,这个更不用解释,做语音、NLP的没有人不知道,甚至非AI相关人员也知道。

对应的代码:

https://github.com/farizrahman4u/recurrentshop

2.17 Long / short term memory (LSTM)

长短期记忆网络,RNN的变种,解决梯度消失/爆炸的问题,也不用解释,这几年刷爆各大顶会。

对应的代码:

https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_LSTM.py

2.18 Gated recurrent units (GRU)

门循环单元,类似LSTM的定位,算是LSTM的简化版。

对应的代码:

https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_GRU.py

2.19 Neural Turing machines (NTM)

神经图灵机,LSTM的抽象,以窥探LSTM的内部细节。具有读取、写入、修改状态的能力。

对应的代码:

https://github.com/MarkPKCollier/NeuralTuringMachine

2.20 Bidirectional recurrent neural networks, bidirectional long / short term memory networks and bidirectional gated recurrent units (BiRNN, BiLSTM and BiGRU respectively)

双向循环神经网络、双向长短期记忆网络和双向门控循环单元,把RNN、双向的LSTM、GRU双向,不再只是从左到右,而是既有从左到右又有从右到左。

对应的代码:

BiRNN:https://github.com/cstghitpku/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/tree/master/models

BiLSTM:https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_BiLSTM.py

BiGRU:https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorch/blob/master/models/model_BiGRU.py

2.21 Deep residual networks (DRN)

深度残差网络,是非常深的FFNN,它可以把信息从某一层传至后面几层(通常2-5层)。

对应的代码:

https://github.com/KaimingHe/deep-residual-networks

2.22 Echo state networks (ESN)

回声状态网络,是另一种不同类型的(循环)网络。

对应的代码:

https://github.com/m-colombo/Tensorflow-EchoStateNetwork

2.23 Extreme learning machines (ELM)

极限学习机,本质上是随机连接的FFNN。

对应的代码:

https://github.com/dclambert/Python-ELM

2.24 Liquid state machines (LSM)

液态机,跟ESN类似,区别是用阈值激活函数取代了sigmoid激活函数。

对应的代码:

https://github.com/kghose/Liquid

2.25 Support vector machines (SVM)

支持向量机,入门机器学习的人都知道,不解释。

对应的代码:

https://github.com/ajtulloch/svmpy

2.26 Kohonen networks (KN, also self organising (feature) map, SOM, SOFM)

Kohonen 网络,也称之为自组织(特征)映射。

对应的代码KN/SOM:

https://github.com/mljs/som

后续建议

我个人感觉能力提升最快的方式是:先横向学习一个领域,做到全面的认识;然后从头到尾一项一项去突破,做到有深度。如果今天学点这个,明天学点那个,水平提升很慢,建议顺着技术发展的主线从头到尾学完。技术是无止境的,积累很重要,但有量远远不够,还得讲究方法。

对应到本文,学会并实现和优化这些模型,远远不够。我建议还可以有如下尝试:

单层模型实现之后,试试多层或者模型stack;

试试模型的结合,比如LSTM/GRU+CNN/DCNN、CNN/DCNN+LSTM/GRU、LSTM/GRU+CRF等;

在一些模型上加attention(这里很多模型适合加);

利用这些模型解决一些比较简单的小问题,比如用CNN识别数字、LSTM+CRF做NER等;

性能方面的提升,比如支持分布式训练、支持GPU等;

把这些模型做成一个框架,到时候记得通知我,我一定拜读。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4762

    浏览量

    100535
  • 模型
    +关注

    关注

    1

    文章

    3172

    浏览量

    48711
  • 深度学习
    +关注

    关注

    73

    文章

    5492

    浏览量

    120975

原文标题:上手!深度学习最常见的26个模型练习项目汇总

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    labview调用深度学习tensorflow模型非常简单,附上源码和模型

    本帖最后由 wcl86 于 2021-9-9 10:39 编辑 `labview调用深度学习tensorflow模型非常简单,效果如下,附上源码和训练过的模型:[hide][/h
    发表于 06-03 16:38

    深度学习模型是如何创建的?

    具有深度学习模型的嵌入式系统应用程序带来了巨大的好处。深度学习嵌入式系统已经改变了各个行业的企业和组织。
    发表于 10-27 06:34

    什么是深度学习?使用FPGA进行深度学习的好处?

    什么是深度学习为了解释深度学习,有必要了解神经网络。神经网络是一种模拟人脑的神经元和神经网络的计算模型。作为具体示例,让我们考虑一
    发表于 02-17 16:56

    深度学习最常见的10方法盘点

    们希望机器学习做的事情混为一谈。从根本上讲,机器学习是使用算法从原始数据中提取信息,并在某种类型的模型中表示这些信息。我们使用这个模型来推断还没有建模的其他数据。
    的头像 发表于 10-05 08:40 4465次阅读

    深度学习网络训练技巧的详细资料汇总

    本文档的主要内容详细介绍的是深度学习网络训练技巧汇总,总结训练网络的各种经验和技巧
    发表于 03-07 08:00 10次下载
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>网络训练技巧的详细资料<b class='flag-5'>汇总</b>

    深度学习模型压缩与加速综述

    目前在深度学习领域分类两派别,一派为学院派,研究强大、复杂的模型网络和实验方法,为了追求更高的性能;另一派为工程派,旨在将算法更稳定、高效的落地在硬件平台上,效率是其追求的目标。复杂
    的头像 发表于 06-08 17:26 5192次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>压缩与加速综述

    深度模型中的优化与学习课件下载

    深度模型中的优化与学习课件下载
    发表于 04-07 16:21 3次下载
    <b class='flag-5'>深度</b><b class='flag-5'>模型</b>中的优化与<b class='flag-5'>学习</b>课件下载

    最常见的目标跟踪算法

    对象跟踪问题一直是计算机视觉的热点任务之一,简单的可以分为单目标跟踪与多目标跟踪,最常见的目标跟踪算法都是基于检测的跟踪算法,首先发现然后标记,好的跟踪算法必须具备REID的能力。今天小编斗胆给大家推荐一结合传统算法跟深度
    的头像 发表于 09-14 16:20 2684次阅读

    模型为什么是深度学习的未来?

    与传统机器学习相比,深度学习是从数据中学习,而大模型则是通过使用大量的模型来训练数据。
    的头像 发表于 02-16 11:32 2071次阅读

    深度学习框架是什么?深度学习框架有哪些?

    模型的精度和性能。随着人工智能和机器学习的迅猛发展,深度学习框架已成为了研究和开发人员们必备的工具之一。 目前,市场上存在许多深度
    的头像 发表于 08-17 16:03 2670次阅读

    机器学习算法汇总 机器学习算法分类 机器学习算法模型

    机器学习算法汇总 机器学习算法分类 机器学习算法模型 机器学习是人工智能的分支之一,它通过分析和
    的头像 发表于 08-17 16:11 1067次阅读

    深度学习模型优化与调试方法

    深度学习模型在训练过程中,往往会遇到各种问题和挑战,如过拟合、欠拟合、梯度消失或爆炸等。因此,对深度学习
    的头像 发表于 07-01 11:41 697次阅读

    深度学习模型训练过程详解

    深度学习模型训练是一复杂且关键的过程,它涉及大量的数据、计算资源和精心设计的算法。训练一深度
    的头像 发表于 07-01 16:13 1089次阅读

    深度学习中的模型权重

    深度学习这一充满无限可能性的领域中,模型权重(Weights)作为其核心组成部分,扮演着至关重要的角色。它们不仅是模型学习的基石,更是
    的头像 发表于 07-04 11:49 942次阅读

    AI大模型深度学习的关系

    AI大模型深度学习之间存在着密不可分的关系,它们互为促进,相辅相成。以下是对两者关系的介绍: 一、深度学习是AI大
    的头像 发表于 10-23 15:25 373次阅读