Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
にゃーんとわんわん
Search
Doarakko
December 11, 2020
Programming
1.2k
0
Share
にゃーんとわんわん
Doarakko
December 11, 2020
More Decks by Doarakko
See All by Doarakko
Cloudflare Workers で X(Twitter)のボットを作ってみた
doarakko
0
320
Vercel Edge Functions を使って作る画像メーカー
doarakko
0
88
JOIN して1ヶ月のエンジニアに聞いた Liiga の良いところ 3 選
doarakko
0
89
わんわおーん
doarakko
0
75
職場を明るくする
doarakko
0
330
コードレビューの時間を削減しました
doarakko
0
110
仕事中に隠れてテレビ番組表を見るぞ
doarakko
0
220
GitHub Project の運用を自動化しました
doarakko
0
120
GitHub Actions に入門しました
doarakko
0
1.4k
Other Decks in Programming
See All in Programming
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.5k
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.8k
GitHub Copilot CLIのいいところ
htkym
2
1.2k
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
1.3k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
120
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1.1k
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
2k
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
11k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
450
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
110
Transactional Change Stream Processing With Debezium and Apache Flink
gunnarmorling
1
160
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
420
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
190
Crafting Experiences
bethany
1
160
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
200
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
280
Statistics for Hackers
jakevdp
799
230k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Abbi's Birthday
coloredviolet
2
7.8k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
560
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
380
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Transcript
にゃーんとわんわん @Doarakko
・2019年12月入社(2社目) ・エンジニア歴1.5年 - 仕事: Go, PHP - 趣味: Python, C++
・AtCoder 緑 ・海外サッカーをよく見ます 自己紹介 2
3
4
Slackbot を使ってます 5 ・Slack 標準搭載のボット ・誰でも簡単に使える ・改行で区切るとランダムで返る ・画像 URL は展開される
手動追加面倒くさい & 文字数制限あり 6
Bot 作りました 7 ⚽ GitHub: https://github.com/Doarakko/iyashi
Heroku 全体の構成と流れ:画像投稿 8 bot ML model postgres ① ② ③
④ ⑤
Heroku 全体の構成と流れ:にゃーん 9 bot ML model postgres ① ② ③
④ にゃーん
使用したもの Slack Bot ・Heroku:Bot を動かしている場所 ・slackbot:Python で簡単に Slack Bot を作成するためのライブラリ
動物の画像認識モデル ・PyTorch:機械学習のライブラリ ・flickr API:動物画像の収集 ・Google Colab:モデル作成の作業場所 10
・超簡単に Slack Bot を作れる ・特定のメッセージに対して、送信・返信・絵文字をつけられる Python のライブラリ slackbot 11 https://github.com/lins05/slackbot
1. データ収集 2. 画像のノイズ除去 3. 前処理 4. 転移学習 5. モデル評価
モデル作成手順 12
flickr API を使って各動物 600 枚の画像を収集(合計 3,000 枚) モデル作成手順(1 / 5):データ収集
13 flickr: 写真共有サイト
モデル作成手順(2 / 5):画像のノイズ除去 14 今回はサボりました
モデル作成手順(3 / 5):前処理 15 今回行ったもの ・画像サイズをあわせる ・正規化 よく行うもの ・ 写真から顔を切り取る(for
顔認識モデル) ・オリジナルを回転した画像を生成(水増し) ・位置の補正
モデル作成手順(4 / 5):転移学習 16 過学習:模擬試験は 90 点だったけど本番は 30 点 ・学習済みモデルのパラメータをそのまま使用
・最終層以外のパラメータを学習させないため過学習を抑えられる ・クラス数にあわせて最終層を変更 https://www.youtube.com/watch?v=yv0SzIvIhGk
モデル作成手順(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
モデル作成手順(5 / 5):モデル評価 18 ・合計 3,000 枚の画像をランダムに分ける(各クラスごとの画像枚数は均等に) - 学習用:2,000 枚
- バリデーション用:500 枚 - テスト用:500 枚 テスト用のデータに対して Accuracy 0.9820 各データは必ず独立させる(例:学習用とテスト用で同じデータを使わない)
1. データ収集 2. 画像のノイズ除去 3. 前処理 4. 転移学習 5. モデル評価
モデル作成手順(再掲) 19
ルールベース 1:80 % (仮) ・「ネコ」がほとんど(弊社)なので全て「ネコ」として判定 ルールベース 2:90 % (仮) ・A
さんは「イヌ」を飼っている → A さんから投稿された画像は全て「イヌ」として判定 ・B さんは「ネコ」と「イヌ」を飼っている → ランダムで判定 機械学習:98 % ・実装難易度、工数、スペシャリスト、運用コスト、 etc 機械学習本当に必要ですか? 20 本当に機械学習が必要なのか、他に方法がないかしっかりと考える必要がある
付録:誰でもどこでもコーディングフリーで with Heroku Button 21 JSON ファイルを書くだけで簡単にツールを配布可能 ⚽ https://github.com/Doarakko/iyashi
⚽ https://speakerdeck.com/8823scholar/herokuhasi-ndafalseka
にゃーんとわんわん @Doarakko