量子機器學習:新手指南
譯者| 布加迪
審校| 孫淑娟
#歡迎來到量子機器學習世界!本教學將透過使用範例資料集的入門級項目,提供附有程式碼的分步走指導。當本教程結束時,您將對如何使用量子電腦來執行機器學習任務有一番基本的理解,並幫助建立您的第一個量子模型。
但在深入學習本教學之前,先了解量子機器學習是什麼、為什麼它如此令人興奮。
量子機器學習是量子運算和機器學習交會的領域。它使用量子電腦來執行機器學習任務,例如分類、迴歸和聚類。量子電腦是一種功能強大的機器,使用量子位元(量子位元)而不是傳統位元來儲存和處理資訊。這使得它們執行某些任務的速度比傳統電腦快得多,特別適合涉及大量資料的機器學習任務。
現在直接開始教學吧!
第1步:安裝必要的函式庫和相依性。
我們將在本教程中使用PennyLane函式庫用於量子機器學習,使用NumPy用於數值計算,使用Matplotlib用於資料視覺化。您可以透過執行以下命令使用pip安裝這些庫:
!pip install pennylane !pip install numpy !pip install matplotlib
第2步:載入範例資料集。
我們在本教程中將使用Iris資料集,該資料集由鳶尾花的150個樣本組成,這些鳶尾花有四個特徵:萼片長度、萼片寬度、花瓣長度和花瓣寬度。這個資料集包含在sklearn庫中,所以我們可以使用以下程式碼來載入它:
from sklearn import datasets # Load the iris dataset iris = datasets.load_iris() X = iris['data'] y = iris['target']
第3步:將資料集分割成訓練集和測試集。
我們將使用訓練集來訓練我們的量子模型,並使用測試集來評估其性能。我們可以使用來自sklearn.model_selection 模組的 train_test_split函數來分割資料集:
from sklearn.model_selection import train_test_split # Split the dataset into training and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
第4步:預處理資料。
在我們可以使用資料來訓練量子模型之前,我們需要預處理資料。一個常見的預處理步驟是規範化,即調整數據,以便它有零平均值和單位方差。我們可以使用sklearn.preprocessing模組的 StandardScaler類別來執行規範化:
from sklearn.preprocessing import StandardScaler # Initialize the scaler scaler = StandardScaler() # Fit the scaler to the training data scaler.fit(X_train) # Scale the training and test data X_train_scaled = scaler.transform(X_train) X_test_scaled = scaler.transform(X_test)
這段程式碼初始化StandardScaler對象,並使用fit方法將其擬合訓練資料。然後,它使用transform方法來調整訓練和測試資料。
規範化之所以是一個重要的預處理步驟,是由於它確保資料的所有特徵都在同一尺度上,這可以改善量子模型的性能。
第5步:定義量子模型。
現在我們準備好使用 PennyLane函式庫來定義量子模型。第一步是導入必要的函數,並創建量子設備:
import pennylane as qml # Choose a device (e.g., 'default.qubit') device = qml.device('default.qubit')
下一步,我們將定義一個量子函數,它攝取資料作為輸入,並返回預測。我們將使用一個簡單的量子神經網絡,只有一層量子神經元:
@qml.qnode(device) def quantum_neural_net(weights, data): # Initialize the qubits qml.templates.AmplitudeEmbedding(weights, data) # Apply a layer of quantum neurons qml.templates.StronglyEntanglingLayers(weights, data) # Measure the qubits return qml.expval(qml.PauliZ(0))
該量子函數攝取兩個變數:weights(這是量子神經網路的參數)和data(這是輸入資料) 。
第一行使用來自 PennyLane的AmplitudeEmbedding模板初始化量子位元。此模板將資料映射到量子位元的振幅上,以便保留資料點之間的距離。
第二行使用StronglyEntanglingLayers模板來應用一層量子神經元。此模板將一系列糾纏操作應用到量子位元上,然後量子位元可用於實現通用量子計算。
最後,最後一行以Pauli-Z度量基礎測量量子位,並傳回預期值。
第6步:定義成本函數。
為了訓練量子模型,我們需要定義成本函數,以測量模型表現有多好。就本教學而言,我們將使用均方誤差(MSE)作為成本函數:
def cost(weights, data, labels): # Make predictions using the quantum neural network predictions = quantum_neural_net(weights, data) # Calculate the mean squared error mse = qml.mean_squared_error(labels, predictions) return mse
此成本函數攝取三個變數:weights(這是量子模型的參數)、data(這是輸入數據)和labels(這是數據的真實標籤)。它使用量子神經網路基於輸入資料做預測,並計算預測和真實標籤之間的MSE。
MSE是機器學習中的常見成本函數,測量預測值和真實值之間的平均平方差。較小的MSE表示模型更擬合數據。
第7步:訓練量子模型。
現在,我們準備好使用梯度下降法來訓練量子模型。我們將使用PennyLane 的AdamOptimizer類別來執行最佳化:
# Initialize the optimizer opt = qml.AdamOptimizer(stepsize=0.01) # Set the number of training steps steps = 100 # Set the initial weights weights = np.random.normal(0, 1, (4, 2)) # Train the model for i in range(steps): # Calculate the gradients gradients = qml.grad(cost, argnum=0)(weights, X_train_scaled, y_train) # Update the weights opt.step(gradients, weights) # Print the cost if (i + 1) % 10 == 0: print(f'Step {i + 1}: cost = {cost(weights, X_train_scaled, y_train):.4f}')
這段程式碼初始化優化器,步長為0.01,並將訓練步數設為100。然後,它將模型的初始權重設定為從平均值為0、標準差為1的常態分佈中抽取的隨機值。
在每個訓練步驟中,程式碼使用 qml.grad 函數計算相對於權重的成本函數梯度。然後,它使用opt.step方法更新權重,並每10步輸出成本。
梯度下降法是机器学习中常见的优化算法,它迭代更新模型参数以最小化成本函数。AdamOptimizer是梯度下降的一种变体,它使用自适应学习率,这可以帮助优化更快地收敛。
第8步:评估量子模型。
我们已经训练了量子模型,可以评估它在测试集上的性能。我们可以使用以下代码来测试:
# Make predictions on the test set predictions = quantum_neural_net(weights, X_test_scaled) # Calculate the accuracy accuracy = qml.accuracy(predictions, y_test) print(f'Test accuracy: {accuracy:.2f}')
这段代码使用量子神经网络基于测试集做预测,并使用qml.accuracy 函数计算预测准确性。然后,它输出测试准确性。
第9步:直观显示结果。
最后,我们可以使用Matplotlib直观显示量子模型的结果。比如说,我们可以对照真实标签绘制出测试集的预测结果:
import matplotlib.pyplot as plt # Plot the predictions plt.scatter(y_test, predictions) # Add a diagonal line x = np.linspace(0, 3, 4) plt.plot(x, x, '--r') # Add axis labels and a title plt.xlabel('True labels') plt.ylabel('Predictions') plt.title('Quantum Neural Network') # Show the plot plt.show()
这段代码将对照真实标签创建预测的散点图,增添对角线以表示完美预测。然后它为散点图添加轴线标签和标题,并使用plt.show函数来显示。
现在,我们已成功地构建了一个量子机器学习模型,并在示例数据集上评估了性能。
结果
为了测试量子模型的性能,我们运行了教程中提供的代码,获得了以下结果:
Step 10: cost = 0.5020 Step 20: cost = 0.3677 Step 30: cost = 0.3236 Step 40: cost = 0.3141 Step 50: cost = 0.3111 Step 60: cost = 0.3102 Step 70: cost = 0.3098 Step 80: cost = 0.3095 Step 90: cost = 0.3093 Step 100: cost = 0.3092 Test accuracy: 0.87
这些结果表明,量子模型能够从训练数据中学习,并基于测试集做出准确的预测。在整个训练过程中,成本稳步下降,这表明模型在学习过程中不断改进。最终的测试准确率为0.87,表现相当好,这表明该模型能够正确地分类大部分测试样例。
结论
量子机器学习是一个令人兴奋的领域,有许多潜在的应用,从优化供应链到预测股价,不一而足。我们希望本教程能让您了解量子计算机和机器学习的可能性,并激励您深入了解这个诱人的话题。
原文标题:Quantum Machine Learning: A Beginner’s Guide,作者:SPX
以上是量子機器學習:新手指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

在機器學習和資料科學領域,模型的可解釋性一直是研究者和實踐者關注的焦點。隨著深度學習和整合方法等複雜模型的廣泛應用,理解模型的決策過程變得尤為重要。可解釋人工智慧(ExplainableAI|XAI)透過提高模型的透明度,幫助建立對機器學習模型的信任和信心。提高模型的透明度可以透過多種複雜模型的廣泛應用等方法來實現,以及用於解釋模型的決策過程。這些方法包括特徵重要性分析、模型預測區間估計、局部可解釋性演算法等。特徵重要性分析可以透過評估模型對輸入特徵的影響程度來解釋模型的決策過程。模型預測區間估計

本文將介紹如何透過學習曲線來有效辨識機器學習模型中的過度擬合和欠擬合。欠擬合和過擬合1、過擬合如果一個模型對資料進行了過度訓練,以至於它從中學習了噪聲,那麼這個模型就被稱為過擬合。過度擬合模型非常完美地學習了每一個例子,所以它會錯誤地分類一個看不見的/新的例子。對於一個過度擬合的模型,我們會得到一個完美/接近完美的訓練集分數和一個糟糕的驗證集/測試分數。略有修改:"過擬合的原因:用一個複雜的模型來解決一個簡單的問題,從資料中提取雜訊。因為小資料集作為訓練集可能無法代表所有資料的正確表示。"2、欠擬合如

通俗來說,機器學習模型是一種數學函數,它能夠將輸入資料映射到預測輸出。更具體地說,機器學習模型是一種透過學習訓練數據,來調整模型參數,以最小化預測輸出與真實標籤之間的誤差的數學函數。在機器學習中存在多種模型,例如邏輯迴歸模型、決策樹模型、支援向量機模型等,每種模型都有其適用的資料類型和問題類型。同時,不同模型之間存在著許多共通性,或者說有一條隱藏的模型演化的路徑。將聯結主義的感知機為例,透過增加感知機的隱藏層數量,我們可以將其轉化為深度神經網路。而對感知機加入核函數的話就可以轉換為SVM。這一

1950年代,人工智慧(AI)誕生。當時研究人員發現機器可以執行類似人類的任務,例如思考。後來,在1960年代,美國國防部資助了人工智慧,並建立了實驗室進行進一步開發。研究人員發現人工智慧在許多領域都有用武之地,例如太空探索和極端環境中的生存。太空探索是對宇宙的研究,宇宙涵蓋了地球以外的整個宇宙空間。太空被歸類為極端環境,因為它的條件與地球不同。要在太空中生存,必須考慮許多因素,並採取預防措施。科學家和研究人員認為,探索太空並了解一切事物的現狀有助於理解宇宙的運作方式,並為潛在的環境危機

C++中機器學習演算法面臨的常見挑戰包括記憶體管理、多執行緒、效能最佳化和可維護性。解決方案包括使用智慧指標、現代線程庫、SIMD指令和第三方庫,並遵循程式碼風格指南和使用自動化工具。實作案例展示如何利用Eigen函式庫實現線性迴歸演算法,有效地管理記憶體和使用高效能矩陣操作。

譯者|李睿審校|重樓人工智慧(AI)和機器學習(ML)模型如今變得越來越複雜,這些模型產生的產出是黑盒子-無法向利害關係人解釋。可解釋性人工智慧(XAI)致力於透過讓利害關係人理解這些模型的工作方式來解決這個問題,確保他們理解這些模型實際上是如何做出決策的,並確保人工智慧系統中的透明度、信任度和問責制來解決這個問題。本文探討了各種可解釋性人工智慧(XAI)技術,以闡明它們的基本原理。可解釋性人工智慧至關重要的幾個原因信任度和透明度:為了讓人工智慧系統被廣泛接受和信任,使用者需要了解決策是如何做出的

機器學習是人工智慧的重要分支,它賦予電腦從數據中學習的能力,並能夠在無需明確編程的情況下改進自身能力。機器學習在各個領域都有廣泛的應用,從影像辨識和自然語言處理到推薦系統和詐欺偵測,它正在改變我們的生活方式。機器學習領域存在著多種不同的方法和理論,其中最具影響力的五種方法被稱為「機器學習五大派」。這五大派分別為符號派、聯結派、進化派、貝葉斯派和類推學派。 1.符號學派符號學(Symbolism),又稱符號主義,強調利用符號進行邏輯推理和表達知識。該學派認為學習是一種逆向演繹的過程,透過現有的

編輯|ScienceAI問答(QA)資料集在推動自然語言處理(NLP)研究中發揮著至關重要的作用。高品質QA資料集不僅可以用於微調模型,也可以有效評估大語言模型(LLM)的能力,尤其是針對科學知識的理解和推理能力。儘管目前已有許多科學QA數據集,涵蓋了醫學、化學、生物等領域,但這些數據集仍有一些不足之處。其一,資料形式較為單一,大多數為多項選擇題(multiple-choicequestions),它們易於進行評估,但限制了模型的答案選擇範圍,無法充分測試模型的科學問題解答能力。相比之下,開放式問答
