如何开始学习量子机器学习

一、关于量子计算

        这是我关于量子机器学习(QML)的第二篇文章,这是第一篇,关于为什么你应该开始学习QML。

        开始研究量子机器学习很困难,因为我不知道我需要了解多少量子力学和计算知识。我在101年上大学时上了量子力学2008,所以我记不住太多(我记得基本的想法和概念),量子计算对我来说是完全陌生的。

        然后我问一个正在研究量子计算的朋友,他的回答是:这完全取决于你的目标。如果你想学习如何开发量子硬件,你必须学习量子力学,但如果你想专注于算法线性代数就足够了!

        现在我认为他部分正确,尽管学习量子力学真的很有帮助。线性代数和统计是专门开始学习量子机器学习所需的最重要的概念。我旅程的下一步是如何开始学习量子计算的基本概念,以便以后继续学习QML?这是一个艰难的部分,因为我不想从非常理论化的文章开始学习,我想以简单的方式开始学习。论文往往过于理论化(它们应该是),并且过于重符号,这对于不习惯量子力学符号的人来说是苛刻的。

        所以我开始通过阅读Qiskit和Pennylane教程来学习,这是两个最著名的模拟量子设备的Python库。但有时教程过多地介绍如何编写代码,而不是基于概念,所以我仍然觉得我并没有完全走在正确的道路上。此外,一些教程过于专注于构建量子电路,这很重要,但我仍然对在前往 QML 之前我应该成为构建量子电路的专家有疑问。

        我还尝试阅读Medium上的QML帖子,这也非常有帮助。我强烈推荐Frank Zieckert博客和他的书,它们很好地介绍了量子计算和QML的基本概念。Medium上的Qiskit社区有一些不错的帖子,其中包含有趣的项目。迈向数据科学并不具体针对QML,但有时他们会发布一些关于该主题的好内容。

        最后,经过几个月的QML学习,我建议的学习路径是:

  1. 阅读Frank Zieckert的书:它们是QML的一个很好的介绍。他们以一种非常说教的方式解释量子计算的基本概念,不急于概念解释,也不太依赖数学符号。此外,Qiskit上还有一堆电路设计和模拟代码,这真的很好。就我个人而言,我真的很喜欢变分量子特征求解器(VQE)和量子近似优化算法。
  2. 多练习。设计量子电路并对其进行仿真。您可以使用Qiskit,Pennylane或其他库。这对于充分理解量子叠加和纠缠在实践中如何工作以及量子门如何运作非常重要。非受控(CNOT)并不像它的名字所暗示的那么简单!在这里,我承认我应该多练习。
  3. 阅读 Medium 中的其他博客,了解其他人如何尝试使用 QML,因为我们仍在尝试了解这个工具的强大功能(这里和这里有一些不错的帖子)。尝试在数据科学中找到您已经喜欢的主题,以了解人们在QML中接近的内容。你也可以阅读我的博客,评论或批评我的错误(我真的鼓励你,我在这里学习)。
  4. 尝试使用量子和经典计算相结合来解决简单的优化和分类问题。

现在我希望我能帮你谈谈我自己的旅程。

二、我应该使用什么工具

        显然,用真正的量子计算机开始学习是不切实际的,但这对初学者来说不是问题,有一些 Python 库可以模拟量子设备。我没有寻找其他语言的库,因为我已经在使用 Python 并且我找到了这种语言的大量材料。

        我遇到了其中两个我分析的:Pennylane和Qiskit。

        尽管Qiskit更广为人知,但我还是从Pennylane开始的,因为我看到它专注于QML,所以我开始研究它的文档。我不会做很长的文字,而是列出利弊。

Pennylane

优势:

  • 良好的文档和教程
  • 它很容易安装并使教程的代码在您的机器中工作(至少对我来说)
  • 灵活运行优化问题

弊:

  • 我没有发现在教程上下文之外制作一些东西非常直观(也许那是我!
  • 在Qiskit上设计量子电路更容易,这是我切换到Qiskit的主要原因。

当我不得不设计一个更复杂的电路时,我在Pennylane尝试时遇到了一些麻烦,然后我的印象是在Qiskit中设计它更容易。Pennylane有一个很好的Qiskit插件,然后我在Qiskit中设计了电路并导入Pennylane。但后来我在这个问题上挣扎着,然后我想:也许我应该在Qiskit上设计所有东西。嗯,Pennylane是一个非常好的图书馆,也许由于我的无能,我遇到了这些困难。

About Qiskit

优势:

  • 良好的文档和教程
  • 灵活运行优化问题
  • 易于设计的量子电路
  • 易于部署的简单 QML 模型
  • 拥有大量模块,包括 ML

弊:

  • Qiskit 有一些不推荐使用的模块,我在运行使用这些弃用库中函数的 Medium 帖子中的代码时遇到了一些问题

        但事实是:我真的很喜欢Qiskit,这是我的选择(对不起Pennylane!

        但是一开始你需要一些东西:耐心!这些是量子设备模拟器,所以它们确实使用量子计算逻辑的经典计算进行计算,这是昂贵的,因此在计算机中使用QML模型需要耐心,因为为相对较小的数据集训练模型需要时间,我们将无法在大型数据集中开发模型!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/152870.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抽象轻松的java-mybatis简单入门

第一步:用IDEA新建一个java包 第二步:在IDEA中添加数据库(ps:自己百度) 点击数据库 第二步,新建数据库 选择你使用的数据库 用户与密码根据自己的设置进行配置 为了更方便的查看数据库,可以像图…

【kubernetes】带你了解k8s中PV和PVC的由来

文章目录 1 为什么需要卷(Volume)2 卷的挂载2.1 k8s集群中可以直接使用2.2 需要额外的存储组件2.3 公有云 2 PV(Persistent Volume)3 SC(Storage Class) 和 PVC(Persistent Volume Claim)4 总结 1 为什么需要卷(Volume) Pod是由一个或者多个容器组成的,在启动Pod中…

Linux免密登录

目标: 192.168.233.31 ton-pc-003 192.168.233.32 ton-pc-004 在ton-pc-004(以下简称004)免密登录ton-pc-003(以下简称003) 具体流程和说明: 1、在004(客户机)中生成秘钥对 ssh…

【计算机视觉|人脸建模】学习从4D扫描中获取的面部形状和表情的模型

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:Learning a model of facial shape and expression from 4D scans 链接:Learning a model of facial shape and expression from 4D scans | ACM Transactions on Graphics Pe…

解决方案:AI赋能工业生产3.0,从工业“制造”到“智造”

视频监控技术是一种既成熟又广泛应用于工业制造领域的先进技术。它可以通过安装各种摄像头和传感器来监测整个生产流程,包括原材料的采购、加工、装配和物流等环节,从而实现对生产过程的实时监控和管理,以及对异常事件的及时预警和响应。 在…

【SV中的多线程fork...join/join_any/join_none】

SV中fork_join/fork_join_any/fork_join_none 1 一目了然1.1 fork...join1.2 fork...join_any1.3 fork...join_none 2 总结 SV中fork_join和fork_join_any和fork_join_none; Note: fork_join在Verilog中也有,只有其他的两个是SV中独有的; 1 一目了然 1.…

FreeRTOS自我救赎3之USB虚拟串口

任何项目的功能都从需求出发,在这里我用的是斥侯蜂的一块STM32F407ZGT6 在开发一个项目的过程中,免不了串口调试,而这块板子板载的mircousb不是直接连的引脚而是一个OTGUSB

SpringCloud Alibaba - Seata 部署 TC 服务,并集成微服务

目录 一、Seata 架构 1.1、Seata 架构重要角色 1.2、部署 TC 服务 1.2.1、前言 1.2.2、下载 seata-server 包,解压 1.2.3、修改配置 1.2.4、在 nacos 中添加配置 1.2.5、创建数据库表 1.2.6、启动 TC 服务 1.3、微服务集成 Seata 1.3.1、引入依赖 1.3.2、…

SpringBoot 实现数据脱敏

SpringBoot 实现数据脱敏 前言Hutool 实现数据脱敏引入依赖脱敏工具类代码实现 使用注解的方式定义枚举自定义序列化类定义注解测试 前言 数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。 数据脱敏常用规则有替换、重排、加密…

C++对象模型(8)-- 数据语义学:this指针

1、this指针的认识 this 是 C 中的一个关键字,也是一个 const 指针 ,它指向当前对象,通过它可以访问当前对象的所有成员。所谓当前对象,是指正在使用的对象。 假如有这么一个类: class Base { public:int b_i;int b…

[NewStarCTF 2023 公开赛道] week1 Crypto

brainfuck 题目描述&#xff1a; [>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<-]>>>>>>>.>----.<-----.>-----.>-----.<<<-.>>..…

论文解析——异构多芯粒神经网络加速器

作者 朱郭益, 马胜&#xff0c;张春元, 王波&#xff08;国防科技大学计算机学院&#xff09; 摘要 随着神经网络技术的快速发展, 出于安全性等方面考虑, 大量边缘计算设备被应用于智能计算领域。首先&#xff0c;设计了可应用于边缘计算的异构多芯粒神经网络加速器其基本结构…

TCP相关面试题

TCP相关面试题 题目1 介绍一下TCP三次握手的过程 介绍TCP三次握手应该从3个方面进行回答&#xff0c;分别是数据包名称&#xff0c;客户端与服务端的状态变化&#xff0c;数据包的序号变化。而不能只是简单回答发送的数据包名称。 TCP三次握手的过程如下&#xff1a; 从数据…

关于Jupyter notebook 创建python3 时进去不能重命名问题及不能编程问题

首先写这篇博客时&#xff0c;已经被这个问题折磨了三天&#xff0c;看了很多博客&#xff0c;其实解决这个问题的关键就是要么没有下pyzmq或者等级太高&#xff0c;要么等级太低&#xff0c;首先我会按照我思路来。 问题如图&#xff1a; 1.自动换行 2.不能重命名 我的解决办…

安装torchtext遇到的坑及解决办法

刚开始秉着需要什么就pip install什么的原则直接pip install torchtext&#xff0c;结果&#xff1a; 把我这个环境打乱了&#xff0c;自作主张的删掉之前的很多包重新安装了其他版本的包而不是自适应的安装当前torch所对应的torchtext。因为这个环境比较重要也用在其他的工程…

MySQL详解 七:数据库高级语句(视图表、存储过程)

文章目录 1. create view ---- (视图表)1.1 视图的简单介绍1.2 基本语法1.2.1 创建视图表1.2.2 查看视图表1.2.3 删除视图表1.2.4 修改视图表 1.3 通过视图表得出无交集 2. case语句3. 空值&#xff08;null&#xff09; 和 无值&#xff08; &#xff09; 的区别4. 正则表达式…

CSS盒子定位的扩张

定位的扩展 绝对定位&#xff08;固定定位&#xff09;会完全压住盒子 浮动元素不会压住下面标准流的文字&#xff0c;而绝对定位或固定位会压住下面标准流的所有内容 如果一个盒子既有向左又有向右&#xff0c;则执行左&#xff0c;同理执行上 显示隐藏 display: none&…

【C语言】字符函数和内存操作函数

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解字符函数和内存操作函数&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一.字符函数1.1 字符分类函数1.2 字符转换函数 二.内存操作函数2.1 memcpy2.2…

Java @Override 注解

在代码中&#xff0c;你可能会看到大量的 Override 注解。 这个注解简单来说就是让编译器去读的&#xff0c;能够避免你在写代码的时候犯一些低级的拼写错误。 Java Override 注解用来指定方法重写&#xff08;Override&#xff09;&#xff0c;只能修饰方法并且只能用于方法…

ctfshow-web11(session绕过)

php代码审计&#xff1a; function replaceSpecialChar($strParam){$regex "/(select|from|where|join|sleep|and|\s|union|,)/i";return preg_replace($regex,"",$strParam);} 首先定义了一个函数&#xff0c;主要是使用preg_replace函数对我们提交的内…