本教程参考《RDeepLearningEssential》
1.1 深度学习概念
深度学习是机器学习的一个子集,它特别指的是那些试图模拟人脑工作原理的算法和技术。这种类型的机器学习通过使用多层的人工神经网络来学习和表示数据的内在规律和层次结构。深度学习已经在多个领域取得了显著的成功,特别是在图像和语音识别、自然语言处理以及推荐系统等方面。之前学习深度学习,我一直使用python,但是实际上R语言也是不错的选择,作为简单语言实现复杂功能的尝试。本教程主要聚焦于神经网络的学习。
1.2神经网络概念
深度学习是一种特殊的机器学习方法,它基于人工神经网络的原理,特别是那些具有多层结构的神经网络模型。神经网络,又称为人工神经网络或模拟神经网络,是由大量神经元(或称为节点)相互连接而成的网络结构,旨在模仿人类大脑处理和记忆信息的方式。
在深度学习中,神经网络通常包含输入层、隐藏层和输出层等多个层级,每一层都由若干个神经元组成,相邻层之间通过权重连接。训练这样一个神经网络的关键在于调整这些连接的权重来优化模型的性能,使其能够在给定的数据集上学到有效的特征表示和复杂的模式。
以一个简单的房价预测网络为例,输入层接收房屋的各种属性作为输入,经过隐藏层的处理后,输出层给出房价的预测结果。在这个过程中,隐藏层能够自动从输入数据中提取出有用的特征,并在一定程度上模拟了人类专家在分析类似问题时所依赖的直觉和经验。
经常选择的激活函数是sigmoid函数:
以及双曲正切函数
1.3基于深度学习的R包
我们需要安装一些深度学习的包,如RCurl、jsonlite、caret、e1071、statmod、MASS、H2O、nnet等,我们一口气安装一下:其中h2o包的安装和运行比较复杂,报错不要慌
install.packages('RCurl')
install.packages('jsonlite')
install.packages('caret')
install.packages('e1071')
install.packages('statmod')
install.packages('MASS')
install.packages('nnet')
install.packages('neuralnet')
install.packages('deepnet')
install.packages('h2o')
1.4 H2O包安装的报错解决方案
H2O包在直接用install安装可能会报错,因为包有点大,比如这样: Warning in install.packages : 下载程序包‘h2o’时出了问题
我们尝试官网给出的解决方法:Downloading & Installing H2O — H2O 3.44.0.3 documentation
#以下两个命令删除以前为 R 安装的任何 H2O 包。
if ("package:h2o" %in% search()) { detach("package:h2o", unload=TRUE) }
if ("h2o" %in% rownames(installed.packages())) { remove.packages("h2o") }
#接下来,下载 H2O 依赖的软件包
pkgs <- c("RCurl","jsonlite")
for (pkg in pkgs) {
if (! (pkg %in% rownames(installed.packages()))) { install.packages(pkg) }
}
#安装最新及适合的包
install.packages("h2o", type="source", repos=(c("http://h2o-release.s3.amazonaws.com/h2o/latest_stable_R")))
如果也报错的话就在本地安装,这是本地下载链接:下载后运行代码本地安装:Download H2O 3.47.0.6510 (h2o-release.s3.amazonaws.com)
install.packages("C:/Users/Huzhuocheng/Desktop/h2o_3.47.0.6510.tar.gz", repos = NULL, type = "source")
这样就安装成功了。
1.5 H2O包的初始化和接入(包括报错解决)
library(h2o)
c1 <- h2o.init(
max_mem_size = '3G',
nthreads = 2
)
这样就完成了初始化,当然你也会遇到报错:
Error in h2o.init(max_mem_size = "3G", nthreads = 2) : H2O failed to start, stopping execution.
这一般是电脑防火墙或者IP地址的问题,那么就运行:
h2o.init(nthreads = 2, max_mem_size = '3g', ip = "127.0.0.1", port = 54321)
然后在自己的浏览器中输入网址接入H2O
http://127.0.0.1:54321/flow/index.html
1.6 H2O连接数据集
我们可以在R语言中导入后使用as.h2o()函数载入,示例一下:
hdata <- as.h2o(iris[1:100, 1])
但是我们可以不用这么复杂,我们也可以让H2O读取数据
write.csv(mtcars , 'C:/Users/Huzhuocheng/Desktop/mtcar.csv')
hdata <- h2o.importFile(path = 'C:/Users/Huzhuocheng/Desktop/mtcar.csv')
1.7小结
我们安装了深度学习所需要的包,学习了深度学习的一般概念,下一篇我们将开始训练自己的神经网络并进行预测!