目次
はじめに
ステップ 1: 必要なライブラリと依存関係をインストールします。
ステップ 2: サンプル データセットをロードします。
ステップ 3: データセットをトレーニング セットとテスト セットに分割します。
ステップ 4: データを前処理します。
ステップ 5: 量子モデルを定義します。
ステップ 6: コスト関数を定義します。
ステップ 7: 量子モデルをトレーニングします。
第8步:评估量子模型。
第9步:直观显示结果。
结果
结论
ホームページ テクノロジー周辺機器 AI 量子機械学習: 初心者ガイド

量子機械学習: 初心者ガイド

Apr 14, 2023 pm 11:40 PM
機械学習 データセット

翻訳者 | Bugatti

レビュアー | Sun Shujuan

はじめに

量子機械学習: 初心者ガイド

量子の世界へようこそ機械学習!このチュートリアルでは、サンプル データセットを使用したスターター プロジェクトを通じて、コードによる段階的なガイダンスを提供します。このチュートリアルを終えると、量子コンピューターを使用して機械学習タスクを実行し、最初の量子モデルの構築を支援する方法の基本を理解できるようになります。

しかし、このチュートリアルに入る前に、量子機械学習とは何か、そしてなぜそれがそれほど魅力的なのかを理解しましょう。

量子機械学習は、量子コンピューティングと機械学習が融合した分野です。量子コンピューターを使用して、分類、回帰、クラスタリングなどの機械学習タスクを実行します。量子コンピューターは、情報の保存と処理に従来のビットの代わりに量子ビット (量子ビット) を使用する強力なマシンです。これにより、特定のタスクを従来のコンピューターよりもはるかに高速に実行できるため、大量のデータを含む機械学習タスクに特に適しています。

今すぐチュートリアルを開始してください!

ステップ 1: 必要なライブラリと依存関係をインストールします。

このチュートリアルでは、量子機械学習には PennyLane ライブラリ、数値計算には NumPy、データ視覚化には Matplotlib を使用します。 pip を使用してこれらのライブラリをインストールするには、次のコマンドを実行します。

!pip install pennylane
!pip install numpy
!pip install matplotlib
ログイン後にコピー

ステップ 2: サンプル データセットをロードします。

このチュートリアルでは、アヤメ データセットを使用します。このデータセットは、がく片の長さ、がく片の幅、花弁の長さ、花弁の幅という 4 つの特徴を持つアヤメの花の 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')
ログイン後にコピー

次に、データを入力として受け取り、予測を返す量子関数を定義します。量子ニューロンが 1 層だけある単純な量子ニューラル ネットワークを使用します。

@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))
ログイン後にコピー

この量子関数は、重み (量子ニューラル ネットワークのパラメーター) とデータ (入力) の 2 つの変数を受け取ります。データ) 。

最初の行は、PennyLane の AmplitudeEmbedding テンプレートを使用して量子ビットを初期化します。テンプレートは、データ ポイント間の距離が維持されるように、データを量子ビットの振幅にマッピングします。

2 行目では、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
ログイン後にコピー

このコスト関数は、重み (これは量子モデルのパラメーターです)、データという 3 つの変数を受け取ります。 (これは入力データです) とラベル (データの実際のラベルです)。量子ニューラル ネットワークを使用して入力データに基づいて予測を行い、予測と真のラベルの間の 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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

この記事では、SHAP: 機械学習のモデルの説明について説明します。 この記事では、SHAP: 機械学習のモデルの説明について説明します。 Jun 01, 2024 am 10:58 AM

機械学習とデータ サイエンスの分野では、モデルの解釈可能性が常に研究者や実務家に焦点を当ててきました。深層学習やアンサンブル手法などの複雑なモデルが広く適用されるようになったことで、モデルの意思決定プロセスを理解することが特に重要になってきました。 Explainable AI|XAI は、モデルの透明性を高めることで、機械学習モデルに対する信頼と自信を構築するのに役立ちます。モデルの透明性の向上は、複数の複雑なモデルの普及や、モデルを説明するための意思決定プロセスなどの方法によって実現できます。これらの方法には、特徴重要度分析、モデル予測間隔推定、ローカル解釈可能性アルゴリズムなどが含まれます。特徴重要度分析では、入力特徴に対するモデルの影響度を評価することで、モデルの意思決定プロセスを説明できます。モデルの予測間隔の推定

透明!主要な機械学習モデルの原理を徹底的に分析! 透明!主要な機械学習モデルの原理を徹底的に分析! Apr 12, 2024 pm 05:55 PM

平たく言えば、機械学習モデルは、入力データを予測された出力にマッピングする数学関数です。より具体的には、機械学習モデルは、予測出力と真のラベルの間の誤差を最小限に抑えるために、トレーニング データから学習することによってモデル パラメーターを調整する数学関数です。機械学習には、ロジスティック回帰モデル、デシジョン ツリー モデル、サポート ベクター マシン モデルなど、多くのモデルがあります。各モデルには、適用可能なデータ タイプと問題タイプがあります。同時に、異なるモデル間には多くの共通点があったり、モデル進化の隠れた道が存在したりすることがあります。コネクショニストのパーセプトロンを例にとると、パーセプトロンの隠れ層の数を増やすことで、それをディープ ニューラル ネットワークに変換できます。パーセプトロンにカーネル関数を追加すると、SVM に変換できます。これです

学習曲線を通じて過学習と過小学習を特定する 学習曲線を通じて過学習と過小学習を特定する Apr 29, 2024 pm 06:50 PM

この記事では、学習曲線を通じて機械学習モデルの過学習と過小学習を効果的に特定する方法を紹介します。過小適合と過適合 1. 過適合 モデルがデータからノイズを学習するためにデータ上で過学習されている場合、そのモデルは過適合していると言われます。過学習モデルはすべての例を完璧に学習するため、未確認の新しい例を誤って分類してしまいます。過適合モデルの場合、完璧/ほぼ完璧なトレーニング セット スコアとひどい検証セット/テスト スコアが得られます。若干修正: 「過学習の原因: 複雑なモデルを使用して単純な問題を解決し、データからノイズを抽出します。トレーニング セットとしての小さなデータ セットはすべてのデータを正しく表現できない可能性があるため、2. 過学習の Heru。」

宇宙探査と人類居住工学における人工知能の進化 宇宙探査と人類居住工学における人工知能の進化 Apr 29, 2024 pm 03:25 PM

1950 年代に人工知能 (AI) が誕生しました。そのとき、研究者たちは、機械が思考などの人間と同じようなタスクを実行できることを発見しました。その後、1960 年代に米国国防総省は人工知能に資金を提供し、さらなる開発のために研究所を設立しました。研究者たちは、宇宙探査や極限環境での生存など、多くの分野で人工知能の応用を見出しています。宇宙探査は、地球を超えた宇宙全体を対象とする宇宙の研究です。宇宙は地球とは条件が異なるため、極限環境に分類されます。宇宙で生き残るためには、多くの要素を考慮し、予防策を講じる必要があります。科学者や研究者は、宇宙を探索し、あらゆるものの現状を理解することが、宇宙の仕組みを理解し、潜在的な環境危機に備えるのに役立つと信じています。

C++ での機械学習アルゴリズムの実装: 一般的な課題と解決策 C++ での機械学習アルゴリズムの実装: 一般的な課題と解決策 Jun 03, 2024 pm 01:25 PM

C++ の機械学習アルゴリズムが直面する一般的な課題には、メモリ管理、マルチスレッド、パフォーマンスの最適化、保守性などがあります。解決策には、スマート ポインター、最新のスレッド ライブラリ、SIMD 命令、サードパーティ ライブラリの使用、コーディング スタイル ガイドラインの遵守、自動化ツールの使用が含まれます。実践的な事例では、Eigen ライブラリを使用して線形回帰アルゴリズムを実装し、メモリを効果的に管理し、高性能の行列演算を使用する方法を示します。

説明可能な AI: 複雑な AI/ML モデルの説明 説明可能な AI: 複雑な AI/ML モデルの説明 Jun 03, 2024 pm 10:08 PM

翻訳者 | Li Rui によるレビュー | 今日、人工知能 (AI) および機械学習 (ML) モデルはますます複雑になっており、これらのモデルによって生成される出力はブラックボックスになっており、関係者に説明することができません。 Explainable AI (XAI) は、利害関係者がこれらのモデルがどのように機能するかを理解できるようにし、これらのモデルが実際に意思決定を行う方法を確実に理解できるようにし、AI システムの透明性、信頼性、およびこの問題を解決するための説明責任を確保することで、この問題を解決することを目指しています。この記事では、さまざまな説明可能な人工知能 (XAI) 手法を検討して、その基礎となる原理を説明します。説明可能な AI が重要であるいくつかの理由 信頼と透明性: AI システムが広く受け入れられ、信頼されるためには、ユーザーは意思決定がどのように行われるかを理解する必要があります

新しい科学的で複雑な質問応答ベンチマークと大規模モデルの評価システムを提供するために、UNSW、アルゴンヌ、シカゴ大学、およびその他の機関が共同で SciQAG フレームワークを立ち上げました。 新しい科学的で複雑な質問応答ベンチマークと大規模モデルの評価システムを提供するために、UNSW、アルゴンヌ、シカゴ大学、およびその他の機関が共同で SciQAG フレームワークを立ち上げました。 Jul 25, 2024 am 06:42 AM

編集者 |ScienceAI 質問応答 (QA) データセットは、自然言語処理 (NLP) 研究を促進する上で重要な役割を果たします。高品質の QA データ セットは、モデルの微調整に使用できるだけでなく、大規模言語モデル (LLM) の機能、特に科学的知識を理解し推論する能力を効果的に評価することもできます。現在、医学、化学、生物学、その他の分野をカバーする多くの科学 QA データ セットがありますが、これらのデータ セットにはまだいくつかの欠点があります。まず、データ形式は比較的単純で、そのほとんどが多肢選択式の質問であり、評価は簡単ですが、モデルの回答選択範囲が制限され、科学的な質問に回答するモデルの能力を完全にテストすることはできません。対照的に、自由回答型の Q&A

あなたが知らない機械学習の 5 つの流派 あなたが知らない機械学習の 5 つの流派 Jun 05, 2024 pm 08:51 PM

機械学習は人工知能の重要な分野であり、明示的にプログラムしなくてもコンピューターにデータから学習して能力を向上させる機能を提供します。機械学習は、画像認識や自然言語処理から、レコメンデーションシステムや不正行為検出に至るまで、さまざまな分野で幅広く応用されており、私たちの生活様式を変えつつあります。機械学習の分野にはさまざまな手法や理論があり、その中で最も影響力のある 5 つの手法は「機械学習の 5 つの流派」と呼ばれています。 5 つの主要な学派は、象徴学派、コネクショニスト学派、進化学派、ベイジアン学派、およびアナロジー学派です。 1. 象徴主義は、象徴主義とも呼ばれ、論理的推論と知識の表現のためのシンボルの使用を強調します。この学派は、学習は既存の既存の要素を介した逆演繹のプロセスであると信じています。

See all articles