ディープラーニングの需要が高まる今、多くの分野・場所でディープラーニングのアルゴリズムが導入され、大きな活躍をしています。
そんな中、ディープラーニングと機械学習は混同されがちで、決定的なアルゴリズムの違いを理解できていない方も大勢いるでしょう。
そんな方々のために、本記事ではディープラーニングのアルゴリズムとはなにか、機械学習のアルゴリズムとの違いや、ディープラーニングの代表的なアルゴリズムなどを紹介しています。
目次
ディープラーニング(深層学習)のアルゴリズムとは
AIが行う複雑な処理や分析は、単純な計算の膨大な積み重ねによって行われています。AIにおけるアルゴリズムとは「計算の手続き」を表す言葉です。
ディープラーニングのアルゴリズムの代表として、「CNN(畳み込みニューラルネットワーク)」や「GAN(敵対的生成ネットワーク)などが挙げられます。
アルゴリズムについてもう少し詳しく知りたいという方は、以下の記事でアルゴリズムの具体例を交えて紹介していますので、参考にしてみてください。
▶AIのアルゴリズムとは?|図を用いてわかりやすく解説!>>
アルゴリズムの重要性
AIが複雑な処理や分析を行うためには、膨大な量のデータの中から特徴やパターンを見つける必要があります。
例えば、AIで代表的な画像認識・音声認識・自然言語処理といった機能も、アルゴリズムが構造化された画像・音声データ・言語の特徴やパターンを学習することで実現されています。
そのため、AIの複雑な処理や分析に必要な特徴やデータを見つけるアルゴリズムは、AIの本質と言っても過言ではなく非常に重要です。
アルゴリズムの特徴
ディープラーニングのアルゴリズムの特徴は「隠れ層」の存在にあり、この「隠れ層」が何層にも重なることで複雑な処理を実現しています。
「隠れ層」とは、人間の神経回路を模したニューラルネットワークが何層にも重なることで、層と層の間に生じた隙間のことを指しています。
ディープラーニングの日本語訳である「深層学習」という名前も、「隠れ層」が何層にも重なることを「層が深い」と表現していることが由来です。
このことからも、「隠れ層」がディープラーニングのアルゴリズムの特徴であることが分かります。
機械学習のアルゴリズムとの決定的な違い
ディープラーニングのアルゴリズムが機械学習のアルゴリズムと決定的に異なる点は、「人間が指定せずともデータの特徴・パターンを自ら発見できる点」です。
機械学習のアルゴリズムでは、人間がデータの特徴やパターンをが指定しなければAIは学習ができませんでした。
▼関連記事
▶️機械学習の代表的なアルゴリズム12選|機械学習の学習手法まで紹介!>>
▶️機械学習とは?定義から学習手法・5つのアルゴリズム・活用事例までわかりやすく解説>>
しかしディープラーニングのアルゴリズムは、自ら与えられたデータのパターンや特徴を見つけ出せるため、人間が気がついていない特徴やパターンまで学習可能です。
例えば、AIに犬と猫の判別をさせたい場合に機械学習のアルゴリズムでは、犬と猫の違いとなる耳や目の形といった特徴を指定して学習させる必要があります。
しかし、ディープラーニングのアルゴリズムの場合、犬と猫の違いとなる特徴を自動で見つけ出し学習してくれるのです。
よって、重要な特徴を自動的に見つけて学習できるディープラーニングのアルゴリズムは、機械学習のアルゴリズムよりも高精度な処理を行う場合があります。
ディープラーニングのアルゴリズム7選
ここまで、ディープラーニングのアルゴリズムについて機械学習のアルゴリズムとの違いにも注目しつつ解説してきました。
最後に、以下の7つのディープラーニングのアルゴリズムを紹介します。
- 畳み込みニューラルネットワーク(CNN)
- 再帰型ニューラルネットワーク(RNN)
- LSTM(Long Short Term Memory)
- GAN(敵対的生成ネットワーク)
- Dropout
- 確率的勾配降下法(SGD)
- 活性化関数(ReLU)
それぞれ解説していきます。
①畳み込みニューラルネットワーク(CNN)
CNNとは、先述したニューラルネットワークに「畳み込み層」と「プーリング層」が交互に多数組み込まれたアルゴリズムです。では、2つの層では何が行われているのでしょうか。
今回は分かりやすい「画像認識」を例に説明します。
まず「畳み込み層」では、入力された画像をある画素の大きさに切り取り、その切り取った部分で計算をして「何が特徴か」を特定し、抽出します。
そして「プーリング層」では、畳み込み層で局所的に抽出された特徴を圧縮し、重要ではない部分を削ぎ落とします。
CNNは先述した画像認識の分野を中心に応用されており、AmazonGoなどの無人レジでの画像認識・ドライブレコーダーを活用した物体検出・医療における画像診断など、幅広く活用されています。
CNNについてより詳しく知りたい方は、以下の記事を参考にしてみてください
▶️CNN(畳み込みネットワーク)とは?図や事例を用いながら分かりやすく解説!>>
②再帰型ニューラルネットワーク(RNN)
従来のニューラルネットワークでは、「それぞれの層での出力は互いに独立している」ことが前提とされていました。
しかし、RNNでは各層での出力が次の層に入力されるだけでなく、他の層の出力にも影響を与えられます。そのため、前後の情報に関連性のある時系列データを用いて、AIに学習をさせることが可能です。
例えば、単語と単語、文章と文章の前後の関連性を学習して、違和感を与えることなく自然に言語処理を行うことができます。
このように、前後の情報に関連性のある時系列データを扱えるRNNは、機械翻訳などの自然言語処理や将来予測の分野で成果を残しています。
③LSTM(Long Short Term Memory)
LSTMとは、先述したRNNを進化させたものです。
というのも、RNNにはデータの関連性が長期的なものなのか、短期的なものなのかを区別できないというデメリットがあり、LSTMはそのデメリットを克服したアルゴリズムです。
具体的には、「隠れ層」の構造を発展させ重要なデータを残し不要なデータを忘れさせることで、先述したデメリットを解消しました。
また、LSTMには学習状況を保存できる「メモリセル」というメモリや、「入力ゲート層」と「出力ゲート層」の間に「忘却ゲート層」を加えることで、長期的な学習も可能にしました。
RNNと同様にLSTMも、自然言語処理や時系列データの予測といった分野で活躍しています。
④GAN(敵対的生成ネットワーク)
GANは正解データを与えることなくデータを学習する「教師なし学習」のアルゴリズムで、実在しない画像・動画の生成に広く活用されています。
同アルゴリズムは「生成器」と「識別器」に分かれていて、この2つが敵対し、競い合うことで機能します。
画像生成を例にとれば、「生成器」では実在しない本物そっくりの画像を生成し、「識別器」では生成器で生成された画像が本物かどうかを識別します。
このようにして「生成器」と「識別器」の競争を繰り返し行わせることで、徐々に本物そっくりの画像を生成することができるのです。
敵対的生成ネットワーク(GAN)という名前からも、「生成器と識別器の敵対によって実在しないものを生成する」という仕組みが連想しやすいですね。
⑤Dropout
DropoutはAIの過学習を防ぐためのアルゴリズムです。過学習とは実験データで過度に学習をすることを指し、これによって現実に存在する未知のデータに対応できない場合があります。
仕組みとしては、「隠れ層」の一部にDropoutを仕込むことで、本来発揮されるはずの機能の一部が抑制され、過学習を防いでくれます。
機能の一部を抑制することを「不活性化」と言いますが、Dropoutによって不活性化する割合を指定することでAIの学習を調整することができます。
過学習を抑制するDropoutはその機能ゆえ汎用性が高く、音声認識・画像処理・自然言語処理と幅広い分野で活用されています。
⑥確率的勾配降下法(SGD)
SGDは最適化問題を解く手法の一つです。最適化問題とは、「一定の制約条件のもとで目的関数を最大化もしくは最小化する問題」を指します。
例えば、経済学では個人が財の消費と貯蓄から得られる幸福を「効用関数」で表し、これを個人の給料などによって決まる予算内という条件のもとで最大化する問題を解きます。まさにこれは最適化問題の最たる例です。
実はAIもさまざまな最適化問題を解くことで、学習しています。
例えばAIが自然言語処理の学習をする際は、言語モデルが複雑になりすぎないという制約条件のもとで、目的関数である学習言語データとモデルの乖離度合いを最小化する問題を解きます。
これによって、AIが認識・作成する文章がより現実に近い自然なものになるのです。。
SGDはAIが先述したような最適化問題を解くためのアルゴリズムの一つで、AIの学習に幅広く活用されています。
⑦活性化関数(ReLU)
ReLU(正規化線形関数)は活性化関数の一種で、活性化関数とは入力された数値をどう変換して出力するかを決定するアルゴリズムです。
活性化関数はニューラルネットワークに必ず組み込まれており、活性化関数がAIによる複雑な計算・高度な処理を可能にしています。
その中でもReLU関数とは、「入力値が負の値の場合には0を出力し0以上の値の場合は入力値と同じ値を出力する」という活性化関数です。
例えば、データの中に存在する負の値を外れ値として除外したい場合に、ReLUを組み込むことで正の値のデータのみを出力させることができます。
このように、ReLU関数を含む活性化関数は、全てのニューラルネットワークに組み込まれる必要不可欠なアルゴリズムです。
まとめ
今回は「ディープラーニングと機械学習の違い」をアルゴリズムの違いに注目して解説しました。
また7つのディープラーニングのアルゴリズムについても、構造や機能について理解が進んだのではないでしょうか。
ディープラーニングと機械学習は、AIについて調べると必ずと言っていいほど記されています。
ひとまず、「データの特徴・パターンを人が指定する必要があるかないか」という点に大きな違いがあることを知っているだけでも、一段とAIに対する理解が深まるでしょう。
ディープラーニングのアルゴリズムを理解・応用して、AIの活用の幅を広げてみてはいかがでしょうか。