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

一、关于量子计算

        这是我关于量子机器学习(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.mzph.cn/news/100926.shtml

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

相关文章

腾讯云短信验证登录

提前准备工作 1.已 注册腾讯云 账号,并完成 企业实名认证。 2.已 购买 短信套餐包。 3.准备短信签名归属方资质证明文件 4.已获取短信应用的 SDKAppID。 主要获取这几个参数 secretId(秘钥id) secretKey(秘钥key) SmsSdkAppId(appId) TemplateId(短信模板i…

Android:自定义原生TimePickerDialog样式

效果图&#xff1a; 目标效果图&#xff1a; 原生效果&#xff1a; 实现&#xff1a; 首先是Dialog样式&#xff1a; <style name"TimePickerDialogStyle" parent"style/Theme.AppCompat.DayNight.Dialog.Alert"><item name"android:time…

Nosql redis高可用和持久化

Nosql redis高可用和持久化 1、redis高可用2、redis持久化2.1redis持久化2.2Redis 持久化方法2.3RDB 持久化2.3.1RDB持久化工作原理2.3.2触发条件2.3.3其他自动触发机制2.3.4执行流程2.3.5启动时加载 2.4AOF 持久化2.4.1AOF持久化原理2.4.2开启AOF2.4.3执行流程2.4.4文件重写的…

css怎么实现文字描边

有时&#xff0c;我们会遇到UI稿有文字描边的效果&#xff0c;比如下图的效果。 一、给需要描边的文字加一个id选择器 例如&#xff1a; 二、css写法&#xff1a; number,{//这个是实现文字描边的关键&#xff0c;也就是‘空心文字’&#xff0c;这个是定义文字字符的描边的宽…

对比纯软开与嵌入式硬件开发谁更好呢?

对比纯软开与嵌入式硬件开发谁更好呢&#xff1f; 你的纠结和犹豫是理解的&#xff0c;职业选择确实是一个重要的决策。我明白你在嵌入式和软件开发之间犹豫不决的原因。让我给你提供一些建议&#xff0c;帮助你做出更明智的决定。最近很多小伙伴找我&#xff0c;说想要一些嵌入…

1600*A. Maze(DFS)

Problem - 377A - Codeforces 解析&#xff1a; 对于正向思考比较复杂的题目&#xff0c;我们可以反向思考。 由于最后剩余的 “ . ” 必须相连&#xff0c;所以我们将所有 “ . ” 全部换成 “ X ”&#xff0c;然后从其中DFS一个联通的“ X ”反向换成 “ . ”即可。 #incl…

配资炒股优质平台排名:十大排名和评估!

随着互联网的发展&#xff0c;配资炒股平台已经成为了越来越多投资者的选择&#xff0c;但是市场上的配资炒股平台各不相同&#xff0c;投资者如何选择一家优质的平台呢&#xff1f;这时候&#xff0c;配资炒股优质平台排名就显得尤为重要。 配资炒股优质平台排名的作用&#…

HTML5开发实例-3D全景(ThreeJs全景Demo) 详解(图)

前言 在现在市面上很多全景H5的环境下,要实现全景的方式有很多,可以用css3直接构建也可以用基于threeJs的库来实现,还有很多别的制作全景的软件使用 本教学适用于未开发过3D全景的工程狮 如果觉得内容太无聊可以直接跳到最后 下载代码 理论 整个3D全景所用的相关理论就…

将 Ordinals 与比特币智能合约集成:第 3 部分

基于 Ordinals 的 BSV-20 同质化代币 之前&#xff0c;我们展示了如何将比特币智能合约与 Ordinals 集成&#xff0c;Ordinals 可以被视为链上的 NFT。 在本文中&#xff0c;我们将展示如何将它们与同质化代币&#xff08;即 BSV-20 代币&#xff09;集成。 我们仍然以拍卖为例…

dubbo3+zookeeper/nacos+dubbo-admin

工程结构&#xff1a; 版本信息&#xff1a; jdk版本&#xff1a;1.8 springboot-parent版本&#xff1a;2.6.6springboot版本&#xff1a;2.6.6 dubbo-spring-boot-starter版本&#xff1a;3.0.7dubbo版本&#xff1a;3.0.7 dubbo-registry-zookeeper版本&#xff1a;3.0.7c…

SRE实战:如何低成本推进风险治理?稳定性与架构优化的3个策略

一分钟精华速览 SRE 团队每天面临着不可控的各类风险和重复发生的琐事&#xff0c;故障时疲于奔命忙于救火。作为技术管理者&#xff0c;你一直担心这些琐事会像滚雪球一样&#xff0c;越来越多地、无止尽地消耗你的团队&#xff0c;进而思考如何系统性地枚举、掌控这些风险&a…

请求和响应的概述

请求&#xff1a;在浏览器地址栏输入地址&#xff0c;点击回车请求服务器&#xff0c;这个过程就是一个请求过程。 响应&#xff1a;服务器根据浏览器发送的请求&#xff0c;返回数据到浏览器在网页上进行显示&#xff0c;这个过程就称之为响应。 针对Servlet的每次请求&…

软件测试之概念篇(需求,测试用例,BUG描述,产品的生命周期)

目录 1.什么是需求 2.什么是测试用例 3.什么是BUG 4.软件的生命周期 5.测试的生命周期 1.什么是需求 在大多数软件公司&#xff0c;一般会有两部分需求&#xff1a; 用户需求&#xff1a;可以理解为就是甲方提出需求&#xff0c;如果没有甲方&#xff0c;那么就是终端用…

IDEA使用模板创建webapp时,web.xml文件版本过低的一种解决方法

创建完成后的web.xml 文件&#xff0c;版本太低 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Appl…

Springboot使用sqlcipher4加密sqlite数据库

在有些业务场景&#xff0c;需要使用sqlite数据库&#xff0c;但sqlite数据库生的db文件&#xff0c;是明文的&#xff0c;该文件被别人拿到&#xff0c;就可以看到里面的所有数据&#xff0c;非常不安全&#xff0c;市面上有很多对sqlite数据库文件加密的方式&#xff0c;但都…

【Overload游戏引擎分析】编辑器对象鼠标拾取原理

Overload的场景视图区有拾取鼠标功能&#xff0c;单击拾取物体后会显示在Inspector面板中。本文来分析鼠标拾取这个功能背后的原理。 一、OpenGL的FrameBuffer 实现鼠标拾取常用的方式有两种&#xff1a;渲染id到纹理、光线投射求交。Overload使用的是渲染id到纹理&#xff0c…

ESP32网络开发实例-WebSocket服务器

WebSocket服务器 文章目录 WebSocket服务器1、WebSocket介绍2、应用实例介绍3、软件准备4、硬件准备5、代码实现在本文中,将介绍如何使用 WebSocket 通信协议通过 ESP32 构建 Web 服务器。 例如,我们将向介绍如何构建网页以远程控制 ESP32 输出。 输出状态显示在网页上,并在…

在windows系统上安装pgAdmin4

pgAdmin4是全球最先进的开源数据库PostgreSQL的领先开源管理工具。它旨在满足新手和经验丰富的PostgreSQL用户的需求&#xff0c;提供了强大的图形界面&#xff0c;可简化数据库对象的创建、维护和使用。 pgAdmin4是Python开发的Web应用程序&#xff0c;既可以部署为Web模式通…

CSS图文悬停翻转效果完整源码附注释

实现效果截图 HTML页面源码 <!DOCTYPE html> <html><head><meta http-equiv="content-type

一站式数据可视化与分析平台JVS智能BI强大的数据节点功能

在商业智能&#xff08;BI&#xff09;中&#xff0c;数据集是数据的集合&#xff0c;用于分析和报告。数据节点是数据集中的一个重要组成部分&#xff0c;它代表数据集中的一个特定数据点或数据元素。通过使用数据节点&#xff0c;可以对数据进行过滤、分组和计算&#xff0c;…