見出し画像

ディープラーニングで始めに知っておきたい理論の紹介

はじめに

  • 本投稿の内容について
    こんにちは。SHIFT DAAE(ダーエ)部の栗山です。本記事ではディープラーニングの入門者が始めに知っておきたい理論を紹介します。今回紹介する理論は 「畳み込みニューラルネットワーク」「転移学習」 の2つです。

目次

  • 畳み込みニューラルネットワークの紹介

  • 転移学習の紹介

  • 最後に

  • 参考資料

畳み込みニューラルネットワークの紹介

畳み込みニューラルネットワークとは?

畳み込みニューラルネットワークは英語ではConvolutional Neural Networkと言い、CNNまたはConvNetと呼ばれます。これは 「フィルターを使用することで、画像解析の精度を格段に上げたニューラルネットワーク」 といえます。

畳み込みでないニューラルネットワークには以下のような問題があります。

  • 画像データのセル同士の関係性を表現できない。

  • ※例えば、2次元の画像データには、上下左右の関係があります。

しかし畳み込みニューラルネットワークでは 「フィルターを通すことで、画像データのセル同士の関係性を表現する」 ことが可能で、その結果、画像解析の精度が大きく向上します。

※以下の図解は参考文献にある「ディープラーニングがわかる数学入門」を参考にしています。

フィルターとは何か?

まずフィルターについて説明します。フィルターは特定の画像のパターンです。畳み込みニューラルネットワークではフィルターと画像データを比較し、その類似度を算出します。これにより畳み込みでないニューラルネットワークの問題点に対処することができます。
以下にフィルターを使用し類似度を算出する例を図解します。

上記の例により「特定の画像パターン」であるフィルターを用いて、画像とフィルターの類似度を算出する方法のイメージをつかむことができると思います。
※ここでは説明を簡単にするために、黒く塗りつぶした箇所が一致する場合に類似度を+1として計算しています。実際の計算では、比較対象をベクトルとみなし内積を計算します。

フィルターとニューラルネットワークの結合

次にフィルターを利用して得られた結果をニューラルネットワークに結合する方法を説明します。
まずはフィルターを使用し、類似度をまとめた表を作成します。前項でフィルターから類似度を算出できることを説明しました。今度は算出した類似度を表にまとめます。

そして、この類似度の表をニューラルネットワークの入力とするのです。

畳み込みニューラルネットワークでは、このようにしてフィルターを通して得られた結果をニューラルネットワークで利用します。このようにフィルターを利用することで、畳み込みニューラルネットワークは画像解析の精度を格段に向上させることができるのです。

畳み込みニューラルネットワークの説明はここまでです。具体的なコードはTensorFlowの畳み込みニューラルネットワークのチュートリアルを参照頂けたらと思います。

転移学習の紹介

転移学習とは?

転移学習簡潔に言い表すと 「学習済みのニューラルネットワークから、別の目的に使用できるニューラルネットワークを作成する」 ことといえます。一例をあげると「画像分類用の汎用的なニューラルネットワーク」から「犬猫を見分けることに特化したニューラルネットワーク」を作成するといったことが可能です。

転移学習のメリットは 「少ない労力で目的のニューラルネットワークを作成できる」 ことです。 例えばTensorFlowのチュートリアルでは、転移学習によりたかだか「数千枚の犬猫の画像ファイル」を元に犬猫を見分けるニューラルネットワークを作成しています。

※この数千枚の画像ファイルに対して加工処理(画像を回転するなど)を施し、データ数を増やします。

転移学習の図解イメージ

以下に転移学習の図解イメージを記します。

このように学習済みのニューラルネットワークに対して、レイヤーを追加するようにして目的に沿うニューラルネットワークを作成できます。

次に転移学習に「追加で学習させる部分」を図解します。この場合、2つのパターンがあります。まずは追加部分のみ学習するパターンです。

2つめのパターンは「学習済みのニューラルネットワーク」も再度、学習させるパターンです。図解すると以下のような感じになります。

後者の方が精度が上がります。また「学習済みのニューラルネットワーク」通常、非常に大きなネットワークですが、このネットワーク全体を再度、学習させる必要はありません。追加部分と結合する最後の方のレイヤーを再学習すればよいです。

実際のコードや設定内容などはTensorFlowのチュートリアルを参照頂けるようお願いします。

最後に

本稿では「ディープラーニング入門」の最終回として「畳み込みニューラルネットワーク」「転移学習」についてご紹介しました。

DAAEエンジニアチームでは定期的に勉強会を開催するなどし、日々、技術の習得、知識の向上に努めています。本稿が多少なりとも皆様のお役に立ったり、DAAEに興味を持つきっかけになりましたら幸いです。 最後までお読みいただきどうもありがとうございます。

参考資料

  • ディープラーニングがわかる数学入門

    • 著者:涌井良幸, 涌井貞美、出版社:技術評論社 (March 28, 2017)

  • ゼロから作るDeep Learning

    • 著者:斎藤康毅、出版社:オライリージャパン (September 24, 2016)

\もっと身近にもっとリアルに!DAAE公式Twitter/


執筆者プロフィール:Kuriyama Akira
DAAEで開発エンジニアをしています。前職はPMとエンジニアを兼任しつつC++でデスクトップアプリの開発をしていました。モダンなWEBアプリの開発はとても学ぶことが多く、日々、勉強の毎日です。

お問合せはお気軽に
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/