FC2ブログ

AIのための数学 (3)

「AIのための数学」、全12回うち、10回と11回は、「誤差逆伝播法」の習得にあてます。略してbackprop(backdropではない)。

しかるに、backpropとはなにか?これは、要するに、「合成関数の微分」と「偏微分」の組み合わせです。これらは大学初年度でやるので、理系のみなさまには既知のはず。しかし、このふたつが、非常に一般的な設定で適用されます。そこが解りづらい。

ニューラルネット(NN)が登場してから、backpropが開発された間には、かなりの年月があるわけですが、私はその間の事情を知りません。初期のNNはどうやって学習したのでしょうね。隠れ層がなかった時代なのでしょうか。いまの謎です。私はbackpropが登場した1980年代後半、NNを初めて知り、当時それでブームとなったことを記憶しています。
スポンサーサイト

AIのための数学 (2)

「AIのための数学」、全12回の内容は以下です。

第01回:イントロダクション、AIまたは機械学習の基礎、達成目標の提示
第02回:線型代数(ベクトル/行列)
第03回:重要な関数(多項式/指数/対数)
第04回:微分(多項式/指数/対数)
第05回:最適化計算(勾配法/ニュートン法)
第06回:確率・情報理論
第07回:ニューラルネットワークの基礎
第08回:クロスエントロピー
第09回:クロスエントロピーの微分
第10回:誤差逆伝播法①
第11回:誤差逆伝播法②
第12回:まとめ、補足事項

前半は必要な数学のクイックコース。そのあとニューラルネットをやりますが、重要なのが誤差関数です。これはクロスエントロピー。クロスエントロピーは重要ですが、書籍ではほとんど取り上げられていません。ここをきちんとやりたい。

トピックモデルによる統計的潜在意味解析 (18)

佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」輪読会、第12回(2019年4月8日)は私の担当です。三回目。内容は、「5.2 系列データのモデリング」、です。

系列データは苦手なのですが、ここは思いのほか理解できたような気がします。LDAとHMMはくっつけやすそうです。構造が似ているのではないでしょうか。

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

以下が、次回の輪読会URLです。
https://weeyble-data.connpass.com/event/126599/

IRLS

IRLSとは、Iterative Reweighted Least Squaresの略です。

これは、ロジスティック回帰の解を求めるために使われます。回帰問題だと、一般逆行列で一発で求められますが、ロジスティックは非線形なので、そうはいかない。なので、繰り返し法を使います。

IRLSは面白いです。一般逆行列に重み行列を組み込んでやればよろしい。さらに、これは凸問題なので、必ず最適解が求まります。このあたりは、PRMLの207~208ページに詳しく書かれてあります。

最近のツールでは、このような解はライブラリで簡単に求まるはずです。ただ、そうなると、完全にブラックボックスとなり、解を求める原理がわかりません。このあたりは、数式をきちんと理解したいところです。でないと、応用が利かない。

トピックモデルによる統計的潜在意味解析 (17)

佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」輪読会ですが、第12回(2019年4月8日予定)も担当することになりました。三回目です。内容は、「5.2 系列データのモデリング」、です。系列データは苦手なのですが、なんとか頑張ります。

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

トピックモデルによる統計的潜在意味解析 (16)

佐藤一誠先生の、「トピックモデルによる統計的潜在意味解析(2015)」輪読会、先日(2019年3月18日)の第九回は、私が再度プレゼンしました。そのあとお二方による実装発表会。これで第3章は終了です。本書の冒頭、「おそらく、この3章が本書の最初の「山場」である。多くの読者が本書で挫折するとすれば、この章である」、とありますが、なんとか(?)切り抜けました。

さて、今後ですが、GW前にすべて終了させるという野心的な試み。あと5回で第4章、第5章をカバーします。私が再々度担当するかは未定であります(あと一枠)。

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

以下が、次回の輪読会URLです。
https://weeyble-data.connpass.com/event/124760/

最尤推定 (3)

しつこく、最尤推定の話です。

統計・機械学習本だと、尤度を表したのち、計算を簡単にするため、などと称して、対数を取ります。それで、パラメタを求めるために、偏微分などをやる。

ただ、尤度を最大=cross-entropy最小、の原理を使うのであれば、cross-entropyとしては、対数は必須なので、対数化は必然ということになります。ここについて明記された書物は、いまのところ発見できません。謎のところです。

最尤推定 (2)

最尤推定から、cross-entropyを求めるところ、すなわち、

(1/n)log(L) = (1/n)Σlog(q(xi)) --- (1)

から、

(1/n)log(L) = Σp(xi)log(q(xi)) --- (2)

に「ジャンプ」することろですが、直観的にはわかりますし、書籍でもこのように書いているものもあります。

ただ、数学的な根拠についてはよくわからないので、先日知人の数学者STさんに訊いてみたところ、この根拠は「中心極限定理」ではないか、ということでした。ふ~ん、そうなんだ。

最尤推定

最尤推定、理解していたと思っていたのですが、尤度を最大にすることと、cross-entropyを最小にすることは同じというところで、少し混乱しました。

尤度Lは以下で表されます。

L = Πq(xi) --- (1)

ここで、q(x)はモデル(=求めたい確率密度)です。対数を取りますと、

log(L) = Σlog(q(xi)) --- (2)

ここで、機械学習的な式変形をやります。式(2)のxiは、真の分布p(x)からサンプリングされたのだから、

(1/n)log(L) = Σp(xi)log(q(xi)) --- (3)

と書くことができます。式(3)の右辺は、cross-entropyの符号を逆にしたものなので、尤度を最大にすることは、cross-entropyを最小にすることです。そのようなq(x)を見つければよいことになります。これが機械学習。

トピックモデルによる統計的潜在意味解析 (15)

佐藤一誠先生の、「トピックモデルによる統計的潜在意味解析(2015)」輪読会、昨日(2019年3月11日)第九回開催のはずが、諸事情によりドタキャンとなりました。

振替は、3月18日にやることになりました。

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

以下が輪読会のURLです。
https://weeyble-data.connpass.com/event/122196/

トピックモデルによる統計的潜在意味解析 (14)

佐藤一誠先生の、「トピックモデルによる統計的潜在意味解析(2015)」輪読会、本日(2019年3月11日)が第九回です。担当(のひとり)は私です。以下が担当範囲。

3.7 評価方法
3.8 各種学習アルゴリズムの比較
3.9 モデル選択

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

以下が輪読会のURLです。
https://weeyble-data.connpass.com/event/122196/

当日でもご参加可能のはずです。お待ちしております!

トピックモデルによる統計的潜在意味解析 (13)

佐藤一誠先生「トピックモデルによる統計的潜在意味解析(2015)」輪読会、次回で3章を終わるのですが、4章、5章もやる予定になっています。

4.2 潜在意味空間における回帰(4.1含む)
4.3 潜在意味空間における分類
5.1 相関構造のモデリング←担当者決定
5.2 系列データのモデリング
5.3 時系列データのモデリング(最後まで)←担当者決定

おそらく、人員的に、もう一回くらいやらないといけないと思われますが、5.2は難しそうです。系列データは苦手です。思案してます。

トピックモデルによる統計的潜在意味解析 (12)

佐藤一誠先生の、「トピックモデルによる統計的潜在意味解析(2015)」、の輪読会、第九回も担当することになりました。担当範囲は以下です。

3.7 評価方法
3.8 各種学習アルゴリズムの比較
3.9 モデル選択

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

以下が輪読会のURLです。
https://weeyble-data.connpass.com/event/122196/

お時間のあるかたのご参加を、お待ちしております!

AIのための数学

ある程度、AI(というか機械学習)の技術に携わってきたところで、「AIのための数学」という資料をまとめてみました。全12回です。

ターゲットは、”Deep Learning (2016)”の6.1節に載っている、XORを実現するニューラルネットワーク(NN)の学習です。つまり、誤差逆伝播法(backpropagation、短くはbackprop)。

backpropは、30年以上前の技術ですが、なぜこれをターゲットとするのかというと、最近の生成モデル(generative models)、つまりVAE(variational autoencoders)およびGAN(generative adversarial networks)では、backpropで学習できることがウリなのです。backpropは、非常に明確に定義されたアルゴリズムです。

また、backpropを習得するにあたり、それに必要な数学のセットがちょうどよい。線型代数・微分積分・確率の三点セットが、うまくブレンドされているわけです。

資料を作るにあたり、参考にした書籍は、"Deep Learning (2016)"と、"PRML (2006)"です。ともに名著。

cross-entropyの謎 (7)

cross-entropyの計算、いろいろと習得できたのですが、いまだはっきりとわからないのが、最尤推定からcross-entropyを導くところです。

PRMLでは、ややこしい式から、cross-entropyを導きます。4.3. Probabilistic Discriminative Models のところです。岡谷先生の「深層学習」でも、同じ道筋を踏襲。

一方、DL本では、5.5 Maximum Likelihood Estimation において、まったく異なる(と思われる)道筋が示されます。これは面白い議論ですが、この両者が同じことを言っているのかどうか、よくわからない。

もう少し考えますが、簡単な道筋のほうがいいですね。

cross-entropyの謎 (6)

softmaxにおける、cross-entropyの偏微分計算、やっとできました。場合分けが必要です。すなわち、

L = -Σktk log(yk) --- (1)
yk = exp(xk) / Σiexp(xi) --- (2)

としたときに、

∂L/∂xk = Σj(∂L/∂yj)(∂yj/∂xk) --- (3)

を計算します。

∂L/∂xk = Σj(-tj/yj)(∂yj/∂xk) --- (4)

ですが、ここで、k=jのときと、k≠jのときで結果が異なりますので、場合分けをしなければなりません。

まず、k=jのとき、式(4)は、

∂L/∂xk = (-tk/yk)(∂yk/∂xk) = (-tk/yk)(exp(xkiexp(xi)-(exp(xk))2)/(Σiexp(xi))2 = (-tk/yk)(yk-yk2) = -tk(1-yk)--- (5)

一方、k≠jのときは、

∂L/∂xk = Σj(-tj/yj)(-exp(xj)exp(xk))/(Σiexp(xi))2 = Σj(tj/yj)yjyk = ykΣjtj = yk(1-tk)--- (6)

式(6)では、最後のΣはイチとはなりません。k=jのときを省いているからです。ここで間違えました。

さて、式(5)と式(6)を足したものが答えなので、

∂L/∂xk = -tk(1-yk) + yk(1-tk) = yk - tk --- (7)

直接代入してやると、対数のおかげで場合分けは不要です。対数というのは、計算を簡単にしてくれる、魔法のツールです。

cross-entropyの謎 (5)

softmaxにおける、cross-entropyの偏微分計算、習得したのですが、

http://kanouy.blog9.fc2.com/blog-entry-2027.html

L = -Σktk log(yk) --- (1)
yk = exp(xk) / Σiexp(xi) --- (2)

ここで、式(2)を式(1)に代入せずに、

∂L/∂xk = Σj(∂L/∂yj)(∂yj/∂xk) --- (3)

としてやってみようとしました。同じことだし、このほうが簡単にできると思ったのです。

しかしながら、場合分けをする必要が出てきて、ややこしくなり、挫折しました。添え字が三つでてきて(微分したい添え字/偏微分の総和の添え字/確率の正規化の添え字)、混乱したのですが、おかしいな...相変わらず計算力はない。

cross-entropyの謎 (4)

計算の練習で、2クラス分類における、cross entropyの微分を計算してみました。

L = -t*log(y) - (1-t)*log(1-y) --- (1)

と、cross entropyを定義します。これをyで微分すると、

∂L/∂y = -t/y + (1-t)/(1-y) = (y-t)/(y(1-y)) --- (2)

ここで、

y = 1 / (1 + exp(-x)) --- (3)

ですが(シグモイド関数)、これは、以下が成り立つことが知られています(計算してもよい)。

dy/dx = y(1-y) --- (4)

式(2)と式(4)を組み合わせると、

∂L/∂x = y - t --- (5)

となり、非常に簡単な式が得られました。機械学習における、重要な結論のひとつです。

トピックモデルによる統計的潜在意味解析 (11)

本日(2019年2月4日、20時~22時)は、佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」、の輪読会です。第六回、私が担当します。担当範囲は以下です。

3.3.6 LDAの変分ベイズ法 (2)
3.3.7 LDAの変分ベイズ法 (3)
3.3.8 LDAの周辺化変分ベイズ法

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

当日でもお申込みが可能です!(おそらく)
https://weeyble-data.connpass.com/event/118495/

Deep Learning (28)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

某所にて、同書の説明会を行いました。予定としては一時間程度。

しかるに、パートⅢの時間がなくなりました。さらに、もうこの部分も徐々に古くなっています。いまや、生成モデルと言えば、GAN(Generative Adversarial Networks)になっています。特に、MCMCの人気がなくなった。

したがって、ここは端折りまして、最新の論文を解説しました。この結果にはご参加いただいたかたも結構驚かれ、これからはfakeの情報であふれるのではないか、などという議論となりました。

実際のところ、GANは、realかfakeか識別できないように学習するわけですから、そのような帰結ができるわけです。考えようによてはかなり恐ろしい。

トピックモデルによる統計的潜在意味解析 (10)

佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」、の輪読会ですが、次回は私が担当です。担当範囲は以下。

3.3.6 LDAの変分ベイズ法 (2)
3.3.7 LDAの変分ベイズ法 (3)
3.3.8 LDAの周辺化変分ベイズ法

一応、資料はほぼ作成しました。直前にやれるようなシロモノではありません。難書です。

やはり、いろいろと疑問点があります。誤植と思われる個所も何ヵ所か発見しました。ウェブにアップされている正誤表には記載されていないものです。

そこで前回です。75ページ上段の式の符号が四か所間違っているので、それを指摘したところ、どうも噛み合いません。それもそのはず、最新版(4刷)では修正されていたのです。私のは2刷です。1刷→2刷の誤植表はネットで取れたのですが~

とはいえ、最新版に買いかえる気もないです。こういうときのために輪読会はある。

トピックモデルによる統計的潜在意味解析 (9)

佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」、輪読会の報告です。三回目の参加でした(全体では五回目)。

今回は、以下の内容でした。

3.3.3 変分ベイズ法 (2)
3.3.4 LDAの変分ベイズ法(準備)
3.3.5 LDAの変分ベイズ法 (1)

プレゼンターさんがきれいにまとめてくれまして、たいへん参考になりました。こういうのが楽しい。

次回ですが、私がプレゼンします。担当は以下です。すべてキビシイですが、最後の3.3.8が難関です。

3.3.6 LDAの変分ベイズ法 (2)
3.3.7 LDAの変分ベイズ法 (3)
3.3.8 LDAの周辺化変分ベイズ法

トピックモデルによる統計的潜在意味解析 (8)

佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」、輪読会の報告です。二回目の参加でした。

プレゼンターさんの手際がよく、サクサクと進みました。結果的に、3.3.2 変分ベイズ法(1)まで終了。次回は、3.3.3 変分ベイズ法(2)からです。

ディリクレ分布からのサンプリングについて質問しましたが、質問の意図がよく伝わらなかったので、欲しかった解答は得られませんでした。ディリクレ分布の確率密度はよいとして、ここからどのようにサンプリングするのかが、疑問のままです。

正規分布については、一様乱数を発生させ、正規分布の累積の逆関数から得られますが、このようなやりかたが、ディリクレ分布で可能なのでしょうか?引き続き疑問であります。

Backpropagation (2)

最近遅ればせながら、VAEやGANなどの生成モデル論文を読んでいます。

ここで思うのは、やはりbackpropagationが出てきたか、ということ。

GoodfellowらのDL本では、生成モデルの計算については、MCMCを登場させています。結局のところ、MCMCを使わなければ、潜在変数の確率密度が求められないのです。

しかるに、VAEやGANでは、これを避ける。VAEでは、潜在変数の確率密度を正規分布と仮定、平均と分散をニューラルネットに組み込みます。これはすごいアイデア。GANに至っては、教師データとモデルの分布の分類器をニューラルネットで作るという、超裏技を繰り出した。

なにやら戦国時代の様相を呈していますが、今後どのような方向に向かうのか、私にはわかりません。ただ、30年前に開発されたbackpropagationという、明確に定義された計算手法が、いまだにきちんと受け入れられているということ。やはり、きちんと定義され、きちんと計算できる、という数学的構造には普遍性があるということでしょうか。

Generative Adversarial Networks

Generative Adversarial Networks(GAN)、Goodfellowらによる、オリジナル論文(NIPS'14)を読みました。さまざまな生成モデルの中でも、いま最も研究が進んでいるものです。

読後の感想です。まず、このような仕組みをよく考えたな~と思いました。原理は単純なので、いわゆる、コロンブスの卵的発想?収束の証明があるのですが、数学的で、よくわかりませんでした。

Goodfellowによる、NIPS'16のチュートリアルもネットで取れます。これは読みやすいです。

Variational Autoencoders(VAE)もそうなのですが、いまや、MCMCは嫌われていて、これの使用を回避するのがウリとなっているようです。MCMCが登場したときは、ベイズ統計の「救世主」と言われたので、隔世の感があります。

トピックモデルによる統計的潜在意味解析 (7)

佐藤一誠先生、「トピックモデルによる統計的潜在意味解析(2015)」、数式に懲りて、もう読むことはないと思い、とある場所に置いていたのですが、知人のMathematica達人、松田さんから、同書の輪読会を教えてもらいました。すぐに参加申し込みをするということは、やはり楽しい書物ということです。

さて、輪読会当日、とある場所に出向き、同書を引き取り、その夜、ノコノコと行ってまいりました。秋葉原のコワーキングスペースです。

すでに三回目で、今回は3.学習アルゴリズムからです。ここからが本題なので、タイミングは最適。

輪読会というものへの参加は、今回が初めてだったのですが、出てみてわかったことは、非常に有意義だということ。どんな優秀な人に対しても、特定の書物の中の、特定の数式について訊いても、回答はもらえません。しかし、このような輪読会では、参加者はすでに特定の書物が興味の対象なので、その中の特定の数式について訊くと、答えてくれる人がいるわけです。貴重な2時間を過ごしました。これで千円なので安いです。

というわけで、この輪読会は、リピーターとなりました。驚くべきことに、知人のM先生に会いました。こういうのも楽しいです。

トピックモデル (2)

ご無沙汰していた、「トピックモデル」ですが、某MLにて、Bleiのオリジナル論文が添付されてきました。2003年のものです。

これは読んだことがなかったので、見てみました。これによると、β、すなわち、各トピックにおける単語の生起確率(多項分布)は、推定されていません。オリジナルなので、解法にはいろいろと改良すべき点がありますね。実際、このあと進化しているのは周知のとおり。

しかし、最初にこのモデルを作ったBleiという人はすごいですね。YouTubeに本人による解説ビデオがアップされているので、観てみました。コメントで面白かったのが、"Why is Elvis teaching topic models?"というもの。Bleiはエルビスに似ているんです。

このプレゼンは、まさにプレゼンのお手本です。トピックモデルに興味ある人は、ぜひご覧いただきたいです。最初に聞き取れなかったのが、「ディリシュレ」。これはディリクレです。

Variational Autoencoders

遅ればせながら、Variational Autoencoders(VAE)、勉強してみました。以下のふたつの論文です。

1) Auto-Encoding Variational Bayes, Kingma & Welling, 2014.
2) Tutorial on Variational Autoencoders, Doersch, 2016.

双方とも、arXivで取れます。便利な世の中になりました。今後も学会というものは、存在するのだろうか?

1)はオリジナル論文です。2)はそれの解説。1)はわかりづらいところが多く、2)がたいへん参考になりました。それでもわからないところはありますが。

ポアソン分布 (3)

ポアソン分布は、以下の式で表されます。

p(x;μ) = (μxe)/x! --- (1)

平均はμです。これは、二項分布からポアソン分布が導けることを使えば、至極簡単にわかるのですが、正統的な平均の計算でやってみます。

平均=Σx (μxe)/x! --- (2)

Σはx=1~∞です。本当はゼロからですが、x=ゼロのときはその項はゼロですから、無視してよい。

さて、式(2)をxで約分し、さらにxに無関係な項をΣの外に出すと、

平均=eΣμx/(x-1)! --- (3)

ついでに、μもひとつΣの外に出します。x=1からなので、各項に必ずμはひとつある。

平均=μeΣμx-1/(x-1)! --- (4)

式(4)のΣの中身をじっとみると、これはeμをテイラー展開したものと同じです。したがって、

平均=μeeμ = μ --- (5)

が導けました。

Backpropagation

Backpropagation、最近ある方に説明する機会がありましたので、見直していました。

合成関数の微分がわかれば、基本的にはわかるのですが、やはりややこしいです(添え字がたくさん出てくる)。以下、私なりの注意点です。

1.出力層のエラーだけは、個別に考えます。これは適切なエラー関数を考えてやると、(出力)マイナス(教師データ)、という極めて簡潔な表現となります。回帰しかり、分類しかり(2クラスでも多クラスでも)。

2.各ノードは、前半と後半に分けて考えます。この関係が、活性化関数。これの微分が入ることに注意。もっと言えば、これが「勾配消失問題」の元凶。

3.エラー関数をノード前半の値で微分した量を、PRMLではδと記していますが、この量を理解することが重要。慣れれば便利です。ノード前半での微分なので、活性化関数の微分が含まれます。

-------------------------------------------

アルゴリズムとして整理されているのは、やはりPRMLです。同書の、5.3. Error Backpropagationの情報がすべてです。または、"Deep Learning"の、Algorithm 6.4ですね。
プロフィール

加納裕(かのうゆたか)

Author:加納裕(かのうゆたか)


[略歴]
1983年3月東京工業大学工学部機械物理工学科卒業
1983年4月(株)図研入社
1987年1月同社退社
1987年2月(株)ソリッドレイ研究所を6名で設立、取締役
1994年3月同社退社
1994年4月(株)スリーディー入社
1996年10月同社取締役
1999年12月上海大学兼務教授
2002年10月同社代表取締役
2009年9月ものつくり大学非常勤講師~現在
2009年10月同社代表退任/退社
2010年1月ソフトキューブ(株)入社~現在(技術顧問)
2017年4月湘南工科大学非常勤講師~現在


[業界団体・学会活動]
電気学会・第三期次世代インタラクティブディスプレイ協同研究委員会(幹事)/最先端表現技術利用推進協会・アカデミック部会(旧:三次元映像のフォーラム)(副部会長)/日本バーチャルリアリティ学会ハプティクス研究委員会(委員)/ACM(Professional Member)/情報処理学会(正会員、CVIM会員)/3Dコンソーシアム(賛助会員)/URCF(特別会員)

---------------------

前職:立体映像産業推進協議会(幹事)/日本バーチャルリアリティ学会・論文委員会(委員)/3DBiz研究会(個人賛助会員)


[資格]
TOEIC805点
数学検定1級(数理技能)
中型・普自二免許
サッカー4級審判員

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード