本企画は、 「最先端のIT技術について、未踏事業のプロジェクトマネージャーに直接伺ってみる」 というWIRED誌との共同企画です。
本記事はエンジニア向けに、多少の専門用語を交えつつ、量子コンピューティング技術の「中身」についても伺った記事となります。量子コンピューティングに関する一般的な概要については、WIREDの記事を参照してください)
未踏事業とは
未踏事業は独立行政法人情報処理推進機構(IPA)が実施する、突出したIT人材の発掘・育成事業です。未踏事業には次の3種類があります。
- 未踏IT人材発掘・育成事業(25歳未満対象)
- 未踏アドバンスト事業(ビジネスや社会課題の解決につなげたい方対象)
- 未踏ターゲット事業(次世代IT(量子コンピューティング、リザバーコンピューティング)を活用したい方が対象)
未踏事業に採択されると、各分野の第一人者であるプロジェクトマネージャーの伴走支援や、プロジェクト推進費用の支援を受けられます。未踏修了生や関係者が形成する未踏コミュニティとのつながりを得られ、知的財産権が採択者に帰属するため期間中の成果を活用できるなどのメリットもあります。
未踏事業Webサイト:https://www.ipa.go.jp/jinzai/mitou/koubo/
なぜ今量子コンピューティングなのか?
– 量子コンピュータの話題が最近多い気がしますが、なぜ盛り上がっているんでしょうか?
藤井: 今年(2025年)は量子にとってはキリのいい年なんです。
量子力学の誕生からちょうど100年というタイミングで、量子コンピュータについてのブレークスルーも数多く起きている。国連が2025年は国際量子科学技術年であると宣言したのも大きいです。
– ちょうど今年が量子にとって節目の年ということですね。
はい。現在は「 第二次量子革命 」の時代と言われています。
第一次量子革命は、「ミクロな理論(=量子力学)を使って、マクロな世界を支えよう」という時代でした。
一方、第二次量子革命においては、 量子の性質を積極的に利用していこうという流れが起きています。 量子コンピュータも、この流れの一つで生み出されたと言っても過言ではありません。
藤井啓祐(ふじいけいすけ)
大阪大学大学院基礎工学研究科 教授
■プロフィール
2011年、京都大学にて学位(工学博士)を取得。東京大学(助教)、京都大学(特定准教授)等を経て、2019年より現職。大阪大学量子情報・量子生命研究センター副センター長、理化学研究所量子コンピュータ研究センターチームリーダーを兼務。研究分野は、量子情報科学、特に量子コンピュータに関する理論的研究。2018に株式会社QunaSysを共同創業、現在は最高技術顧問を兼務。著書に「驚異の量子コンピュータ: 宇宙最強マシンへの挑戦」(岩波書店)。
量子コンピュータは何がすごい?
– 量子コンピュータは、「暗号を解くなど、特定の問題についてはすごく速い」とよく聞きます。この認識で合っていますか?
藤井: そうですね、概ね誤りではないのですが、逆にそれ以外の問題では遅いのかというと、厳密に言うと違います。
理論上では、量子コンピュータは分類上、既存の古典コンピュータの完全な上位互換です。 だから、あらゆる問題において、理論上は古典コンピュータと同等もしくはそれを凌ぐ可能性があります。
– おお、そうなんですね!完全上位互換…すごくカッコいい響きです。
藤井: ただ、量子コンピュータを作るのにはすごくコストがかかります。また、1つの演算に要する単位時間も遅いです。既存の古典コンピュータでもうまく解ける問題を、わざわざ量子コンピュータを作ってまで解く実用的なメリットを得ることが難しくなります。
なので、量子コンピュータを使って解く問題は、コストが釣り合う分野、古典コンピュータでは到底解けないような問題から活用が進むと考えられているわけです。
– しかし、なぜそれほどまでに量子コンピュータは速いのでしょうか?
藤井: なぜ量子コンピュータが速いのかは、従来の0と1を表すビットではなく、0と1の重ね合わせ状態を扱える量子ビットに由来しています。
「なぜ量子ビットだと速いのか」はかなり高度な話になるので、ここでは概念だけにとどめておきますが、従来の古典コンピュータは、量子コンピュータからすると、「重ね合わせを使わない」という縛りを課しているようなものです。
そういう意味で、量子コンピュータは、既存のコンピュータに対する上位互換と言えますし、 量子コンピュータは計算機を一から作り直そうとしている、とも言える んです。ただし、量子コンピュータを動かすためには古典コンピュータも必要ですから、全てのコンピュータが量子コンピュータに置き換わるということはあり得ません。
コードで理解する量子コンピューティング
– 量子コンピュータがなぜこれほど注目されているのか、わかった気がします。しかし、私のような一般的なエンジニアにとっては、量子コンピューティングはすごくハードルが高く感じられます。
藤井: 量子コンピュータの動作原理をきちんと理解するには、数学を使うのが一番手っ取り早いです。従来の0,1が、ベクトルと行列の世界になるというだけなので、本気で顔を突っ込んでみるとそんなに難しい話ではありません。
もしくは、 実際にプログラミングしてみたほうがわかりやすいかもしれません。 実際、情報系の学生を見ていると、「なぜ重ね合わせなのか」とかはそれほど気にせずに量子コンピュータを扱っているようです。
– エンジニアとしては、コードサンプルなどがあるとわかりやすいので探してみたら、このようなページを見つけたのですが、これはどういうコードでしょう?
#必要ライブラリインポート
from qiskit import QuantumCircuit
from qiskit.primitives import Sampler
sampler = Sampler()
#QuantumCircuitオブジェクト作成。(1,1)は1つの量子ビットと1つの※古典ビットを持つ。
qc = QuantumCircuit(1,1)
#Hゲートを配置
qc.h(0)
#測定
qc.measure([0], [0])
#配置した量子回路を実行する
job = sampler.run(qc)
#回路の実行結果を取得
result = job.result()
#結果を表示
print(f">>> {result}")
#結果のほぼ確率分布を表示
print(f" > Quasi-distribution: {result.quasi_dists[0]}")
#量子回路を作図
qc.draw('mpl')
「Qiskitを使って量子コンピュータシミュレーションをやってみました(IBM Cloud編)」より引用
藤井: これは、量子コンピュータを直接扱っているのに近いコード例ですね。量子ビットをセットアップして重ね合わせ状態を作り(Hゲート)測定しています。
Pythonによるサンプルコードですが、 言ってみれば量子コンピュータにとっての機械語を直接扱うようなコードになっています。
ほかには、量子コンピュータを扱うためのライブラリもあります。例えば大阪大学で開発したscikit-qulacsは、量子コンピュータを使った機械学習ライブラリです。
以下のコードは、有名なiris データセットを読み出して訓練データとテストデータに分け、
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
x = df.loc[:, ["petal length (cm)", "petal width (cm)"]]
x_train, x_test, y_train, y_test = train_test_split(
x, iris.target, test_size=0.25, random_state=0
)
x_train = x_train.to_numpy()
x_test = x_test.to_numpy()
「scikit-qulacs チュートリアル」より引用
実際に量子回路を用いて分類しているのが以下のコードです。
from skqulacs.circuit.pre_defined import create_qcl_ansatz
from skqulacs.qnn import QNNClassifier
from skqulacs.qnn.solver import Bfgs
nqubit = 5 # qubitの数。必要とする入力、出力の次元数以上が必要である。
c_depth = 3 # circuitの深さ。ニューラルネットワークでの隠れ層に対応する。
time_step = 1. # qcl_ansatz に必要となるパラメータ。横磁場イジングモデルによって発展させる時間を決める。
num_class = 3 # 分類数(ここでは3つの品種に分類)
solver = Bfgs() # アルゴリズム。ほかには、`Adam()` や `NelderMead()` が使える。
maxiter = 20 # ループの最大。これが多いほど、正確になるが、時間がかかる。
circuit = create_qcl_ansatz(nqubit, c_depth, time_step) # LearningCircuitを作る
qcl = QNNClassifier(circuit, num_class, solver) # モデル構築を行う
opt_loss, opt_params = qcl.fit(x_train, y_train, maxiter) # 学習
print("trained parameters", opt_params)
print("loss", opt_loss)
「scikit-qulacs チュートリアル」より引用
このコードから分かる通り、 ライブラリを使用する場合は、量子に関する深い知識はほとんど必要ありません。
– 機械学習を扱った普通のPythonプログラムとほとんど変わりませんね。
量子コンピューティング時代のエンジニアの仕事について
– 量子コンピュータの時代が来るとして、エンジニアの仕事はどうなると思いますか?
藤井: 二種類あると思います。
一つは、量子の深いところまで踏み込む仕事。 量子コンピュータの動作原理を理解して、従来の機械語に近いところを扱い、量子アルゴリズムを構築するような仕事。
もう一つは、量子の深いところには踏み込まずに行う仕事。 こちらは、Pythonなどの高級言語を使った、現在の一般的なエンジニアの仕事とあまり変わらないものになると思います。
– おお、 現在のエンジニアに近い仕事が、量子コンピュータ時代でも需要があるんですね。
藤井: はい、 むしろ今まさにそういうエンジニアが貴重です。
というのは、量子コンピュータの最前線では、量子に詳しい人はそれなりにいます。
ただ、そういう人たちは物理学を専攻してきた人たちとかが多いので、システムを作る専門家ではないわけです。
なので、量子コンピュータの開発には、普通のエンジニアが活躍できる場所がたくさんある。例えば、阪大の拠点にも量子コンピュータのキャリブレーションを行うソフトウェアを開発している研究員がいるのですが、彼も積極的に情報発信していて、読んでいただくとわかるのですが、実際には既存のソフトウェアエンジニアの方のスキルセットが存分に発揮できる開発が主になっています。
さあ、未踏に応募しよう!
– 未踏事業では、量子コンピューティング技術分野での募集を行っているそうですが、これまで未踏ターゲット事業に採択されたプロジェクトについて教えて下さい。
藤井: 例えば、量子コンピューティングの競技プログラミングサービスの開発プロジェクトがあります。
量子コンピューティングの世界では、競技プログラミングがまだ一般的ではありません。このプロジェクトでは、そうしたプラットフォームを作って運営しており、参加者もどんどん増え続けています。
未踏プロジェクト名 | 量子プログラミングコンテスト「QCoder」の継続的な運営のための新機能開発 |
---|---|
採択者氏名 |
雪吉 稀允(横浜国立大学 大学院理工学府) 髙田 隼矢(慶應義塾大学 大学院理工学研究科) |
採択年度 | 2024年度 |
他には、量子コンピュータを使った機械学習の実験管理ツールもあります。
これは、従来の機械学習の分野では実験管理ツールが色々とあるのですが、量子機械学習にはそういうものがなくて、 「量子機械学習は再現性が低い」という問題を解決しようとするもの です。
これによって実験をデータとして蓄積できるようになったことで、LLMを用いた新たな量子機械学習アルゴリズムの自動開発につながっていたりと、非常に面白いことが起きています。
未踏プロジェクト名 | 実世界の問題に適用可能な量子特徴マッピング手法の開発 |
---|---|
採択者氏名 | 作花 健也(フリーランス) |
採択年度 | 2024年度 |
– どちらも、とても興味深いプロジェクトです。
藤井:そしてどちらのプロジェクトについても言えることですが、既存のシステムでは当たり前のようにあるものが量子の世界にはないということです。
言ってみればどこも未踏。
– 「言ってみればどこも未踏」いい言葉です(笑)
藤井: 既存のシステムを量子コンピューティング用に作るだけで、その分野については第一人者になれる、という点では、今は非常に魅力的な時期じゃないかと思いますね。 量子の知識は後からでも身に着けられるので、まずは量子の世界に飛び込んできていただきたいです。
– 思っていたよりも遥かにハードルが低いですね。量子コンピュータに関心のある読者の皆様にも、ぜひたくさんのご応募をいただければと思います(応募へのリンク)。本日は興味深いお話をたくさん聞かせていただき、ありがとうございました。
あなたも未踏事業に応募しよう!
量子コンピューティングの専門知識や経験がなくても大丈夫! お気軽にご応募ください!- 未踏事業Webサイト
- 参考: 採択者インタビュー(外部リンク)「アニーリングマシンらしい使い方にこだわり2つの問題を同時に解く新規性を実現した」