それでは、今回からはついに「ディープラーニング」の学習に入ります。
人工知能の第三次ブームは、このディープラーニングが原因と言っても過言ではありません。
また、この技術はすでに広い業界で実践的に使用されていますし、さらなる発展もしています。
それでは、そもそもこの「ディープラーニング」とは何なのか?今回からは学習していきましょう。
ディープラーニングの技術を知れば、人工知能でできることとできないことも分かります。
この記事は、底辺フリーランスの筆者が、G検定を取得して人生を変えていこうとする備忘録です。
目次
ディープラーニングの特徴
ディープラーニングの手法である「ニューラルネットワーク」は、複雑な関数でも高い精度で近似し、内部表現を可能にしました。
さらに、ニューラルネットワークは特徴量の設計とその後の処理をまとめて自動的におこなう「エンドツーエンド(end-to-end)学習」もできます。
ここまでは簡単なディープラーニングの概要を紹介してきましたが、さらに深堀して解説していきましょう。
ニューラルネットワークとは
ディープラーニングを学習していく上で、必ず学ばなければいけないのが「ニューラルネットワーク」です。
ニューラルネットワークは、これまでの手法と異なり何ができるようになったのでしょうか。
ニューラルネットワークとは、人間の脳神経回路を模倣したニューラルネットワークを多層的にすることによって複雑な関数を近似させます。
このことによって、コンピューターが自らデータに含まれる特徴量を把握可能になりました。
この点がこれまでの手法と大きく異なり、大幅に性能が向上した要素です。
多層化したニューラルネットワークが「ディープラーニング」と呼ばれます。
内部表現とエンドツーエンド学習
「内部表現」とは、ニューラルネットワークが学習することにより、観測データから本質的な情報を取り出して特徴のことです。
これまでの機械学習の手法は、特徴量を事前に人間が設計しなければいけませんでした。
ニューラルネットワークなら人間の手を介さず、自動で特徴量を得ることができます。
ニューラルネットワークはこれまでできなかった特徴量の設計と、その後の処理もまとめておこなうことができるようになりました。
特徴量の設計からその後の処理までおこなうことを「エンドツーエンド学習」といいます。
ニューラルネットワークは、「画像処理」「音声認識」「自然言語処理」などの分野でも実用化されています。
ただし、ニューラルネットワークにも弱点が主に以下の3つあります。
学習が必要なパラメータの数が多く計算量が多くなる
学習に使用するデータの量がこれまで以上に多い
結果の根拠を説明する事が難しい
ニューラルネットワークの歴史
ニューラルネットワークが成長してきたのは、突き当たった問題を克服してきたからです。
現在でも、先ほど説明したように「学習が必要なパラメータの数が多く計算量が多くなる」「学習に使用するデータの量がこれまで以上に多い」「結果の根拠を説明する事が難しい」などの問題があります。
ここからは、ニューラルネットワークの歴史を第1次ニューロブームから第3次ニューロブームに至るまでを振り返り、ディープラーニングが普及した理由を整理します。
第1次ニューロブーム
第1次ニューロブームは1958年にフランク・ローゼンブラットが開発したパーセプロンが有名です。
パーセプロンの内部構造は、入力層と出力層のみしかないシンプルな構造ですが学習や予測もできました。
しかし、パーセプロンは、排他的論理和(XOR)の学習ができないのが問題点でした。
第1次ニューロブームはこの問題によって終焉を迎えています。
第2次ニューロブーム
第2次ニューロブームは、排他的論理和(XOR)の問題を解決したことから始まります。
パーセプロンには入力層と出力層しかありませんでしたが、中間層を追加することによって理論上は、排他的論理和(XOR)を解決できました。
1986年には隠れ層(中間層)を持つニューラルネットを高速で学習させる「誤差逆伝播法」がデビッド・ラメルハート達によって提案されてから、第2次ニューロブームに火が付きました。
それまでの「順伝播型ネットワーク学習」では、「重み」と「バイアス」に関する誤差関数の微分を計算する必要があり、計算に時間がかかるのが問題でした。
「誤差逆伝播法」によって、この問題を乗り越え、計算を効率よくすることが可能になりました。
「誤差逆伝播法」は、出力ノードから前方のノードへと伝播するように学習をします。
第2次ニューロブームの問題点
新しい発想から盛り上がった第2次ニューロブームですが、多くの層を持った多層パーセプトロンでは学習をすることができませんでした。
その理由には数点の問題点が挙げられます。
それが「勾配消失問題」「過学習」「データ不足」です。
「勾配消失問題」:出力層における誤差を出力層から入力層に向けて伝播させるときに、複数の層を伝播して誤差が拡散して小さくなってしまい、入力層に近い層では学習が上手くいかない
「過学習」:適切な「重み」の初期値を設定するのが困難で、過学習を起こしてしまう
「データ不足」:この時期には、ニューラルネットワークに学習させるほどの量のデータを得ることができなかった
第3次ニューロブーム
第3次ニューロブームは、2000年代後半から始まります。
第3次ニューロブームが普及した理由として、第2次ニューロブームがぶつかった壁を乗り越えるたことが挙げられます。
ディープラーニングがブレークスルーを起こし第3次ニューロブームを引き起こしました。
この手法自体は第3次ニューロブーム以前から提案されていました。
ディープラーニングが普及した理由
第3次ニューロブームを起こして注目されている理由は主に3つあります。
インターネットの整備により、データの収集が容易になった
GPUの性能が向上してGPGPUが登場した
ディープラーニングのフレームワークが広く普及したこと
以上の3つの理由を詳しく解説していきましょう。
データセット
ディープラーニングを普及させる要因となった「データの収集」ですが、現在では深層学習に良く用いられるデータセットもあります。主なデータセットは以下の通りです。
MINIST
ImageNet
Youtube-8M
CIFAR-100
ILSVRC2012
Caltech-256
それぞれ説明します。
MINIST
手書き数字の画像データセットです。アメリカの国立標準技術研究所が提供しています。
ImageNet
2万種類以上の物体名と、約1,400万枚の画像を収録。スタンフォード大学がインターネット上から画像を収集して分類しています。
Youtube-8M
YouTube動画のデータセットです。4,800件のラベルでタグ付けされている800万本の動画があります。
CIFAR-100
100種類の画像をそれぞれ600枚、合計で6万枚収録されているデータセットです。
ILSVRC2012
2012年の画像認識コンペティションILSVRCで使用されたImageNetから抽出されたデータセットです。
Caltech-256
手作業で256カテゴリに分類している30,607画像のデータセットです。画像はGoogle画像検索でダウンロードされています。
ハードウェア
ディープニューラルネットワークの学習ではパラメータ数が膨大なため、高速計算を処理するためのハードウェアも必要です。
ハードウェアが発展したのもディープラーニングの活用を可能にした要因です。
TensorFlowの全身の分散並列技術である「DistBelief」や、リアルタイムに画像処理をおこなうことに特化しているGPUも開発されました。
GPUは並列演算の性能が優れています。
GPGPUも開発されたため、画像以外にもGPUの機能を使用することができるようになりました。
フレームワーク
ディープラーニングの技術を利用したシステムを開発する場合は、既存のフレームワークを利用することが多いです。
主なフレームワークは以下の通りです。
Google:TensorFlow、及びTensorFlow上で実行可能な高水準のライブラリKaras
Preferred Networks:Chainer
Facebook:PyTorch
フレームワークは、ニューラルネットワークを定義してデータを用いて学習と予測を実行します。
フレームワークによって、ネットワークの記述方法は異なり、柔軟性も変わります。
フレームワークの記述方法には主に2つの種類があります。
設定ファイルのみで動くフレームワーク
メリット:簡単に学習を始められる
デメリット:ループ構造を持つ複雑な構造を持つモデルの記述が難しい
ソフトウェア:Caffe、CNTK
プログラムによる記述方法
メリット:複雑なモデルも記述することができる
デメリット:プログラムができなければ学習を始められない
有名なフレームワーク:TensorFlow、Chainer
現在では、フレームワークの統合や移行も進められています。
例えば、Caffeの後継であるCaffe2はPyTorchと統合されます。
Preferred Networksは、Chainerの開発を終了してPyTorchへと移行します。
今回のテスト結果
自分では難しいと感じていた機械学習から、ついにディープラーニングへと学習も進んできました。
ディープラーニングも知らない単語のオンパレードであり覚えることがたくさんあります。
第1次ニューロブームから、第3次ニューロブームに至るまでの突き当たった問題とどのように乗り越えたかを把握しておくことが大事です。
ということで、今回もテストを受けてみましたのでその結果だけを報告しておきましょう。
・「ディープラーニング G検定 要点整理テキスト&問題集」
第4章 機械学習の実装
28問中5問正解(正答率18%)
⇒ディープラーニングを勉強する場合は、個別の名詞をきちんと覚えて、文脈の流れに乗せて覚えておかないと難しくなります。とにかく、歴史的な流れを把握して、個別の名刺を覚えましょう。
これまでの人工知能に関する学習の日記は以下の通りです。