転移学習やってみた!
アサヒビジネスソリューションズ
百足山 実花
自己紹介
1
名前:百足山 実花(むかでやま みか)
所属:アサヒビジネスソリューションズ株式会社
好きなお酒:ビール、シードル
趣味:映画&海外ドラマ鑑賞
(Prime、Hulu、Netflix入会済み)
2017年入社。大学において深層学習を研究テーマとしていたことも
あり、入社早々に機械学習および深層学習を用いたプロジェクトに
参画。AIコミュニティ「AI×Analytics×女子部」の主催者でもある。
分類モデル
2
# 技術カテゴリ 目的 例
1
画像分類
(Classification)
クラス分類
2
物体検出+分類
(Localization+Classification)
位置特定(単一)
クラス分類
3
物体検出
(Object Detection)
位置特定(複数)
クラス分類
4
オブジェクト領域分割
Semantic Segmentation
輪郭特定
クラス分類
全結合ニューラルネットワーク
3
逆伝播する誤差をベースとして、勾配降下法によりウェイトとバイアスを算出します。
逆伝搬
結果:0.47 期待値:1
誤差:0.53
結果:0.52 期待値:0
誤差:0.48
勾配降下法
今回のように画像分析を実施する場合
4
畳み込みニューラルネットワーク(CNN:Convolutional Neural
Network )を利用することで画像の分析が可能になる。
猫
CNN:Convolutional Neural Network
5
畳
み
込
み
層
プ
ー
リ
ン
グ
層
畳
み
込
み
層
プ
ー
リ
ン
グ
層
ド
ロ
ッ
プ
ア
ウ
ト
全
結
合
層
活
性
化
関
数
畳
み
込
み
層
プ
ー
リ
ン
グ
層
入
力
層
出
力
層
畳
み
込
み
層
プ
ー
リ
ン
グ
層
正解データ 𝑦’
𝑦
損失関数
(交差クロスエントロピー 他)
最適化手法
(勾配降下法 他)
New!
CNNは基本的に畳み込み層とプーリング層から成り立っているニューラルネットワークです。
よって、基本的に畳み込み層とプーリング層について紹介します。
畳み込み層
6
出典:https://www.renom.jp/
畳み込み層は2つの学習可能なパラメータ、ウェイト(weight)とバイアス(bias)を
持った層です。そして特にこれをカーネル(フィルタ)と呼びます。それぞれの
カーネルは画像に全体に沿って畳み込みの計算が行われます。
フィルタ
畳み込み前データ
畳み込み後データ
プーリング層①
7
出典:https://www.renom.jp/
Max Pooling
Max Pooling層は適用されたカーネル内の最大値を取る層です。以下の画像は
Max Pooling層のプロセスを表した画像です。
プーリング層②
8
出典:https://www.renom.jp/
Average Pooling
Average Pooling層は適用されたカーネル内の画像の値(画素)の平均値を取りま
す。以下の画像はAverage Pooling層のプロセスを表した画像です。
代表的モデル:VGG16
9
VGG モデルはオックスフォード大学のVGG チームが作成した、層の深さを追求したモデルの通
称で、ILSVRC-2014 (ImageNet Large Scale Visual Recognition Challenge) というコンテストにおいて第
2位の成績を残しました。
代表的モデル:InceptionV3(GoogLeNet)
10
代表的モデル:InceptionV3(GoogLeNet)
11
InceptionV3は、ILSVRC-2014というコンテストにおいて優勝したGoogLeNetの最新版で、複数の畳
み込み層やpooling層から構成されるInceptionモジュールと呼ばれる小さなネットワークを通常の
畳み込み層のように重ねていくことで構成されたネットワークです。
CNNの分類対象
12
学習対象となる画像は以下の3点。それぞれの画像を分類できることを目指す。
CNN(VGG16)の実行
13
左グラフは、単純に正解率と考え、右グラフは正解との誤差と考えてください。
認識精度向上策(転移学習)
14
• 1,400万枚を超える画像
• 画像に写っている物体名(クラス名)を付与
• 物体名(クラス名)は2万種類以上
IMAGE NET
優秀なネットワークに大量のデータを学習させた、学習済みモデルを活用する。
学習済みモデルは、Weight(重み)が最適化されており、他の画像を学習する
際も、イチから学習するより、はるかに効率の良い学習が可能となる。
認識精度向上策(転移学習)
15
優秀なネットワークでも、そのまま利用することはできない。「入力層」と
「出力層(と少し手前の全結合層)」をデータに合わせて調整する。
VGG16転移学習モデルの作成
16
(中略)
一部は学習させないようにしないと意味がない
学習させないよう変更
入力のカタチにあわせる
後半は学習させたい
VGG16転移学習モデルの改修
17
(中略) (中略)
Before After
CNN(VGG16:転移学習)の実行
18
左グラフは、単純に正解率と考え、右グラフは正解との誤差と考えてください。
VGG16 vs VGG16(転移学習)
19
VGG16 (転移学習無し) VGG16(転移学習有り)
終わり
20
ご清聴いただきありがとうございました。

転移学習やってみた!