• 検索結果がありません。

はじめての機械学習

N/A
N/A
Protected

Academic year: 2021

シェア "はじめての機械学習"

Copied!
16
0
0

読み込み中.... (全文を見る)

全文

(1)
(2)

機械学習においては、最初から最後まで迷わず一直線に進むということは

めったにありません。常にさまざまなアイデアや方法を繰り返し試すことに

なるでしょう。このセクションでは、いくつかの重要な決定ポイントに注目し

つつ、機械学習の体系的なワークフローについて説明します。

(3)

機械学習における課題の大部分は、データ処理と正しいモデルの発見に関連して います。 データの形式や規模は均一ではありません。実世界のデータセットは、乱雑で、不 完全で、フォーマットもさまざまです。シンプルな数値データのみの場合もあるか もしれません。しかし、センサー信号、テキスト、カメラからのストリーミング画像 など、さまざまな種類のデータを組み合わせる場合もあるでしょう。 データ処理には、専門的な知識やツールが必要になる場合があります。例えば、 特徴量を抽出して物体検出アルゴリズムの学習を行うためには、画像処理の専門 知識が必要です。データの種類によって必要な前処理の方法も異なります。 データに最も適したモデルを見つけるには時間がかかります。適切なモデルを選 択するためには、バランスを取る必要があります。柔軟性が高いモデルは、データ に過適合し、ノイズの可能性がある些細な差異をモデル化してしまう傾向があり ます。一方で、シンプルなモデルとすると、単純化の仮定が多くなり過ぎている可 能性があります。モデルの実行速度と精度と複雑さは、常にトレードオフの関係に あるのです。 手強そうに聞こえますね。でも、心配はいりません。試行錯誤が機械学習の核心で あることを思い出しましょう。もし、ある方法やアルゴリズムが上手くいかなかった

機械学習の課題

(4)

教師あり学習 教師なし学習 機械学習 分類 回帰

始める前に考慮すべき点

機械学習のワークフローは、必ず次の3つの点を明らかにするところ から始まります。 • どのような種類のデータを扱うのか。 • そのデータから、どのようなインサイトを導き出したいのか。 • 導き出したインサイトを、どこで、どのように活用するのか。 上記の点に基づいて、教師あり学習、教師なし学習のどちらを利用す るのかを検討します。 予測(例えば、温度や株価などの連続型変数の将来値の 推定)や分類(例えば、ウェブ動画に映っている自動車の 型式の特定)を行うモデルの学習が必要な場合は、教師あ り学習を選択します。 入力データを詳しく調べる必要がある場合 や、データをクラスターに分けるなど、デー タの適切な内部表現を見出すモデルの学 習が必要な場合は、教師なし学習を選択し ます。

(5)

6. 最も上手く学習されたモデルをプ ロダクションシステムに組み込む 5. 最適なモデルが見つかるまで繰り返す 4. ステップ3で抽出した特徴量 を用いてモデルの学習を行う 3. 前処理したデータから 特徴量を抽出する 2. データの前処理を行う 1. データにアクセスし、読み込む

ワークフローの概要

次のセクションでは、健康管理アプリを例に、各ステップをより詳し く説明します。このワークフローは全てMATLAB®内で完結します。

(6)

身体活動の分類を行うモデルのトレーニング

携帯電話の健康管理アプリを例にとって説明します。入力は、携帯 電話の加速度計とジャイロスコープからの3軸センサーデータで構成 されます。応答(出力)は、歩く、立つ、走る、階段を上る、横になる、 などの活動です。 入力データを用いて、上記のような活動を特定する分類モデルの学 習を行う必要があります。目標が分類なので、教師あり学習を採用し ます。 学習が済んだモデル(分類器)は、1日を通してユーザーの活動レベル を追跡するアプリに組み込まれます。 機械学習

(7)

1

ステップ1:データを読み込む

加速度計とジャイロスコープからデータを読み込むために、以下を行 います。 1. 携帯電話を持って座ります。電話からのデータを記録し、その データを「座る(Sitting)」とラベルを付けたテキストファイルに 保存します。 2. 携帯電話を持って立ち上がります。電話からのデータを記録 し、そのデータを「立つ(Standing)」とラベルを付けた2番目の テキストファイルに保存します。 3. 分類したい各活動のデータが全て保存できるまで、上記のステ ップを繰り返します。 ラベルの付いたデータセットを、ひとつのテキストファイルに保存しま す。テキスト形式やCSVなどのフラットファイルフォーマットで保存する と、その後の処理が容易になり、データを簡単にインポートできます。 機械学習アルゴリズムは、ノイズと意味ある重要な情報とを区別でき るほど賢くはありません。収集したデータを用いて学習を行う前に、 データにノイズがなく、完全であることを確かめる必要があります。

(8)

2

データをMATLABにインポートし、ラベルの付いたそれぞれのセット をプロットします。データの前処理のために、以下を行います。 1. 異常値、すなわち他のデータから離れた位置にあるデータポイ ントを探します。 異常値を無視してよいのか、あるいは、その異常値はモデルが考慮す べき現象を表しているのかを見極めなければなりません。ここに例と して示したデータの場合は、異常値を無視しても問題ありません(デ ータの記録中に被験者が無意識に体を動かしてしまったために、異 常値が現れたのです)。 2. 欠損値(記録中に接続が切れたために失われたと思われるデ ータ)を調べます。 欠損値を全く無視しても構いませんが、それではデータセットのサイ ズが小さくなってしまいます。代わりに、内挿を行ったり、他のサンプ ルの相当する部分のデータを使用したりして欠損値を推定して補う こともできます。 活動追跡データの異常値 異常値が決定的に重要な情報となるアプリケーションもた くさんあります。例えば、クレジットカード不正利用検出ア プリでは、異常値はその顧客の通常の購買パターンから外 れた購入であることを表しています。

ステップ2:データの前処理を行う

(9)

3. 作成したアルゴリズムが、携帯電話の動きではなく、被験者の 動きのみに着目できるように加速度計データから重力の効果 を除きます。そのためには、通常、双二次フィルターなどシンプ ルなハイパスフィルターを使用します。 4. データを2つのデータセットに分けます。データの一部をテスト 用に保存します(テスト用データセット)。残り(学習用データセ ット)はモデルの構築に使用します。この方法はホールドアウト 法と呼ばれる交差検証法の1つです。 モデル化のプロセスで使用しなかったデータを用いて モデルのテストを行うことで、未知のデータに対してど のような動作をするのかをチェックします。

ステップ2:データの前処理を行う

(続き)

2

(10)

特徴量の抽出(特徴量エンジニアリングまたは特徴抽出とも呼ばれ る)は、機械学習において最も重要な部分のひとつです。この作業に よって、生データを機械学習のアルゴリズムが利用できる情報へと変 換します。 アクティビティトラッカー(活動量計)の場合は、加速度計データの 周波数成分を捕捉した特徴量を抽出する必要があります。これらの 特徴量は、アルゴリズムが「歩いている状態(周波数が低い)」と「走 っている状態(周波数が高い)」とを区別する上で役立ちます。抽出 した特徴量をまとめた新たな表を作成します。 特徴選択を通じて、以下を行います。 • 機械学習アルゴリズムの精度を向上させます。 • 高次元データセットに対するモデルの性能を高めます。 • モデルの解釈のしやすさを向上させます。 • 過適合を防ぎます。

ステップ3:特徴量を抽出する

3

(11)

データの種類 特徴選択作業 手法 センサーデータ 生のセンサーデータから信号特性を抽出 し、高度な情報に変換 ピーク分析-高速フーリエ変換によって、卓越周波数を特定 パルスおよび遷移指標-立ち上がり時間、立ち下がり時間、整定時間などの 信号特性を抽出 スペクトル測定-信号電力、帯域幅、平均周波数、中央周波数をプロット 画像・映像データ エッジ位置、分解能、色などの特徴を抽出 Bag of visual words-エッジ、角、ブロブなど、画像の局所的特徴のヒストグ

ラムを作成 勾配方向ヒストグラム(HOG)-局所的な勾配の方向のヒストグラムを作成 最小固有値アルゴリズム-画像の角の位置を検出 エッジ検出-輝度が急に変化するポイントを特定 トランザクションデータ データ内の情報を強化する抽出値を計算 タイムスタンプ分解-タイムスタンプを日、月などの成分に分解 抽出できる特徴量は、想像力次第で変わります。しかし、データの種類によって一般的によく用いられる手法というものがあります。

ステップ3:特徴量を抽出する

(続き)

3

(12)

モデルの構築にあたっては、シンプルな方法から始めるのがいいで しょう。その方が、実行時間が短く、解釈もより簡単になります。 基本的な決定木から始めます。 モデルの性能を調べるために混同行列を作成します。混同行列は、 モデルが行った分類とステップ1で作成した実際のクラスラベルとを 比較した表です。 座っている 立っている 歩いている 走っている 踊っている 特徴53<335.449 特徴53>=335.449 特徴3<2.50002 特徴3>=2.50002 特徴56<12686 特徴56>=12686 特徴11<0.45 特徴11>=0.45 クラ 座っている 座っ いる 立っている 立っ いる 歩いている 歩いる 走っている 走っ いる 踊っている 踊っ いる >99% 99% >99% 93% 59% 40% <1% <1% <1% <1% <1% <1% <1% 1% 5% 予測したクラス 混同行列から、作成したモデルでは踊っている状態と走っている状 態の区別に問題があることが分かります。このタイプのデータに対し ては、決定木は上手く機能しないのかもしれません。そこで、他のい くつかのアルゴリズムを試してみます。

ステップ4:モデルの構築・学習を行う

4

(13)

さまざまなアルゴリズムを試しながらモデル化を繰り返すことで、目 まず、k近傍法(KNN)を試してみます。KNNはシンプルなアルゴリ ズムで、学習用データを全て読み込み、新たなポイントと学習用デ ータとを比較し、k個の最近傍点の中で最も頻度が高いクラスを返 します。KNNによる精度は98%で、それに対してシンプルな決定木 の精度は94.1%でした。混同行列も以下の通り改善しています。 しかし、KNNは予測に全ての学習用データを使用するため、実行 にかなりの量のメモリを必要とします。 次に、線形判別モデルを試みましたが、結果は改善しませんでし た。最後に複数クラスのサポートベクタ―マシン(SVM)を試みまし た。SVMでは非常に良い結果が得られました。精度が99%となっ たのです。 >99% 99% 98% 97% 92% 6% 1% 1% 2% 1% 1% 1% 1% <1% <1% クラ 座っている 座っ いる 立っている 立っ いる 歩いている 歩いる 走っている 走っ いる 踊っている 踊っ いる 予測したクラス >99% >99% >99% 98% 96% 3% <1% <1% <1% <1% <1% <1% 2% <1% クラ 座っている 座っ いる 立っている 立っ いる 歩いている 歩いる 走っている 走っ いる 踊っている 踊っ いる 予測したクラス

ステップ4:モデルの構築・学習を行う

(続き)

4

(14)

モデルの改善には、単純化と複雑化の2つの異なる方向が考えられ ます。 単純化 まず、特徴量の数を削減する可能性を検討します。特徴量の数を削 減する一般的な方法としては、以下が挙げられます。 • 相関行列 – 変数間の関係を明らかにすることで、相関がそれ ほど高くない変数(特徴量)を削ることができます。 • 主成分分析(PCA)– もともとの特徴量同士の重要な違いを 捉え、データセットから強力なパターンを引き出す特徴量の組 み合わせを見つけ、冗長性を排除します。 • 特徴量の逐次削減 – モデルの性能に改善が見られなくなるま で、繰り返し特徴量を削減します。 次に、モデル自体を小さくしていく方法を検討します。次のような方法 が挙げられます。 • 決定木の枝を剪定します。 • アンサンブルの中の学習器を減らします。 優れたモデルには、最も予測力の高い特徴量しか含まれませ ん。汎化性能の高いシンプルなモデルは、新しいデータに対して 適応しない汎化性能の低い複雑なモデルよりも優れています。 機械学習においては、他の多くのコンピ ュータ処理プロセスと同様に、モデルの 単純化によって、理解のしやすさや頑健 性、処理効率が高まります。

ステップ5:モデルを改善する

5

(15)

複雑化 過剰な汎化を行ってしまっているせいで、踊っている状態と走っている 状態とをモデルが区別できない場合、モデルの微調整を行う方法を見 つける必要があります。そのためには、次のいずれかの方法が考えられ ます。 • モデルを組み合わせて使用する – 複数のシンプルなモデルを統 合し、より大きなモデルを作成します。この場合、個々のシンプル なモデルのどれよりも適切にデータの傾向を表すことができるよ うな大きなモデルとします。 • データソースをさらに追加する – ジャイロスコープデータと加速 度計データの両方を使用します。ジャイロスコープは活動中の携 帯電話の向きを記録します。このデータは、それぞれの活動独特 の特徴を示すことがあります。例えば、加速と回転のある特定の 組み合わせは、走っている状態に特有のものである場合があり ます。 モデルの調整が済んだら、前処理段階で取り分けたテストデータを用 いてモデルの性能を検証します。 モデルがテストデータに記録された活動を確実に分類できれば、携帯

ステップ5:モデルを改善する

(続き)

5

(16)

機械学習について、さらに詳しく学んでみませんか?機械学習の方法論、

事例、ツールの詳細について、以下の資料もぜひご参照ください。

見る

MATLAB

による機械学習の基礎 ~特徴抽出・分類器・交差検定~ 38:31

センサーデータ解析と機械学習 ~振動データからの異常検出~ 47:21

機械学習のための信号処理 51:37

読む

教師あり学習のワークフローとアルゴリズム

MATLABアナリティクスによるデータに基づいたインサイト: 電力負荷予測のケーススタディ

調べる

機械学習のMATLABサンプルコード

分類学習器アプリによるデータ分類(英語)

参考資料

参照

関連したドキュメント

自分は超能力を持っていて他人の行動を左右で きると信じている。そして、例えば、たまたま

たとえば、市町村の計画冊子に載せられているアンケート内容をみると、 「朝食を摂っています か 」 「睡眠時間は十分とっていますか」

はありますが、これまでの 40 人から 35

を行っている市民の割合は全体の 11.9%と低いものの、 「以前やっていた(9.5%) 」 「機会があれば

巣造りから雛が生まれるころの大事な時 期は、深い雪に被われて人が入っていけ

賠償請求が認められている︒ 強姦罪の改正をめぐる状況について顕著な変化はない︒

[r]

[r]