エッジデバイスって結局なに?機械学習との関係は?




IT界隈ではよく知られるようになった「エッジデバイス」というワードですが、これは一体何を表しているのでしょうか。今回の記事では、エッジデバイスというものが何かという点と、エッジデバイスと機械学習を組み合わせる意味について解説していきたいと思います。

エッジデバイスとは

「エッジ」という言葉は直訳すると「端の」という意味を持っています。エッジデバイスという文脈で使われる場合は「末端」という意味が最も近いです。

ふち。へり。端。

コトバンク「エッジ」より

さて、エッジデバイスとはクラウドの対義語のようなものです。身近な例を挙げると、スマホです。そもそもエッジデバイスとはIoT(Internet of Things)を語る文脈で使われる言葉です。IoTとはあらゆるものをインターネットに接続して互いに連動しあうシステムの思想のことでした。

例えば洗濯機がインターネットに接続されれば、洗濯機もエッジデバイスと言うことになります。インターネットに接続されたひとつひとつの端末がエッジデバイスと呼ばれているのです。

一方でその対義語であるクラウドは、GoogleやAmazonなどが用意した超巨大サーバーなどのコンピューターリソースをインターネット経由で利用するシステムを指しています。

ここまでをまとめたエッジデバイスとクラウドの特徴は以下の通りになります。

意味思想計算資源(スペック)保有者
エッジデバイスインターネットに接続された機器分散的少ない個人レベル以上
クラウド巨大なコンピューターリソースを有した機器中央集権的大きい巨大企業以上

エッジデバイスと機械学習

さて、ではエッジデバイスとクラウドの特徴について考えたところでエッジデバイスと機械学習の親和性について考えていきたいと思います。

そもそもエッジデバイスには、そこまで大きな計算機能がありません。身につける機器というのは小型にしたほうが持ち運びがしやすいために、スペックは必要最小限になる傾向があるからです。そのため、大きな計算コストがかかる操作についてはクラウドに任せようと考えるのは自然なことです。

大きな計算コストがかかる機械学習計算はインターネットを経由してクラウドに任せ、結果のみをエッジデバイスで利用するのは合理的に感じるでしょう。

しかし、例えば自動運転車について考えてみようと思います。自動運転車は常時インターネットに接続されていることを前提としているものの、万一通信障害が起きたことによって飛び出してきた人を認識することが出来ずに引いてしまったら大問題です。

つまり、自動運転車などミスが許されないデバイスに関してはなるべく通信障害などのリスクを減らすために、エッジ側で処理をする必要性が出てきます。ここで機械学習の特性がうまく適応されます。

機械学習のモデル利用はエッジデバイスと相性がいい

機械学習とは、大きく2つのステップがあります。1つ目のステップは、大量のデータを利用して予測モデルを作成するというものです。2つ目のステップは、作成した予測モデルを利用して実際に予測を行っていくものです。

ここで注目すべきポイントは、1つ目のモデルを作成するステップでは大量の計算資源を必要とすることです。何万、何十万、何百万、もしくはそれ以上のデータを利用してあらかじめ定義したニューラルネットワークに学習させるわけですから、クラウドを活用しないといつまで経っても計算が終わりません。

しかし、2つ目の「モデルを利用して予測を行う」という動作については、そこまでコンピューターリソースを必要としません。そのため、自動運転車などではあらかじめ車というエッジデバイスに入れてあるモデルを利用して常時カメラから得られた画像を解析するという選択肢が考えられます。

このエッジ側で計算を行うメリットは、もちろんネットワークに障害が起きたとしても物体認識を行うことが出来るという点です。このように、クラウドとエッジの両方の特性をうまく利用することで、よりスマートで快適な世の中がつくられていくと考えられているのです。

最後に

いまや家電やスマホなどあらゆるところでITの恩恵を受けている社会となりつつあります。今後はこういった機器が次々にインターネットに接続して生活スタイルが変わっていくことがあり得るでしょう。もしかしたら、エアコンは無料で手に入るが、利用には1ヶ月2000円払う…というようなサブスクリプションモデルへの転換もありえるかもしれません。

エッジデバイスとクラウド、分散と中央集権。この2つの思想は今もなお議論されていますが、どちらかに偏りすぎること無くうまく付き合っていけたらいいなぁと思う最近です。