【初心者向け】ディープラーニングの代表的な手法を紹介!

ディープラーニングとは

ディープラーニング(deep learning / 深層学習)は階層の深いニューラルネットワークを利用したアルゴリズムの総称をさし、脳(神経細胞)の働きを模した学習アルゴリズムで、一般的に中間層(隠れ層/hidden layers)が2層以上のニューラルネットワークをディープラーニングと呼びます。

引用: https://jp.mathworks.com/discovery/deep-learning.html

ディープラーニングと機械学習の違い

従来の機械学習において非常に難しかったこととしては、特徴量(変数)の設計です。例えば、従来の画像認識では、入力データはピクセル値そのものではなく、「特徴量」と呼ばれる変数の集合でしたが、画像の特徴量は色、形状、テクスチャといった様々な情報を表現した変数のセットであることが一般的です。この特徴量の設計というのは非常に難しく、研究者の経験や直感によるところが大きくまさに職人芸でした。一方で、ディープラーニングは、そのような特徴量もデータから自動的に学習することが可能になりました。また、ディープラーニングは機械学習アルゴリズムの1手法で、分類や回帰ができます。

ディープラーニング(深層学習)ライブラリ

ディープラーニング用のライブラリはいくつもあります。例えば、Chainer(チェイナー/国産)、Theano(セアノ/外国産)、TensorFlow(テンソルフロー/Google)、Keras(ケラス)、Caffe、PyTorch(パイトーチ)などがあります。

ディープラーニングの主な手法

これらはディープラーニングでよく使われる主な手法になります。

■ CNN (Convolutional Neural Network)

畳み込みニューラルネットワークはまたはConvNetとも呼ばる、主力のディープニューラルネットワーク。

■ RNN (Recurrent Neural Network)

可変長のデータを扱えるよう、隠れ層に再帰的な構造をもたせたニューラルネットワークを利用したリカレントニューラルネットワーク。

■ オートエンコーダー(AutoEncorder)系

情報を効率よく圧縮する構造をもたせたニューラルネットワークを利用したアルゴリズム。

■ GAN(Generative Adversarial Network)

2014年に登場した敵対的生成ネットワーク。

■ Transfomer

自然言語処理分野で用いられる2017年に発表された深層学習モデル。

順伝播型ネットワーク(フィードフォワードニューラルネットワーク)

順伝播型ネットワーク(フィードフォワードニューラルネットワーク)は、層状に並べられたニューロンが隣接した層間でのみ結合した構造をしています。左から右へと入力層から出力層へ一方向のみ伝播するニューラルネットワークです。多層パーセプトロンはニューラルネットワークとも呼びますが、この多層パーセプトロン(ニューラルネットワーク)が順伝播型ネットワーク(フィードフォワードニューラルネットワーク)のことを指します。各ニューロンは複数の入力を受け取り、1つの出力を処理・計算します。例えば、入力が、、x1、x2、x3と3つの入力を受け取った場合下記のような計算になります。 u=w1x1+w2x2+w3x3+b 上記は、各入力にそれぞれに異なった重み(wegith/w)が掛けたものを計算し、バイアス(bias/b)と呼ばれる値を足したものになります。

ニューロン(ユニットとも呼ぶ)の出力はx1、x2、x3に対する総入力をuとし、活性化関数と呼ばれるf(u)の出力になります。つまり次のように表すことができます。 u=w1x1+w2x2+w3x3+boutput=f(u) このようなニューロンを層状に並べたものを順伝播型ネットワークと呼びます。

ニューラルネットワークの仕組みに関して学びたい方は下記テキストをご確認ください。ニューラルネットワークの仕組み

オートエンコーダ(自己符号化器)

オートエンコーダ(自己符号化器)とは、3層ニューラルネットワークにおいて入力層と出力層に同じデータを用いて教師あり学習させたもので、次元圧縮することを目的としています。 下記の図のようにエンコードが「次元圧縮」で、デコードが「次元復元」という役割になります。オートエンコーダは生成モデルの1種類でGANやAdversarial Autoencodersも合わせて学ぶことでより理解が深まります。ここではオートエンコーダの基本概要を簡単に説明します。オートエンコーダは、誤差関数を最小化することでネットワークの重み及びバイアスを決定します。オートエンコーダで例えば、MNIT(手書き数字画像データ)をオートエンコーダで学習した場合、入力xは復元されたx^を出力します。基本的にオートエンコーダでは入力と出力が同じになるように学習を行います。通常のニューラルネットワークと同様に勾配降下法などを用いて学習が行われます。先ほどのMNISTの例では、入力xに数字の8が入力された場合、隠れ層にはEncodeされたデータが渡され、隠れ層ではデコードされたデータが出力層に渡された復元された8が出力されます。

畳み込みニューラルネットワーク(CNN)

CNN(Convolutional Neural Network)とは、畳み込みニューラルネットワークはまたはConvNetとも呼ばる、主力のディープニューラルネットワークです。画像認識におけるディープラーニングでは、畳み込みニューラルネットワークが用いられるのが一般的です。畳み込みニューラルネットワークには、畳み込み層とプーリング層と全結合層から構成されるニューラルネットワークになります。

再帰型ニューラルネットワーク(RNN)

再帰型ニューラルネットワーク(RNN /Recurrent Neural Network)は時系列データに対するネットワークです。先ほどの畳み込みニューラルネットワーク(CNN)は、画像に特化しておりましたが、再帰型ニューラルネットワーク(RNN)は自然言語処理の分野でより高い成果をあげたことでこの分野でよく使われています。最近では、株価予測やチャットボット、音声認識などに利用されます。

まとめ

この記事では、ディープラーニングの簡単な説明と、オートエンコーダやCNNやRNNに関して概要を学びました。

近年では、今回用語だけ登場した「GAN」や「Transformer」そのほかにも「BERT」や「GPT-3(Generative Pre-trained Transformer 3)」など日進月歩に最新AI技術が登場し、様々な領域で活用され始めています。

最新のAI技術を学ぶには

最新のAI技術を学ぶ事に限らず、深層学習や機械学習技術を学ぶ上でオススメは、機械学習エンジニアからいつでも質問できる環境で学ぶことです。

AI Academy Bootcampなら、6ヶ月35,000円にてチャットで質問し放題の環境で、機械学習やデータ分析が学べるサービスを提供しております。
数十名在籍しているデータサイエンティストや機械学習エンジニアに質問し放題の環境でデータ分析、統計、機械学習、SQL等が学べます。AI人材に必要なスキルを効率よく体系的に身に付けたい方は是非ご検討ください。