Learningについてご紹介します。Learningモデルをはじめとした多くのモデルが活用されています。いった非構造化データが活用できるようになり、大きなブレークスルーとなっていることも大きく影響していると思います。一方で画像をはじめとした大容量かつ個人情報を含むようなデータを扱う際、データ通信負荷やデータ秘匿性への懸念もあります。モバイル端末で収集したデータや工場内や車載機で取得されるデータなど、分散したところからデータが生成される場合、それらを活用する際にデータを1ヶ所に集約しモデルを作成するケースがあげられます。医療分野のデータでは特にプライバシーに配慮したデータの利活用が求められています。これらの生成されるデータを活用しモデルを作成する際、大容量データの転送負荷やデータ秘匿性に課題が発生します。Learning(連合学習)があります。Learningはデータを集約せず各端末に分散した状態で機械学習を行う手法であり、Googleにより2017年に提唱されました。Keyboard(Gboard:モバイルデバイス用の文字入力システム)の検索キーワード予測機能が取り上げられており、実際にGoogleのキーボード予測変換にはこの技術が活用されています。詳細な紹介は下記が詳しいです。Learning:モバイルデバイスを用いた分散学習技術www.school.ctc-g.co.jp一部引用すると下記のような内容となります。検索テキストに対する関連キーワードの選択で機械学習モデルを使用しているが、ユーザーの入力テキストをサーバーに送信するのはプライバシー観点から問題となり得る。従ってデータはユーザーのデバイス上に配置しておきデバイス上でモデルを更新し、更新したパラメータの差分データのみサーバーへ送信する。Learningでは、モデルは各端末上で作成しモデルのパラメータのみ中央サーバーに送るため、学習データは中央サーバーに送信する必要が無く、データの通信量の削減につながります。画像などの大容量データの場合は特に効果を発揮すると思います。データは各デバイス上に分散して存在しており、既存の中央集権的なモデルと比べデータの移動が最小限となるため、プライバシー保護に優れています。懸念点として、モデルによってはGPUが必要となり各デバイスにGPU環境を用意する場合はその分コストがかかるため、適用する際は自社のデータ通信環境やデータ転送業務コストとの兼ね合いになります。初期モデルの構築以降でモデルのメンテナンス等をする際、誤差によるモデル改善示唆などが得られにくい点も懸念として挙げられます。分散デバイス上でモデルを学習する際に誤差が大きいサンプルを記録しておき、それらのデータのみ中央サーバーへ送るなどにより対応可能かもしれません。Learningの具体的な活用フローを下記に示します。Model)をダウンロードする2クライアントではクライアント内のローカルデータを用いてモデルを作成し、共有モデルのパラメータとの差分を計算する3差分情報のみをクライアントからサーバーに送信する4サーバーは複数のクライアントから連携された差分情報を取り込み(※モデルの重みを対象として、データサイズによる加重平均など)、共有モデルをアップデートする5上記1~4を1つのラウンドとして指定のラウンドまで繰り返すこのようなアーキテクチャーとすることで下記のメリットが得られます。LearningではAIモデルの構築において従来のようにデータを1か所に集約することなく、分散された複数のクライアント環境によって並列的に学習を行うことが可能となります。各クライアント環境にあるデータを用いてモデルの学習を行い、そこで取得されるモデルの重みを中央サーバーに集約・統合することで、それぞれのクライアント環境のデータ量が少量・不均衡であっても全てのデータを使用して学習を行う場合と同等のモデルを構築することが可能となります。>ここでは実装例を紹介します。CIFAR10の画像データを使用した分類タスク(クラス:10)を想定します。ここではflowerというライブラリを使用し、ローカルPC環境内でサーバーとクライアントを立てて完結する検証とします。flowerの詳細は下記を参照ください。flower.dev下記が準備するファイル群です。Modelのクラス、学習・テスト用の関数を記述。server.py:サーバーとしてクライアントからの要求に応答。複数クライアントからの結果を加重平均した評価関数を記述。Modelのロード、サーバーからのパラメータ取得、サーバーへのパラメータ送信、ローカルデータを使用したモデル学習を記述。client_2.py:client_1.pyと同様。fl」のように記述してインポートします。flwr」でインストールが必要です。fl.server.start_server()でクライアントからの接続に応答します。※サーバーのアドレスは、すべてのインターフェースでLISTENする0.0.0.0としています。num_rounds=4としているので、サーバーとクライアント間で4往復して学習が実施されます。)サーバーと通信するためのサーバーアドレスは、fl.client.start_numpy_client(server_address=***)の箇所に記述していますが、ここではサーバーはローカルホストにあるためserver_address="127.0.0.1:8080"としています。実行手順ターミナル(またはコマンドプロンプト)を3つ用意し下記の順に実行します。下記のログのように、ラウンドごとに精度が向上することが確認できます。0.6659となっていることがわかります。期待される活用領域としては、これまでの業界横断的なデータ活用が難しかった医療業界のデータや、不正検知や与信審査など業界共通でモデルを活用できる金融業界などがあげられます。病状を判定するモデルや疾患箇所を特定するモデルなどを作成する場合、病院ごとに患者のプライバシー情報を保護する必要がありますが、病状などの情報は病院に限らないため複数の病院の患者情報を用いてモデルを作成したほうが良いはずです。Learningを用いる場合、病院ごとに患者情報を用いてモデルを作成するため、データの外部持ち出しはなくプライバシーを確保することができます。各病院から算出されるパラメータ更新情報を中央サーバで集計することで複数の病院の患者情報を考慮したモデルを作成することができます。Learningを活用した事例を紹介します。万枚のMRI画像によって脳腫瘍判定モデルが学習されました。向上させる能力を実証しています。Studywww.intel.comOwkinの取り組み医療系AIスタートアップのOwkinは、連合学習をコア技術に医療データのプラットフォームを運営しています。Owkinは、フランスの4つの主要病院内に保管されているデータを使用して、ネオアジュバント化学療法に対するトリプルネガティブ乳がん(TNBC)患者の将来の反応を正確に予測できるAIモデルを構築しています。この研究は、複数の病院の病理組織データを使って、病院からデータを出さずに機械学習モデルを学習させた初めての例とされており、医学研究におけるFederatedLearningの画期的な実証となります。Learningを適用している事例はありませんが、適用が検討できるケースを例として紹介いたします。NRIではカーボンニュートラルに向け、トランザクションベースでCO2排出量の算定を行う製品(NRI-CTS)を開発していますが、現状多くの企業では自社の製品を作る際に排出するCO2排出量は統計的に算定された外部のデータベースの原単位をもとに活動量を掛け合わせて算出しています。一方で、これからの業界動向として実測値に基づく算定が求められてきますが、すべてを実測値算定に置き換えることが現実的に難しい企業もあるかと思います。その際に活動量や削減努力などの項目をもとに排出量を予測するモデルを作成することで、一律な原単位によるCO2排出量の算定と比較して確度が高い算定が期待できるでしょう。Learningの概要と実装デモ、事例についてを記載しました。Learningですが、ビジネスや業界標準化の取り組みと合わせて活用の検討が進めば、より社会へのインパクトがある分野となります。06:59お問い合わせはこちらデータサイエンスに関して、お気軽にご相談ください。»このメディアについて野村総合研究所の現役データサイエンティストが最新の動向を伝えるためのブログです。reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。