基于 R 语言的深度学习——简介及资料分享

简介: 基于 R 语言的深度学习——简介及资料分享

近年来深度学习在人工智能领域飞速发展,各行业的学者、研究人员纷纷涌入研究热潮。本文将从 R 语言角度来介绍深度学习并解决以下几个问题:

  • 什么是深度学习?
  • 相关深度学习包有哪些?
  • 如何配置工作环境?
  • 如何使用神经网络建立模型?

由于内容过多,将分几部分发送。今天主要介绍前两部分以及给出相应拓展材料链接。

简介


深度学习是机器学习领域一个新的研究方向,通过模型模拟人类大脑的神经连接结构,进而给出数据的解释。图 1 给出了人工智能、机器学习和深度学习三者的关系。

深度学习之所以被称为 “深度”,是相对于其他” 浅层” 学习的方法(支持向量机、提升方法 、最大熵方法等)而言的。浅层学习依靠人工经验抽取样本特征,网络模型学习后获得的单层或双层的特征;而深度学习通过对原始数据进行逐层特征变换,将样本在原空间的特征表示变换到新的特征空间,自动地学习得到层次化的特征表示,从而更有利于分类或特征的可视化。



图 1:人工智能、机器学习和深度学习的关系,“来源于:L. Alzubaidi et al. Review of deep learning: Concepts, CNN architectures, challenges, applications, future directions[1], Journal of Big Data (2021)”

目前,深度学习已经被应用于诸多领域中,例如:医疗保健、社会网络分析、音频和语音处理(识别和增强)、视觉数据处理方法(多媒体数据分析和计算机视觉)、自然语言处理(翻译和句子分类)等。


R 语言深度学习

随着 R 的不断发展,利用 R 进行深度学习比以往更容易。并且 R 易学易用,不要求很扎实的编程基础,如今它被广泛地应用于机器学习实践和教学中。即使对 R 语言不是很了解的用户也可以通过一些包来搭建深度学习网络。

CRAN 的机器学习与统计学习[2]任务视图中与 R 语言深度学习相关的第三方包有:

R 包 描述
nnet[3] 构建单隐藏层的前馈神经网络,多项对数线性模型。
h2o[4] H2O 的 R 脚本功能。
RSNNS[5] Stuttgart 神经网络模拟器 (SNNS) 接口。
tensorflow[6] TensorFlow 接口。
deepnet[7] R 中的深度学习工具包(前馈神经网络,受限的玻尔兹曼机,深度信念网络,堆叠的自编码器)。
RcppDL[8] 实现多层的机器学习方法,包括去噪自编码器,堆叠去噪自编码器,限制玻尔兹曼机和深度信念网络。
torch[9] 实现 libtorch 库的接口。

如果读者对这些包感兴趣,可以直接点击名称进入学习(文末有链接)。或者阅读程显毅老师的中文书籍《深度学习与 R 语言[10]》,该书介绍了各种 R 语言深度学习包并结合实例分析。

本文主要使用深度学习框架 Keras[11],并将 TensorFlow[12] 作为后端引擎。与其他包相比,Keras 的优点在于它的易用性。它是最流行和发展最快的深度学习框架之一,被广泛推荐为入门深度学习的最佳工具。它能够在 TensorFlow,CNTK,Theano 或 MXNet 上运行。

相关教程

  1. RStudio 官网 TensorFlow 资料[13] 和 AI 相关 博客[14];
  2. 书籍:《Deep Learning with R》[15],对应 代码[16]中文翻译版本[17]
  3. 入门教程:keras: R 语言中的深度学习[18]
  4. 基于 Keras 和 TensorFlow 的深度学习的 研讨会[19]
  5. 相关视频
  1. 基于 R 语言的深度学习:针对入学者[20]
  2. Shirin 在 2020 年 R 会议的报告:《基于 R 语言的深度学习》[21]会议笔记[22]

防止读者加载不了视频,作者已将其搬运到 B 站 (1)[23](2)[24],仅供大家学习使用。


  1. RStudio 官方给出的 Keras 速查表[25]




相关案例

  • R 中使用 TensorFlow Probability[26]
  • 表示学习[27]
  • 几何深度学习[28]
  • 基于空间预测的卷积 LSTM 网络[29]

参考资料

[1]

Review of deep learning: Concepts, CNN architectures, challenges, applications, future directions: https://link.springer.com/article/10.1186/s40537-021-00444-8

[2]

机器学习与统计学习: https://cran.r-project.org/view=MachineLearning

[3]

nnet: https://cran.r-project.org/web/packages/nnet/index.html

[4]

h2o: https://cran.r-project.org/web/packages/h2o/index.html

[5]

RSNNS: https://cran.r-project.org/web/packages/RSNNS/index.html

[6]

tensorflow: http://www.tensorflow.org/

[7]

deepnet: https://cran.r-project.org/web/packages/deepnet/index.html

[8]

RcppDL: https://cran.r-project.org/web/packages/RcppDL/index.html

[9]

torch: https://cran.r-project.org/web/packages/torch/index.html

[10]

深度学习与 R 语言: https://book.douban.com/subject/27085471/

[11]

Keras: https://keras.io/

[12]

TensorFlow: https://www.tensorflow.org/?hl=zh-cn

[13]

资料: https://tensorflow.rstudio.com/

[14]

博客: https://blogs.rstudio.com/ai/

[15]

《Deep Learning with R》: https://www.manning.com/books/deep-learning-with-r

[16]

代码: https://github.com/fmmattioni/deep-learning-with-r-notebooks

[17]

中文翻译版本: https://item.jd.com/13183476.html

[18]

keras: R 语言中的深度学习: https://www.datacamp.com/community/tutorials/keras-r-deep-learning

[19]

研讨会: https://github.com/rstudio-conf-2020/dl-keras-tf

[20]

基于 R 语言的深度学习:针对入学者: https://www.youtube.com/watch?v=xzbVK2tqTfM&t=11978s

[21]

《基于 R 语言的深度学习》: https://www.youtube.com/watch?v=uBISMeExoqk

[22]

会议笔记: https://gitlab.com/ShirinG/keras_tutorial_user2020

[23]

(1): https://www.bilibili.com/video/BV1E3411n7Ry/

[24]

(2): https://www.bilibili.com/video/BV1W34y1v795/?spm_id_from=333.788

[25]

速查表: https://raw.githubusercontent.com/rstudio/cheatsheets/main/keras.pdf

[26]

R 中使用 TensorFlow Probability: https://blogs.rstudio.com/ai/posts/2019-01-08-getting-started-with-tf-probability/

[27]

表示学习: https://blogs.rstudio.com/ai/posts/2018-10-22-mmd-vae/#our-objective-today

[28]

几何深度学习: https://blogs.rstudio.com/ai/posts/2021-08-26-geometric-deep-learning/

[29]

基于空间预测的卷积 LSTM 网络: https://blogs.rstudio.com/ai/posts/2020-12-17-torch-convlstm/

目录
相关文章
|
5月前
|
机器学习/深度学习
【从零开始学习深度学习】33.语言模型的计算方式及循环神经网络RNN简介
【从零开始学习深度学习】33.语言模型的计算方式及循环神经网络RNN简介
【从零开始学习深度学习】33.语言模型的计算方式及循环神经网络RNN简介
|
26天前
|
机器学习/深度学习 存储 自然语言处理
【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章(上)
【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章(上)
|
5月前
|
机器学习/深度学习
【从零开始学习深度学习】37. 深度循环神经网络与双向循环神经网络简介
【从零开始学习深度学习】37. 深度循环神经网络与双向循环神经网络简介
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习之人类水平的语言推理
基于深度学习的人类水平的语言推理,是当前自然语言处理(NLP)和人工智能领域的重要研究方向之一。语言推理的核心在于理解语言中蕴含的复杂语义和逻辑关系,并根据上下文进行推断。
24 3
|
6月前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
242 4
|
26天前
|
机器学习/深度学习 存储 自然语言处理
【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章(下)
【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章(下)
【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章(下)
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习、深度学习、强化学习和迁移学习简介、相互对比、区别与联系。
机器学习、深度学习、强化学习和迁移学习都是人工智能领域的子领域,它们之间有一定的联系和区别。下面分别对这四个概念进行解析,并给出相互对比、区别与联系以及应用场景案例分析。
80 1
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与自然语言处理的融合:重塑语言理解的未来
【8月更文挑战第5天】在自然语言处理(NLP)领域,深度学习技术引发了一场革命,极大提升了语言理解与生成能力。本文探讨深度学习与NLP的融合现状、关键技术如RNN、LSTM、GRU及Transformer模型,预训练语言模型如BERT和GPT的作用,以及迁移学习的应用。这些技术已在机器翻译、文本分类、智能客服等多个场景取得显著成果,并展望未来模型效率、可解释性、跨模态融合及个性化服务等发展趋势。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)简介
【8月更文挑战第30天】在人工智能的浪潮中,深度学习以其强大的数据处理能力成为时代的宠儿。本文将深入浅出地介绍深度学习的一个重要分支——卷积神经网络(CNN),并探讨其如何在图像识别等领域大放异彩。通过实例,我们将一窥CNN的神秘面纱,理解其背后的原理,并探索如何利用这一工具解锁数据的深层价值。
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
151 9