2026年2月20日金曜日

App Inventorで鼻炎スプレイ噴射間隔管理アプリ

 本日(2026-2-20)以降、花粉飛散が増加するとのニュース。耳鼻科にかかっているが、あまり良くならない。そこで、どうしても、市販の即効性点鼻スプレイ(第2類医薬品)に頼る。しかし、常用は、組織を傷める傾向なので良くないと医者に言われた。実際、説明書にも、3時間以上間隔を空けて使用のこと、と記されている。

 でも、いつ噴射したか忘れてしまう。これまでは、ノートに書いて間隔を管理していたが、面倒になった。それなら、スマホアプリを作ればいいじゃないの?

 そうです、それに答えてくれのが、MT App Inventorです。今までの作成経験もあり、サクッとすぐに作れた。デザインにも少し気を配った。単機能だが、私にとって、これぞ実用アプリだ!
🔵簡単だが、以下の項目も含むので、初級演習課題、体験学習に向いているかも?

・電源を切っても、前回日時を保存するためのTinyDB
・2つの日時の間隔、x時間後の日時の計算のためのブロック
・噴射可能時間になった時に初めて[噴射]ボタンが表示される
・不用意に[噴射]ボタンが押されないように、long clickを活用
・WebViewerでリアルタイム花粉情報を表示(ウエザーニュース)
・初期設定をどうする
・拡張として:噴射経過をリストで表示するのも有用


2026年2月16日月曜日

量子カーネル(SVC法)ってどうなの?

【要旨】古典/量子カーネル(+SVC)の基本的な理解を深めるため、両者のクラス分け(分類)性能を比較した。現状では、多くの場合、古典カーネルが高い精度を示す。しかし、特殊なAd-hocデータに対しては、古典カーネルは対応できない反面、量子カーネルは完璧な分類結果を示した。ここに、量子カーネルの可能性を見ることができる。

🟢量子カーネルの概要
 まず、量子カーネルの概要を図1に示す。量子特性(重ね合せ、もつれ、位相、干渉)を生かしたFeature Mapと呼ばれる量子回路を用いることが特徴である。これによって、元の2次元データの座標を、高次元(この例では4次元)の量子状態ベクトルへ変換する。そして、その空間でのデータ間類似度を計算する。これも、量子回路で実行される。その情報とラベル情報を使って、古典的なSVC学習器を学習させる。

 Feature Mapにはいくつか種類があるが、ここでは、有名なZZFeature Mapというものを使う。その狙いは、一言で言えば、「古典的には表現困難な非線形の相関を捉える」ことである。従来の古典的な類似度の計算では、座標データが使われるが、このマッピングでは、座標データは量子の位相情報も埋め込んだ情報に変換されるので、位相の近似性も反映した学習となるはずである。
図1 量子カーネルの概要

🟢 実データ(金融 default)の分類
 金融defaultに関する実データ(Javier Mancilla Montero, PhDによる)の分類を試みる。ここに、1,000人の顧客の情報がある。各人には20個の調査項目の値とdefault(債務不履行)か否かのラベルが付いている。この生データは、20次元データなので、主成分分析により次元削減を行う。この例では2次元とした。Feature Mapでは、項目(特徴量)ごとに量子ビットが必要なため、そのようにするのが通例である。

 図2右上は、分類にかける状態である。その下に、古典カーネルによる分離結果を示した。精度0.94で、defaultか否かの境界線が引かれている。一方、その左に、量子カーネルによる結果がある。境界線はやや異なるが、量子カーネルの場合も同様に高い性能を示した。
図2 金融defaultの実データ1,000件の分類
 
 これ以外の実データセットとして(詳細は略すが)、腫瘍(特徴量30個)のサンプル569件がある。その良性 (Benign) /悪性 (Malignant) 分類問題でも、古典カーネル、量子カーネルとも精度0.90を超える結果出している。これらの分類問題では、長年の実績を持つ古典カーネルを使えば十分のように見える。しかし、全く新しい方法である量子カーネルも、実問題に対して同程度の分類性能を示したことは、注目すべきではないか。

🟢人工的なデータセット(Ad-hocデータ)の分類
 次に、量子カーネル(特に、ZZFeature Map)を評価するために作られたAd-hocデータセット(こちらを参照)で試みる。図3右上をご覧いただきたい。赤と青の点が、合計720個ランダムに散在している。だが、何か規則性もあるようだ。実際、データ点数を増やして行くと、赤青の市松模様に近づく。

 まず、これを古典カーネルで分類した。図3右下の通り、このような単純な境界線しか引くことができなかった。これでは、精度は50%台にとどまる。SVCのいくつかのパラメータを変更しても、ほとんどこれと変わらない。
図3 Ad-hocデータセットの古典カーネルによる分類

 次に、量子カーネルを適用した。その結果が図4である。図4右下の通り、正解率100%となる完璧な境界線が引かれた。その左側の図は、この境界線が引かれた時の、境界関数の山と谷の等高線をカラーで示したものである。
図4 Ad-hocデータセットの量子カーネルによる分類

 このデータセットは、ad-hocという名の通り、量子の空間(ヒルベルト空間)で綺麗に分離できるデータを、通常の2次元平面に写像して作ったものなので、当然、量子カーネルで完全に分離できたのである。

 そうであっても、この結果は、量子重ね合せ、位相、もつれを巧みに利用したZZFeature Mapの効果なのだと言える。特殊なデータセットではあるが、古典カーネルでは困難な、新たな領域を探求できる量子カーネルの可能性を示しているようだ!

2026年1月25日日曜日

ビジュアル観察:機械学習カーネル法と代数多様体の特異点解消

 少し大袈裟なタイトルかも知れない。「機械学習SVCにおけるカーネル法」と「代数多様体の特異点解消」の考え方に共通点があるように思われたので、ごく簡単な一例でその関係性をビジュアルに観察した。

🟢一般向け数学講座ビデオ
 きっかけは、石井志保子東大名誉教授による一般向け数学講座「代数多様体の爆発(Blow up)」 (こちらのYoutubeビデオ)を見たことである。易しく、とても分かりやすく、素晴らしいと感じた。この講座には、当然ながら、機械学習の話は出てこない。だが、小生が感じたことを以下に記したい。

🟢機械学習SVC(Support Vector Classifier)のカーネル法
 まず、Fig.1は、よく知られたSVCを利用する簡単な適用例である。Fig.1(a)は、ある曲線に載った2Dデータで、赤青にラベル付されている。ご覧の通り交差した配置なので、ここで、線形に"スパッ"と赤青にクラス分けすることはできない。しかし、カーネル法という方法で、2Dデータを高次元(この場合は3D)に持ち上げ、そこで学習させると、Fig.1(b)に示した緑色の平面で線形分離できるようになる。

🟢1次元代数多様体の特異点をBlowupで解消させる
 ここからは、上記の解説ビデオに基づく話になる。ただし、Fig.2とFig.3は小生が独自に作成したものである。
 簡単な1次元代数多様体をFig.2(a)に示した。原点が特異点になっていることに注意されたい。ここでは、機械学習のような分類問題ではなく、この特異点を解消して滑らかな曲線にしたい。そこで、Fig.2(b)に示すように、blowup(爆発)という方法で、曲線を2Dから3Dへ持ち上げる。すると、赤い点の特異点が青い点2つに分離されて、滑らかな曲線となる。
 このBlowupという方法をFig.3に示した。xy平面において、原点を通るあらゆる直線について、平面での傾きをZ軸の高さとして、そのまま持ち上げる方法である。
🟢カーネル法とBlowupの共通点
 上記に述べた2つは、データ分類のためのカーネル法と、特異点を解消するためのBlowupである。両者の目的は異なるが、「2Dデータを高次元へ持ち上げて問題を解決する」という共通のアイディアがあるように思われる。
 別の見方をすれば、(このビデオで言及されていたことだが)元々はある空間において、「明確に分類されていた」、あるいは「特異点のない滑らかな曲線であった」のだが、2Dへ写像したために、データのクラスが混在したり、どこかが潰れて特異点ができた。それを、元の空間へ戻して、本来の姿を復元させるという共通点があるのではないか。

🟢感 想 
 機械学習や量子コンピューティングは、数学の分野(多様体論や圏論など)とまだまだ深い関係がありそうだ。少しづつ馴染んで行きたいものである。
 また、別の話だが、Fig.1〜Fig.3を描くプログラムコードは、生成AI(GeminiやChatGPT)の助けを借りて、ほとんど自動的に素早く作ることができた。時代は変わったとつくづく思う次第である。

2026年1月14日水曜日

How precise is Quantum Teleportation?

 Quantum Teleportation Demo Using Dynamic Circuits

(末尾に日本語版があります)

In the past, performing a quantum teleportation demo—transferring a quantum state from Alice to Bob on real hardware—required the process to be split. Alice would measure her qubits, the job would terminate, and Bob would then have to initiate a new quantum circuit based on those measurement results.

However, with the recent introduction of Qiskit’s Dynamic Circuit capabilities, this entire process can now be completed in a single job submission. This functionality makes it significantly easier to verify the transfer in real-time. Our experiments on the IBM Quantum Heron r2 hardware demonstrated that teleportation can be executed with remarkably high precision.

🟢 Teleportation via Dynamic Circuits

Figure 1 illustrates quantum teleportation utilizing dynamic circuits. Suppose Alice wants to transfer a quantum state created by applying an Ry(pi/3) gate to qubit q0. Note how the dynamic circuit uses Alice's measurement results to conditionally apply X and Z gates to Bob’s qubit via "if" statements.

At first glance, it might appear that Bob is not performing any measurements. If Bob were to perform an explicit measurement, we could determine the probability of the state being |0>, but the state would collapse, preventing further detailed analysis. To solve this, we utilize Qiskit’s StateTomography tool. Although not explicitly shown in the high-level circuit diagram, it performs internal measurements to reconstruct the density matrix, allowing us to calculate the exact fidelity of the transfer.

🟢 Verifying Transfer Fidelity via Density Matrices

The results of our fidelity analysis are shown in Figure 2. We conducted these experiments using ibm_torino (Heron r1) and ibm_marrakesh (Heron r2), both available under the IBM Quantum Open Plan.

Notably, on ibm_marrakesh, we achieved a fidelity of 0.97 between the state sent by Alice and the state received by Bob. This represents an extremely high level of agreement—one could say the teleportation was nearly perfect! 


Moving forward, we plan to experiment with a wider variety of quantum states and explore the teleportation of multi-qubit systems.

==========================================
【日本語版】
動的回路を用いた量子テレポーテーションのデモ
- 量子状態転送の精度のテスト-
==========================================

 AliceからBobへ量子状態を転送する量子テレポーテーションのデモを実機で行う場合、これまでは、Aliceが量子ビットを測定した時点で、実機の処理を終える必要があった。そして、その後、Bobはその測定結果に基づいて、新たに量子回路を操作する必要があった。しかし、最近のQiskitのDynamic Circuit機能を使えば、実機へのジョブ投入が1回で済むようになった。この方法により、転送の状況を検査するのが容易になる。IBM Quantumの実機Hereon r2で実験したところ、非常に高い精度で量子テレポーテーションが実行されることが分かった。

🟢動的回路を使った量子テレポーテーションのデモ
 Fig.1に、動的回路を使った量子テレポーテーションを示す。Aliceは、量子ビットq0にRy(π/3)を施した状態を作り、それをBobへ転送したいとする。Aliceの測定結果を利用して、動的回路(if文の制御によるXゲートやZゲート)がBobの量子ビットに適用されていることに注意する。

一方、Bobは何も測定していないように見える。もしも、Bobが明示的に測定を行うと、転送された量子状態の|0>の確率は分かるが、そこでcollapseしてしまうので、それ以上の詳しい解析ができない。そこで、この回路図には現れていないが、QiskitのStateTomography というツールで内部的に測定させる。その結果から、密度行列を作り、それに基づいて転送の精度を調べることができる。

🟢密度行列に基づく転送の精度の検査
 このようにして検査した転送の精度をFig.2に示す。使用した量子コンピュータは、IBM QuantumのOpen Planで提供される、ibm_torino (Heron r1)とibm_marrakesh (Heron r2)である。特に、ibm_marrakeshの場合、Aliceが送った量子状態と、Bobが得た量子状態とのFidelityは0.97という、極めて高い一致度を得た。ほぼ、完璧に転送が行われたと言えるだろう!今後、他の量子状態も試したり、複数の量子ビットの状態の転送なども調べたい。

------ private notes --------------------------------
IBM_New...2025_07_01の環境/forQiskit2x/
Teleportation_動的回路A.ipynb
Teleportation_動的回路B.ipynb
-----------------------------------------------