最新AI論文をキャッチアップ

爆速・低消費電力で深層学習もグラフ探索も条件付き最適化も行える?!脳型計算機の定量的実力

爆速・低消費電力で深層学習もグラフ探索も条件付き最適化も行える?!脳型計算機の定量的実力

survey

3つの要点
✔️ ANNよりも生物神経系に近い「Spiking Neural Network(SNN)」専用の計算機「Intel Loihi」を用いたニューロモーフィック計算分野初の大規模定量評価
✔️ リカレント構造や時間的情報、確率性、スパース性といった脳に似た特徴を持つネットワークと相性が非常に良いと判明
✔️ グラフ探索・条件付き最適化・スパースモデリングなどをSNNで解くと計算時間・エネルギー双方で「桁違いの利益」があることを実証

Advancing Neuromorphic Computing With Loihi: A Survey of Results and Outlook
written bMike Davies, Andreas Wild, Garrick Orchard, Yulia Sandamirskaya,
Gabriel A. Fonseca Guerra, Prasad JoshiPhilipp PlankSumedh R. Risbud
(Submitted on May 2021)
Comments: Published in: Proceedings of the IEEE ( Volume: 109, Issue: 5 )


本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。  

筆者まえがき

この記事で紹介する論文は、大多数の読者になじみがないであろう脳型計算、ニューロモーフィック・コンピューティング分野の大規模な論文であるため、本文に入る前に、得られている結果のうち特筆すべきものを掲載しておく。

計算結果が出るまでの時間(レイテンシ)と、計算で消費したエネルギーの積「Energy Delay Product (EDP)」という重要な指標だけでも覚えて次の箇条書きを読んでいただきたい。

従来型のコンピュータ(CPUやGPU等)で等価なアルゴリズムを動かした場合と比較して、「Intel Loihi」での結果は、

  • LSTM等価アルゴリズムでのSequential MNIST推論において、EDPが37倍改善!
  • LASSO回帰において、最高の場合レイテンシで5桁消費エネルギーで6桁、つまりEDPで11桁改善(!?!?)
  • グラフ探索において、EDPが3桁から7桁改善!
  • SLAMにおいて、ほぼ同じ速度で電力効率100倍改善!
  • 制約充足問題において、変数4-400の範囲で少なくともEDPが3桁改善!

主流のANNとは異なる技術であるが、これらの指標を見るに知る価値があるのは明白ではないだろうか。

はじめに

深層人工ニューラルネットワークは脳の情報処理原理を応用したもので、多くの問題領域にまたがる機械学習にブレイクスルーをもたらした。

ニューロモーフィック・コンピューティングはこれをさらに一歩押し進めて、生物神経系の形態と機能により直接的に触発された計算モデルに特化・適応したコンピュータを作ることで、知的情報処理を低消費電力かつリアルタイムに実行することを目指している。神経系の特性は次のようなものを含む: 記憶と演算の統合、低精度かつ確率的計算、ニューロンへの巨大な入出力数、非同期動作、スパイクと呼ばれる二値信号の時間領域情報を用いた分散的通信、継続的な学習など。このような特徴を持つ「Spiking Neural Network (SNN)」に特化したコンピュータアーキテクチャのモデルは今日ほぼすべてのコンピュータに採用されているフォン・ノイマン・モデルに真っ向から挑戦するものになる。

これまでは現代のCPUやGPUなどと比べて定量的な計算価値を実証できる成果がほとんど発表されていなかったが、Intelが開発したニューロモーフィック研究用プロセッサ「Loihi」の登場で状況は一変した。

本論文では、深層学習に加えてSNNの特徴を直接生かした新しいアプローチ(グラフ探索や確率的条件付き最適化、スパースモデリングなど)をLoihi上で実行したときの結果を広範にレビューしている。フィードフォワードネットワークでのメリットはあったとしてもわずかであったが、リカレント構造、正確な時間情報の使用、確率性、スパース性などの特徴を持つ脳に近いネットワークでは従来の最先端アプローチと比較して桁違いに低いレイテンシとエネルギーで計算が可能であることが判明した。

SNNとは?

本論文は前提としてSNNのモデルの知識を要求しているが、まだ一般的な知識とは言えないため、筆者がここで簡単に紹介する。神経科学寄りの複雑なモデルからハードウェア実装フレンドリーなモデルまで様々なバリエーションがあるが、ニューロモーフィック計算分野で一般的であるシンプルなニューロンモデル「Leaky Integrate-and-Fire (LIF) Model」を軸に解説する。まずは、SNNとANNの最も主要な対応関係を以下の表に示す(フィードフォワードの場合)。

  SNN ANN
ニューロンのモデル スパイキングニューロン(内部状態あり) ex. LIF 活性化関数(内部状態なし) ex. ReLU
入出力・層間通信 0か1(スパイク)+時間軸にタイミングまたは頻度情報 高精度の情報、時間軸なし

SNN最大の特徴は時間方向の次元をもち、ニューロンの出力は0か1(スパイク)に限定されているということであるが、SNNを長い時間動かしたときに現れる統計的モデルが一般的な人工ニューラルネットワーク(ANN)であると見ることもできる。次に離散時間のLIFモデルの式の一例を表す。

ここで $l$:レイヤー番号、$i$:レイヤー内ニューロン番号、$t$:時間ステップ である。

下線部1.は入力を表す。この式の場合、全結合層からの入力である。ANNの全結合層と同じ行列ベクトル積であるが、$O_j^{l-1,t}$は前層のLIFニューロンから出力された0と1だけのベクトルで、多くの場合1要素がスパース(疎ベクトル)であるため、乗算が不必要であるうえ0要素の部分の計算を省くことで高速化できる。全結合層以外でも畳み込み層や、より生物学的なシナプスモデルの出力などに置き換えが可能である。この計算がスパースであるという点はLoihiのアーキテクチャに影響している。

下線部2.は膜電位$u$(前時間ステップから引き継がれる内部状態)の減衰(Leak)を表す。前時間ステップの膜電位に減衰係数$\beta [0:1]$を乗算する。

下線部3.はリセット項である。前時間ステップにスパイク出力があれば(後述)膜電位をゼロにする。

下線部4.はスパイクの出力判定である。膜電位$u$がスレショルド$v_{th}$を超えると、そのニューロンは1(スパイク)を出力(発火:fireと呼ぶ)する。そうでなければ0を出力する。

以上がLIFモデルの基本的な動作である。最近のSNN研究では、$\beta$や$v_{th}$が学習可能なパラメータになっていたり、リセットの方法が問答無用で膜電位を0に戻す旧来の"hard-reset"から$v_{th}$を膜電位から減算する"soft-reset"に変化していたりするが、大まかな動作は同じである。

次に、時間方向に伸びたスパイク列がどのように情報を表すかの符号化方法(Spike Coding)を示す。代表的なカテゴリを2つ挙げると、

  • Rate Coding ... スパイクの発火頻度が高ければ大きい値を表す。
  • Temporal Coding ... スパイクの発火時間で(例:早いと大きい)値を表す。

一定のアルゴリズムでディジタルデータ(例えば画素)とスパイク列を変換する。

Loihiのシステムとソフトウェア

Loihiのチップ

Loihiはクロックのない非同期回路で構成されており、離散時間のLIFニューロン(つまりLIFモデルの計算に特化した回路)を131072個、128コアに分割して搭載している。各コアにはシナプス重みを記憶するメモリ128kBやニューロンの接続を記憶するメモリ20kBが搭載されている。スパイクは32bitのアドレス情報、つまりどこのシナプス・ニューロンに送られるかという情報としてやり取りされる。また、シナプス重みを変更する可塑性規則がマイクロコードで複数の中から選択できる(つまり複数の方法で学習ができる)。また、組み込みx86プロセッサも搭載されており、普通のデータとスパイクの変換などに使われている。

Loihiのアーキテクチャにおいて通常のフォン・ノイマン・プロセッサ(CPUやGPU)や機械学習アクセラレータ(Google TPUなど)と対極的な点は、スパースで非バッチ(バッチサイズ1)な計算に最適化されていることである。Loihiのコアのメモリアクセスは常にコアの近くへ行われ、また、細切れでバラバラである。(筆者注: GPUや機械学習アクセラレータはデータをきれいに並べてメモリアクセスを規則的にしたりベクトル化したりして処理を高速化している)

Loihiのシステム

Loihiと従来のコンピュータを接続するためには、ニューロモーフィックチップ内の非同期の通信プロトコルとホストCPUなどの標準的な同期プロトコルの橋渡しが必要になる。このインターフェースをLoihiチップ内に組み込むのは小規模チームには厳しい作業であったので、この橋渡しはFPGA(ビット単位で回路をプログラムできるチップ)で行われた。

Loihiのソフトウェア

Loihiはニューロモーフィックコア、組み込みx86プロセッサ、FPGA I/Oインターフェース、ホストCPUにまたがる異種融合システムであるので、独自のソフトウェアフレームワークが必要となる。NxSDKというソフトウェアツールが開発され、これによってLoihiをプログラミングするためのAPI、コンパイラ、デバッグツールが提供される。また、ランタイムの監視やサードパーティー製フレームワークとの連携も可能で、TensorflowやPyTorchを用いることもできる。

深層SNNのトレーニング手法と定量的評価

ディープラーニングはSNN研究の自然な出発点になる。誤差逆伝搬法を微分可能なANNに適用するというアプローチが大成功を収めてきたことを考えると、SNNでも同じアプローチで成功できると考えることは無理からぬことである。しかしながら、LoihiなどのSNNチップはMobileNetやResNetのような標準的な深層学習モデルの計算を高速化するために設計されているのではない。ANNは高度にベクトル化されたデータを規則的に積和演算することで高速化が達成できるが、SNNは空間的にも時間的にも疎な計算を特徴としている。Loihiには疎な計算をサポートするためのオーバーヘッドがあるため、一つ一つの計算はANN用の機械学習アクセラレータの積和演算より消費電力が大きい。積和演算をスパイクで近似すると、計算回数が増えて余計に低速で消費電力が大きくなってしまう。つまり、効果的なSNNモデルを探索するときANNをそのまま真似するのも(もちろん無視するのも)得策ではない。

ディープラーニングにインスパイアされた深層SNNのトレーニング方法には大きく二つのカテゴリがある。一つはニューロモーフィックハードウェア上でシナプス可塑性を使ってモデルを学習するオンラインアプローチであり、もう一つはCPUやGPUで学習済みモデルを作成してニューロモーフィックハードウェア上に展開するオフラインアプローチがある。オフラインアプローチには学習したANNをほぼ等価なSNNに変換する変換アプローチと、誤差逆伝搬を行う直接学習アプローチがある。SNNのニューロンモデルにおいて発火の有無を決める閾値関数は非微分性を持つうえ、ほとんど至るところで勾配0なので、誤差逆伝搬法を適用するには工夫が必要である。

深層SNNのトレーニング手法

変換アプローチでLoihiと従来型コンピュータを定量的比較

変換アプローチの詳細

ANNからSNNの変換は、学習済みのANNから同じ構造のSNNに重みを写像することで可能であり、CIFARやImageNetのような伝統的な画像認識タスクにおいてほぼロスレスの変換が実現している。(筆者注: 層の中で一番大きい活性化関数の出力値ですべての重みを割り算するという方法がベースになっているものがほとんど。また、活性化関数は基本的にReLUに限られる。)ANNからSNNの変換では、ANNの連続値の活性化をSNNのスパイクの頻度として表現するのが一般的である。ANNは画像フレームのような単一で静的な入力ベクトルを一連の密な演算で処理するが、SNNは複数の時間ステップあるいは反復で一連の疎な演算で処理する。このように時間方向に「展開」された計算はSNNの有用な特徴となりうる。というのも、分類精度と推論レイテンシの間のトレードオフを動的に調整できるからである。しかしながら、Rate Codingを使用する場合、信号の精度を1bit向上させるのに2倍の時間ステップが必要になり、指数関数的に多くのエンコード時間が必要になる。LoihiではTensorflowやPyTorchからANNを取り込み、SNNに変換するいくつかのフレームワークが使用できる。

変換前ANN on 従来型コンピュータ VS. 変換後SNN on Loihi 

図上の点は、ANNを従来型コンピュータで実行した時間(縦軸)/消費エネルギー(横軸)がSNNをLoihi上で実行したときのそれの何倍かを表している。点線は損益分岐線で、Energy Delay Product(EDP)が小さいかどうかで優位性があるかを示している。(筆者注: 消費エネルギーがいくら小さくても遅いコンピュータは誰も欲しくないので、レイテンシとエネルギーの両方を考慮できるEDPで従来型コンピュータに勝たないと優位と言えない。) 赤いマーカが変換アプローチでの比較である。タスクには、キーワードスポッティング、MobileNetによるCIFAR画像認識、類似性検索のための埋め込み生成、Modified U-NetによるISBI細胞のセグメンテーションが含まれる。これらタスクのほぼすべてにおいて、エネルギー効率が大幅に向上している(最大100倍)。レイテンシに関して言えば、小規模のワークロードでは参照ハードウェアと同程度だが、大規模なDNNワークロードでは参照ハードウェアよりも大幅に時間がかかっていることが分かる。

ワークロードの大規模化によってLoihi上で実行したときのレイテンシが悪くなっている理由は主に二つある。

  • 層数が増えると、最大限の精度を出すために必要な時間ステップが大きくなる
  • 大規模ネットワークは複数チップに分散する必要があり、チップ間通信が混雑する

また、Loihiで有効であったタスクはバッチサイズが1であった場合が多く、新しいデータに対して低レイテンシで応答するリアルタイムタスクに向いていることが分かる。しかし、レイテンシが小さくてもスループットが大きいとは限らない。ベクトル化、パイプライン化されたアーキテクチャはレイテンシが長大でも、一度に多くのサンプルを処理して高いスループットを実現できる(応答時間は長くとも、一度結果が出始めたら毎サイクル大量の結果が出てくる)。図中の矢印は、バッチングによるCPUやGPU上での性能改善を表している。

直接学習アプローチでLoihiと従来型コンピュータを定量的比較

変換アプローチの詳細

直接学習アプローチは、誤差逆伝搬を用いてSNNのパラメータを直接最適化するアプローチである。SNNをバイナリ入力の等価なANNとして、ANNの非線形性を不連続なスパイク生成関数として、膜電位の閾値下の時間的ダイナミクスを自己リカレント接続として、それぞれ定式化することで、誤差逆伝搬を実現できる。直接学習アプローチはレイテンシーとエネルギー効率の両方を最適化するスパイクタイミング符号化(Temporal coding)の出現に導かれるため、イベントベースのセンサーが生成するデータなど、入力スパイク間の相対的タイミングで情報が符号化された入力を用いた場合に特に注目される。より一般的なタスクの場合でも、Rate codingよりTemporal codingのほうが、効率的に情報を伝搬できるため、スパイク数、レイテンシ、エネルギー消費が小さくなる。

小さなネットワークでは非常に有効であるが、大きなネットワークの学習は困難になる。学習が時間クレジット割り当て問題となるので、SNNをRNNとして扱い、Backpropagation Through Time (BPTT)を適用する。SNNの時間ステップ一つがRNNの一回の実行に相当するため、同じサイズのフィードフォワードANNを学習する場合と比較して、学習時間とメモリ占有量が大幅に増加する。また、閾値関数の非微分性を代理勾配で近似することによって回避しているが、ネットワークサイズが大きくなると誤差が累積する。

ANN on 従来型コンピュータ VS. 直接学習SNN on Loihi 

LoihiではSLAYER、STDB、BPTTの3種の誤差逆伝搬法で学習したSNNワークロードを評価している。(図再掲)

SLAYERで学習したダイナミックビジョンセンサー(DVS、筆者注: イベントカメラともいう。各画素が独立して輝度の変化を検出する仕組み。同カテゴリのものがSonyからも発売されている。)でのジェスチャー分類タスクを実行した結果、IBMが2014年に発表したニューロモーフィックチップ「TrueNorth」上での実行に対してEDPが50倍改善した。また、スパイク領域ではマルチモーダルな処理が容易であるため、触覚の文字認識や、表面筋電位と視覚データを組み合わせたジェスチャー分類などが行われた。STDBはロボットナビゲーションタスクで用いられ、LoihiはエッジGPUと同等の速度でありながら低消費電力で、EDPは83倍改善した。BPTTは従来のLSTMと同等の能力をもつリカレント長短記憶SNN(LSNN)の学習に用いられた。まずLSNNはSequential MNISTに適用され、LSTM on バッチサイズ1のGPU上実行/大きなバッチサイズでのGPU上実行とLSNN on Loihiでの実行を比較した結果、それぞれ6×104倍/37倍、Loihi上でEDPが改善した。またBPTTで学習されたネットワークが相互接続されたLSNNの大規模コレクションがbAbI質問応答データセットから関係推論問題を解決した。これはLoihiのコアを2320消費し、従来型のアーキテクチャに対して優位性を示す最大の深層ネットワークとなった。

これら様々な規模のワークロードにおいて、直接学習アプローチは常に従来計算機に対して桁違いに上回る性能を示している。

オンラインアプローチでLoihiと従来型コンピュータを定量的比較

ここまでは学習をCPUやGPUで行うオフラインアプローチについて見てきたが、ストリーミングデータからオンラインで学習することもまた望ましい。しかし、誤差逆伝搬、とりわけBPTTは時間、計算、メモリの点で実装コストが高い。ニューロモーフィックハードウェアのための誤差逆伝搬を利用するために、アルゴリズムのニューロモーフィック実装向き簡略化が提案されている。そのうちのいくつかは、Loihi用に開発中である。第一段階として、単層オンライン学習のための「デルタルール」がLoihi上で実証された。これはさらに代理オンライン誤差学習(SOEL)と規定誤差感度法(PES)を含む。SOELでDVSジェスチャー認識ネットワークの最終層を学習してオンラインで新たなジェスチャーを学習することができる。PES学習則をロボットアームの制御に用いた場合、CPUに対してEDPで約100倍高性能を発揮した。

SNNによるアトラクタネットワークでLASSOが解ける

標準的な人工ニューロンと異なり、スパイキングニューロンは時間的な振る舞いをする。このため、SNNは高次元・高非線形性力学系となる。脳が行う計算は、ニューロン間の集団的な相互作用の結果であり、小川の中の渦のような創発現象であることが特徴である。これはANNの正確かつ包括的で逐次的に定式化された動作様式とは根本的に異なる。脳神経細胞は、フィードバック・適応・環境との相互作用を通じて、個々の動作の不確実性や非決定性にも関わらず、集団として何らかの望ましい振る舞いをするように進化する。つまり、SNNの場合、研究対象となる計算の範囲はANNよりはるかに広く、Collective dynamics (筆者注: 複雑系科学の一分野) に立脚する。

アトラクタダイナミクスはCollective dynamicsの最もシンプルな形であり、有用で非自明な計算をもたらす。アトラクタに基づくSNNアルゴリズムを開発する重要な戦略の一つは、ネットワークがリアプノフ条件として知られる特定のwell-definedな平衡状態への収束保証を満たすことを証明することである。ネットワークの平衡状態は次に説明するLocally Competitive Algorithm (LCA)のように数学的に閉じた形で特徴づけられる場合もあるが、そうでない場合でも、さらにその次で説明するDynamic Neural Fields (DNFs)のようにネットワークが直感的に理解できるふるまいを設計できるかもしれない。

Locally Competitive Algorithm for LASSO

最も単純なアトラクタネットワークの例を挙げる。ホップフィールドネットワーク(筆者注: 連想記憶に用いることができる)は対称な重み行列で、全対全の結合をもつ多数のニューロンをもつ。このようなネットワークのダイナミクスはリアプノフ条件を満たし、エネルギー関数の最小値に対応する固定値に収束する(筆者注: 例えば連想記憶の場合、学習されたパターンの中で入力に最も近いものに収束する)。

LCAも有用で非自明な計算を行う最もシンプルなネットワークの一つである。LCAでは入力信号は抑制性の相互リカレント結合をもつニューロンに入射される。フィードフォワード入力とリカレント抑制のバランスがネットワーク内の競争を誘発して、時間の経過とともにシステムは入力を最もよく説明する特徴のアクティブセットに収束する。ネットワークのパラメータをLCAに従って設定すると、ネットワークの平衡状態はLASSO回帰問題の解と正確に対応することになる。LASSO回帰はオーバーフィッティングを減らし、疎な特徴セットを識別する技術(スパースモデリング)として統計学で広く使われている。

LoihiのソフトウェアフレームワークNxSDKは、重み共有を活用してオンチップメモリを効率的に利用し、数百万の特徴ニューロンからなるネットワークをサポートする畳み込みLCAネットワーク用のコンパイラを提供している。(図)ではLoihi上のLCAとCPU上のFISTA(従来の代表的アルゴリズム)の実行を比較したものである。両者とも、同じLASSO問題を解くことで入力画像をスパースコード化し、LASSOの目的関数で測定される解の品質が同じであることを示す。Loihi LCAの目的値は通常最適値の約1%で飽和し、評価の収束閾値が設定される。これは近似解であるが、多くのアプリケーションでは十分な値である。

上図を見ると、シングルチップのLoihiで実行可能なLCAの最大の問題サイズである約$10^5$個の未知数(領域III)ではレイテンシで最大5桁、消費電力で最大6桁の優位性が確認できる。領域IVではマルチチップ構成で実世界のアプリケーションで一般的に見られるサイズに近づいている。この領域ではチップ間通信の混雑によってスケーリングは悪化するが、領域I-IIIのCPUの傾向に比べて明らかに優れていることに変わりはない。

LCAはスパース活性化を伴う細粒度の並列アルゴリズムがニューロモーフィックアーキテクチャのマッチング特性を利用して桁違いの利益を達成したことを示す最良の例の一つである。高度にベクトル化されたデータパスでは、ビットレベルのデータ依存分岐に大きなペナルティがかかるため、従来のアーキテクチャではこのアルゴリズムの特性を利用することができない。

Dynamic Neural Fields for 物体追跡

DNFsは、状態・関係・ふるまい・記憶をアトラクタネットワークを用いて実装するためのモジュール式のアルゴリズムを提供する。たとえば、ある特定のネットワークは、勝者総取り(Winner-take-all)ネットワークのように、最も強い刺激を受けた状態が持続的に活性化し、刺激の少ないほかの状態の発現を抑制するような全対全接続性を持つ。これはワーキングメモリに類似した構造である。神経科学の研究では、DNFsがワーキングメモリを必要とする多くの認知過程をモデリングすることが分かっている。

DNFsは自律システムや認知ロボットのプログラミングフレームワークとして使用されてきたが、その高い計算コストが実世界の有用なタスクへの適用を妨げてきた。コストの理由はLCAと同じく、高再帰接続性と疎な活性である。

Loihiでは、2層の二次元DNFネットワークが実装されており、DVSイベントカメラで見た移動物体の追跡を行っている。64x64のニューラルグリッド上で240x180の入力を実時間で処理した場合、3.5ピクセルの精度で物体を確実に追跡することができる。これは視覚オドメトリやSLAMの前処理、複雑なシーンにおける物体への注意の集中設定、あるいはナビゲーション目標の視覚的追跡などに利用できるかもない。

SNNの時間領域計算で最近傍探索やグラフ探索が解ける

深層学習の直接学習アプローチの結果、時空間スパイクパターンにSNNを最適化することによって効率と速度が向上することが示唆された。ANNに近い勾配ベースのアプローチがとれない、スパイクタイミングの関係を正確に利用する巨大な空間、とりわけ動的状態・遅延結合・可塑性・確率を含む空間を探索するためにはより広い範囲を視野に入れる必要がある。

近年、スパイクに基づく時間情報処理を用いてwell-definedな計算問題を解決するために、多くの手作りのSNNアルゴリズムが提案されている。その中には、ソート・最大・最小・中央値演算などの計算プリミティブ、多様なグラフアルゴリズム・NP完全/困難問題(制約充足・ブール充足性・動的計画法・二次制約なし二項最適化)・新しいチューリング完全計算フレームワークが含まれる。これらをニューロモーフィックハードウェアに実装した場合、細粒度の並列性とイベントベースの計算を利用して速度と効率の両方の向上が期待される。

しかしながら、ハードウェアが未成熟であったため、これらの提案されたアルゴリズムの実機での評価は少なく、レイテンシやエネルギーの測定が報告されていない初歩的な実証がほとんどだった。Loihiの登場によって、これらのスパイクベースアルゴリズムの評価を十分な規模と性能で評価できるようになった。厳密な特性評価と従来のソリューションとの比較を行った事例によると、これまでのところ、桁違いの利点をもたらすという約束を確認しつつある。

最近傍探索

Loihiを768チップ搭載したシステム、「Pohoiki Springs」で動作する効率的でスケーラブルなアプリケーションとして、近似最近傍探索問題のSNN時間領域計算での実装がプロタイピングされた。この実装では、検索クエリパターンを、すべてのLoihiチップに分配される単一のスパイク波面の相対時間で直接符号化する。この実装では、システムのコアに分散したすべてのデータ点に対するクエリのコサイン類似度を計算することにより、最も近いマッチを迅速に特定することが可能である。

正則化されたデータ点とクエリベクトルの場合、コサイン類似度は内積に相当する。この内積演算は、積分発火ニューロンによって複数クエリスパイク到着の経時的な演算として実行できる。各データ点は一つのニューロンへの入力重みにマッピングされ、データポイントの次元一つごとに一つの8bitシナプス重みが割り当てられている。特定のブロードキャスト入力クエリが、タイミングの異なるパラレルなスパイクとして与えられると、十分に近いデータ点に対応するニューロン達は入力クエリとデータ点の内積に相当する出力マッチスパイクを生成する。このとき、早く出力されたスパイクは強いマッチを表す。したがって、その後の並べ替え作業は、スパイクの生成順序を観察することだけに単純化される。k近傍の最近接マッチのみが必要な場合、k個の出力スパイクを観測したのちにネットワークをすぐに停止してよい。

GPUや機械学習アクセラレータのような高度にベクトル化されたアーキテクチャは豊富な積和演算器を用いてバッチ化されたベクトル同士の内積演算を効率的に演算できるが、top-kソート演算を逐次実行する場合極めて非効率的になる。一方、SNNでの実装は最も早いスパイクの到着を待つだけで、エネルギーや時間の増分を消費しないため、top-kソート演算がほぼ無償で行われる。さらに、従来の近似最近傍探索実装と異なり、ニューロンを物理的に追加するだけで、$O(1)$の複雑さでデータ点を追加できる

Loihiの実装では、データの次元を一定に保ちつつ、任意の入力データ型に対応するために、主成分分析・独立成分分析(PCA・ICA)による次元削減を行っている。また、PCA・ICAにより、スパイクを効率的に符号化するために適したスパースな表現にクエリを射影することも同時に行っている。クエリのルーティングリソースとシナプスメモリリソースはともに次元数が増加するにしたがって線形にスケールするため、時空間スパイクによる内積計算精度とシステムに格納できるデータ点の数の間でトレードオフをとる必要がある。

Loihi k-NNの実装は、他の最新の近似最近傍アルゴリズムと比較して、それぞれ960次元、1M個のデータ点からなる多くの標準的なデータセットで評価された。評価指標はレイテンシ・スループット・電力・ビルド時間・新しいデータ点の挿入時間である。個々の指標についてはLoihi k-NNを上回るアルゴリズムが見つかったが、Loihi k-NNはすべての指標で高性能を記録した。CPU上での同等の総当たり内積実装と比較するとEDPで685倍の性能を発揮した。

グラフ探索

時間領域スパイク計算は、経路探索にも適用できる。これは人間の海馬で観測された経路探索中のスパイク波面にヒントを得たものである。波面を用いたアルゴリズムは、古典的なダイクストラ法など、他にも提案されているが、SNNでの定式化は並列性・時間領域計算・スパースなスパイクの活動やローカルなシナプス可塑性を利用することにより、優れた性能を約束する。Loihiには、Ponulak and Hopfieldアルゴリズムの簡略化が実装されており、シナプス可塑性が二値化されている。その代わりに、小さな(6bitの)正のエッジ重みがシナプス遅延で強化された。

Loihi上でのグラフ探索は、まずグラフを分割し、マルチチップLoihiシステムの物理コアにマッピングする必要がある。このホストCPUによるコンパイル作業は100万ノードのグラフでは数時間かかるため、1つの静的グラフを繰り返し探索するのに適している。探索元となるノードは、対応するニューロンのスパイクをホストCPUが送ることによって選択される。次に、探索先のノード(ニューロン)を刺激して発火させることで探索が開始される。スパイクの伝搬中、波面のスパイクが最初に中間ニューロンに到達するたびに、スパイクが到達した接続の重みがゼロになり、反対方向に向いた接続が残される。探索が完了すると、ホストCPUはネットワークの状態を読み出し、重みがゼロでない経路を辿って最短経路を発見する。

検索フェーズの理論的分析によると、大きなグラフの場合、漸近的な検索時間スケールが$O(\sqrt{E})$であることが示唆されている。ここで、$E$はグラフ内のエッジ数である。最適化された最新のダイクストラ法でさえ、$E$に対してせいぜい線形にしかスケールしない。

Loihi上のグラフ探索実装の実際の性能を確かめるため、ワッツ・ストロガッツのスモールワールドグラフにおいてランダムに選択したノード間1651回の探索が評価された。グラフのノード数は100-100万ノード、ノードあたりエッジ数は10-290の範囲であった。このようなグラフは社会的・電気的・意味的・物流的なネットワークとして実世界に多く存在し、合成が容易で、ニューロモーフィック実装と従来の実装の両方の通信・ソート機能にストレスを与えるため選択された。Loihi上での波面探索時間を、ダイクストラ法を有界整数エッジコストに最適化したDialのアルゴリズムのCPU実装による探索時間と比較した。探索時間の結果を総エッジ数$E$の関数として下図に示す。

CPU実装では理論的予想どおりに$E$に対してほぼ線形依存性を示した。Loihi上の実装では、小さなグラフ上では理論通りサブリニア特性を示したが、大規模なグラフでは線形に近い依存性を示した。これは、チップ間通信の混雑が探索時間を支配しているからであると考えられる。しかしながら、最小のグラフを除くすべてのグラフにおいてLoihiはCPUを100倍以上上回る高速性を示した。

確率的条件付き最適化

スパイク時間領域計算はNP完全クラスの制約充足問題(CSP)を解くために用いることもできる。CSPは制約$C$を満たす変数の集合$X$の許容値を見つけることを含む。CSPが組み合わせNP完全であるのは、変数の数が増えるにしたがって可能な解の構成が指数関数的に爆発することに起因している。

CSPに対する最新のアルゴリズムは系統的方法であるかあるいは確率的なグリーディ法である。完全解法の系統的戦略の場合、最悪の場合指数関数的複雑さをもつ。これに対して確率的探索戦略は、解を見つけることは保証されないが、スケーラビリティに優れる。また、制約を満たさない場合にペナルティを課すコスト関数の設計によって、より一般的な制約最適化問題に適用することが可能である。SNN実装ではこのコスト関数による戦略をとり、またCSPを解くためにエネルギー関数に支配される確率的SNNを利用している。

$E = S^{T}(t) \cdot W \cdot S(t) = \sum_i \left( S_i \cdot \sum_j W_{ij} \cdot S_j \right) \dots (1)$

(1)において、$S$はある瞬間のスパイクベクトル、$W$はシナプス重み行列である。$W$が$C$を符号化し、CSP変数$X$の異なる値をone-hotコード化されたWinner-take-allネットワークで表現するように、SNNが設定される。確率的SNNの微細なタイミングダイナミクスがローカルミニマムからの脱出を容易にし、同じ分布からサンプリングしているにも関わらず、ボルツマンマシンよりもグローバルミニマムを効果的に見つけることができる。

このようなSNN CSPソルバが実用的であるためにはSNNがエネルギー最小の状態を単に訪れるだけでなく、訪れたことを検出できなければならない。Loihiに実装されたソルバではネットワーク内で分散したイベントベースの方法でコスト関数の計算が可能で、設定した閾値を下回る解が見つかったときのみホストCPUと通信を行う。

NP完全のラテン方陣問題を用いて、このソルバの性能が実証・評価された。上図(a)はソルバの動作原理を説明したものになる。Winner-take-allネットワークの確率的なダイナミクスの結果、あるニューロンは他のニューロンよりも早く発火し、その状態と矛盾する活動をするほかの相反するニューロンを抑制する。このプロセスにより、探索空間が反復的に刈り込まれ、最終的に問題の解に相当する互いに相反しないニューロンだけが活性化されたままになるのである。

比較対象の従来ソルバとして、COIN-ORプロジェクトで提供されているCoin or Branch and Cut (CBC)が用いられた。これはSNNソルバと同様に不完全エネルギー最小化器を用いており、オープンソースCSPソルバとしては最も優れた性能を持っている。求解時間と消費エネルギーが比較された。

図(b)-(d)に示すように、LoihiソルバはCPUリファレンスと比べて大幅に高速かつエネルギー効率に優れている。4変数-400変数の幅広い問題サイズにおいて、少なくとも3桁以上EDPが改善している。

Loihiソルバは他のヒューリスティックソルバと同様に解の存在を保証することも常にすべての解を見つけることもできないが、実際には今までのニューロモーフィックシステムに実装された最大のCSPでも、Loihiチップの資源を使い切ることなく、最適な解を発見した。さらに段階的に解を見つけることができるので、時間的に制約があるアプリケーションには特に魅力的となっている。コスト関数の評価閾値を緩和することで、遅延と精度のトレードオフ機構を提供することができる。

これらの結果は確率的スパイクの時間ダイナミクスがSNNのサポートする計算空間をいかに拡張し、驚くほど高速で効率的な結果をもたらすかを示している。この分野はまだ発展途上であり、ノイズの果たす役割のより深い理解によるさらなる高性能化やほかの困難な計算問題への適用が考慮されている。

アプリケーション

アルゴリズムのベンチマークにとどまらず、Loihiでは多くの有望なアプリケーションがデモンストレーションされている。

イベントベースセンシング

イベントベースセンシングはニューロモーフィックコンピューティングの姉妹技術として急速に発展している。ビジョンセンサの場合、輝度の変化を画素ごとに検出し、変化の大きさが閾値を超えたときに非同期にイベントを発生させる。イベントベースセンシングは、自己適応性・低消費電力・低レイテンシ・高ダイナミックレンジなどの素晴らしい特性を備えているが、従来のフレームベースのコンピュータビジョンと全く異なるため、実世界のアプリケーションに適用するには新しい処理アルゴリズムとアーキテクチャが必要になる。Loihiのようなアーキテクチャはイベントベースのスパイクデータを処理することにより、優れた特性を維持することができる。数字認識、視覚と触覚の融合、視覚と筋電情報の融合、ジェスチャーのオンライン学習などが実証された。今後の課題はセンサの高解像度化に伴ってセンサとプロセッサの間の帯域幅が拡大することによって電力コストや時間分解能の低下などが予想されることであり、解決策が検討されている。

匂いの認識と学習

匂いのセンシングにまつわる独特の技術的課題の解決にとってニューロモーフィック技術の相性が良いことが分かっている。現在の匂いセンサは信頼性が低く、頻繁に再調整を行う必要がある。このモダリティに特有の高レベルのノイズと互いの要素が隠しあうオクルージョンの問題が、エッジコンピューティングでの処理を困難にしている。また、世界の匂いは多様であり、自然変動も大きいため、現場でのオンライン学習とファインチューニングが必要になる。

生物の匂いの感知に関する神経科学は比較的成熟してきており、アルゴリズム発見に役に立つ可能性がある。実際に、最近の神経科学のモデリングがさらに抽象化され、Loihiに実装可能なレベルになった。このアルゴリズムは前章、前々章で説明されたような、ANNにはないSNNならではの特徴を生かしたものとなった。このアルゴリズムによって10種類の化学物質からなるたった一つのトレーニングサンプルが与えられた場合でも、同じデータセットから抽出されたテストサンプルやそれに対してノイズを付加したサンプルをうまく分類できる。Loihi上への実装は約92%の精度となり、7層のオートエンコーダを含む従来アルゴリズムを40%以上上回る。さらに、追加の匂いを学習した場合、SNNのアルゴリズムは先に学習した匂いクラスへの分類精度は劣化しなかったが、オートエンコーダの場合破局的忘却が発生した。

(筆者注: きわめて少サンプルでの学習・および破局的忘却への耐性が見られたということになる。これは旧来のANNでは実現困難な特性と言える)

ロボティクスのための閉ループ制御

閉ループ制御もニューロモーフィックコンピューティングにとってエキサイティングな分野になる。イベント駆動型の処理が、閉ループ制御の時間的特性や低遅延の要件とかみ合うからである。運動制御に対するいくつかのアプローチがLoihi上で実証された。処理が速いと目標値への収束が速くなる。

PID制御がSNNで実装され、積分(I)項がオンラインで適応して状態依存摂動を軽減することができる。6自由度のロボットアームの制御がLoihiによって実行された結果、CPU・GPU実装に対して、電力効率でそれぞれ4.6・43.2倍改善し、レイテンシでそれぞれほぼ変化なし、GPUは42%遅くなった。ほかにもドローンの制御や昆虫型ロボットの制御も実装された。

自己位置推定と地図作成の同時実行(SLAM)

SLAMはロボット工学の重要なタスクであり、次のようなことが要求される。

  1. エージェント(例えばロボットなど)の絶対位置を保持するためのセンサ情報の融合、経路統合とオンボードセンサ情報からの状態推定
  2. 環境中の関心のある物体の位置を保存したマップの作成

状態推定には誤差があるため、マップ作成時の誤差の検出・低減が重要な問題となる。この問題は最適化問題として定式化され、大規模環境では法外な計算コストになる。

SNN実装の一つでは、経路統合にDNFsが用いられ、スパイクベースの再帰的ベイズ推定によってロボット頭部の方向推定を行う。Loihiへの実装で、CPUに比べて100倍以上の低消費電力を実現しつつ、同程度の精度を得ている。

その他

新しいパターンを学習する連想メモリ、ノイズが多い環境での無線周波数波形適応アルゴリズム、熱拡散方程式のイベント駆動ランダムウォークソルバなどが実装された。発表された成果がないものを含むと、セキュリティや故障監視のための異常検知、粒子衝突型加速器の軌道分類、筋電情報と直接神経プローブを用いたブレイン・マシン・インターフェース、低電力キーワードスポッティングなどの多数の音声認識アプリケーションが研究されている。

将来の見通し

深層ネットワーク

変換アプローチの結果から、深層SNNに変換したANNは、エネルギー効率の利点を得られるものの、特に複数チップにまたがる大規模問題では長大なレイテンシに悩まされる。スパイク数の激増から、Rate codingの変換SNNはスパース性を重視したニューロモーフィックアーキテクチャにとって魅力的ではないため、変換アプローチ以外をとる必要がある。直接学習アプローチでレイテンシの大幅な改善が見られるが、大規模ネットワークの学習に適していない。ANNからSNNに変換→SNNで再学習というフェーズを踏むハイブリッドアプローチがこれを解決することが期待される。ハイブリッドアプローチで変換アプローチに対して推論時間を1/10に短縮できるという結果も得られている。また、変換との互換性が高い対数時間スケールを用いたTemporal codingも検討されている。ネットワーク圧縮もまた重要な方向性であり、メモリと演算が高度に融合されたアーキテクチャにとって貴重なエネルギー・時間・メモリ資源を節約できる。これはオフラインアプローチの次元圧縮技術やプルニングによって生じるスパース性を利用する機会を含んでいる。スパース性を安定に保ちながら重要度の低いシナプスをタスクに最も必要な場所に常にリサイクルするdeep rewiringなどのアプローチがはメモリ制約のあるオンライン学習アプローチに適している。

オンライン学習

SOELやPESのようなオンライン単層誤差逆伝搬近似アルゴリズムは、Loihiの制約の中で動作する貴重な例を提供するものである。将来的にはより汎用化されたアルゴリズムが情報を過去に遡って伝搬するという因果逆転的な要件なしにBPTTを近似して、オンライン学習のスケールアップに成功する可能性もある。しかし、これらのオンラインアプローチはトレーニングデータをバッチ単位ではなくサンプル単位で処理し、ネットワークの重み更新が非スパースになる傾向から、ハードウェア効率と収束の課題に直面している。また、多数のサンプルを必要とするのもそれら誤差逆伝搬近似アルゴリズムの課題である。

教師ありリアルタイムオンライン学習の実現は、一般に人工知能分野での重要な課題であり、深層学習での実現はまだほど遠い状況にある。自然界を参考にしながらも、Loihiの例からも、異なるニューロン集団間や分散した意味表現の関連付けを形成するネットワークのモジュール化・浅い学習アルゴリズムにより焦点が当てられると予想されている。

センサとの統合

センサの高解像度化に対応するために単純にセンサとコンピューティング要素の間の通信帯域幅を拡大するだけでは、消費電力の増大と時間分解能の悪化を招く。ニューロモーフィックチップと、同期的に高密度のデータを送信する従来のコンピューティングの遺産とは基本的に互換性がない。したがって、センサ自体をイベントベースのパラダイムに再構築する必要がある。また、センサから生データを送信するのではなく、十分なスパースコーディングを行う必要がある。

たとえば、LASSOはその計算の重さからセンサーの統合には不向きだと考えられてきたが、SNN LCAの形態ではほぼコスト無しになる(従来技術に対して最大レイテンシ5桁、消費エネルギー6桁という異次元の改善を見せている)。ほかにも蝸牛や網膜など自然に倣った非線形変換によってさらなる大きな利得が得られると予想される。

また、センサとニューロモーフィックチップの三次元垂直統合によって両者のインターフェースの電力とレイテンシを劇的に改善できる可能性がある。

ロボティクス

何十年もの間、工学者やSF作家は人間と一緒に自律性と俊敏性をもって動作し、現実の世界でナビゲート・相互作用できるロボットを予見してきた。さまざまな分野の大きな発展はあったものの、このようなロボットは今日でも手の届かないところにある。このような未来のロボットを知的に制御するためには、環境の正確なモデルに依存する古典制御理論と、そのような環境のモデルを知覚に基づかせる人工知能の間で困難な統合を行わなくてはならない。動的でしばしば予測不可能な実世界の環境との対話は、最先端のロボットでも依然困難であるが、人間は難なくやってのける。生物の脳はまさにそのようなタスクを解決するために進化してきており、ニューロモーフィック技術の最も有望な応用分野だと考えられる。

DNNはコンピュータビジョンにおいて最高性能を出せるため、ロボットの視覚システム構築の第一の選択肢になる。今のままでもニューロモーフィックチップへの実装でレイテンシや消費電力を下げられるかもしれない。しかし、実世界の変動性と予測不可能性のニーズに対応するには、新しい適応的アルゴリズムが必須になる。このようなアルゴリズムはニューロモーフィックハードウェアの特性に適合し、アルゴリズムとハードウェアの共開発によっていずれ実現されると考えられる。

また、ロバストなロボットシステムは視覚・聴覚・触覚など複数の感覚モダリティを統合する必要がある。スパイクはモダリティを超えてタスクにとって重要な時間と空間の両方の情報をエンコードできる統一言語を提供できる。また、DNFsの動的な性質は、複数の感覚の異なるタイムスケールを橋渡しするアトラクタネットワークに記憶状態を作り出すことのできる、もう一つの統一基本要素を提供できる。再帰・フィードバック接続をもつDNFsは、感覚処理のトップダウン的な注意制御を実現し、それによってタスクに最も関係する側面に計算資源を集中したり、ノイズやオクルージョンを無視したりすることが可能にする。

実際に3つの異なる感覚に関するSNN DNFsをLoihiに統合して、ヒューマノイドロボットの環境との相互作用を制御することに成功している。この結果は脳の実現には程遠いものの、スパイクやアトラクタネットワークなどの共通のツールボックスを使って異種モジュールを構成することで、比較的複雑なアプリケーションをすでに構築できることを示している。

計画、最適化、推論(Reasoning)

計画や推論(この節ではReasoning、根拠を持って理由づけること)は間違いなく自然の知的システムの最も高度でとらえどころのない能力である。最近のディープラーニングの発展はシンボル未満のインファレンスと学習において大きな利益をもたらしているが、高次のシンボルおよび類推的推論タスクに同じ利益をもたらしていない。ましてやこれらの能力を活用して行動を計画し、ハイレベルな目的に対して最適化できる統合システムを提供することはできていない。Vector Symbolic Architectures(VSA、筆者注: Hyperdimensional Computingとも言う)は高次元空間における豊富な知識表現と推論をサポートする数学的コネクショニストフレームワークを提供する。VSAは深層ネットワークとこのサーベイで説明して最適化や探索アルゴリズムとのインターフェースにより、高速・高効率・スケーラブルな次世代AI機能を実現する道筋を提供できる。

スケーラブルなVSAフレームワークの第一歩として、スパイクベースの位相連想記憶ネットワーク「TRAM」がLoihiに実装された。VSAの効率性とスケーラビリティを制限しているのは全対全結合をもつ連想メモリである。これに対し、TPAMはネットワークの接続性と活性化の両方にスパース性を導入してスケーラビリティを改善した。

プログラミングモデル

Loihiの有望な成果と切り開かれた可能性によって、ニューロモーフィック分野が直面する最も緊急的な問題の一つが、プログラミングモデルとフレームワークが断片的で構成不可能な寄せ集めであるということである。公開されているSNN開発フレームワークは3つのカテゴリに分けられる。一つ目は深層学習向け教師あり学習フレームワーク、二つ目は従来アーキテクチャ用に低レベルプログラミングAPIを提供するSNNシミュレータ、3つ目はニューロモーフィックハードウェア用の低レベルフレームワークである。この分野の探求のレベルが高まっていることは心強いことだが、この分野で研究されているアルゴリズムの幅広い多様性を網羅する統一プログラミング抽象化を提供するフレームワークはまだ存在しない。異種モジュールの統合をさらに推し進めるためにはそのようなフレームワークが必要になるであろう。

経済的実現性

ニューロモーフィック・アーキテクチャにおける記憶と演算の緊密な統合は恩恵の元であると同時に災いの元でもある。現在の半導体産業の経済性はフォンノイマンアーキテクチャに高度に最適化されている。(組み込みでない通常の)DRAMのビット当たりのコストはロジックプロセスで最も密度の高いメモリのビット当たりのコストより100倍安いオーダーになっている。大規模なメモリを必要とするワークロードに対して、従来のアーキテクチャは安価なメモリと高価なロジックの間で物理的な実装を分割することで最適なコストを実現している。ニューロモーフィック・アーキテクチャは記憶と演算の統合によってそのどちらかのプロセスを選ばなけらばならないが、Loihiは半分以上ロジック回路であるため、高価なロジックプロセスを選択するしかない。

このため、大規模ワークロードではニューロモーフィック技術は必然的にハイエンドのニッチに位置づけられる。このニッチを拡大するために、まずは小規模な問題に対して付加価値を与える必要がある。つまり、最初に登場する商用のアプリケーションがエッジやセンサノードやロボットシステムになることが予想される。

長期的には、ニューロモーフィック・アーキテクチャのコストを下げるために製造技術の革新が必要になる。これは、抵抗変化性メモリ/磁気メモリ/相変化メモリ素子のクロスバーなど、高密度で安価に集積された新しいメモリによってもたらされる可能性がある。しかし、真にアナログなメモリには(筆者注:現在のメモリの基準からいうと非常に多値を覚えられるメモリ。一素子あたりの記憶密度の大幅な上昇やメモリ素子の動作するアナログ領域での超並列演算などが期待されている。)、周囲のアーキテクチャ要素の多くをアナログ領域に押しやることなく、その密度とコストの利点を維持する必要があるという特有の問題が生じる。

低エネルギーかつ高速でCMOSと統合されたメモリの密度にブレイクスルーがなければ、アーキテクチャ・アルゴリズム・ソフトウェアの課題が解決されたとしても、小規模な実装対象以外の主流デバイスへの普及がコスト面で制限されることになるであろう。

まとめ

このサーベイで説明したレイテンシと消費エネルギーのベンチマーク結果の多くが図にプロットされている。このように統一的に見ると明確な傾向が見えてくる。

  • レート符号化フィードフォワードネットワークと相性が悪く、大規模なネットワークではLoihiの性能が著しく低下する。
  • スパイクタイミングが計算上重要な意味を持つ場合、誤差逆伝搬を用いたネットワークでもアルゴリズムから組み立てられたネットワークでも大きな利益が得られる。
  • Loihi上で最も性能が良いワークロードはすべて高リカレントネットワークである

その他の評価軸、例えば、バッチ処理時のスループットや達成可能な最高精度などはLoihiはあまり好ましくない。しかし、相当な種類のワークロードに対して、パーセンテージではなく係数や桁数で測定される利点を提供できることは明らかである。

長大な記事ではあったが、ニューロモーフィックコンピューティングの可能性の大きさを感じることができたと思う。新原理のコンピュータというと量子ばかりが注目されているが、次世代のAIを実生活の中で動かすためにはこのような低消費電力で低遅延なコンピュータが不可欠になるはずである。また、このようなコンピューティング技術の発展によって、逆に人間の脳が実現している知性や感情や意識への知見が増していくとも考えられるという点で今後楽しみな技術といえる。

 

 

 

押尾怜穏 avatar
奈良先端科学技術大学院大学 博士前期課程2年生。主たる興味はSpiking Neural Networks、Neuromorphic Computingや機械学習アクセラレータなど、AIとハードウェアの結節点。

記事の内容等について改善箇所などございましたら、
お問い合わせフォームよりAI-SCHOLAR編集部の方にご連絡を頂けますと幸いです。
どうぞよろしくお願いします。

お問い合わせする