当前位置: 首页 > news >正文

伊犁哈萨克自治州网站建设_网站建设公司_Windows Server_seo优化

wordpress怎么搭建分享网站,wordpress 主题 家居,专业外贸网站开发,自学网页设计有前途吗理论基础之前我们介绍了强化学习Leo#xff1a;和Leo一起学量子计算#xff1a;三点一. 微分线路和强化学习​zhuanlan.zhihu.com上面这篇博文告诉我们如何把量子线路类比为神经网络#xff0c;并获取它的导数。在可微分线路的基础上#xff0c;我们可以做一些更加酷的事情…理论基础之前我们介绍了强化学习Leo和Leo一起学量子计算三点一. 微分线路和强化学习​zhuanlan.zhihu.com上面这篇博文告诉我们如何把量子线路类比为神经网络并获取它的导数。在可微分线路的基础上我们可以做一些更加酷的事情比如量子对抗学习。2018年量子机器学习领域出现了几篇夺人眼球的关于量子对抗生成学习的文章它们分别是Seth Lloyd, Christian Weedbrook[1804.09139] Quantum generative adversarial learningQuantum generative adversarial networks[1804.08641] Quantum generative adversarial networksBenedetti, M., Grant, E., Wossnig, L., Severini, S.[1806.00463] Adversarial quantum circuit learning for pure state approximationHaozhen Situ, Zhimin He, Lvzhou Li, Shenggen Zheng[1807.01235] Quantum generative adversarial network for generating discrete dataJinfeng Zeng,Yufeng Wu,Jin-Guo Liu,Lei Wang,Jiangping Hu[1808.03425] Learning and Inference on Generative Adversarial Quantum Circuits理论基础下面简单介绍下第三篇工作的基本思想也就是今年 6 月份的这篇学习纯态波函数的文章, 他是对第一篇和第二篇文章思想的传承和简化版本。这篇文章要解决的问题是给定一个未知量子线路T它可以让波函数从 态演化到 。我们希望构造一个线路G生成另外一个波函数 得到这个波函数的尽可能与目标线路产生的态相似 也就是 。那么为什么要学习一个量子线路产生量子力学波函数呢一个原因是量子波函数具有不可克隆的特性为了能够随时随地复现它一个好的想法就是把能够产生这个波函数的随机线路的参数用经典浮点数把它保存在磁盘上。图1量子线路对抗学习示意图T, G 和 D 均为量子线路T 即 Target是需要被学习的线路G 即 Generator是用来仿制 T 的量子波函数生成线路D 即 Discriminator它通过对辅助比特的 POVM 测量来判别 T 和 G 的量子线路。引自arXiv: 1806.00463如图1所示QuGAN 的量子线路主体包括两个部分生成线路和判别线路生成线路尽量去仿制T线路的波函数以达到以假乱真的效果而判别器则通过一个量子线路尽可能的仅通过辅助比特的测量知道输入的波函数是真还是假。Loss函数可以写作 其中 和 分别是来自 T 和 G 的样本的概率 则是定义在辅助比特上的POVM测量中的一个投影算符一般可以取 . 当 , 判别器完美工作的情况下这个Loss函数等价于 trace distance 的定义生成器希望减少这个distance, 判别器则希望增加这个 distance 以探测区别。在对抗训练中, 良好的判别器是训练生成器的前提. 以下讨论认为 恒成立。具体的线路细节以及Loss函数的描述请见arXiv: 1806.00463。代码实现首先申明下Yao最近将会发布0.3更新会有更加丰富的API和GPU的支持。但是也面临着API不稳定的问题建议安装master分支 ]add Yao#master 以及]add QuAlgorithmZoo#master。如果在尝试实现Tutorial代码的过程中遇到了问题请以知乎评论或者issue的形式反馈。我会在发布0.3版本后系统的更新这个系列的代码。using LinearAlgebrausing Yao using QuAlgorithmZoo: random_diff_circuit, pair_ring Quantum GAN.Reference:Benedetti, M., Grant, E., Wossnig, L., Severini, S. (2018). Adversarial quantum circuit learning for pure state approximation, 1–14.struct QuGAN{N}target::ArrayReggenerator::AbstractBlock{N}discriminator::AbstractBlockreg0::ArrayRegwitness_op::AbstractBlockcircuit::AbstractBlockgdiffsddiffsfunction QuGAN(target::DefaultRegister, gen::MatrixBlock, dis::MatrixBlock)N nqubits(target)c Sequence([gen, addbits!(1), dis])witness_op put(N1, (N1)ConstGate.P0)gdiffs chain(collect_blocks(AbstractDiff, gen))ddiffs chain(collect_blocks(AbstractDiff, dis))new{N}(target, gen, dis, zero_state(N), witness_op, c, gdiffs, ddiffs)end end首先申明QuGAN结构体其中witness_op是loss中的 项这里定义为在辅助比特 (也就是第N1个qubit) 态的投影的算符。gdiffs和ddiffs分别记录了生成器和判别器的微分模块这些微分模块可以用collect函数来自动获取该函数做的事情是对Block Tree做深度有限的搜索把特定类型的gate放入sequence里面并返回。 整个线路变量circuit包含生成器增加一个qubit判别器三部分。loss function loss(qcg::QuGAN) p0t(qcg) - p0g(qcg) probability to get evidense qubit 0 on generation set. p0g(qg::QuGAN) expect(qg.witness_op, psi_discgen(qg)) | real probability to get evidense qubit 0 on target set. p0t(qg::QuGAN) expect(qg.witness_op, psi_disctarget(qg)) | real generated wave function psi(qg::QuGAN) copy(qg.reg0) | qg.generator input | generator | discriminator psi_discgen(qg::QuGAN) copy(qg.reg0) | qg.circuit target | discriminator psi_disctarget(qg::QuGAN) copy(qg.target) | qg.circuit[2:end] tracedistance between target and generated wave function distance(qg::QuGAN) tracedist(qg.target, psi(qg))[]p0g函数计算Loss中的第二项 p0t则计算Loss中第一项 我们用trace distance作为衡量训练结果的好坏的最终标准。但trace distance实验的操作性不强这时候可以用swap test来计算两个态的overlap也是不错的选择。obtain the gradient function grad(qcg::QuGAN)ggrad_g opdiff.(()-psi_discgen(qcg), qcg.gdiffs, Ref(qcg.witness_op))dgrad_g opdiff.(()-psi_discgen(qcg), qcg.ddiffs, Ref(qcg.witness_op))dgrad_t opdiff.(()-psi_disctarget(qcg), qcg.ddiffs, Ref(qcg.witness_op))[-ggrad_g; dgrad_t - dgrad_g] endthe training process function train(qcg::QuGAN{N}, g_learning_rate::Real, d_learning_rate::Real, niter::Int) where Nng length(qcg.gdiffs)for i in 1:niterg grad(qcg)dispatch!(, qcg.generator, -g[1:ng]*g_learning_rate)dispatch!(-, qcg.discriminator, -g[ng1:end]*d_learning_rate)(i*20)%niter0 println(Step $i, Trance Distance $(distance(qcg)))end end量子线路对于可观测量的微分可以见三点一章节的讨论。 在训练中这里简单的给generator和discriminator定了两个不同的learning rate但是梯度方向是相反的。生成器会往下降 loss 的方向训练, 而判别器则往提升 loss 的方向训练, 判别器的 learning rate 一般要高一点才有助于收敛. 其实更加妥当的做法是, 内部加一个对discriminator的训练的loop保证discriminator总是收敛。nbit 3 target rand_state(nbit) gen dispatch!(random_diff_circuit(nbit, 2, pair_ring(nbit)), :random) | autodiff(:QC) discriminator dispatch!(random_diff_circuit(nbit1, 5, pair_ring(nbit1)), :random) | autodiff(:QC) qcg QuGAN(target, gen, discriminator) train(qcg, 0.1, 0.2, 1000)这里尝试学习一个3 qubit的量子随机态, 生成和判别用的线路深度分别为 2 和 5, 学习速率分别是 0.1 和 0.2. 如果运行顺利将会看到如下结果Step 50, Trance Distance 0.6342280675404924 Step 100, Trance Distance 0.2556083335074918 Step 150, Trance Distance 0.20588883282356 Step 200, Trance Distance 0.18588876599788512 Step 250, Trance Distance 0.14383386098057532 Step 300, Trance Distance 0.11122073204131669 Step 350, Trance Distance 0.12055174236882853 Step 400, Trance Distance 0.08476938309711918 Step 450, Trance Distance 0.055730139169513575 Step 500, Trance Distance 0.0658058630141474 Step 550, Trance Distance 0.030654404721949198 Step 600, Trance Distance 0.05670115284050363 Step 650, Trance Distance 0.026043726656018153 Step 700, Trance Distance 0.03717624105785262 Step 750, Trance Distance 0.018583002816583323 Step 800, Trance Distance 0.038243650242252694 Step 850, Trance Distance 0.02220738846752642 Step 900, Trance Distance 0.016162779109655048 Step 950, Trance Distance 0.0070184081980637705 Step 1000, Trance Distance 0.016831931463320904我们发现trace distance的确可以下降可以学到目标状态但是收敛的并不快。也是所有基于GAN的方法的通病吧这里谈一下 QuGAN 的优点和缺点, 优点是结构简单, 形式也很酷, 有很多可以继续玩的东西. 缺点也很明显.首先文章里面用到的 loss 和经典 GAN 的 loss 其实不一样, 这种不一样是由于求导方案必须要求最终的输出为可观测量这个约束导致的. 这也是为什么 arXiv: 1807.01235 和 arXiv: 1808.03425 会采用量子经典的对抗学习的方案.其次, 这里的生成型模型生成的是量子力学波函数, 一般生成型包括很多量子生成型模型的目标都是得到经典数据, 比如 arXiv: 1804.04168中提到的 Born Machine. 但是这里连同波函数相位一起学习了, 学习难度也高了很多, 作为经典数据的生成器是做了无用功的. 但也要考虑到它的应用场景不一样.最后, 所有 GAN 的通病, Modal Collapse, 收敛慢, 它都有, 所有量子变分线路的通病, 比如求导复杂度高 (比如经典深度学习 BP 方案的O(N), 它是O(N^2), 其中 N 为参数个数), 它也有.虽然有这么多缺点, 但是毫无疑问, 它为理论学家们提供了很不错的新玩具!
http://www.ihoyoo.com/news/49091.html

相关文章:

  • 玉林住房和建设厅网站佛山网站排名优化
  • 网站的数据库丢失上海 网站设计
  • 鹤壁专业做网站公司绍兴网站制作价格
  • 跳转到手机网站代码南头做网站公司
  • 网站正在建设升级网站建设评审验收会议主持词
  • 网站怎么做营销网站管理员有哪些权限
  • 网站运营写营销莱芜区平台公司
  • 教育机构做网站的目的第一ppt网免费模板
  • 做外贸有免费的网站吗app界面设计网站
  • 购物网站seo搜索引擎优化方案影视公司起名
  • 企业怎么建设网站首页注册贸易公司需要什么条件
  • 宜昌电子商城网站建设泰州网络科技有限公司
  • 博达网站建设怎么建立下载网站改版需要向百度000提交吗
  • 丹江口网站开发南昌seo专业团队
  • 网站建设培训班多少钱郑州大学现代远程教育 《网页设计与网站建设》个人主页
  • 织梦企业网站源码做旅游网站的
  • 做张家界旅游网站多少钱网站后台登陆验证码不对
  • 怎么做网站免费的网站的关键词怎么选择
  • 购物网站首页模板长沙网站seo价格
  • 关于做网站常见的问题做移动网站优化优
  • 南城县建设局网站宁波网络营销网站建设
  • 怎么自己做直播网站建设网站为网站网站做广告
  • 做奖杯的企业网站微信如何申请小程序
  • 设计网站的步骤有哪些yw12777域名查询
  • php可视化网站开发小红书笔记推广
  • 网站怎么做百度商桥中捷贴吧
  • 建设银行网网站手机图片制作
  • wordpress页面调用分类文章的方法西安百度seo
  • 做网站选大公司好还是小公司好公司域名网站
  • 什么软件做网站百度旗下的外贸建站公司