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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 低差异序列--基于Halton序列的采样 -> 正文阅读

[人工智能]低差异序列--基于Halton序列的采样

在使用蒙特卡洛方法时,需要对设计变量空间的样本点进行采样,采集的样本点在空间的分布情况的好坏,可以对收敛速度产生影响,基于蒙特卡洛方法使用的是伪随机序列,基于准蒙特卡洛方法使用的是低差异序列如Halton 序列、Sobol 序列或 Faure 序列。

理论上准蒙特卡洛的低差异序列收敛速度更快,基于低差异序列的采样在空间分布均匀性能够达到拉丁超立方采样的性能。

这里给出Halton序列采样的matlab代码示例,具体关于Halton序列的原理见下面链接

https://zhuanlan.zhihu.com/p/20197323

clear
clc
%基于Halton序列的采样,关于这方面的知识查看https://zhuanlan.zhihu.com/p/20197323

npoints=100;
ndv=2;  %维数
Binary=[];  %暂时每一维存储10进制整数转换后的二进制


A=[randperm(npoints);randperm(npoints)];  %得到每一维的npoints个整数
B=[2;7];   %存储每一维需要转换的进制,维数之间转换的进制需要互质

for i=1:ndv
    for j=1:npoints 
 %%  这里是将每一个整数转换成二进制
        C=jinzhizhuanhuan(A(i,j),B(i,:))
 %%  高位补零,以便对每一个整数转换成二进制后,位数一致,方便矩阵计算
        if length(C)<npoints
            C=[zeros(1,npoints-length(C)),C];
        end
        Binary=[Binary;C];  %得到关于每一维nopints个整数最终的二进制的矩阵,每一行代表一个整数的进制表示
    end
    Binary_end(:,:,i)=Binary;  %得到ndv维的每个整数的二进制矩阵,Binary_end(:,:,1)代表第1维的npoints个点转换进制后的矩阵
    Binary=[];
end
clear i j;
%% 这里是为了将二进制,镜像翻转到小数位,在对其进行十进制运算
D = fliplr(Binary_end);  % 将矩阵按行翻转

%% 将镜像翻转到小数点后的进制表示转换成十进制得到最终的结果
for i=1:ndv
    for j=1:npoints
        E(i,j)=B(i,:)^(-j);
    end
    F(i,:)=E(i,:)*(D(:,:,i))';   %为了矩阵乘法运算正好可以计算最终的十进制值
end

%% 画出散点图
scatter(F(1,:),F(2,:),'filled')
grid on
xticks(0:1/20:1);
yticks(0:1/20:1);

进制转换函数如下:

function Base = jinzhizhuanhuan(n,N)
% 进制转换,目的是为了将十进制整数n转化成N进制,N<10
Base=[];
%辗转相除法转换进制
while floor((n/N))>0    %floor向下取整
    Base=[Base,mod(n,N)];
    n=floor(n/N);
end
Base=fliplr([Base,n]);
return
end

?结果如下:由于具有随机性,每次运行结果并不一致。

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 11:56:30  更:2021-09-30 11:57:45 
 
开发: 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年5日历 -2024/5/22 4:46:21-

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