AI座席確認システム

EXcited About The Future

システム作成に至ったきっかけ

当社は2018年1月に本社を川崎からみなとみらいへ移転しました。
そのタイミングでフリーアドレス制度を導入し、社員同士の交流をしやすい環境を作りました。
しかし、フリーアドレスの課題としてだれがどこにいるかわかりづらくなり、人を探す時間がかかるようになってしまいました。
この課題を解決するために、誰がどこにいるかがわかるシステムを作成することにしました。

作成したシステム

図1のような社内マップと社員の顔のアイコンを表示する在席システムを作成しました。
利用者は自分のアイコンを今自分がいる位置に移動させて、他の社員に自分の位置を知らせることができます。これで誰がどこにいるかが一目でわかるようになるはずです。

座席システムWEBページ

図1.在席システムWEBページ

システムの課題

システムは作成しましたが、利用者は想定していたより増えませんでした。
誰がどこにいるかわからないという課題は存在しているのに、なぜ利用者が増えないのかを考察しました。考察の結果、このシステムが使われない理由は、移動をするたびに自分のアイコンを動かす手間が面倒すぎたからだと考えました。
手間を無くすはずのシステムが、面倒な手間を新しく作っていたのです。

課題解決策

システムを使ってもらう時に、利用者が移動するたびにアイコンを手動で移動させてもらう形では利用者が離れていってしまうので、自動でアイコンを移動する仕組みを作ることにしました。

自動で位置を判別する仕組みは「Wi-Fiの電波強度」を使う方法を考えました。
Wi-Fiの電波は距離が遠ければ弱く、近ければ強いので、電波の強弱の情報からだいたいの位置がわかるはず、という目論見です。

図2.位置判別の仕組み

AIの開発

AIの作成

今回は「Wi-Fiの電波強度」と「位置」をAIに学習させて利用者の位置を判別させることにしました。
AIは学習をするためにたくさんのデータが必要です。しかし、「Wi-Fiの電波強度」と「位置」のデータは当然ながら持っていないので、データの収集から始めました。

「Wi-Fiの電波情報」と「現在地(手動で設定)」をセットにしてデータ登録するデスクトップアプリを作成し社内をひたすら歩き回ることでデータを集めました。
図4の●は実際にデータを取得した場所です。歩き回った結果、学習のためのデータを330個集めることができました。
表1に今回収集したデータを示します。データはX座標とY座標を記録した位置座標と、電波の強さをパーセントで表した電波データを合わせたものを1データとしました。

データ取得地点

図3.データ取得地点

収集データ(1データ)

表1.収集データ(1データ)

AIの精度

初に作成したAIの精度はあまりよくありませんでした。平均で15mのずれがあり、これでは実際の位置と違いすぎて役に立ちません。もっと精度を上げる必要があります。

なぜこんなにずれてしまうのでしょうか。
学習に使ったデータを見てみるとなんとなく理由がわかりました。

下の表2は同じ場所で取得した実際のデータです。
同じ場所でも急に電波が取得できなくなるタイミングがあるようです。これだとずれが起こるのも納得です。
しかし、こんなデータからでもどうにかして精度を上げる必要があります。

地点Aでの電波強度の変化

表2.地点Aでの電波強度の変化

精度の向上① データの追加

精度がわるいのはデータが少ないからかもしれないと考え、もう一度社内を歩き回りデータを2倍に増やしました。
2倍になったデータを使って再度学習を実施し、精度を測定しました。残念ながら精度は向上しませんでした。

精度の向上② 特定エリアのデータの追加

AIの予測結果を詳しく見てみるとずれが大きい場所と小さい場所がありました。そこで、ずれが大きい場所の精度を上げるために、ずれが大きい場所のデータだけ増やしました。
この方法も残念ながら精度の変化は見られませんでした。

場所ごとの違い

図4.場所ごとの違い

精度の向上③ 強い電波だけを抽出

取得したデータを確認してみると、距離が遠くて弱い電波は安定して取得できず、突然電波強度が0になっていました。この突然の変化が学習を難しくしていると考え、近くて強い電波だけを学習用のデータとして使うようにしました。
このデータを使って再度学習を実施し、精度を測定しました。すると、ずれが11mに縮まりました。この方法は有効だったようです。
利用する電波の選択

図5.利用する電波の選択

精度の向上④ 回帰モデルではなく分類モデルに変更

今までは電波の強弱から現在地の正確な座標を導出していました。しかし、なかなか満足する精度にならなかったため、モデルに回帰をさせるのではなく、分類をさせるように変更することにしました。
会社のマップを図6のようにエリア分けをし、電波の情報からどのエリアで取得したのかを判別します。
この新しいモデルで学習を実施し、精度を測定すると、85%の正解率で分類が成功しました。ずれの距離でいうと平均で9mのずれになりました。CNNは回帰より分類のほうが得意なようでした。
マップのエリア分け

図6.マップのエリア分け

データの課題

前述したとおり、直前まで取得できていた電波が、突然取得できなくなる現象が発生するため、精度が悪くなっていることが考えられます。
対策として、1度の判別で何度か電波を取得して、数値が一番高いときの電波を使用するなどの対応策を考えています。

AIの運用

AIを作成して利用するからには運用をしていく必要があります。
AIならではの運用として「AIを使っているうちに賢くする」というやり方が考えられます。ここでは、今回考えた「AIを使っているうちに賢くする」運用について解説をしていきます。

AIの精度を上げていく方法として考えられるのは、「学習の方法を変えること」と「学習に使うデータを増やすこと」の2種類が考えられます。
学習の方法を変えて精度を上げる場合は、手作業でのコードの作成と精度の検証を実施する必要があるので自動化は難しいと考えました。
もう一方の、データを増やして学習しなおす方法は、データを収集する仕組みさえ作ってしまえば容易に自動化が可能だと考え、仕組みを検討しました。

新しいデータの収集

利用者からデータを収集する流れを図7に示します。
利用者のいる位置の電波情報を取得するためにデスクトップアプリを作成し、配布しました。
利用者は任意のタイミングで自分のアイコンを正しい位置に配置して、電波情報をサーバーに送信することができます。
また、在席マップをデスクトップアプリとして配布したことで、PC立ち上げと同時にアプリも起動させる機能も追加させることができました。これにより、利用者がシステムを立ち上げるという手間をなくし、利用者の離脱を減らすことができます。

データ収集の流れ

図7.データ収集の流れ

アイコンの位置修正イメージ

図8.アイコンの位置修正イメージ

再学習の実行

データを集める仕組みは作ることができたので、後は再学習をどうやってするかを考えます。

自動で学習をするときにある問題があります。それは「過学習」という現象です。
AIは同じ問題を解かせすぎるとその問題しか解けなくなるようになります。つまり、実際に使ってみたらあまり使えないということになります。
逆に、問題を解かせる回数が少なすぎても問題が解く力を持たないAIになってしまいます。なのでちょうどいい学習というのをさせる必要があります。

学習回数によるAIの能力差

図9.学習回数によるAIの能力差

このちょうどいい学習を行う方法として「EarlyStopping」という手法を使いました。
「EarlyStopping」は指定した値が学習中に向上しなければ、学習を自動で終了させるという手法です。
表3に「EarlyStopping」の例を示します。
今回は「テストデータを入れたときの正解率」が「一定回数」向上しなければ学習を停止させるといった条件でEarlyStoppingを実装しました。

EarlyStoppingの例(「正解率」の向上なしの回数が「3回」で終了)

表3.EarlyStoppingの例(「正解率」の向上なしの回数が「3回」で終了)

これでちょうどいい学習をしたAIが出来上がりました。

次に、この「新しいAI」と「今動いているAI」を入れ替えてAIの更新をしてしまいたいのですが、注意しなければいけないことがまだあります。
もしかしたら、新しく作ったAIのほうが性能が低いかもしれません。データを増やした結果、精度が悪くなることもあるので、作るたびに現行のAIと精度を比較して、新しいAIのほうがよかった時だけAIを入れ替えるべきです。
以上のことを踏まえ、使っているうちにAIを賢くするために必要なものを図11にまとめます。

AIの精度比較イメージ

図10.AIの精度比較イメージ

AI入れ替えプロセス

図11.AI入れ替えプロセス

AI運用の課題

今回、データは利用者に登録してもらう運用を考えていますが、利用者から間違ったデータが送られてくる可能性があります。誤ったデータは、あるだけで精度が下がってしまうのでなんとかして除去をしていきたいです。
解決方法は現在検討中です。

その他には、Wifiのアクセスポイントを交換等で別のものに入れ替えられてしまうと、データを収集しなおす必要があります。少しずつアクセスポイントの入れ替えを行うような場合は、日々集めているデータで対応できるかもしれませんが、一斉に入れ替えをされてしまうとAIがまったく推測できない状態になってしまいます。そんな場合は運営がデータ収集のために歩き回る必要があるということも課題になっています。
こちらも解決方法は検討中です。

まとめ

AI開発編

Wi-Fiの電波強度から位置を推測するAIを作成

    • 精度の向上に効果があったこと
      • 入力データの特徴が取りやすいように変形
      • 正確な座標ではなくクラスに分類させる(回帰ではなく分類をさせる)

AI運用編

使っているうちに賢くするプロセスを考案

    • データが集まる仕組みを作っておく
    • 自動で学習するときは「EarlyStopping」を利用。(過学習回避のため)
    • 新しいAIがいいものとは限らないので、新旧の比較をする

システムの応用先

今回は「Wi-Fiの電波強度」から「位置」を推定するAIを作成しました。

Wi-Fiは既に設置している場所も多いため、新しく機材を設置しなくてもこのAIを適用することができます。このAIを適用することで、GPSの電波が届きにくい地下等でも正確に現在の位置を知ることができます。

また、今後もWi-Fiは様々な場所に設置され、利用できる環境が増加することが予想されるので、応用できる場面も増えることが期待できます。

感想

AIの開発前はもっと正確な位置が予測できると思っていました。しかし、電波が想定より不安定だったために精度の改善策が必要になりました。

様々な改善策に取り組んだおかげでどんなことがAIの精度に有効かの知見を得ることができました。

現在はコロナの影響で出社している人が少なくなり、この在席システムを使う人も少なくなりました。このシステムのあり方をもう一度考える必要があると考えています。




※記載されている製品名、社名は、各社の商標または登録商標の場合があります。
※記事内容は掲載当時のものとなっております。

お問い合わせ

CONTACT

Webからのお問い合わせ
エクサの最新情報と
セミナー案内を
お届けします
ソリューション・サービスに関する
お電話でのお問い合わせ

平日9:00~17:00※弊社休業日を除く