SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Quantum Neuron:
an elementary building block
for machine learning on quantum computers
https://arxiv.org/abs/1711.11240
量⼦コンピュータアプリ勉強会
2018/3/13 論⽂紹介
⿃越貴智 (piyo7)
自己紹介	
Qiitaに⽣息してます ٩( 'ω' )‫و‬
https://qiita.com/piyo7
量⼦ゲートシミュレータを ScalaMatsuri で発表予定 (・ㅂ・)‫✧و‬
https://github.com/piyo7/qlione
● 量⼦⼒学        ←ぜんぜん知らない
● 量⼦ゲートの計算モデル ←ちょっと本読んでみた
● ニューラルネットワーク ←ちょっと遊んだことある
自己紹介	
分野ふらふら ٩( ᐛ )‫و‬
元 C++ 屋、現 Scala 使い、時々 Python。
ベイズ統計やりたくなったので Stan 触りはじめました。
● プログラミング⾔語の型理論 @ 東京⼤学数学科
● 無線ネットワークシミュレーション @ 構造計画研究所
● データ分析/集計/予測 @サイバーエージェント ←今ここ
// 今⽇の論⽂は、社内の機械学習論⽂共有会のネタとして読みました。
あらすじ	
● 量⼦コンピュータ(量⼦ゲート計算機)で、
ニューラルネットワークを構築する筋道を⽰すよ。
● 量⼦計算は線形なものだけど、⾮線形な活性化関数を
ブロッホ球の Y 軸回転⾓上で設計したよ。
● 量⼦の「重ね合わせ」で、ニューラルネットワークに
⼤量の訓練データを⼀発で⾷わせられるよ。
// ちなみに、ImPACTの量⼦ニューラルネットワーク計算機とは無関係だよ。
チュートリアル:量子ビット	
2 古典ビット
2 量⼦ビット
n 量⼦ビットの状態は、2^n 個の基底の「重ね合わせ」
50 量⼦ビットの場合、基底が 1,125,899,906,842,624 個。
チュートリアル:量子ゲート	
量⼦回路       に、
量⼦ビット                を通すと、
チュートリアル:量子測定	
               を測定すると、
基底が得られる確率は
たとえば上位ビットのみ測定することもできて、
結果が 1 の確率は ¼ + ½ = ¾ 、測定後の状態は、
チュートリアル:量子計算	
● n 量⼦ビットは、
2^n ⾏でノルム 1 の複素ベクトル。
● n 量⼦ビット⽤の量⼦ゲートは、
2^n ⾏ 2^n 列の(複素)ユニタリ⾏列。
● 量⼦ビットを測定して得られる確率は、
射影した複素ベクトルのノルム。
// 量⼦⼒学知らなくても受け⼊れてしまえば、わりと計算モデルはシンプル。
あらすじ	
● 量⼦コンピュータ(量⼦ゲート計算機)で、
ニューラルネットワークを構築する筋道を⽰すよ。
● 量⼦計算は線形なものだけど、⾮線形な活性化関数を
ブロッホ球の Y 軸回転⾓上で設計したよ。
● 量⼦の「重ね合わせ」で、ニューラルネットワークに
⼤量の訓練データを⼀発で⾷わせられるよ。
量子ニューロンのイメージ
人工ニューロンの数式	
// q(Φ)を⾜がかりに、
// ⼒技でステップ関数を模していく。
線形結合の量子回路
活性化関数の量子回路	
// 回転⾓の符号が論⽂と逆転してるので、数式展開を微妙に間違えてるかも…
活性化関数の量子計算
// 2Φ 回して 2Φ 戻す間に差し込んだ -iY が、うまく Y 軸回転に効いてる。
活性化関数の量子計算
線形結合の量子回路
あらすじ	
● 量⼦コンピュータ(量⼦ゲート計算機)で、
ニューラルネットワークを構築する筋道を⽰すよ。
● 量⼦計算は線形なものだけど、⾮線形な活性化関数を
ブロッホ球の Y 軸回転⾓上で設計したよ。
● 量⼦の「重ね合わせ」で、ニューラルネットワークに
⼤量の訓練データを⼀発で⾷わせられるよ。
// このパートは Qiita 記事の抜粋でした。
https://qiita.com/piyo7/items/2104fe7084c95ed4b97b
しばらく著者スライドに移ります	
http://qtml2017.di.univr.it/resources/Slides/Quantum-Neuron.pdf
// 実験結果は古典計算機によるシミュレーションのはず。
あらすじ	
● 量⼦コンピュータ(量⼦ゲート計算機)で、
ニューラルネットワークを構築する筋道を⽰すよ。
● 量⼦計算は線形なものだけど、⾮線形な活性化関数を
ブロッホ球の Y 軸回転⾓上で設計したよ。
● 量⼦の「重ね合わせ」で、ニューラルネットワークに
⼤量の訓練データを⼀発で⾷わせられるよ。
重ね合わせ学習	
● 訓練データを重ね合わせ、⼀度に学習できる。
● 訓練データの重ね合わせ状態を得るためには、
別途、何かしらの量⼦的な機構が必要。
● 微分が困難なため、最適化アルゴリズムは
導関数不要なNelder–Mead法などを使う。
// このあたり論⽂に詳しく書いてなかったため、
// いくつか疑問があったり、社内でツッコミもらいました。
// 分かる⽅いらっしゃったら教えてください m(_ _)m
重ね合わせ学習	
● 訓練データを重ね合わせ、⼀度に学習できる。
// ⼊⼒が n 量⼦ビットだとすると、
// 最⼤ 2^n の訓練データを重ね合わせられるはず。
// => それが⼿に⼊るなら辞書から引くだけでいいので、実際は問題に応じて。
// 量⼦ビット数とデータ数の⽐によって、ありがたみ変わってきそう。
// それらの誤差の平均を測定結果の期待値として得られる、という意味だと理解。
// => 訓練データをランダムに選んで、
// 古典ニューラルネットワークで⼀つずつ誤差を計算するのと同じ???
// => なにか勘違いしているか、量⼦測定のテクニックがあるのかも。
重ね合わせ学習	
● 訓練データの重ね合わせ状態を得るためには、
別途、何かしらの量⼦的な機構が必要。
// 論⽂にはキーワードだけ紹介されているけど調べてないです……。
// QRAM、量⼦データベース、もしくは訓練データを⽣成する別の量⼦回路
// => 同じ重ね合わせ状態を繰り返し出⼒しないといけないはずなので、
// こちらの計算量も気にしたほうが良さそう。
重ね合わせ学習	
● 微分が困難なため、最適化アルゴリズムは
導関数不要なNelder–Mead法などを使う。
// 最適化は古典計算機で⾏って、量⼦回路の回転ゲートを制御するのだと思う。
// => ここも量⼦コンピュータでやれたら凄そう。
// Nelder–Mead法は初歩的なブラックボックス最適化⼿法で、
// ディープラーニングのように、
// パラメータ数が膨⼤なものには向いてないらしい。
// => 現在の各種ディープラーニングフレームワークには、
// ⾃動微分が底にあるはずなので、これはこれで挑戦的な研究分野かも。
あらすじ	
● 量⼦コンピュータ(量⼦ゲート計算機)で、
ニューラルネットワークを構築する筋道を⽰すよ。
● 量⼦計算は線形なものだけど、⾮線形な活性化関数を
ブロッホ球の Y 軸回転⾓上で設計したよ。
● 量⼦の「重ね合わせ」で、ニューラルネットワークに
⼤量の訓練データを⼀発で⾷わせられるよ。
量子ニューロンの計算量
// 古典NNの計算量はざくっと T * O(n^2 * l) ※ T は訓練データ数
順伝播型ニューラルネットワークの計算量
ホップフィールドネットワークの計算量
おまけ	
@tailrec	
def	activateRus(psi:	QuBits[_1],	phi:	Double)	
															(implicit	r:	Random):	QuBits[_1]	=	{	
	
		val	m	=	(psi																					x	bit0									)	|>	
										(I																							x	Ry(2	*	phi)		)	|>	
										(QuGate(-1.i	*	Y.matrix)	x	I												)	|>	
										(I																							x	Ry(2	*	phi).t)	|>	
										(_.measure[_0])	
	
		if	(m.result)	{	
				activateRus(m.unmeasured	|>	Ry(Pi	/	2),	phi)	
		}	else	{	
				m.unmeasured	
		}	
}	
ScalaMatsuri 2018 発表⽤の
量⼦シミュレーターで
活性化関数の実装してみた。
気が向いたら追試したい……
\型安全な量⼦回路DSL/
https://github.com/piyo7/qlione

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用
 
「世界モデル」と関連研究について
「世界モデル」と関連研究について「世界モデル」と関連研究について
「世界モデル」と関連研究について
 
NLPにおける再現性
NLPにおける再現性NLPにおける再現性
NLPにおける再現性
 
EEG analysis (nonlinear)
EEG analysis (nonlinear)EEG analysis (nonlinear)
EEG analysis (nonlinear)
 
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
 
マインドフルネスと人工知能
マインドフルネスと人工知能マインドフルネスと人工知能
マインドフルネスと人工知能
 
Deep Learning技術の今
Deep Learning技術の今Deep Learning技術の今
Deep Learning技術の今
 
量子コンピュータの量子化学計算への応用の現状と展望
量子コンピュータの量子化学計算への応用の現状と展望量子コンピュータの量子化学計算への応用の現状と展望
量子コンピュータの量子化学計算への応用の現状と展望
 
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
 
汎用なNeural Network Potential「Matlantis」を使った新素材探索_浅野_JACI先端化学・材料技術部会 高選択性反応分科会主...
汎用なNeural Network Potential「Matlantis」を使った新素材探索_浅野_JACI先端化学・材料技術部会 高選択性反応分科会主...汎用なNeural Network Potential「Matlantis」を使った新素材探索_浅野_JACI先端化学・材料技術部会 高選択性反応分科会主...
汎用なNeural Network Potential「Matlantis」を使った新素材探索_浅野_JACI先端化学・材料技術部会 高選択性反応分科会主...
 
第52回SWO研究会チュートリアル資料
第52回SWO研究会チュートリアル資料第52回SWO研究会チュートリアル資料
第52回SWO研究会チュートリアル資料
 
[DL輪読会]Neuroscience-Inspired Artificial Intelligence
[DL輪読会]Neuroscience-Inspired Artificial Intelligence[DL輪読会]Neuroscience-Inspired Artificial Intelligence
[DL輪読会]Neuroscience-Inspired Artificial Intelligence
 
素材産業のDxに貢献する 『Matlantis』のご紹介_nano tech2022_2022/1/28
素材産業のDxに貢献する 『Matlantis』のご紹介_nano tech2022_2022/1/28素材産業のDxに貢献する 『Matlantis』のご紹介_nano tech2022_2022/1/28
素材産業のDxに貢献する 『Matlantis』のご紹介_nano tech2022_2022/1/28
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
 
モデルベース開発勉強会
モデルベース開発勉強会モデルベース開発勉強会
モデルベース開発勉強会
 
駒場学部講義2017 「意識の神経科学:盲視・統合失調症・自由エネルギー原理」
駒場学部講義2017 「意識の神経科学:盲視・統合失調症・自由エネルギー原理」駒場学部講義2017 「意識の神経科学:盲視・統合失調症・自由エネルギー原理」
駒場学部講義2017 「意識の神経科学:盲視・統合失調症・自由エネルギー原理」
 
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
 
Matlantisに込められた 技術・思想_高本_Matlantis User Conference
Matlantisに込められた 技術・思想_高本_Matlantis User ConferenceMatlantisに込められた 技術・思想_高本_Matlantis User Conference
Matlantisに込められた 技術・思想_高本_Matlantis User Conference
 
CatBoost on GPU のひみつ
CatBoost on GPU のひみつCatBoost on GPU のひみつ
CatBoost on GPU のひみつ
 

Ähnlich wie 量子コンピュータでニューラルネットワークな論文紹介

Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
 

Ähnlich wie 量子コンピュータでニューラルネットワークな論文紹介 (20)

S09 t4 wrapup
S09 t4 wrapupS09 t4 wrapup
S09 t4 wrapup
 
Quantum teleportation
Quantum teleportationQuantum teleportation
Quantum teleportation
 
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
 
Django で始める PyCharm 入門
Django で始める PyCharm 入門Django で始める PyCharm 入門
Django で始める PyCharm 入門
 
PredictionIOのPython対応計画
PredictionIOのPython対応計画PredictionIOのPython対応計画
PredictionIOのPython対応計画
 
GW躍進会報告
GW躍進会報告GW躍進会報告
GW躍進会報告
 
Rでを作る
Rでを作るRでを作る
Rでを作る
 
Pythonでジョブキューシステムを作った
Pythonでジョブキューシステムを作ったPythonでジョブキューシステムを作った
Pythonでジョブキューシステムを作った
 
DBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキルDBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキル
 
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
 
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
 
S10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnowS10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnow
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 
Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk
 
20201102 postgresql unconference_debility
20201102 postgresql unconference_debility20201102 postgresql unconference_debility
20201102 postgresql unconference_debility
 
Sapporo20140709
Sapporo20140709Sapporo20140709
Sapporo20140709
 
プログラミング学習とScratch raspi python
プログラミング学習とScratch raspi pythonプログラミング学習とScratch raspi python
プログラミング学習とScratch raspi python
 
Pythonで時系列のデータを分析してみよう
Pythonで時系列のデータを分析してみようPythonで時系列のデータを分析してみよう
Pythonで時系列のデータを分析してみよう
 
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM
 
PreadNet
PreadNetPreadNet
PreadNet
 

量子コンピュータでニューラルネットワークな論文紹介