情報系のべんきょう

情報系のノートを作ります.ビギナー向けでは無いです.

第3章 IoTデータ活用技術

3-1 IoT データ活用の概要

省略


3-2 IoT データ処理方式

p57 データ保存方式

IoTデータには,データ更新はほとんど発生せず,トランザクションも不要,という特徴がある.

ビッグデータは,Volume,Velocity,Varietyの3Vで表される点が従来のデータとは異なる.

RDBSQLを用いており,複雑なデータ検索や集計が可能であるが処理のオーバーヘッドが高い.一般的にはスケールアウトによる能力向上は難しく,スケールアップに頼る必要がある.

一方でNoSQLはデータ整合性の保証を緩めることで,スケールアウトが容易に行え,またデータ構造の変化に柔軟に対処しやすいという特徴がある.

よって,IoTデータの処理にはRDBMSよりNoSQLタイプの方が適している.

RDBMS

複数の表(table)形式でデータを管理し,表同士の関係(relation)を設定することで複雑なクエリに応えられる.

行指向型と列指向型がある.

NoSQL

アーキテクチャの違いにより様々な種類があり,以下が代表的である.

(1)キーバリュー型

キー値から値を取得する.

高速でスケールアウトしやすいので,キャッシュ用途やログデータの保存に向いている.

(2)ワイドカラム型

キー値に対して複数のカラムを持たせられる.

データごとに異なるカラムを持たせられるので,複数種類のセンサデータの格納などに向いている.列方向の集計も得意である.

(3)ドキュメント型

XMLJSONなどのドキュメントをそのまま格納できる.

スキーマが不要で,個々のドキュメントのデータ構造が自由なので,ニュースサイトやブログなどのWebアプリケーションに向いている.

(4)グラフ型

データ同士の関連性を管理する.

人と人の関係性を表したり,経路探索における最短経路の計算などに向いている.

p62 Hadoop

大規模データの蓄積・分析を分散処理技術により実現するオープンソースフレームワークである.

Hadoopを構成する要素は以下がある.

(1)HDFS(Hadoop Distributed File System)

分散ファイルシステムであり,データを上手く分散してノードに格納することで,データノードが全て故障しない限りデータは保証される.

(2)Hadoop MapReduce

分散コンピューティングフレームワークであり,Map処理とReduce処理に分かれる.

Map処理ではデータを分割し,分析に必要な部分を抽出する.

Reduce処理ではMap処理で得られたデータを計算する.

Map処理とReduce処理は並列実行可能であり,スケールアウトで性能向上を図れる.

(3)Apache Mahout

協調フィルタリングやクラスラリングなどを得意とするアルゴリズムである.

(4)HBase

大規模分散データベースである.

p64 ストリーミング処理

データが発生したタイミングでデータを逐次処理し,分析結果を表示する処理方式である.

ストリーミング処理が必要な場面は以下がある.

・大量かつ無限に発生するデータの処理

・一刻を争うセキュリティ対策

SNS,周辺情報,株価,為替などのリアルタイムを活かした価値創出

リアルタイムなデータの通信では,publishとsubscribeを導入し,通信相手先を意識することなくデータのやり取りを効率的に行えるPub/Subメッセージモデルが有効である.

p66 CEP(Complex Event Processing)

複数のデータ元から時系列に生み出されるデータをリアルタイムに処理,解析して出力する処理方式である.

適用例として,株価,SNSテキスト,センサデータなどのデータを扱うことが多い.

業務システムのような多数のイベント(生産ライン,営業,物流までの全体)を組み合わせて処理するシステムにCEPは向いている.


3-3 IoT データ分析方式

p67 データ分析処理手順

データ分析の処理手順は以下のようになる.

(1)現状把握/目標設定

現状把握と目標設定を事業的,技術的側面から考察する.

事前に全てを考慮するのは現実的ではないので,少量データによりアジャイル的に進めることが多い.

(2)データ収集

なるべく欠損やノイズのないデータを十分量収集し,適切なデータベースで保管する.

教師あり学習では教師データを用意する必要があり,コストがかかる.

(3)分析方法選択

詳しくは後述.

(4)データ前処理

詳しくは後述.

(5)データ分析

訓練用データと評価用データを分ける.訓練用データで分析モデルを学習し,評価用データで学習したモデルを評価する.

機械学習を行う場合は,分析モデルにハイパーパラメータが多数あるため,チューニングが必要である.

深層学習では,計算量が大きいため,学習用環境を用意する必要がある.

(6)結果の評価

詳しくは後述.

(7)導入と運用

評価の結果,目標が達成できたら導入運用をする.

導入後も定期的にデータ分析やチューニングが必要である.

p72 データ分析手法

データ分析手法は大きく分けて統計解析と機械学習がある.

統計解析は,既知のデータの特性を説明することが主な目的である.

機械学習は,既知のデータから未知のデータを予測することが主な目的である.

p73 統計解析

誤差や異常値,ノイズなどを伴ったデータから意味ある情報を引き出すために統計的な解析を行う.

統計解析は大きく分けて記述統計と推測統計がある.

記述統計はデータ全体がわかっているときに用い,それを平均値,中央値,比率,分散,標準偏差などに要約することでデータ全体のイメージを直感的に掴むことが可能である.

推測統計は一部分のデータからデータ全体の推定,検定,分類,相関などを分析する.

多変量解析とは,複数の変数からなる多変量データを数学的に扱い,これらのデータ間の関係を明確にする.関係を説明する変数を従属変数,従属変数を説明するために用いる変数を独立変数という.多変量解析は,予測,分類の目的のために使われる.

(1)予測

(a)相関分析

変数間の関連性を調べる分析であり,相関係数の有意性を出力する.

(b)回帰分析

影響を及ぼす独立変数と,影響を及ぼされる従属変数の間の関係を表す式を統計的手法で推定する.一次関数で表すことが多く,このときは最小二乗法を用いることが多い.

複数の独立変数で一つの従属変数を予測する重回帰分析や,被従属変数が数値ではないロジスティック回帰分析などもある.

(c)決定木分析

ある事項に対する観察結果から,その事項の目標値に対する結論を導ける.

数値で予測を表現する予測問題と,定性的や2値で予測判定を行う識別問題に分けられる.

応用例は,流通業界や外食産業の顧客分析やマーケティング最適化などである.

(2)分類

(a)主成分分析

データの中からいくつかの属性を選択し組み合わせ,新たな属性を作ることでデータ全体の分布傾向を把握する分析手法である.

(b)クラスター分析

データ全体を,データ間の類似度に従っていくつかのグループに分類する手法である.データ分類が階層的に行われるウォード法,特定のクラスター数に分類するk平均法がある.

p77 機械学習

訓練用データにより学習モデルを構築し,評価用データで分析結果を出力する.

(1)教師あり学習

独立変数と従属変数の組を大量に学習させ,予測モデルや識別モデルなどを構築する.訓練用データと正解情報をもとに学習モデルを構築し,未知のデータを与えることで分析結果を出力する.

ベイジアンモデル,サポートベクターマシン,ランダムフォレストなどがある.

(2)教師なし学習

独立変数のみを大量に学習させ,特徴を自ら学習して学習モデルを構築する.

手法の例としては,クラスタリングや異常検知がある.

p81 強化学習

行動に対する報酬を最大にするためにはどのような行動をとるべきかを相互作用により学習する問題のフレームワークである.

p82 深層学習

人間の脳の神経回路を元にして,それを模倣する形でモデル化したニューラルネットワークを積層して多層構造にしたモデルで学習を行う.

深層学習以前の機械学習では,どの独立変数を用いれば精度の高いモデルが得られるかという特徴抽出にコストがかかっていたが,深層学習ではコンピュータが行うことができる.

学習目的に応じて,以下のような学習モデルがある.

(1)CNN

データが2次元構造や3次元構造を持っているときに有効である.

音声認識自然言語処理などに用いられる.

(2)RNN

時系列のあるデータを扱うことができる.

音声合成音声認識機械翻訳などの自然言語処理などに用いられる.

(3)オートエンコーダ

ノイズ除去,次元圧縮などに用いられる.

(4)強化深層学習

行動価値関数を深層ニューラルネットワークで表現することで,処理時間やメモリ量を低減している.

p69 データ前処理

(1)データクレンジング

(a)異常データ処理

異常値や外れ値を削除したり,平均値や前後の値に置き換えたり,フィルタリング処理をしたりする.

(b)欠損データ処理

機器の不具合や通信不良などにより欠損したデータは,再度取得を行ったり,補完をしたりする.欠損データを除いて分析を進めることもある.

(2)データ加工・整形

(a)リサンプリング

データ計測頻度が多いとデータポイント数が必要以上に多くなりえるため,複数のデータポイントを集約するダウンサンプリングを行う.

データ計測頻度が不規則であるなど,計測タイミングが異なり必要なデータポイントが存在しない時には,補完処理などでデータの時系列を揃えるリサンプリングを行う.

(b)データ変換,統合

データを分析しやすい形に変換する.以下のような例がある.

自然言語データを数値ベクトルにする.

・指数的に変化するデータを対数変換する.

・周期性があるデータはフーリエ変換する.

・画像データはエッジ抽出や領域分割する.

最後に,得られた様々なデータを統合して1つの多次元でーたとする.

(c)正規化,標準化

単位が異なるデータを比較するために行う.

正規化(normalization)

元データを一定範囲に入れるような操作をする.元データを構成する数値が一定範囲に入っている場合や,データ分布が一様分布に近いときなどに使われる.

標準化(standardization)

データ分布の平均値が0,分散が1になるように変換する.分布が正規分布に近いときなどに使われる.

(3)データ水増し

データが十分に収集できず必要な量に満たないとき,収集済みデータを用いてデータ量を用いて水増し(data augmentation)を行う.

(a)変形

収集済みデータを変形,加工することで水増しする.

(b)データ混合

収集済みデータのいくつかを混合,合成して新しいデータを作成する.

代表的手法にMixupがある.

(c)シミュレーション,生成

3D,CGなどで実環境をシミュレーションすることで学習データを生成する.実データの収集にコストがかかったり,めったに起きない状況や危険な状況のデータを利用したいときなどに使われる.

p87 分析結果の評価

教師あり学習では,特定の訓練データに対して学習をしすぎると,学習モデルが訓練データに過剰に適合することで未知の入力データに対して誤差が悪化することがあり,過学習という.そこで,得られたデータを訓練用と評価用に分け,訓練用データでモデルを学習し,評価用データでモデルの精度を評価する交差検証を行う.

訓練用データによる誤差を訓練誤差,未知のデータに対する誤差を汎化誤差という.

交差検証には,ホールドアウト法,k分割法などがある.

p89 機械学習の説明可能性

深層学習などの機械学習は予測精度が高いことが多いという長所がある一方で,ブラックボックになりやすいという短所がある.

機械学習の説明可能性に着目した手法は以下がある.

(1)説明性の高さ

判別モデルのどの特徴量が重要かを読み取る手法は以下がある.

・線形回帰

・決定木やその派生手法(ランダムフォレストなど)

ベイジアンモデル

これらは説明性が高い代わりに,複雑な問題には必ずしも精度が高いとは言えない.

(2)入力のどの部分に着目したか

学習モデルの出力結果から演算を逆に辿って入力データのどの部分が出力に影響するかを示す手法である.

入力のどの部分に着目したかの手法にはGrad-CAMがある.


3-4 IoT データ活用技術

p101 IoTプラットフォーム

IoTプラットフォームは一般的にはサーバまたはクラウドを指すが,ゲートウェイ以降のクラウド側の部分と後段の可視化分析も含めて広義のIoTプラットフォームということもある.


3-5 IoT ロボットとIoT

省略


参考

IoT技術テキスト第3版

【MCPC】第6回IoTシステム技術検定のうろ覚え過去問

https://www.gg-sikau.com/?p=325

IoTシステム技術検定中級 テキスト第2版抜粋 音声読み上げ用

https://qiita.com/sxnxhxrxkx/items/bda596a4a6abc2504385#%E7%AC%AC1%E7%AB%A0-iot%E6%A6%82%E8%A6%81

難なく MCPC IoTシステム技術検定試験(中級) に合格したい

https://cutnpaste.hatenablog.com/entry/2017/12/03/193809