にゃーんとわんわん
by
Doarakko
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
にゃーんとわんわん @Doarakko
Slide 2
Slide 2 text
・2019年12月入社(2社目) ・エンジニア歴1.5年 - 仕事: Go, PHP - 趣味: Python, C++ ・AtCoder 緑 ・海外サッカーをよく見ます 自己紹介 2
Slide 3
Slide 3 text
3
Slide 4
Slide 4 text
4
Slide 5
Slide 5 text
Slackbot を使ってます 5 ・Slack 標準搭載のボット ・誰でも簡単に使える ・改行で区切るとランダムで返る ・画像 URL は展開される
Slide 6
Slide 6 text
手動追加面倒くさい & 文字数制限あり 6
Slide 7
Slide 7 text
Bot 作りました 7 ⚽ GitHub: https://github.com/Doarakko/iyashi
Slide 8
Slide 8 text
Heroku 全体の構成と流れ:画像投稿 8 bot ML model postgres ① ② ③ ④ ⑤
Slide 9
Slide 9 text
Heroku 全体の構成と流れ:にゃーん 9 bot ML model postgres ① ② ③ ④ にゃーん
Slide 10
Slide 10 text
使用したもの Slack Bot ・Heroku:Bot を動かしている場所 ・slackbot:Python で簡単に Slack Bot を作成するためのライブラリ 動物の画像認識モデル ・PyTorch:機械学習のライブラリ ・flickr API:動物画像の収集 ・Google Colab:モデル作成の作業場所 10
Slide 11
Slide 11 text
・超簡単に Slack Bot を作れる ・特定のメッセージに対して、送信・返信・絵文字をつけられる Python のライブラリ slackbot 11 https://github.com/lins05/slackbot
Slide 12
Slide 12 text
1. データ収集 2. 画像のノイズ除去 3. 前処理 4. 転移学習 5. モデル評価 モデル作成手順 12
Slide 13
Slide 13 text
flickr API を使って各動物 600 枚の画像を収集(合計 3,000 枚) モデル作成手順(1 / 5):データ収集 13 flickr: 写真共有サイト
Slide 14
Slide 14 text
モデル作成手順(2 / 5):画像のノイズ除去 14 今回はサボりました
Slide 15
Slide 15 text
モデル作成手順(3 / 5):前処理 15 今回行ったもの ・画像サイズをあわせる ・正規化 よく行うもの ・ 写真から顔を切り取る(for 顔認識モデル) ・オリジナルを回転した画像を生成(水増し) ・位置の補正
Slide 16
Slide 16 text
モデル作成手順(4 / 5):転移学習 16 過学習:模擬試験は 90 点だったけど本番は 30 点 ・学習済みモデルのパラメータをそのまま使用 ・最終層以外のパラメータを学習させないため過学習を抑えられる ・クラス数にあわせて最終層を変更 https://www.youtube.com/watch?v=yv0SzIvIhGk
Slide 17
Slide 17 text
モデル作成手順(4 / 5):転移学習 17 ・ImageNet で学習させた ResNet-18 を使用 ・ResNet は最大 152 層(今回は一番小さいものを使用) PyTorch から簡単に学習済みのモデルを使えます https://www.researchgate.net/figure/Proposed-Mod ified-ResNet-18-architecture-for-Bangla-HCR-In-th e-diagram-conv-stands-for_fig1_323063171
Slide 18
Slide 18 text
モデル作成手順(5 / 5):モデル評価 18 ・合計 3,000 枚の画像をランダムに分ける(各クラスごとの画像枚数は均等に) - 学習用:2,000 枚 - バリデーション用:500 枚 - テスト用:500 枚 テスト用のデータに対して Accuracy 0.9820 各データは必ず独立させる(例:学習用とテスト用で同じデータを使わない)
Slide 19
Slide 19 text
1. データ収集 2. 画像のノイズ除去 3. 前処理 4. 転移学習 5. モデル評価 モデル作成手順(再掲) 19
Slide 20
Slide 20 text
ルールベース 1:80 % (仮) ・「ネコ」がほとんど(弊社)なので全て「ネコ」として判定 ルールベース 2:90 % (仮) ・A さんは「イヌ」を飼っている → A さんから投稿された画像は全て「イヌ」として判定 ・B さんは「ネコ」と「イヌ」を飼っている → ランダムで判定 機械学習:98 % ・実装難易度、工数、スペシャリスト、運用コスト、 etc 機械学習本当に必要ですか? 20 本当に機械学習が必要なのか、他に方法がないかしっかりと考える必要がある
Slide 21
Slide 21 text
付録:誰でもどこでもコーディングフリーで with Heroku Button 21 JSON ファイルを書くだけで簡単にツールを配布可能 ⚽ https://github.com/Doarakko/iyashi
Slide 22
Slide 22 text
⚽ https://speakerdeck.com/8823scholar/herokuhasi-ndafalseka
Slide 23
Slide 23 text
にゃーんとわんわん @Doarakko