IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> R语言书籍学习01 《深度学习实践指南——基于R语言》-第七章 限制玻尔兹曼机 -> 正文阅读

[人工智能]R语言书籍学习01 《深度学习实践指南——基于R语言》-第七章 限制玻尔兹曼机

我们淹没在信息的海洋里,但是知识却严重短缺。

——Rutherford D.Roger

限制玻尔兹曼机是一种无监督学习模型,用来逼近样本数据的概率密度函数。

?限制玻尔兹曼机允许信息双向流动。

另外一种角度可以把RBM看作可见变量(节点)和隐藏变量(节点)的联合概率分布的参数模型。RBM实际上是一种自编码器,基于数据的联合概率分布来得到数据的表示(编码)。

RBM训练的目标是调整模型的参数,并最大化训练数据的对数似然函数。

#R语言构建限制玻尔兹曼机
#取1000个观测值用于分析,其中800个作为训练数据集
library(RcppDL)
library("ltm")
data(Mobility)
data<-Mobility
set.seed(2021)
n=nrow(data)
sample<-sample(1:n,1000,FALSE)
n=nrow(data)
train<-sample(1:n,800,FALSE)

#创建训练和测试属性对象(x-train,x_test)
x_train<-matrix(as.numeric(unlist(data[train,])),nrow=nrow(data[train,]))
x_test<-matrix(as.numeric(unlist(data[-train,])),nrow=nrow(data[-train,]))

x_train<-x_train[,c(4,6)]
x_test<-x_test[,c(4,6)]
head(x_train)
head(x_test)

#构建模型
fit<-Rrbm(x_train)
setHiddenRepresentation(fit,x=3)
setLearningRate(fit,x=0.01)

summary(fit)
train(fit)


reconProb<-reconstruct(fit,x_train)
#概率转换为二进制
recon<-ifelse(reconProb>=0.5,1,0)
head(recon)

table(recon,x_train,dnn=c("Predicted","Observed"))
par(mfrow=c(1,2))
image(x_train,main="Train")
image(recon,main="Reconstruction")

深度信念网络

深度信念网络(DBN) 是一个概率生成模型的多层神经网络,由多个限制玻尔兹曼机堆叠组成。在一个深度信念网络中,每两个连续的隐藏层构成一个RBM。当前RBM的输入实际上是前一个RBM的输出特征,每个RMB对输入向量进行非线性变化,产生输出,然后输出向量作为下一个RBM的输入向量。

#深度信念网络
y<-apply(cbind(data[,4],data[,6]),1,max,na.rm=TRUE)
y_train<-as.numeric(y[train])
temp<-ifelse(y_train==0,1,0)
y_train<-cbind(y_train,temp)
head(y_train)

y_test<-as.numeric(y[-train])
temp1<-ifelse(y_test==0,1,0)
y_test<-cbind(y_test,temp1)
head(y_test)

nrow(y_train)
nrow(y_test)

hidden=c(12,10)
fit<-Rdbn(x_train,y_train,hidden)
#构建两个隐藏层的模型。先进行预训练
summary(fit)
pretrain(fit)
finetune(fit)
#用训练好的模型来预测测试样本的分类结果
predProb<-predict(fit,x_test)
head(predProb,6)
pred1<-ifelse(predProb[,1]>=0.5,1,0)
table(pred1,y_test[,1],dnn=c("Predicted","Observed"))

继续学习,本书end。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 17:42:25  更:2021-12-01 17:42:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 2:31:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码