Lesson 2 機械学習やディープラーニングには、どんな手法があるの?:機械学習&ディープラーニング入門(概要編)(3/3 ページ)
藍博士とマナブの会話から機械学習とディープラーニングの基礎の基礎を学ぼう。機械学習を始めるための最低限の基礎用語から、ディープラーニングの代表的な学習方法と代表的なアルゴリズムまでをできるだけシンプルに紹介する。
ディープラーニングの代表的なアルゴリズム
学習方法が主に3つあるんは分かったけど、どういうふうに学習するの?
いい質問ね。ディープラーニングで有名なアルゴリズムには、次の3つがあるよ。
- オートエンコーダー: 主に教師なし学習に用いられる
- CNN: 主に教師あり学習に用いられる
- RNN: 主に教師あり学習に用いられる
うわぁ、まーたまた意味不明な名前ばっかり……。で、これは何?
各アルゴリズムの内容を理解するのは、まだ難しいと思うけど、それぞれどんなことが得意なのか、ちょっとだけ紹介しておくね。詳しくは使う場面が来たらまた説明するよ。
オートエンコーダー
まずはオートエンコーダーからお願いします。
オートエンコーダー(Autoencoder)は、入力層(input layer)のデータと同じデータを出力層(output layer)の教師データとして使う珍しいタイプのアルゴリズムよ。入力層と出力層の間にある隠れ層(hidden layer)は、入出力層よりもノード(nodes:ネットワーク内での線と線の結び目)を減らして表現する。このため、データは入力層から隠れ層に流れるときに圧縮(エンコード)され、隠れ層から出力層に流れるときに復元(デコード)されるの(図10)。
こうすると隠れ層の情報量は、本来の情報よりも小さくなるよね。これを次元削減って呼ぶの。さっきもこの単語は出てきたのを覚えてる?
覚えてる。次元削減は、データの圧縮やデータの可視化に使うという話だったよね。
具体的には、画像のノイズ除去とかで使われているわ。画像の純粋な特徴(features)、つまり画像の中に描かれているエッジや角、線といった本質的な特徴のみを抽出して、そこから復元するわけ。これによって、元の画像にある揺らぎなどが抑えられて純粋な特徴だけが表現された画像になるの。
んーと、ノイズ除去ってAIというより画像の加工だよね。AIによる問題解決には使われていないの?
今のところ、AIとして使える範囲はそんなに広くないみたいね。CNNやRNNの方がよく使われていると思う。ちなみにオートエンコーダーの功績については、『人工知能は人間を超えるか』という本で一般人向けに分かりやすく説明されているので、気になる場合は一読してみるのをお勧めするわ。
CNN(畳み込みニューラルネットワーク)
じゃあ次、CNNって何?
CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)は、主に画像データから、「畳み込み」と呼ばれる処理によって局所的な特徴を抽出し、それを「プーリング」と呼ばれる処理によってぼかす(=縮小する)ことで、位置ズレなどの揺らぎに対するロバスト性(頑強性)が高い抽象的な画像表現が得られるアルゴリズムよ。入力層と出力層の間にある隠れ層として、畳み込み層(convolutional layer)とプーリング層(pooling layer)を何度か挟んで、最後に全結合層(fully connected layer)でまとめあげることで、画像の認識といった最終的な判定が行えるの(図11)。
図11の例だと、画像から「あ」という文字を認識しているんだよね?
そうよ。画像認識の例。CNNは、空間的構造の表現を取り扱えるので、主に画像認識や音声認識に使われているの。他には、時系列データをグラフとして書き出せば、CNNで扱えるわね。例えば証券会社のサービスで、現在の株価のグラフから「買いか、売りか」のヒントを顧客に提示するものがあるけど、こういったケースでもCNNが使えると思う。
うーん……、難しいなぁ……。
そうね。CNNについては、具体的な使い方を説明するときに、もっと詳しく説明するね(関連:5分で分かるディープラーニング)。
RNN(再帰型ニューラルネットワーク)
結構もう疲れてきたんだけど、最後にRNNも教えといて。
RNN(Recurrent Neural Network:再帰型ニューラルネットワーク)は、内部に再帰構造を持つアルゴリズム。時間方向にネットワークを展開して、幾重にも深くつなげていく際、この再帰構造により、現在の出力データを、次のネットワークの入力データとして使いながら学習できるの(図12)。
えーと、図12の例は、文章を学習させているのかな?
そうよ。これは自然言語処理の例。RNNは、時間的構造の表現を取り扱えるので、主に自然言語や時系列データなど、連続性のあるデータの識別や生成に使われているの。例えば機械翻訳や、音声認識してテキスト化するサービス、文章の生成などで使えるわね。他には、画像の縦方向を時間軸として扱うことで、画像認識に応用したりするパターンも聞いたことがあるわ。
RNNを使った現実のサービスってあるの?
マイクロソフトが提供しているTwitter上で会話できる女子高生チャットボットの「りんな」というサービスは、一部にRNNを使っているらしいよ。他には証券会社のドキュメントを自動校正するツールなどで、RNNが使われているって聞いたことがあるわ。
LSTM
ふーん。RNNについては以上かな?
RNNには拡張バージョンが何種類かあって、その中でもLSTM(Long Short-Term Memory)が有名だから、そういうのがあるということは覚えておいてほしいな。LSTMは、短期記憶を長期間、活用できるようにしたネットワークで、長期的な依存関係を学習できるのが特徴。多くの場合で、標準バージョンより良い結果を出しているの。
はぁー……、RNNもよく分からないのに、その拡張バージョンかぁ……。
……。RNNについては「5分で分かるディープラーニング」でも説明するね。
まとめ
うーん。もう頭もお腹もいっぱい!
そうね。今日はかなりいっぱいしゃべっちゃったね。基礎が分からなくなったら、今回の話を振り返ってみると理解が少しずつ深まると思うよ。
はい、先生! でも自分でも何かやってみたい。早くやり方を教えて。
やる気いっぱいだね。でも一歩ずつやっていこうね。チョコレートは好き?
大好き!
では明日は有給休暇を取ってあるので、チョコレート工場に一緒に行こうよ。そこで、どうやってディープラーニング(機械学習)をすればよいか、手順を教えてあげるよ。
わーい!
【まとめよう】機械学習/ディープラーニングを実践するための基礎知識
- 機械学習における手法/アルゴリズム/モデル: モデルを作成する手順・方法/学習前の抽象的な計算方法/学習後の具体的な計算方法
- 機械学習の学習/推論: モデルを「作る」こと/モデルを「使う」こと
- 機械学習の代表的な学習方法: 教師あり学習、教師なし学習、強化学習
- 教師あり学習: 正解ラベル(教師データ)がある学習。回帰問題や分類問題を解決するのに使う
- 教師なし学習: 正解がない学習。クラスタリング問題を解決したり、次元削減をしたりするのに使う
- 強化学習: 報酬によって、長期的に価値を最大化する「望ましい行動」をするように学習する
- ディープラーニングの代表的なアルゴリズム: オートエンコーダー、CNN、RNN
- オートエンコーダー: 入力と出力を同じにするアルゴリズム。主に次元削減に使う
- CNN: 畳み込みとプーリングの層を持つアルゴリズム。主に画像認識や音声認識に使う
- RNN: 内部に再帰構造を持つアルゴリズム。LSTMという拡張バージョンが有名。主に自然言語や時系列データの識別・生成で使う
Copyright© Digital Advantage Corp. All Rights Reserved.