ディープラーニングで始めに知っておきたい理論の紹介
はじめに
本投稿の内容について
こんにちは。SHIFT DAAE(ダーエ)部の栗山です。本記事ではディープラーニングの入門者が始めに知っておきたい理論を紹介します。今回紹介する理論は 「畳み込みニューラルネットワーク」「転移学習」 の2つです。
構成
本記事は「ディープラーニング入門」をテーマにした全3回の投稿の3回目(最終回)です。全体の構成は以下のようになります。
1. AI技術におけるディープラーニングの位置づけ
2. TensorFlowのチュートリアル紹介
3. ディープラーニングで始めに知っておきたい理論の紹介 ← 今回
目次
畳み込みニューラルネットワークの紹介
転移学習の紹介
最後に
参考資料
畳み込みニューラルネットワークの紹介
畳み込みニューラルネットワークとは?
畳み込みニューラルネットワークは英語ではConvolutional Neural Networkと言い、CNNまたはConvNetと呼ばれます。これは 「フィルターを使用することで、画像解析の精度を格段に上げたニューラルネットワーク」 といえます。
畳み込みでないニューラルネットワークには以下のような問題があります。
画像データのセル同士の関係性を表現できない。
※例えば、2次元の画像データには、上下左右の関係があります。
しかし畳み込みニューラルネットワークでは 「フィルターを通すことで、画像データのセル同士の関係性を表現する」 ことが可能で、その結果、画像解析の精度が大きく向上します。
※以下の図解は参考文献にある「ディープラーニングがわかる数学入門」を参考にしています。
フィルターとは何か?
まずフィルターについて説明します。フィルターは特定の画像のパターンです。畳み込みニューラルネットワークではフィルターと画像データを比較し、その類似度を算出します。これにより畳み込みでないニューラルネットワークの問題点に対処することができます。
以下にフィルターを使用し類似度を算出する例を図解します。
上記の例により「特定の画像パターン」であるフィルターを用いて、画像とフィルターの類似度を算出する方法のイメージをつかむことができると思います。
※ここでは説明を簡単にするために、黒く塗りつぶした箇所が一致する場合に類似度を+1として計算しています。実際の計算では、比較対象をベクトルとみなし内積を計算します。
フィルターとニューラルネットワークの結合
次にフィルターを利用して得られた結果をニューラルネットワークに結合する方法を説明します。
まずはフィルターを使用し、類似度をまとめた表を作成します。前項でフィルターから類似度を算出できることを説明しました。今度は算出した類似度を表にまとめます。
そして、この類似度の表をニューラルネットワークの入力とするのです。
畳み込みニューラルネットワークでは、このようにしてフィルターを通して得られた結果をニューラルネットワークで利用します。このようにフィルターを利用することで、畳み込みニューラルネットワークは画像解析の精度を格段に向上させることができるのです。
畳み込みニューラルネットワークの説明はここまでです。具体的なコードはTensorFlowの畳み込みニューラルネットワークのチュートリアルを参照頂けたらと思います。
転移学習の紹介
転移学習とは?
転移学習簡潔に言い表すと 「学習済みのニューラルネットワークから、別の目的に使用できるニューラルネットワークを作成する」 ことといえます。一例をあげると「画像分類用の汎用的なニューラルネットワーク」から「犬猫を見分けることに特化したニューラルネットワーク」を作成するといったことが可能です。
転移学習のメリットは 「少ない労力で目的のニューラルネットワークを作成できる」 ことです。 例えばTensorFlowのチュートリアルでは、転移学習によりたかだか「数千枚の犬猫の画像ファイル」を元に犬猫を見分けるニューラルネットワークを作成しています。
※この数千枚の画像ファイルに対して加工処理(画像を回転するなど)を施し、データ数を増やします。
転移学習の図解イメージ
以下に転移学習の図解イメージを記します。
このように学習済みのニューラルネットワークに対して、レイヤーを追加するようにして目的に沿うニューラルネットワークを作成できます。
次に転移学習に「追加で学習させる部分」を図解します。この場合、2つのパターンがあります。まずは追加部分のみ学習するパターンです。
2つめのパターンは「学習済みのニューラルネットワーク」も再度、学習させるパターンです。図解すると以下のような感じになります。
後者の方が精度が上がります。また「学習済みのニューラルネットワーク」通常、非常に大きなネットワークですが、このネットワーク全体を再度、学習させる必要はありません。追加部分と結合する最後の方のレイヤーを再学習すればよいです。
実際のコードや設定内容などはTensorFlowのチュートリアルを参照頂けるようお願いします。
最後に
本稿では「ディープラーニング入門」の最終回として「畳み込みニューラルネットワーク」「転移学習」についてご紹介しました。
DAAEエンジニアチームでは定期的に勉強会を開催するなどし、日々、技術の習得、知識の向上に努めています。本稿が多少なりとも皆様のお役に立ったり、DAAEに興味を持つきっかけになりましたら幸いです。 最後までお読みいただきどうもありがとうございます。
参考資料
ディープラーニングがわかる数学入門
著者:涌井良幸, 涌井貞美、出版社:技術評論社 (March 28, 2017)
ゼロから作るDeep Learning
著者:斎藤康毅、出版社:オライリージャパン (September 24, 2016)
\もっと身近にもっとリアルに!DAAE公式Twitter/
お問合せはお気軽に
https://service.shiftinc.jp/contact/
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/