連載
» 2018年04月17日 05時00分 公開

機械学習&ディープラーニング入門(概要編):Lesson 2 機械学習やディープラーニングには、どんな手法があるの? (3/3)

[一色政彦,デジタルアドバンテージ]
前のページへ 1|2|3       

ディープラーニングの代表的なアルゴリズム


マナブ:質問

学習方法が主に3つあるんは分かったけど、どういうふうに学習するの?


藍:優しく教える

いい質問ね。ディープラーニングで有名なアルゴリズムには、次の3つがあるよ。

  • オートエンコーダー: 主に教師なし学習に用いられる
  • CNN: 主に教師あり学習に用いられる
  • RNN: 主に教師あり学習に用いられる

マナブ:がくっ

うわぁ、まーたまた意味不明な名前ばっかり……。で、これは何?


藍:厳しく教える

各アルゴリズムの内容を理解するのは、まだ難しいと思うけど、それぞれどんなことが得意なのか、ちょっとだけ紹介しておくね。詳しくは使う場面が来たらまた説明するよ。

オートエンコーダー


マナブ:質問

まずはオートエンコーダーからお願いします。


藍:にっこり

オートエンコーダーAutoencoder)は、入力層(input layer)のデータと同じデータを出力層(output layer)の教師データとして使う珍しいタイプのアルゴリズムよ。入力層と出力層の間にある隠れ層(hidden layer)は、入出力層よりもノード(nodes:ネットワーク内での線と線の結び目)を減らして表現する。このため、データは入力層から隠れ層に流れるときに圧縮(エンコード)され、隠れ層から出力層に流れるときに復元(デコード)されるの(図10)。

図10 オートエンコーダーのイメージ 図10 オートエンコーダーのイメージ


藍:優しく教える

こうすると隠れ層の情報量は、本来の情報よりも小さくなるよね。これを次元削減って呼ぶの。さっきもこの単語は出てきたのを覚えてる?


マナブ:にんまり

覚えてる。次元削減は、データの圧縮やデータの可視化に使うという話だったよね。


藍:厳しく教える

具体的には、画像のノイズ除去とかで使われているわ。画像の純粋な特徴features)、つまり画像の中に描かれているエッジや角、線といった本質的な特徴のみを抽出して、そこから復元するわけ。これによって、元の画像にある揺らぎなどが抑えられて純粋な特徴だけが表現された画像になるの。


マナブ:理解不納

んーと、ノイズ除去ってAIというより画像の加工だよね。AIによる問題解決には使われていないの?


藍:にっこり

今のところ、AIとして使える範囲はそんなに広くないみたいね。CNNやRNNの方がよく使われていると思う。ちなみにオートエンコーダーの功績については、『人工知能は人間を超えるか』という本で一般人向けに分かりやすく説明されているので、気になる場合は一読してみるのをお勧めするわ。

CNN(畳み込みニューラルネットワーク)


マナブ:質問

じゃあ次、CNNって何?


藍:厳しく教える

CNNConvolutional Neural Network畳み込みニューラルネットワーク)は、主に画像データから、「畳み込み」と呼ばれる処理によって局所的な特徴を抽出し、それを「プーリング」と呼ばれる処理によってぼかす(=縮小する)ことで、位置ズレなどの揺らぎに対するロバスト性(頑強性)が高い抽象的な画像表現が得られるアルゴリズムよ。入力層と出力層の間にある隠れ層として、畳み込み層(convolutional layer)とプーリング層(pooling layer)を何度か挟んで、最後に全結合層(fully connected layer)でまとめあげることで、画像の認識といった最終的な判定が行えるの(図11)。

図11 CNNのイメージ 図11 CNNのイメージ


マナブ:にっこり

図11の例だと、画像から「あ」という文字を認識しているんだよね?


藍:優しく教える

そうよ。画像認識の例。CNNは、空間的構造の表現を取り扱えるので、主に画像認識や音声認識に使われているの。他には、時系列データをグラフとして書き出せば、CNNで扱えるわね。例えば証券会社のサービスで、現在の株価のグラフから「買いか、売りか」のヒントを顧客に提示するものがあるけど、こういったケースでもCNNが使えると思う。


マナブ:がくっ

うーん……、難しいなぁ……。


藍:厳しく教える

そうね。CNNについては、具体的な使い方を説明するときに、もっと詳しく説明するね。

RNN(再帰型ニューラルネットワーク)


マナブ:質問

結構もう疲れてきたんだけど、最後にRNNも教えといて。


藍:厳しく教える

RNNRecurrent Neural Network再帰型ニューラルネットワーク)は、内部に再帰構造を持つアルゴリズム。時間方向にネットワークを展開して、幾重にも深くつなげていく際、この再帰構造により、現在の出力データを、次のネットワークの入力データとして使いながら学習できるの(図12)。

図12 RNNのイメージ 図12 RNNのイメージ


マナブ:理解不納

えーと、図12の例は、文章を学習させているのかな?


藍:にっこり

そうよ。これは自然言語処理の例。RNNは、時間的構造の表現を取り扱えるので、主に自然言語や時系列データなど、連続性のあるデータの識別生成に使われているの。例えば機械翻訳や、音声認識してテキスト化するサービス、文章の生成などで使えるわね。他には、画像の縦方向を時間軸として扱うことで、画像認識に応用したりするパターンも聞いたことがあるわ。


マナブ:質問

RNNを使った現実のサービスってあるの?


藍:優しく教える

マイクロソフトが提供しているTwitter上で会話できる女子高生チャットボットの「りんな」というサービスは、一部にRNNを使っているらしいよ。他には証券会社のドキュメントを自動校正するツールなどで、RNNが使われているって聞いたことがあるわ。

LSTM


マナブ:理解不納

ふーん。RNNについては以上かな?


藍:厳しく教える

RNNには拡張バージョンが何種類かあって、その中でもLSTMLong Short-Term Memory)が有名だから、そういうのがあるということは覚えておいてほしいな。LSTMは、短期記憶を長期間、活用できるようにしたネットワークで、長期的な依存関係を学習できるのが特徴。多くの場合で、標準バージョンより良い結果を出しているの。


マナブ:目が点

はぁー……、RNNもよく分からないのに、その拡張バージョンかぁ……。


藍:目が点

……。RNNについても後日詳しく説明するね。

まとめ


マナブ:にっこり

うーん。もう頭もお腹もいっぱい!


藍:にっこり

そうね。今日はかなりいっぱいしゃべっちゃったね。基礎が分からなくなったら、今回の話を振り返ってみると理解が少しずつ深まると思うよ。


マナブ:質問

はい、先生! でも自分でも何かやってみたい。早くやり方を教えて。


藍:厳しく教える

やる気いっぱいだね。でも一歩ずつやっていこうね。チョコレートは好き?


マナブ:目がハート

大好き!


藍:優しく教える

では明日は有給休暇を取ってあるので、チョコレート工場に一緒に行こうよ。そこで、どうやってディープラーニング(機械学習)をすればよいか、手順を教えてあげるよ。


マナブ:にんまり

わーい!

【まとめよう】機械学習/ディープラーニングを実践するための基礎知識

  • 機械学習における手法/アルゴリズム/モデル: モデルを作成する手順・方法/学習前の抽象的な計算方法/学習後の具体的な計算方法
  • 機械学習の学習/推論: モデルを「作る」こと/モデルを「使う」こと
  • 機械学習の代表的な学習方法: 教師あり学習、教師なし学習、強化学習
  • 教師あり学習: 正解ラベル(教師データ)がある学習。回帰問題や分類問題を解決するのに使う
  • 教師なし学習: 正解がない学習。クラスタリング問題を解決したり、次元削減をしたりするのに使う
  • 強化学習: 報酬によって、長期的に価値を最大化する「望ましい行動」をするように学習する
  • ディープラーニングの代表的なアルゴリズム: オートエンコーダー、CNN、RNN
  • オートエンコーダー: 入力と出力を同じにするアルゴリズム。主に次元削減に使う
  • CNN: 畳み込みとプーリングの層を持つアルゴリズム。主に画像認識や音声認識に使う
  • RNN: 内部に再帰構造を持つアルゴリズム。LSTMという拡張バージョンが有名。主に自然言語や時系列データの識別・生成で使う

「機械学習&ディープラーニング(概要編)」のインデックス

機械学習&ディープラーニング(概要編)

前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。