深層学習の三大アルゴリズムについて記事にまとめました。
目次
深層学習(ディープラーニング)とは
深層学習(デープラーニング)は階層を深くしたニューラルネットワークです。
一般的に4層以上のニューラルネットワークを指すことが多いようです。
今は、深層学習に対する関心が高まり、現在、文字認識、顔認識、自動運転、ロボットビジョンなど様々な分野で実用化が進んでいます。
最近、人工知能に関する記事や注目を集める話題も、その中、深層学習(ディープラーニング)の話が多いと思われます。
ディープラニングの文字通りに近年の研究ではニューラルネットワークの階層がより深くなってきています。複雑なアルゴリズムでは、200、300層のものもあります。
深層学習の応用
深層学習の応用は様々で、これからもどんどんその応用の領域が広がりますが、今のよく使われている場面を簡単にまとめますと下記となります。
- 物体検出
- セグメンテーション
- 画像キャプション生成
- 画像スタイルの変換
- 画像生成
- 自動運転
この中の物体検出は、Computer Visionの応用分野で現在も活発に研究が行われている重要なタスクの一つで、自動運転やロボティクスなど幅広い領域で重要な役割を果たす技術です。
物体検出は、対象物体の「種類」と「位置」を認識する技術です。第6章のレシピで、物体検出も詳しく説明します。
三つの代表的な深層学習アルゴリズム
深層学習の応用から見て、様々な革新を起こす分野で、いろんな興味深いアイディアが生まれ、様々なアルゴリズムが日々開発され進化していますが、その中でも特に代表的な深層学習のアルゴリズムを三つあります。
オートエンコーダ(AE : auto-encoder)
オートエンコーダの重要な特徴は次元削減です。オートエンコーダはニューラルネットワークの一種で、情報量を小さくした特徴表現を獲得するためにあります。
隠れ層の次元が小さくすることで情報量に圧縮され、ニューラルネットワークは圧縮されたデータから学習しないといけません。
圧縮していく過程をエンコーダと呼び、復元する過程をデコーダと呼ぶ。エンコーダは入力を低次元に表現することができ、デコーダは低次元から復元する能力を持ちます。
・デノイジング・オートエンコーダ(denoising auto-encoder)
・スパース・オートエンコーダ(sparse auto-encoder)
・スタックド・オートエンコーダ(stacked auto-encoder)
リカレントニューラルネットワーク(RNN:recurrent neural network)
RNNは時系列データを扱い、音声信号処理や、自然言語処理、機械翻訳などの利用が進んでいます。過去の時系列情報から文脈の流れを考慮した予想もできるようになります。
代表的なRNNの種類
・Elman Network
・Jordan Network
・Echo State Network(ESN)
・Long Short-Term Memory(LSTM)
・Gated Recurrent Unit(GRU)
・Bidirectional RNN
畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)
畳み込みニューラルネットワークは、入力層(input layer)、畳み込み層(convolution layer)、プーリング層(pooling layer)、全結合層(fully connected layer)、出力層(output layer)から構成されています。
代表的なCNNネットワークモデル:
・AlexNet
・VGGNet
・GoogleLeNet
・ResNet
・LeNet
・SENet
そのほか、深層学習のアルゴリズムは上述アルゴリズムにとどまらず、数多くのアルゴリズムが存在しています。深層強化学習(DQN :Deep Q-Network)や敵対生成ネットワーク(GAN: Generative Adversarial Networks)も別の記事に譲ります。
いずれも解決するターゲット課題にとってはとても効果的、興味深いアルゴリズムです。
[amazonjs asin=”4798158577″ locale=”JP” title=”Pythonで動かして学ぶ! あたらしい深層学習の教科書 機械学習の基本から深層学習まで (AI & TECHNOLOGY)”]
[amazonjs asin=”4048930621″ locale=”JP” title=”深層学習”]