-
1.
機械学習を「民主化」する取り組み
OMRON SINIC X / Ridge-i
牛久 祥孝
losnuevetoros
-
2.
自己紹介
2014.4 博士(情報理工学)、東京大学
2014.4~2016.3 NTT CS研 研究員
2016.4~ 東京大学 講師 (原田・牛久研究室)
2016.9~ 産業技術総合研究所 協力研究員
2016.12~ 国立国語研究所 共同研究員
2018.4~ オムロンサイニックエックス株式会社
Principal Investigator
2019.1~ 株式会社Ridge-I CRO
[Ushiku+, ACMMM 2012]
[Ushiku+, ICCV 2015]
画像キャプション生成 主観的な感性表現を持つ
画像キャプション生成
動画の特定区間と
キャプションの相互検索
[Yamaguchi+, ICCV 2017]
A guy is skiing with no shirt on
and yellow snow pants.
A zebra standing in a field
with a tree in the dirty
background.
[Shin+, BMVC 2016]
A yellow train on the tracks
near a train station.
-
3.
機械学習を活用した研究開発の為には…
AI/MLの専門家が
設計したものを
大規模な計算基盤で
学習するために
全てのデータが
召し上げられる
-
4.
機械学習を「民主化」するためには
良く言われる「民主化」は
• githubやarXivによる知識の共有
• 自動AIによる非専門家のAI活用
-
5.
機械学習を「民主化」するためには
良く言われる「民主化」は
• githubやarXivによる知識の共有
• 自動AIによる非専門家のAI活用
改善! あれ、こっちは…?
-
6.
この講演では
• AI/MLのエキスパートが設計したものを
• 大規模な計算基盤で学習するために
• 全てのデータが召し上げられる
民主化に重要(かつあまり語られることのない)
• 限定された資源でも
• 全てのデータを集約しなくても
実行可能な機械学習技術を紹介
-
7.
限定された資源による機械学習
-
8.
最新の機械学習技術
• 画像処理(ResNet-50)
– 2分で終わる! [Mikami+, 2018]
– ただしGPUが3456枚あった時の話
– しかも上記モデルは最新鋭ではない
• 自然言語処理(BERT-Large)
– 4日 × 16 TPUs
– TPU…深層学習に特化したハードウェア
Google Cloud Platform上で使用可能で、GPUの
10倍以上速い
-
9.
限定された資源での機械学習
• ストレージの制約 / 少ないデータに対応するには
– データ拡張
– 本講演:新たなデータ拡張としてBC-Learningを紹介
• 計算機の制約 / ラベル付きデータが少ない場合
– 事前学習済みモデルからの転移学習
cf. ファインチューニング
– 本講演:とくに挑戦的な教師なしドメイン適応を概観
-
10.
少数のラベル付きデータを効果的に学習するには
-
11.
なぜそれだけでうまく行くのか
• 感覚的な解釈としては:パターンが増えている
– 猫の鳴く音
– 犬の鳴く音
人間はそれぞれの音とその強弱を聞き分けられる
• 機械学習としては:Fisher’s criterionと無相関化
– Fisher’s criterion = クラス弁別性
– 無相関化 = クラスごとのサンプルの分布が改善
様々な割合で2つが混ざった音
-
12.
データをどんな状態で合成するか
• 音響認識のためには
– 2種類の音声をそのまま合成すればよい
-
13.
データをどんな状態で合成するか
• 音響認識のためには
– 2種類の音声をそのまま合成すればよい
-
14.
データをどんな状態で合成するか
• 音響認識のためには
– 2種類の音声をそのまま合成すればよい
-
15.
データをどんな状態で合成するか
• 音響認識のためには
– 2種類の音声をそのまま合成すればよい
• 画像認識のためには
-
16.
データをどんな状態で合成するか
• 音響認識のためには
– 2種類の音声をそのまま合成すればよい
• 画像認識のためには
– 特徴量レベルで合成する?
– よりも…画像レベルで合成した方が良い!
学習回数 学習手法 誤識別率(%)
100 epoch
Standard 20.4
BC (ours) 19.9
150 epoch
Standard 20.4
BC (ours) 19.4
ImageNet 1Kでの精度
-
17.
BC Learning まとめ
-
18.
転移学習 / ドメイン適応
• ソースドメイン
教師付きデータだが本番の環境とは違う
• ターゲットドメイン
本番環境で認識させたいデータだが教師データが
– 全く無い: 教師なしドメイン適応
– 一部にしかない: 半教師付きドメイン適応
ビデオ
ゲーム
実世界
-
19.
疑似ラベルを用いたドメイン適応
1st: Training on MNIST → Add pseudo labels for easy samples
2nd~: Training on MNIST+α → Add more pseudo labels
eight
nine
Asymmetric Tri-training for Domain Adaptation
[Saito+, ICML 2017]
-
20.
p1
p2
pt
S+Tl
Tl
S : source samples
Tl : pseudo-labeled target samples
Input
X
F1
F2
Ft
ŷ : Pseudo-label for target sample
y : Label for source sample
F
S+Tl
F1 ,F2 : Labeling networks
Ft : Target specific network
F : Shared network
非対称三叉学習
-
21.
p1
p2
pt
S+Tl
Tl
S : source samples
Tl : pseudo-labeled target samples
Input
X
F1
F2
Ft
ŷ : Pseudo-label for target sample
y : Label for source sample
F
S+Tl
FはF1,F2,Ftからの誤差の
勾配それぞれで学習
非対称三叉学習
-
22.
p1
p2
pt
S
S
S : source samples
Tl : pseudo-labeled target samples
Input
X
F1
F2
Ft
ŷ : Pseudo-label for target sample
y : Label for source sample
F
S
ソースドメインのデータで
各識別器を初期化
1. 初期学習
-
23.
p1
p2
TInput
X
F1
F2
F
T
各ターゲットサンプルについて
F1とF2が一定以上の確信度で同じクラスだと分類したら疑似ラベル付与
T: Target samples
2. ターゲットのサンプルに疑似ラベル付与
-
24.
F1, F2 : ソース+疑似ラベル付きターゲット
Ft: 疑似ラベル付きターゲット
F : 全識別器からの誤差伝搬
p1
p2
pt
S+Tl
Tl
S : source samples
Tl : pseudo-labeled target samples
Input
X
F1
F2
Ft
ŷ : Pseudo-label for target sample
y : Label for source sample
F
S+Tl
3. 疑似ラベルを用いてターゲット学習
-
25.
p1
p2
pt
S+Tl
Tl
S : source samples
Tl : pseudo-labeled target samples
Input
X
F1
F2
Ft
ŷ : Pseudo-label for target sample
y : Label for source sample
F
S+Tl
2.と3.を収束まで繰り返す!
3. 疑似ラベルを用いてターゲット学習
-
26.
目的関数
最終的な目的関数 l1 |WT
1W2 |+L1 +L2 + L3
W1
W2
p1
p2
pt
S+Tl
F1
F2
Ft
F
S+Tl
Tl
L1
L2
L3
CrossEntropy
F1とF2のパラメータが直交すると小さくなる
つまり、異なる振舞いをもつように仕向ける
-
27.
実験結果
• 数字データセット
– MNIST, SVHN, SYN DIGIT
• 道路標識データセット
– GTSRB, SYN SIGN
GTSRB SYN SIGNS
SYN DIGITSSVHN
MNISTMNIST-M
-
28.
ターゲットドメインでの精度比較
Source MNIST MNIST SVHN SYNDIG SYN NUM
Method Target MN-M SVHN MNIST SVHN GTSRB
Source Only (w/o BN) 59.1 37.2 68.1 84.1 79.2
Source Only (with BN) 57.1 34.9 70.1 85.5 75.7
DANN [Ganin et al., 2014] 81.5 35.7 71.1 90.3 88.7
MMD [Long et al., 2015 ICML] 76.9 - 71.1 88.0 91.1
DSN [Bousmalis et al, 2016 NIPS] 83.2 - 82.7 91.2 93.1
K-NN Labeling [Sener et al., 2016 NIPS] 86.7 40.3 78.8 - -
Ours (w/o BN) 85.3 39.8 79.8 93.1 96.2
Ours (w/o Weight
constraint)
94.2 49.7 86.0 92.4 94.0
Ours 94.0 52.8 86.8 92.9 96.2
-
29.
生成モデルを用いるアプローチ
• ドメインのズレを敵対的学習で克服する
– 商品の背景
– 構図のバリエーション
– 照明条件
– …
• 物体は識別できるけど
• どちらのドメインの画像かはわからない
ような特徴量を抽出できればよい
“特徴量の生成”
-
30.
Deep Domain Confusion (DDC)
• Sourceドメインの識別エラーを最小化
• ドメイン間の分布の重なりを最大化
[Tzeng+, arXiv 2014]
-
31.
DDCのネットワークアーキテクチャ
• Classification LossとDomain Lossの最適化
• Domain Lossとは:
– Maximum Mean Discrepancy (MMD)
– Classification Lossとの重みづけ
和を最適化
Source の
特徴量平均
Target の
特徴量平均
-
32.
Office データセットによる実験
• 共通する商品かつ撮影条件の
異なる3つのドメイン
• 提案手法:
Domain Confusionにより性能が大幅に向上
-
33.
定性的な結果:特徴量の分布
Adaptation前
同じ「モニター」でも
ドメイン(緑/青)によって
分布が異なる
-
34.
定性的な結果:特徴量の分布
Adaptation後
ドメインによらず「モニター」の分布が一致!
-
35.
Deep Adaptation Networks (DAN)
• Multiple Kernel MMD (ML-MMD)によって
ドメイン間の分布を重ねる
• DDCに比べて
– 複数のレイヤー
で分布を重ねる
– 線形の距離→
Multiple Kernelの利用
• Officeデータセット上でDDCを超える性能
[Long+, ICML 2015]
-
36.
Domain Adversarial Neural Networks (DANN)
• Deep Adaptation Networks (DAN)
と名前が紛らわしい
• Domain Adversarial Neural Networks
という名前はジャーナル版 [Ganin+, JMLR 2016] で登場
• GANと同様の思想で
ドメインに依らない特徴量の抽出を敵対的学習
– GAN: サンプリングした潜在空間に基づく生成データ vs.
実際に存在するデータ
– DANN: Source ドメインから抽出した特徴量 vs. Target ド
メインから抽出した特徴量
[Ganin+Lempitsky, ICML 2015]
-
37.
DANNネットワークアーキテクチャ
• ドメインに依らない特徴量を抽出したい𝐺𝑓
• クラス識別をしたい𝐺 𝑦
• ドメイン識別をしたい𝐺 𝑑
-
38.
敵対的学習とその
• ドメイン識別ロス𝐿 𝑑をめぐる敵対的学習
– ドメイン識別をしたい𝐺 𝑑は𝐿 𝑑を最小化したい
– ドメインに依らない特徴量を抽出したい𝐺𝑓は𝐿 𝑑
を最大化したい
• 問題点: 𝐿 𝑑の勾配に対して
– 𝐺 𝑑は勾配降下したい一方で𝐺𝑓は勾配上昇したい
– 𝐺 𝑑と𝐺𝑓の接続関係から勾配を逆向きに進めない
-
39.
Gradient Reversal Layerの導入
陽な関数の形では書けないけど、とにかく
• 順伝搬の時は何もせず
• 逆伝搬の時は勾配の符号を反転する
レイヤーを導入する
続く2モジュールで同時に降下/上昇できる
-
40.
実験結果
• Office データセット
• 文字データセット
特徴量分布の変化
SYN NUMBERS(赤点)
→SVHN(青点)
Adapt
-
41.
Adversarial Discriminative Domain Adaptation
DANNと同様にドメイン識別器を敵対的学習
[Tzeng+, CVPR 2017]
-
42.
DANNに対する問題意識
• 共通のネットワークで
2つのドメインから特徴
抽出するのは
✓パラメータ数を削減できるのが良い
×異なるドメインの特徴量抽出を同時にやるのは
無理がある
• Gradient Reversal Layerは
✓GANの目的関数に忠実ではある
×学習初期に勾配を消失させることで
Discriminatorの更新がとまりやすい
-
43.
ADDAでは
• それぞれのドメインで異なるCNNにより特
徴量を抽出
Source ドメインのCNNはPre-trainingしておく
• Gradient ReversalではなくGANで一般的な
inverted labelに対する損失を用いる
(𝑀𝑡:Target 特徴量 𝐷: ドメイン識別)
-
44.
実験結果
Officeと文字データセットでState-of-the-art
-
45.
Maximum Classifier Discrepancy (MCD)
ここまでの手法はドメインを一致させようと
しているが…
• ドメイン全体の分布を一致させても
クラスごとの分布は一致しないのでは
[Saito+, CVPR 2018]
-
46.
Maximum Classifier Discrepancy (MCD)
ここまでの手法はドメインを一致させようと
しているが…
• ドメイン全体の分布を一致させても
クラスごとの分布は一致しないのでは
• ドメインの一致ではなくクラス識別面の一致では
[Saito+, CVPR 2018]
-
47.
Maximum Classifier Discrepancy (MCD)
0. Source(点線)とTarget(実線)で2クラス識別
-
48.
Maximum Classifier Discrepancy (MCD)
1. 2クラス識別器を2つ用意する
Sourceで訓練する識別面は
・点線部分は横切らない
・実線部分は横切るかもしれない
この斜線部分(Discrepancy Region)
をなくしたい
-
49.
Maximum Classifier Discrepancy (MCD)
2. 出来るだけ多くのDiscrepancyをあぶりだす
識別面のみ更新
-
50.
Maximum Classifier Discrepancy (MCD)
3. Discrepancyが減るように特徴量を学習
特徴量抽出のみ更新
-
51.
Maximum Classifier Discrepancy (MCD)
収束するまで 2. と 3. を繰り返す
-
52.
実験結果
文字データセットでState-of-the-art
-
53.
実験結果
画像のセマンティックセグメンテーション
-
54.
Adversarial Dropout Regularization (ADR)
ここまでの手法はドメインを一致させようと
しているが…
• ドメイン全体の分布を一致させても
クラスごとの分布は一致しないのでは
• ドメインの一致ではなくクラス識別面の一致では
[Saito+, ICLR 2018]
…あれ、さっき聞いた気がするぞ?
-
55.
実はMCDのDropoutによる改良版
この2つの識別器を
直接学習: MCD
Dropoutで生成: 提案手法
-
56.
学習はMCDと同様
-
57.
実験結果
文字データセットでState-of-the-art
-
58.
実験結果
画像のセマンティックセグメンテーション
-
59.
Source Target
Closed Domain Adaptation Open Set Domain Adaptation
Source Target
Unknown
・ 通常のドメイン適応では:ソースとターゲットのクラスが一致
・…ターゲットにはラベルが無いのに、本当にクラス一致するのか?
・ Open Set: ターゲットに未知のクラスがある問題設定
cf. 逆の問題設定 = Partial Domain Adaptation [Cao+, ECCV 2018]
Open Set Domain Adaptation (OSDA)[Saito+, ECCV 2018]
-
60.
Source Target Source Target
Unknown
Source Target
Unknown
通常のドメイン適応なら
まだうまく行くかもしれないが…
Open Setだと未知のクラスも
ソースドメインの既知クラスになる!
提案手法では未知クラスの分布を一致させないように工夫
単純に分布を合わせようとすると
-
61.
Source: 0~4, Target: 0~9 → 5~9が未知
青: ソース(既知) 赤: ターゲット(既知) 緑: ターゲット(道)
数字データセットによる実験結果
-
62.
ソース (bike, bus, car, motorbike, train, truck) ターゲット (Known +Unknown (person, horse, knife, …. )
ラベル付き人工データ ラベル無し実世界データ
人工データからリアルデータ
-
63.
物体検出のためのドメイン適応
[Saito+, CVPR 2019]
-
64.
全てのデータを集約しなくても
よい機械学習
-
65.
そのデータ、アップロードしたいですか?
• 我々の生活に密着した機能を提供してほしい
• プライベートな情報を提供する必要がある
– 学習時
– 実行時
通話記録 健康/医療データ ライフログ
-
66.
サーバに頼らない深層学習結果の利用
ブラウザの利用:WebDNN [Hidaka+, ACMMM 2017]
• 学習済みの深層ニューラルネットワークを実行用に最適化
• ブラウザ上でJavaScriptを利用しながら実行可能
• ブラウザ上でもGPUを使えるので高速
• サーバからモデルをダウンロードしてローカルで実行
→サーバにデータをアップロードしないで深層学習結果を
使える!
-
67.
MILJS: JavaScriptによる分散並列学習
• 学習と推定の両方をサポート
• GPUでの計算をJavaScriptからサポート
• もちろんGPUがなくても実行可能
• 事前にインストールすべきはブラウザのみ
巨大なResNet-152でさえも学習できる
[Hidaka+, ICLR Workshop 2017]
-
68.
Federated Learning
• 連合学習: データを集約するのではなく
モデルを集約して集合知を獲得
• 各端末ではユーザのデータに応じてモデルを更新
• サーバでは各モデルから共通モデルへと統合
[McMahan+, 2017]
-
69.
Decentralized GAN
• Federated Learningは
– 通常の識別/回帰に使える
– …ほかの場合は?
• 例えば:生成モデル
– GANには生成器と弁別器の2つが存在
– それぞれが敵対的に学習
– どうやれば Federated Learning のようにデータを分散
させたまま集合知的な生成モデルが得られるか?
• 単純に Federated Learning で生成器と弁別器をそれぞれ統合す
るのではうまく行かない
• 集合知的な生成モデルが得られるような統合手法を提案
[Yonetani+, 2019]
-
70.
強化学習の転移学習
• 異なる環境・身体のエージェントが複数存在
– 強化学習済み
– 新規の環境・身体のエージェントに対して
この上記学習済みモデルは寄与するか?
• 提案手法:ソースの学習済みモデルを統合
しかも既存手法のようなソース環境へのアクセスは不要
Robotic ants with different leg designs Proposed Approach
Learning from scratch
Adaptive aggregation of
source policies
0
1000
2000
0.5M 1M 1.5M 2M
EPISODICREWARD TIMESTEP
Proposed Baseline
Learning Curves
[Barekatain+, 2019]
-
71.
まとめ
機械学習の民主化を目指して
AI/MLの専門家が
設計したものを
大規模な計算基盤で
学習するために
全てのデータが
召し上げられる
BC-Learning
ドメイン適応
JavaScript x DL
Federated Learning
-
72.
画像の認識・理解シンポジウム
MIRU 2020
2020年8月2日~4日 仙台
学習に使うネットワーク。先述のように、2つのネットワーク(青いネットワーク)をラベルづけにつかう。
1つのネットワーク(オレンジ)は、擬似ラベルのついたターゲットからしか学習しない。
共有されているネットワーク(緑)は、3つのネットワーク、すべての勾配から学習する。次のスライドから、実際の学習プロセス。
最初は、擬似ラベルがないので、ソースのみを用いて、全体のネットワークを学習させる。
次に、ターゲットサンプルを、ラベルづけする。二つの識別器のクラス出力が一致する、なおかつ、どちらかの確率が、thresholdより大きいという条件を満たしたサンプルにのみ、対応する擬似ラベルを付与する。この条件を課すことで、より正確な擬似ラベルが得られると期待する。
擬似ラベルを用いて、ネットワークを再学習。
青いネットワークは、ソースと、ターゲット両方から学習する。具体的には、ミニバッチをソース、ターゲットの半分づつから構成する。
オレンジのネットワークは、ターゲットのみから学習する。オレンジのネットワークからの勾配が緑のネットワークに、ターゲットに対する識別性をもたらすように。
ラベルづけ、再学習を何度も繰り返す。(ラベルづけ対象のサンプルは徐々に増やす。また、過学習を防ぐために、毎回、一度ラベルづけされたサンプルも、ラベルをクリアする。)
擬似ラベルを用いて、ネットワークを再学習。
青いネットワークは、ソースと、ターゲット両方から学習する。具体的には、ミニバッチをソース、ターゲットの半分づつから構成する。
オレンジのネットワークは、ターゲットのみから学習する。オレンジのネットワークからの勾配が緑のネットワークに、ターゲットに対する識別性をもたらすように。
ラベルづけ、再学習を何度も繰り返す。(ラベルづけ対象のサンプルは徐々に増やす。また、過学習を防ぐために、毎回、一度ラベルづけされたサンプルも、ラベルをクリアする。)
擬似ラベルをハードなラベルとみなして、ネットワークを学習させる。普通のクロスエントロピー。
2つの青いネットワークは、できるだけ、異なる性質をもつ識別器になってほしい。ということで、重みに制約を加える。
この制約によって、2つの青いネットワークが、異なる特徴から学習するようになると期待される。効果は、実験で確認することにする。
数字画像、標識画像での精度評価。
精度は、良い。
BNをネットワークに挿入した場合とそうでない場合に、データセットによっては大きく性能に差があった。
また、重みの対する制約は、ハッキリとした効果は認められなかった。これは、ラベルづけネットワークが、異なる初期値で重みを初期化することによると考えられる。そのため、制約を与えずとも、二つのネットワークが、異なる識別器として学習される。
Closedでの研究が多くなされている。
Targetは、ラベルづけされていないので、実際には、Unknownのカテゴリーも含まれている可能性があるのでは?ということで、OSDAは重要な課題。
左上、Closedに対するDistribution Matchingの手法
右上、Opensetにそれを適応すると….. Unknownが、knownに割り当てられてしまう。
下。Ours. Unknownはunknownで、できるだけ、known同士のみをマッチさせるようにしたい。
既存手法だと、分布からもわかるように、sourceに寄せるのが不十分あるいは、すべてのtargetsサンプルをsourceに寄せてしまうことが起こる。
提案手法は、寄せつつも、rejectしている。それがスコアに反映されている。
BPは、Domain Classifierの手法。OSVMは、open-set svmという、svmを利用したopen-set classificationの手法。BP, MMD単体では、open-set classificationができないので、osvmを使った。
間違えているものもあるが、悪くはない。PersonはUnknown Classなので、一番左上のものは、間違っているとも言えない。左下も、隠れている部分があるので、車と判断できなかったと言える。
There are other deep learning libraries written in JavaScript, but the features of MILJS are the following two points; first, MILJS supports both learning and inference, while there are frameworks that support only inference using trained models. Secondly, if your device has GPUs, they can be utilized through MILJS.
In the paper in ICLR Workshop, even ResNet with 152 layer is trained, but today I would like to show you a light-weight demonstration using mnist.