数回にわたって基礎から解説してきたディープラーニングですが、前回ついに、その実体は複数の層を持つニューラルネットワークであることをお伝えできました。ここまでの説明を踏まえ、今回はディープラーニングについて少し補足しておきたいと思います。
複雑にすれば良いとは限らない
本連載の第9回で機械学習のおさらいをした際、「機械学習における『学習』とは、『パラメータを持つ関数のパラメータの部分を調整すること』」だと説明しました。ディープラーニングも機械学習の一種ですから、もちろん同じことが行われています。
ディープラーニングで使う関数やパラメータは、ネットワークの構造によって決まります。ネットワークを構成する層が多ければ多いほど、もしくは1つの層が持つ要素の数が多いほど関数は複雑になり、パラメータの数も増えていきます。
複雑なネットワークにすれば難しい課題が解ける可能性は高まりますが、計算時間は長くなりますし、特定の教師データにフィットし過ぎて汎用性を失ってしまうといった危険性もあります。まずはシンプルなネットワークから試していき、必要に応じて層や要素を増やすようにし、いきなり複雑なネットワークを用いることのないよう注意しましょう。
ディープラーニングは簡単!?
ディープラーニングのすごさの1つは、課題を解く精度の高さです。どんな課題にもマッチするわけではありませんが、課題によっては従来の機械学習の精度を大きく上回る結果になったものもあります。
もう1つ、ディープラーニングのすごいところは、人が何もヒントを与えなくても高い精度で結果を出せることでしょう。ディープラーニングと聞くと、非常に難しくて、特殊な技能を持っていないと使えない技術だと思われがちです。しかし実際には、ディープラーニング以外の機械学習のほうが、よほど職人技が必要となります。
従来の機械学習では、「これから与えるデータのどこに注目して学習すべきか」という情報をあらかじめ人間がコンピュータに教える必要がありました。このように人がコンピュータに与える情報は、データの特徴を教えるものであることから「特徴量」と呼ばれます。
例えば、迷惑メールか迷惑メールでないかの判定器を機械学習で作成する場合、データ(迷惑メールとそうでないメールの両方のデータ)を与えると共に、そのデータにおいて特に重要そうだと思われる特徴量も与えるのです。例えば、以下のような情報になります。
- タイトルには特に注目すること
- 各々の語の表層だけでなく品詞※にも注目すること
- 品詞のなかでも、助詞は無視すること
※ 品詞とは、単語の分類のこと。具体的には名詞、動詞、形容詞など。
ここで与える特徴量は、人の経験則によるものです。そのため、うまくいかないことも多々あります。そういったときは、「必要なかったのではないか」と思われる特徴量を外して学習し直してみたり、別の特徴量を追加して学習し直してみたりと、多くの試行錯誤が必要でした。
一方、ディープラーニングで同様の判定器を作成する場合は、このような特徴量を与える必要がありません。にもかかわらず、高い精度を出すということで、研究者たちの間に非常に大きな衝撃が走ったのです。
しかし、「特徴をあらかじめ与える必要がない」というのはメリットばかりではないことを覚えておいてください。「人が特徴を与えていない」ということは、ディープラーニングが一体何を特徴だと捉えて学習して、高い精度の判定器を作成したかがわからないということです。つまり、ディープラーニングによってデータから抽出されたルールはブラックボックスなのです。
従来の機械学習であれば人間があらかじめ特徴量を与えますから、どの特徴量のおかげで、より良い判定器が作成できたのかが目に見えてわかりました。しかし、ディープラーニングで学習して出来上がったものは、どうしてそのような結果になったのかがわかりません。
ディープラーニングで用いられるネットワークはとても複雑で大規模な形態であることが多く、それは既に人が理解できる範疇を超えているからです。そのためディープラーニングで学習すると、しばしば次のようなことが起こります。
- 人間がデータを見ても判定が難しいのに、なぜか適切な推測ができるモデルが作成できた。理由はわからない
- 結果が芳しくないのでとりあえず隠れ層を1つ増やしてみたら、なぜか精度が上がった。理由はわからない
最近ではこのブラックボックス状態を打開しようという研究も行われているので、いずれブラックボックスの中身が、人の理解できるかたちで見えるようになるかもしれません。
ディープラーニングによる学習は、従来の機械学習よりもコントロールしにくいですが、経験則に基づいて作業しなければならない部分は少ないため、機械学習を使用したことがない人でも活用しやすい手法だと言えるでしょう。