SlideShare a Scribd company logo
NINと画像分類
for 【第1回】人工知能ハッカソン in メディア工房
Tomomi Daigo
sat.Dec.17.2016
自己紹介
名前:大郷 友海
職業:プログラマ
話すこと
1. Chainerで画像分類を試みている
2. 正解率(accuracy)が上がらない
3. NIN(Network in Network)について
話すこと
1. Chainerで画像分類を試みている
2. 正解率(accuracy)が上がらない
3. NIN(Network in Network)について
1. Chainerで画像分類を試みている
動機
・ キノコを分類したい!
http://cdn-ak.f.st-hatena.com/images/fotolife/d/defender_21/20160114/20160114085535.jpg
データセット
・ 画像検索で集めたキノコ画像742枚
・ クラス数は7
・ 256*256(カラー)に揃える
プログラム
・ chainer v1.5.01
付属のexamplesより、imagenetをコピー
・ ブログ記事等を参考に動かす
・ threadingなどコードが難しいため、簡略化
・ モデルは3層CNN + 2層全結合層 を作成
試行錯誤の末・・・
1
 https://github.com/pfnet/chainer/releases?after=v1.6.2
結果
Validationの正解率(accuracy) = 56.25%
内訳・・・アルゴリズム
・ 学習用画像は540枚
・ (画像-平均画像) / 標準偏差 で正規化
・ 224*224(カラー)にランダム切り抜き
・ 16枚ずつミニバッチ学習
・ epoch=50
・ optimizerはAdam
・ WeightDecay=0.0005, GradientClipping=8.75
内訳・・・モデル
・ L.Convolution2D(3, 6, 7),
・ L.Convolution2D(6, 3, 5),
・ L.Convolution2D(3, 2, 3),
・ l1=F.Linear(1152,500),
・ l2=F.Linear(500,7),
< reluとmax_pooling_2d(ksize=3, stride=2)
< reluとaverage_pooling_2d(ksize=3, stride=2)
< reluとaverage_pooling_2d(ksize=3, stride=2)
< reluと F.dropout(ratio=0.3)
in, out, ksize
2. 正解率(accuracy)が上がらない
結果
Validationの正解率(accuracy) = 56.25%
・・・せっかくなのでもう少し上げたい。
データセット見直し
・ 画像検索で集めたキノコ画像742枚→ノイズ付加で水増し1
して13,356枚に!
・ クラス数は7
・ 256*256(カラー)に揃える →64, 32pxおよびモノクロも試す
1 
http://qiita.com/bohemian916/items/9630661cd5292240f8c7
アルゴリズム見直し
・ 学習用画像は540枚 →10,017枚
・ (画像-平均画像) / 標準偏差 で正規化
・ 224*224(カラー)にランダム切り抜き →192,128,64,32,28px等・・・
・ 16枚ずつミニバッチ学習 →20, 8枚(20枚以上は厳しい)
・ epoch=50 →200等(上げると過学習する)
・ optimizerはAdam
・ WeightDecay=0.0005, GradientClipping=8.75 →Clippingを1〜10まで変化
モデル見直し
・ L.Convolution2D(in_channels, out_channels, ksize)をひたすら調整
・ Convolution→BatchNormalization→relu→maxPooling とするとaccuracy改善
するらしいが、今回は観測できず。
・ Convolution層のチャネル数が入力から出力側へ向けて大きくなっていく構造を
よく見かけた。どういうことかというと・・・
1
 http://hirotaka-hachiya.hatenablog.com/entry/2016/08/06/175824
モデル見直し
・ L.Convolution2D(3, 6, 7),
・ L.Convolution2D(6, 3, 5),
・ L.Convolution2D(3, 2, 3),
・ l1=F.Linear(1152,500),
・ l2=F.Linear(500,7),
こうではなく
て、
・ L.Convolution2D(3, 6, 7),
・ L.Convolution2D(6, 9, 5),
・ L.Convolution2D(9,12, 3),
・ l1=F.Linear(1152,500),
・ l2=F.Linear(500,7),
こう。(値は適当)
ksizeはその逆パターン?(未確
認)
in, out, ksize
見直し結果
良さそうなものもあったが、全体的に過学習気味。
(train と validation の差が非常に大きい・・・)
見直し結果
・ 大きめのミスに気づく
 epoch毎に画像をランダムに並び替えるはずが、最初の1回しか並び替えていない
修正すると・・・
見直し結果
一気に未学習気味になった。epochを上げても改善せず。
(train も validation も正解率が小さい・・・)
(参考) 過学習 / 未学習
● 過学習に有効
○ 学習データを増やす
○ 変数を減らす
○ λ(正則化パラメータ)を大きくする
● 高バイアスに有効
○ 変数増やす
○ 多項式にする(モデルを複雑にする)
○ λ減らす
※2
※1 "Python Machine Learning" より引用 参考: http://chezou.hatenablog.com/entry/2016/05/29/215739
※2 http://lab.synergy-marketing.co.jp/blog/tech/machine-learning-stanford-3
※1
NIN
・ 未学習気味になったものと同じアルゴリズムで、chainer付属のninを移植して学習
させてみると・・・
NIN
正解率が63.9%に!
3. NIN(Network in Network)について
NIN(Network in Network)
・ Min Linら(2014)の提案したニューラルネットワークアーキテクチャ1
・ 従来のCNNの線形フィルタを多層パーセプトロン(MLP)に置き換える
・ CNNは層が進むほど広域をフィルタして高次の概念を生成するが、この提案は局
所的な画像が統合されて高次の概念になる前により良い抽象化をすることに意義が
ある。
1
 https://arxiv.org/abs/1312.4400
NIN(Network in Network)
http://qiita.com/muddydixon/items/11ce0e7352c82bc07fcc
↑ 論文中にあるNINの全体図。3つのMLP層とGlobalAveragePooling層が使
用されている
←NIN内の各レイヤ出力の計算式。活性化関数にreluが使われている。
 i,jは入力フィーチャマップpixelのインデックス。kはチャネルのインデックス、
 nはMLP層の数 
Global Average Pooling
 
1
 https://arxiv.org/abs/1312.4400
・ 同論文で提案されている正則化手法(regularizer)1
・ 従来のCNNはConvolutionで特徴抽出をし、全結合層で分類するが、全結合層は
過学習しやすい。
・ 本手法はこの全結合層をAveragePoolingで置き換え、CNNと各クラスへの出力
を橋渡しする。(クラスラベル1つにつき1つのフィーチャーマップが出力される)
・ 学習パラメータを持たないため、過学習に強い
chainer付属nin.pyのモデル定義
 w = math.sqrt(2)
mlpconv1=L.MLPConvolution2D(3, (96, 96, 96), 11, stride=4, wscale=w),
mlpconv2=L.MLPConvolution2D(96, (256, 256, 256), 5, pad=2, wscale=w),
mlpconv3=L.MLPConvolution2D(256, (384, 384, 384), 3, pad=1, wscale=w),
mlpconv4=L.MLPConvolution2D(384, (1024, 1024, 1000), 3, pad=1,wscale=w),
chainer付属nin.pyのforward
  h = F.max_pooling_2d(F.relu(self.conv1(x)), 3, stride=2)
h = F.max_pooling_2d(F.relu(self.conv2(h)), 3, stride=2)
h = F.max_pooling_2d(F.relu(self.conv3(h)), 3, stride=2)
h = self.conv4(F.dropout(h, train=self.train))
y = F.reshape(F.average_pooling_2d(h, 6), (x.data.shape[0], 1000))
展望
 ・ NIN等の手法から学んで、分類精度を上げて行きたい。
 
ご清聴ありがとうございました。

More Related Content

Similar to NINと画像分類

ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017
ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017
ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017
Tomo Masuda
 
第1回NIPS読み会・関西発表資料 篠崎
 第1回NIPS読み会・関西発表資料 篠崎 第1回NIPS読み会・関西発表資料 篠崎
第1回NIPS読み会・関西発表資料 篠崎
shinozaki_takashi
 
第1回NIPS読み会・関西発表資料
第1回NIPS読み会・関西発表資料第1回NIPS読み会・関西発表資料
第1回NIPS読み会・関西発表資料
Takashi Shinozaki
 
Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話
NVIDIA Japan
 
2018/06/22 Neural Network Console Tutorial
2018/06/22 Neural Network Console Tutorial2018/06/22 Neural Network Console Tutorial
2018/06/22 Neural Network Console Tutorial
Sony Network Communications Inc.
 
ニコニコ動画タグネットワーク
ニコニコ動画タグネットワークニコニコ動画タグネットワーク
ニコニコ動画タグネットワーク
Teruki Shinohara
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
Takeshi HASEGAWA
 
Unity道場08「絵づくりの基礎」ライティング虎の巻
Unity道場08「絵づくりの基礎」ライティング虎の巻Unity道場08「絵づくりの基礎」ライティング虎の巻
Unity道場08「絵づくりの基礎」ライティング虎の巻
小林 信行
 
Unity道場08 Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻
Unity道場08 Unityとアセットツールで学ぶ「絵づくり」の基礎 ライティング虎の巻Unity道場08 Unityとアセットツールで学ぶ「絵づくり」の基礎 ライティング虎の巻
Unity道場08 Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻
小林 信行
 
リクルートにおける画像解析事例紹介と周辺技術紹介
リクルートにおける画像解析事例紹介と周辺技術紹介リクルートにおける画像解析事例紹介と周辺技術紹介
リクルートにおける画像解析事例紹介と周辺技術紹介
Recruit Technologies
 
マルウェア分類に用いられる特徴量 Kaggle - Malware Classification Challenge勉強会
マルウェア分類に用いられる特徴量	 Kaggle - Malware Classification Challenge勉強会マルウェア分類に用いられる特徴量	 Kaggle - Malware Classification Challenge勉強会
マルウェア分類に用いられる特徴量 Kaggle - Malware Classification Challenge勉強会
Takeshi Ishita
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システム
kunihikokaneko1
 
静岡Developers勉強会コンピュータビジョンvol2
静岡Developers勉強会コンピュータビジョンvol2静岡Developers勉強会コンピュータビジョンvol2
静岡Developers勉強会コンピュータビジョンvol2niku9Tenhou
 
Eccv 2020 dsmnet
Eccv 2020 dsmnetEccv 2020 dsmnet
Eccv 2020 dsmnet
Kenta Tanaka
 
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz SpaceUnity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Mori Tetsuya
 
Chainer meetup2016 03-19pub
Chainer meetup2016 03-19pubChainer meetup2016 03-19pub
Chainer meetup2016 03-19pub
Yuta Kashino
 

Similar to NINと画像分類 (16)

ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017
ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017
ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017
 
第1回NIPS読み会・関西発表資料 篠崎
 第1回NIPS読み会・関西発表資料 篠崎 第1回NIPS読み会・関西発表資料 篠崎
第1回NIPS読み会・関西発表資料 篠崎
 
第1回NIPS読み会・関西発表資料
第1回NIPS読み会・関西発表資料第1回NIPS読み会・関西発表資料
第1回NIPS読み会・関西発表資料
 
Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話
 
2018/06/22 Neural Network Console Tutorial
2018/06/22 Neural Network Console Tutorial2018/06/22 Neural Network Console Tutorial
2018/06/22 Neural Network Console Tutorial
 
ニコニコ動画タグネットワーク
ニコニコ動画タグネットワークニコニコ動画タグネットワーク
ニコニコ動画タグネットワーク
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
 
Unity道場08「絵づくりの基礎」ライティング虎の巻
Unity道場08「絵づくりの基礎」ライティング虎の巻Unity道場08「絵づくりの基礎」ライティング虎の巻
Unity道場08「絵づくりの基礎」ライティング虎の巻
 
Unity道場08 Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻
Unity道場08 Unityとアセットツールで学ぶ「絵づくり」の基礎 ライティング虎の巻Unity道場08 Unityとアセットツールで学ぶ「絵づくり」の基礎 ライティング虎の巻
Unity道場08 Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻
 
リクルートにおける画像解析事例紹介と周辺技術紹介
リクルートにおける画像解析事例紹介と周辺技術紹介リクルートにおける画像解析事例紹介と周辺技術紹介
リクルートにおける画像解析事例紹介と周辺技術紹介
 
マルウェア分類に用いられる特徴量 Kaggle - Malware Classification Challenge勉強会
マルウェア分類に用いられる特徴量	 Kaggle - Malware Classification Challenge勉強会マルウェア分類に用いられる特徴量	 Kaggle - Malware Classification Challenge勉強会
マルウェア分類に用いられる特徴量 Kaggle - Malware Classification Challenge勉強会
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システム
 
静岡Developers勉強会コンピュータビジョンvol2
静岡Developers勉強会コンピュータビジョンvol2静岡Developers勉強会コンピュータビジョンvol2
静岡Developers勉強会コンピュータビジョンvol2
 
Eccv 2020 dsmnet
Eccv 2020 dsmnetEccv 2020 dsmnet
Eccv 2020 dsmnet
 
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz SpaceUnity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
 
Chainer meetup2016 03-19pub
Chainer meetup2016 03-19pubChainer meetup2016 03-19pub
Chainer meetup2016 03-19pub
 

Recently uploaded

「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 

Recently uploaded (7)

「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 

NINと画像分類