deeplearning

ディープラーニング/深層学習(Deep Learning) って何? その1

ディープラーニング/深層学習(Deep Learning) って何?  その1

 この記事ではDeep Learningについて説明します。よくDeep Learningという言葉を見聞きすると思います。この記事を読み終えた時に、Deep Learningって何?って聞かれた時に多分こんな感じという自分なりの返答ができるようになれば幸いです。


この記事のゴール

  • ディープラーニング/深層学習(Deep Learning)って何?に自分なりに答えられる(かも)
  • ディープラーニング/深層学習(Deep Learning)の小歴史がわかる

ディープラーニング/深層学習(Deep Learning) と機械学習(Machine Learning)とAIについて

 ディープラーニング/深層学習(Deep Learning)とは、従来コンピュータが苦手としていた画像の識別や音声認識などを学習させ解を導き出す手法です。  ディープラーニングは、表現学習(Representation Learning)の一種であり、その表現学習は、機械学習(Machine Learning)の一種です。また、機械学習はAIと呼ばれている技術の一種です。

2021 06 08 23 13 34 図1.1: Deep LearningとMachine LearningとAIの関係図
from MIT Press book ,Figure 1.4

AIの主な目的は、人間には直感的にこなせるが、コンピュータには、非常に困難な課題を解決することです。例えば、画像の内容を理解することは人間にとっては、難しいことではありません。しかし、コンピュータにとっては非常に難しい問題です。

これはペンですか? これはリクガメです。

2021 06 08 23 43 35 図1.2: Is this a pen? / This is a tortoise

AIと広域なくくりで言うと、AIは、機械による自動推論(推論、計画、ヒューリスティックなど)になどの多様な課題解決を目指しています。それに対し、AIの一種である機械学習においては、特にパターン認識やデータからの学習などに課題を解決しようという傾向があります。

ニューラルネットワークとは

 ニューラルネットワーク (人工ニューラルネットワークともいう。artificial neural network、ANN)とは、データから学習する機械学習アルゴリズムの一種であり、脳の構造と機能にヒントを得たパターン認識に特化したものです。
 ディープラーニングはANNアルゴリズムの一種ですが、大ほとんどの場合、この2つの用語は同じ意味で使われます(と私は感じています)。実は、Deep Learningの分野は60年以上の歴史があります。当時の研究動向や利用可能なハードウェアやデータセット、また当時の著名な研究者などに応じて、さまざまな名前で呼ばれてきました。

ニューラルネットワークとディープラーニングの小歴史

 先の章でも、少し触れましたが、ニューラルネットワークとディープラーニングの歴史は長く、1940年代から存在しています。サイバネティクス、コネクショニズム、そしてニューラルネットワーク(人工ニューラルネットワーク:ANN)など、さまざまな呼称で呼ばれてきました。ニューラルネットワークは、人間の脳とそのニューロンが相互に作用する様子にヒントを得て作られたものですが、現実的な脳のモデルとは大きく異なります。

 最初のニューラルネットワークモデルは、1943年にウォーレン・マカロック(Warren Sturgis McCulloch)ウォルター・ピッツ(Walter Pitts)が発表しました。この発表されたネットワークは、二値分類器で、ある入力に基づいて2つの異なるカテゴリーを認識することができました。ただし、このネットワークの問題は、入力に対するクラスラベルを決定するための重みを、人間が手動で調整しなければならないことでした。この手の重みを人間が決定するのは、かなり敷居の高いものです。  

 その後、1950年代になってフランク・ローゼンブラット(Frank Rosenblatt)からパーセプロンというアルゴリズムが発表されました。このアルゴリズムは確率勾配降下法 (SGD) の基礎となり,今日でもニューラルネットワークの学習に使用されています。

 しばらくはパーセプトロンをベースにした技術がニューラルネットワークの世界で大流行していました。しかし、マービン・ミンスキー(Marvin Minsky)シーモア・パパート(Seymour Papert)に1969年に発表した論文では、「線形活性化関数を有するパーセプトロンは、非線形問題を解くことができない、単なる線形分類器である」と実証されました。また、当時のコンピュータの性能では大規模で深層を持つニューラルネットワークを構築するのは現実的ではないと判断されました。それらの結果、ニューラルネットワークの研究ほぼ10年にわたって下火になりました。

 Paul Werbos,David RumelhartGeoffrey HintonLeCun らの研究により、誤差逆伝播法(Backpropagation)などの研究が進み、多層順伝播型ニューラルネットワーク(Feedforward neural network)による学習が可能になりました。 2021 06 19 23 36 11

 また、非線形活性化関数と組み合わせることで、非線形関数を学習してXOR問題を解くことができるようになり、ニューラルネットワークは、次のステージに進みました。さらに研究を進めると、ニューラルネットワークはどんな連続関数でも近似できる万能近似器であることが明らかになりました。(ただし、関数を表現するために必要なパラメータを実際に学習できるかどうかは保証されていません)

 誤差逆伝播法(Backpropagation)は、現代のニューラルネットワークの基礎となるもので、ニューラルネットワークを効率的に学習させ、失敗から学ぶように「教える」ことができます。しかし、発表当時には、次の理由から2つ以上の隠れ層を持つニューラルネットワークをしっかりと学習させることはできませんでした。

  • コンピュータの処理速度が遅かった。
  • ラベル付きの大規模な学習セットがなかった

 現在の最新のニューラルネットワークは、ディープラーニングと呼ばれています。ディープラーニングが旧来のニューラルネットワークと異なるのは、より高速で特殊なハードウェアが使えるようになった事と、より多くの学習データが利用できるようになったことです。  現在では、より多くの隠れ層を持つネットワークを学習することができ、単純な概念を下位の層で学習し、より抽象的なパターンを上位の層で学習するという階層的な学習が可能になりました。

 ディープラーニングを特徴量学習に応用した代表的な例は、手書き文字認識に応用されたConvolutional Neural Networkでしょう。このCNNは、レイヤーを順次重ねることで、画像から識別用のパターン (フィルター) を自動的に学習します。ネットワークの低レベルのフィルターはエッジやコーナーを表し、高レベルのレイヤーはエッジやコーナーを使って画像のクラス間の識別に役立つより抽象的な概念を学習します。
 多くのアプリケーションにおいて、CNNは大変優秀な画像分類器と考えられています。


最後に

 Deep Learningの概要や小歴史を簡単にまとめて見ました。次回は、簡単なコードを書きながらDLに触れるかもう少しDeepLearnginの話を進めるかは検討中です。