SlideShare a Scribd company logo
1 of 64
Rabbit Challenge Stage 4-2
深層学習 DAY4 強化学習、モデル改善、応用モデル、物体検知、Transformer他
目的
Rabbit Challengeの課題レポートとして、
Stage4 (Day4) の学習内容をまとめる
1.強化学習
2.AlphaGo
3.モデル改善
4.MobileNet
5.DenseNet
6.WaveNet
7.物体検知
8.Semantic Segmentation
9.言語モデルとTransformer
10. GAN(敵対的生成ネットワーク)
1.1 強化学習とは
教師あり学習/強化なし学習:「データ」に含まれる「特徴」を見つけそれを「汎化」できる「モデル」を作る
強化学習:「環境」の中で「報酬」を最大化できるような「行動」を選択する「エージェント」を作る
1.2 強化学習の概要
環境
状態
S
方策
π
価値
V
行動
エージェント
観測 報酬
方策関数 価値関数
学習対象
1.3 実社会での事例
販売促進部
状態
S
方策
π
価値
V
行動
営業担当
観測 報酬
やり方を考える
(顧客ごとにノベルティや割引を駆使する)
取り巻く環境が変わる
(オリンピックで外国客が増える
ネット通販に顧客が流れる)
売り上げに応じた報酬
(売り上げが増えて特別ボーナスをもらう)
1.4 価値関数と方策関数
価値関数 今の方策を最後まで続けたときの報酬の予測値を得る
(「ずっと続けたら最終的にどうなる?」)
状態価値関数(𝑉𝛱
𝑠 ) 状態( s)のみで価値を決める
行動価値関数(𝑄𝛱
𝑠, 𝑎 )行動( 𝑎)と状態( s)から価値を決める
現在はこちらの関数が良く使われている
環境 状態
S
方策
π
価値
V
行動
エージェント
観測 報酬
方策関数 価値関数
方策関数 ある状態でどんな行動を取るかを確率として与える
(「この瞬間、どの行動をとる?」)
(Π 𝑠, 𝑎 ) 価値関数をもとにどんな行動をとるかを決める
(例えば経験を活かす or 未知の行動をとるなど)
1.5 方策反復法
方策をモデル化して最適化する手法
方策勾配法を使う
𝜃 𝑡+1
= 𝜃 𝑡
+ 𝜖∇𝐽 𝜃 𝐽 𝜃 :方策の良さを示す関数
NNの誤差関数にあたるが誤差は「最小化」するのに対し、
この関数は「最大化」(より大きな報酬を得る)するので、
𝜖の前の符号はプラスである
∇𝐽 𝜃 = 𝑎∈𝐴
𝛱𝜃 𝑎 𝑠 𝑄𝛱
𝑠, 𝑎
ある行動𝛱𝜃をとるときの報酬𝑄𝛱
=𝐸𝛱𝜃
∇ log 𝛱𝜃 𝑎 𝑠 𝑄𝛱
𝑠, 𝑎
1.強化学習
2.AlphaGo
3.モデル改善
4.MobileNet
5.DenseNet
6.WaveNet
7.物体検知
8.Semantic Segmentation
9.言語モデルとTransformer
10. GAN(敵対的生成ネットワーク)
2.1 Alpha Goとは
Deep Mind社によって開発された囲碁プログラム
代表的な二つの派生バージョン(Alpha Go Leeと、Alpha Go Zero)を詳述する
2.2 Alpha Go Lee
方策関数:Policy Net
価値関数:Value Net
盤面特徴入力
19x19x48ch
Conv
192Filter
5x5
Relu
Conv
192Filter
3x3
Conv
1Filter
1x1
Softmax 出力
Conv
1Filter
1x1
Dense
256
出力
Dense
1
tanh
Conv
192Filter
5x5
Relu
Conv
192Filter
3x3
Relu
盤面特徴入力
19x19x49ch
19x19は碁盤のサイズ
19x19の確率値
(どこに打つのがベストか)
x11
Policy Netと同じ特徴
+現在の手番が黒か白かという特徴が加算される
勝てるかどうかを-1~1で表す
2.3 Alpha Goの学習手順
Policy Netの学習
Policy Pool からランダムに選択されたPolicy Netと対戦を行い、その結果によって方策勾配法を行う。
Policy Pool:Policy Netを学習した過程を500イテレーションごとに記録して保存したもの
Value Netの学習
Policy Netを使用して対局シミュレーションを行い、その結果の勝敗を教師として学習する
1. まずSL Policy Net(教師あり学習で作成したPoliciy Net)でN手まで打つ(S(N)とする)
2. N+1手目の手をランダムに選択し、その手で進めた局面をS(N+1)とする
3. S(N+1)からRL Policy(強化学習で作成したPolicy Net)で終局まで打ち、その勝敗報酬をRとする
S(+1)とRを教師データ対とし、損失関数を平均二乗誤差とし、回帰問題として学習する
※SL Policy NetとRL Policy Netの手順を分けているのは過学習を防ぐため(とのこと)
2.4 Alpha Go Zero
Alpha Go Leeとの違い
モデル
Conv
256Filter
5x5
Relu Residual
Black
盤面特徴
入力
19x19x
17ch
教師あり学習をやめる
特徴入力からヒューリスティック要素(人間のかかわる要素)を排除→医師の配置のみとした
Policy NetとValue Netを統合
Residual Netを導入
モンテカルロ木探索からRollOutシミュレーションをなくす
x39
Policy Net
Batch
Norm
Conv
2Filter
1x1
Relu
Batch
Norm
Dense
362
Softmax 出力
Conv
1Filter
1x1
Relu
Batch
Norm
Dense
256
Dense
1
tanh
Relu
出力
Value Net
2.5 Residual Net
Residual Netの派生
Conv
256Filter
3x3
Relu
Batch
Norm
Conv
256Filter
3x3
Batch
Norm
Relu
Add
ショートカットパスを設ける
アンサンブル効果が期待できる
勾配消失、勾配爆発を抑えつつ多層化できる
1.Residual Blockの工夫
①Bottle Neck:1x1 kernelのConvにより1層目で次元削減し、3層目で復元する3層構造
2層構造と計算量がほぼ同じだが1層増やせるのがメリット
②Pre Activation:Batch Norm→Relu→Conv→Batch Norm→Relu→Conv→Addで性能向上を狙う
2. Network構造の工夫
①Wide Resnet:ConvのFilter数をk倍にする段階的に幅を増やすことで浅い層数でも深い層数と同じ精度
②Pyramid Net:Wide ResNetで幅が広がった直後の層に過度の負荷がかかるので、
段階的ではなく、各層でFilterを増やすResnet
1.強化学習
2.AlphaGo
3.モデル改善
4.MobileNet
5.DenseNet
6.WaveNet
7.物体検知
8.Semantic Segmentation
9.言語モデルとTransformer
10. GAN(敵対的生成ネットワーク)
3.1 モデル改善
高速化の手法としてデータ並列化、モデル並列化、GPUの利用
軽量化の手法として量子化、蒸留、プルーニング
について述べる
3.2 データ並列化
分散深層学習の必要性
データ増加、モデル複雑化のスピードは10倍/年と言われている
一方、コンピュータの性能向上のスピードは18か月で2倍(ムーアの法則)
→並列化を使ってその間を埋める
子モデル1
データ1
勾配1
親モデル 勾配の平均
子モデル2
データ2
勾配2
子モデル3
データ3
勾配3
パラメータ更新
同期型
データ並列化:データを分割し子モデルに計算させる
各ワーカー(子モデル)の処理を待って平均
その後、親モデルから送られる重みで子モデルも更新
子モデル1
勾配1
子モデル2
勾配2
子モデル3
勾配3
データ1 データ2 データ3
非同期型
パラメータサーバー
各ワーカー(子モデル)の処理を待たずに、
その時のパラメータサーバーの値で重み更新する
※同期型の方が精度が安定しやすいが、スマホ等を使って、
ネットワーク越しに並列化する場合は非同期の方がよい
3.3 モデル並列化
処理1
データ
処理2
処理3
処理1
データ
処理2
データ
処理3
データ
処理1
データ
処理2
処理3
モデルのシリアライズされた処理を分割して実施
処理4
処理1
データ
処理2
処理3
処理4
データ
パラレルな処理部分を分割して実施
3.4 GPU
GPGPU:General Purpose GPU、グラフィック以外の用途で使われるGPU
GPU開発環境
CUDA
並列コンピューティングP/F
NVIDIAが開発するGPUのみで使用可能
Deep Learning用の提供されているので使いやすい
OpenCL
オープンな並列コンピューティングP/F
IntelやAMDなどのGPUでも利用可能
Deep Learningに特化しているわけではない
3.5 量子化
ネットワークが大きくなると大量のパラメータが必要(ex.重み)
学習や推論に多くのメモリや演算処理が必要
そこで、パラメータの精度を落としてメモリと演算処理を削減(64bit精度→32bit精度など)
機械学習では半精度(16bit)で十分と言われている
fraction(10bit)
(例) 0.24567
exponent(5bit)
(例) 104
sign(1bit)
(例) 104 ×0.24567 = 2456.7
3.6 蒸留
精度の高いモデルは、推論に多くのメモリと処理能力が必要
学習済の高精度モデルの知識を流用して軽量なモデル(精度もそこそこ)を作成する
入力
教師モデル
・
・
・
・
・
・
・・・
生徒モデル
・
・
・
・
・
・
誤差
重み更新
3.7 プルーニング
大きなネットワークではすべてのニューロンが精度に寄与しているわけではない
モデル精度に寄与が少ないニューロンを削減しモデル軽量化、高速化
0.01
0.01
0.01
0.9
0.9
0.5
例:重み 0.1以下のニューロンを削減する
0.9
0.9
0.5
0.9
0.5
このニューロンは出力につながらない→不要
ニューロンを半分に減らしても90%程度の精度、9割減らしても88%精度など
1.強化学習
2.AlphaGo
3.モデル改善
4.MobileNet
5.DenseNet
6.WaveNet
7.物体検知
8.Semantic Segmentation
9.言語モデルとTransformer
10. GAN(敵対的生成ネットワーク)
4.1 MobileNetとは
Googleにより2017年に発表された
精度を維持しつつ計算量を減らして軽量化
Depthwise Convolution、Pointwise Convolutionを組み合わせる
速くて軽くて精度の良い、MobileNetのポイントをまとめてみた
4.2 Depthwise Convolution
W
H
C
K
K
M
入力マップサイズ
=高さ(H)×幅(W)×チャネル数(C)
畳み込みカーネルサイズ
=高さ(K)×幅(K)×チャネル数(C)×フィルタ数(M)
×
ストライド1としたときの畳み込みの計算量は
H × W × C × K × K × M
一般的な畳み込み計算量
H
C
K
K M=1
×
ストライド1としたときの畳み込みの計算量は
H × W × C × K × K
Depthwise Convolution
フィルタ数M=1で畳み込みすることで計算量を削減
4.3 Pointwise Convolution
W
H
C
K
K
M
入力マップサイズ
=高さ(H)×幅(W)×チャネル数(C)
畳み込みカーネルサイズ
=高さ(K)×幅(K)×チャネル数(C)×フィルタ数(M)
×
ストライド1としたときの畳み込みの計算量は
H × W × C × K × K × M
一般的な畳み込み計算量
H
C
1
1
×
ストライド1としたときの畳み込みの計算量は
H × W × C ×M
Pointwise Convolution
カーネルサイズを1×1×Cとする(1x1 Conv)
入力マップのPointごとに畳み込み。フィルタ数分だけ出力される
M
4.4 DepthwiseとPointwiseの組み合わせ
畳み込み演算量の比較
通常の畳み込み演算 H × W × C × K × K × M = 100 × 100 × 3 × 10 × 10 × 10 = 3×107
W=100
H=100
C=3
入力マップ
K=10
K=10
M=10
例として、入力マップ(100x100x3ch)、カーネルサイズ(10x10)、カーネル数=10として計算量を比較する
Depthwise
Convolution
Pointwise
Convolution
M=1
K=10
K=10
空間方向の畳み込み チャネル方向の畳み込み
H × W × C × K × K × M
= 100 × 100 × 3 × 10 × 10 = 3×106
1
1
M
空間方向×チャネル方向の畳み込み
H × W × C × K × K × M
= 100 × 100 × 3 × 10 = 3×105
Depthwise + Pointwise = 3×106 + 3×105 = 0.33×107
※通常の畳み込み計算量と比較して 0.33÷0.3 = 11%の計算量となる
1.強化学習
2.AlphaGo
3.モデル改善
4.MobileNet
5.DenseNet
6.WaveNet
7.物体検知
8.Semantic Segmentation
9.言語モデルとTransformer
10. GAN(敵対的生成ネットワーク)
5.1 DenseNetとは
層が深いネットワークでも最適な学習ができるように工夫されたモデル
DenseBlockで勾配消失を防ぎつつ層数を増やす工夫をしている
DenseNetはResNetがベースになっている。違いは以下の通り
ResNet:ひとつ前の1層のみ後方の層へ入力される
DenseNet:前方の各層からの出力すべてが後方の層へ入力される
5.2 DenseNetのモデル構成
入力 Conv
Dense
Block
Conv Pooling
Dense
Block
Conv Pooling
Dense
Block
Conv Pooling 出力
Transition Layer
1x1 Conv + Average Pooling
Convではチャネル数を圧縮し次のDense Blockの入力に備える
Transition Layer
Dense Block
Batch
正規化
Relu Conv
入力
中間出力
入力を中間出力に加える
・・・(繰り返す)
入力をk0枚とすると、Dense Blockの層数を重ねるごとに
k0 +k → k0 +2k → ・・・→ k0 + nk (nはDense Blockの層数)
と出力枚数が増えていく。
このkはハイパーパラメータであり、growth rate(成長率)という。
増えた出力枚数はTransition Layerによって調整される
5.3 Batch正規化
DenseBlockでも使用されているBatch正規化について
Batch正規化:ミニバッチに含まれるサンプル(画像)の同一Chが同一分布に従うように正規化する
Layer正規化:各サンプル(画像)の全ての画素が同一分布に従うように正規化する
Instance正規化:各サンプル(画像)のCh、Layer単位で同一分布に従うように正規化する
ミニバッチ
・・・
ミニバッチ単位で各Chをまとめ正規化(平均0,分散1)する
期待効果
学習時間短縮、初期値への依存軽減、過学習抑制
※ただし、Batch正規化はバッチサイズに依存するので、
効果を検証しにくいというデメリットがある
・・・ 各サンプル画像の全画素をまとめ正規化する
Batch正規化がバッチサイズに影響するというデメリットを改善したもの
各サンプル画像のchごとの画素をまとめ正規化する
1.強化学習
2.AlphaGo
3.モデル改善
4.MobileNet
5.DenseNet
6.WaveNet
7.物体検知
8.Semantic Segmentation
9.言語モデルとTransformer
10. GAN(敵対的生成ネットワーク)
6.1 WaveNetとは
畳み込みを時系列データにも拡張適用(Dilated Convolution)したもの
音声合成アルゴリズムなどに応用され、Google Homeにも適用されている
自然な音声作る「WaveNet」の衝撃 なぜ機械は人と話せるようになったのか
従来は隣り合う入力を使って
ネットワークを接続していた
入力
中間
出力
入力
中間
出力
層が深くなるにつれ畳み込むリンクを離し、
受容野を簡単に増やすことができる。
このことでより時間的に幅広い範囲で特徴を取り込める
Deliated Convolution
従来のConvolution
1.強化学習
2.AlphaGo
3.モデル改善
4.MobileNet
5.DenseNet
6.WaveNet
7.物体検知
8.Semantic Segmentation
9.言語モデルとTransformer
10. GAN(敵対的生成ネットワーク)
7.1 物体検知
分類(Classification):画像に対し、単一または複数のクラスラベルをつける
物体検知(Object Detection):画像内の物体にBounding Boxを付与し分類する
意味領域分割(Semantic Segmentation):画像内の各ピクセルに対し単一のクラスラベルを付ける
ただし個体の特定は行わない
個体領域分割(Instance Segmentation):画像内の各ピクセルに対し単一のクラスラベルを付ける
個体ごとの特定を行う
本章で取り上げる
apple
banana
apple
cherry
7.2 物体検知に使われるデータセット
クラス数 データ数 Box/画像 Instant Anno.
VOC12 20 11540 2.4 〇
ILSVRC17 200 476668 1.1 ×
MSCOCO18 80 123287 7.3 〇
OICOD18 500 1743042 7.0 〇
Box/画像
クラス数
VOC12 ILSVRC17
MSCOCO18 OICOD18
Box/画像が多い画像は日常画像に近い画像
→目的に応じた利用
7.3 混同行列
予測
真値
Positive Negative
Positive True Positive False Negative
Negative False Positive True Negative
𝑅𝑒𝑐𝑎𝑙𝑙(再現率) =
𝑇𝑃
𝑇𝑃 + 𝐹𝑁
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛(適合率) =
𝑇𝑃
𝑇𝑃 + 𝐹𝑃
7.4 物体検知の精度評価指標
物体検知ではクラスラベルのみではなく物体位置の予測精度も評価したい
IoU(Intersection over Union)
𝐼𝑜𝑈 =
𝐴𝑟𝑒𝑎 𝑜𝑓 𝑂𝑣𝑒𝑟𝑙𝑎𝑝
𝐴𝑟𝑒𝑎 𝑜𝑓 𝑈𝑛𝑖𝑜𝑛
=
=
𝑇𝑃
𝑇𝑃+𝐹𝑃+
実際のオブジェクト位置
実際のオブジェクト位置
※jaccard係数とも呼ばれる
7.5 物体検知の検証例
画像番号 Conf Predict IoU
P1 0.92 物 0.88
P2 0.88 物 0.46
P2 0.81 物 0.92
P3 0.78 物 0.84
P1 0.60 物 0.70
P3 0.54 物 0.31
物 物
物
物
正解画像(合計4枚)
P1 P2 P3 P4
Conf>0.5の画像をソートしてリスト化 IoU>0.5の画像をTrueとする
TP
FP
TP
TP
FP
FP
𝑅𝑒𝑐𝑎𝑙𝑙(再現率) =
𝑇𝑃
𝑇𝑃+𝐹𝑁
=
3
3+1
=0.75
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛(適合率) =
𝑇𝑃
𝑇𝑃+𝐹𝑃
=
3
3+3
=0.5
正解画像 P4が一つも検出されていないため
FN=1となる。
P1はすでに検出済なのでFalse Positive扱い
7.6 Average Precision
Confの
threshold(β)
IoU Precision Recall
0.05 0.5 0.1 0.2
0.10 0.5 0.2 0.4
0.15 0.5 0.5 0.6
・・・ ・・・ ・・・ ・・・
0.95 0.5 0.2 0.2
1.00 0.5 0.1 0.1
𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑅(β)
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑃(β)
𝑃 β = 𝑓 𝑅
Precision-Recall Curve
ConfのThresholdをβとし、βを変化させるとPrecision, Recallが変化する
𝐴𝑃 =
0
1
𝑃 𝑅 ⅆ𝑅
Average Precision
(Precision-Recall Curve下側面積)
mean Average Precision
(クラスごとにAverage Precisionを計算した平均値)
𝑚𝐴𝑃 =
1
𝐶
𝑖
𝐶
𝐴𝑃𝑖
7.7 物体検知のフレームワーク
1.2段階検出器(Two Stage detector)
候補領域の検出とクラス推定を別々に行う(※)
相対的に精度は高めだが計算量が多くなる
例:RCNN、SPPNet、FastRCNN、FasterRCNN、RFCN、FPN、MaskRCNN
2.1段階検出器(One Stage detector)
候補領域の検出とクラス推定を同時に行う
相対的に精度は低めだが計算量が少なくて済む
例:DetectorNet、YOLO、SSD、YOLO9000、RetinaNet、CornerNet
※入力→位置推定→クラス分類
7.8 SSD (Single Shot Detector)とは
SSD(Single Shot Detector)の基本方針
人 人
Default Boxを用意 Default Boxを変形しながらConfを出力
人:0.93
車:0.40
犬:0.21
SSDのネットワークアーキテクチャ
【物体検出】SSD(Single Shot MultiBox Detector)の解説
VGG16の各層から特徴マップを抽出し、
複数のDefault Boxを生成する
7.9 SSDの特徴マップからの出力
h
w
(cx,cy)
◆特徴マップ中の1つの特徴点(中心座標=(cx,cy))における1つのDefault Boxについて、
各ClassごとのConfと、座標情報(cx,cy,w,h)を出力
出力データ数=ClassごとのConf(クラス数) + 座標情報(4)
◆特徴マップ中のk個の特徴点でDefault Boxを用意する
出力データ数=k×(ClassごとのConf(クラス数) + 座標情報(4))
◆特徴マップのサイズがm×nの時、k個の特徴点でDefault Boxを用意する
出力データ数=k×(ClassごとのConf(クラス数) + 座標情報(4))mn
例:VOC12(クラス数20)のSSD出力の場合、38x38のレイヤーからの出力データ数は
出力データ数=4 ×(ClassごとのConf(20+1) + 座標情報(4))38x38=5776x(21x4)
出力データの考え方が特殊なので、順番に見ていく
38×38のレイヤーのDefault Box数は4 VOC12のクラス数20 + 背景1
7.10 SSDの工夫
IoU=0.3以上のDefault Boxは同じ物体を検出しているとみなし、Confの一番大きな出力以外は捨てる
IoU=0.3未満なら違う物体を検出しているとみなす
※ただし、これはすでにRCNNでも採用されている
Non Maximum Suppression
背景:非背景を1:3として、外れたものを削除する
Hard Negative Mining
1.強化学習
2.AlphaGo
3.モデル改善
4.MobileNet
5.DenseNet
6.WaveNet
7.物体検知
8.Semantic Segmentation
9.言語モデルとTransformer
10. GAN(敵対的生成ネットワーク)
8.1 Semantic Segmentation
分類(Classification):画像に対し、単一または複数のクラスラベルをつける
物体検知(Object Detection):画像内の物体にBounding Boxを付与し分類する
意味領域分割(Semantic Segmentation):画像内の各ピクセルに対し単一のクラスラベルを付ける
ただし個体の特定は行わない
個体領域分割(Instance Segmentation):画像内の各ピクセルに対し単一のクラスラベルを付ける
個体ごとの特定を行う
本章で取り上げる
apple
banana
apple
cherry
8.2 FCNのネットワーク構造
FCN=Fully Convolutional Network
224x224
112x112
56x56
28x28
14x14
7x7 Conv層
MaxPoolingで解像度が
落ちていく
Up
Sampling
元の解像度に戻す処理が必要
=Up Sampling処理
VGG16
VGG16ではFC層だが、
FCNではConv層に変更してHeat mapを得る
Deconvolution
8.3 DeconvolutionによるUp Sampling
1. 特徴マップのピクセル間隔をStride分空ける
2. 特徴マップの周りに(kernel size - 1) - padding
の余白を作る
3. 畳み込む
Conv層
特徴マップ カーネル 出力
Deconvolution
Deconv 出力 + Deconv 出力 + ・・・
低レイヤーのPooling層の出力をelement-wise addition(要素ごとの和)を取ることで、
ローカルな特徴量を補完してからUp Samplingする
FCN=Fully Convolutional Network
8.4 U-Net
U-Net:ディープラーニングによるSemantic Segmentation手法
U-NetとFCNの主な違い
U-NetはEncoderからのSkip Connectionを
チャネル方向に結合する
(Element wise addtionでない)
8.5 その他の手法
Unpooling
Pooling時に位置情報を取っておく
Unpoolingではその位置情報で元の場所へ戻す
Dilated Convolution
ひとマスずつ間をあけたkernelで畳み込みし、
Convolutionの時点で受容野を広げる
1.強化学習
2.AlphaGo
3.モデル改善
4.MobileNet
5.DenseNet
6.WaveNet
7.物体検知
8.Semantic Segmentation
9.言語モデルとTransformer
10. GAN(敵対的生成ネットワーク)
9.1 言語モデル
言語モデル
単語の並びに対して尤度(どれだけその単語がその位置に出現し得るか=文章として自然か)を
確率で評価する
例
You are good guy. :p=0.092
You are good buy. : p=0.003
𝑃 𝑤1, ⋯ , 𝑤𝑚 = 𝑖=1
𝑚
𝑃 𝑤𝑖 𝑤1, ⋯ , 𝑤𝑖−1
各単語の出現確率=事後確率の積として表現される( 𝑤1, ⋯ , 𝑤𝑖−1が出現した条件下における𝑤𝑖の出現確率)
時刻𝑡 − 1までの情報で時刻𝑡の事後確率が最大となる単語を求めるのが目標となる
𝑎𝑟𝑔𝑚𝑎𝑥
𝑤∈𝑉
𝑃(You, 𝑎𝑟𝑒, 𝑔𝑜𝑜ⅆ, 𝑤)
guy, buy, joy, ....
全ボキャブラリーから検索
9.2 RNNを利用した言語モデル
RNN(Recurrent Neural Network)を利用すると(時)系列情報を
固定長の内部状態に変換できる
言語モデルを再現するようにRNNを学習できると、
ある時点の次の単語を予測できる
先頭の単語で文章を生成することも可能
9.3 Seq2Seq
em em em
私 は です。
E E …
E
Encoder
RNN
embed
Encoder-Decoderモデル(Seq2Seq)による翻訳
h
Encoder
em em em
BOS famous
D D …
D
Decoderは中間層の初期値にEncoderの内部状態を受ける
embed
Decoder
Decoder
RNN
sm sm sm
softmax
this
(Begin of statement)
this is doctor.
教師データ
単語を数値化して
RNNに入力可能とする
ボキャブラリー内で
最も高確率な単語を選択
…
教師データとの間でLossを取
ることで誤差逆伝播できる
9.4 Seq2Seqの課題とAttention
従来のSeq2Seqモデルは、Decoderの入力ベクトル(h)が
固定長なので、文章が長くなると表現力が不足
そこでAttention機構により、
Encoderの各単語の中間状態をすべて利用できるようにする
h
Encoder Decoder
固定長
9.5 Attentionがやっていること
参考:https://lena-voita.github.io/nlp_course/seq2seq_and_attention.html
em em em
E E …
E
Encoder
RNN
Encoder
em
D
Decoder
RNN
sm
Attention
…
softmax
query
key,value
output
queryで検索する単語に対して、
最も注目すべき入力単語のkey,valueを索引し、
これを元の単語に作用させる
key,value key,value
9.6 Transformer
参考:https://qiita.com/omiita/items/07e69aef6c156d23c538
単語ベクトルに
単語の位置を追加
RNNもCNNも使わずにAttention機構のみで、Seq2Seqより良いスコアを出しているモデル
エンコーダ―の入力に、
8種類の異なる情報で
Self-Attentionして集約
単語の位置ごとに処理する2層の
全結合層
𝐹𝐹𝑁 𝑥 = max 0, 𝑥𝑤1 + 𝑏1 𝑤2 + 𝑏2
未来の単語をマスクして、
カンニングしないようにする
Self-Attention
Encoderからの入力を
Key-Valueとする
Source Target Attention
Nx回繰り返す
Add:Residual Connection
Norm:Layer Norm(各層の入力を
平均0、分散1に正則化)
参考:https://medium.com/@yacine.benaffane/transformer-self-attention-part-1-2664e10f080f
Attention
9.7 Attentionの種類
Attentionには大きく分けて2種類の使い方がある
Source Target Attention
memory
Key
Query Value
Target=["私","は","とても","良い",...]
受け取った情報に対して狙うべき情報が近いものを出力
input
Source=["I","am","is,"nice",...]
matmul matmul
sm +
別モノ
output
Attention
Self-Attention
memory
Key
Query Value
Target=["私","は","とても","良い",...]
自己情報の中で注目すべきものを出力
input
matmul matmul
sm +
同じモノ
output
Target=["私","は","とても","良い",...]
参考:作って理解する Transformer / Attention
softmax softmax
1.強化学習
2.AlphaGo
3.モデル改善
4.MobileNet
5.DenseNet
6.WaveNet
7.物体検知
8.Semantic Segmentation
9.言語モデルとTransformer
10. GAN(敵対的生成ネットワーク)
10.1 GAN(敵対的生成ネットワーク)
生成器(Generator):乱数からデータ生成
識別器(Discriminator):入力データから真データ(学習データ)であるか識別
GAN(Generative Adversarial Network)は、生成モデルの一種であり、
データから特徴を学習することで、実在しないデータを生成したり、存在するデータの特徴に沿って変換したりできる。
𝑧 乱数
Generator
𝐺(𝑧) Discriminator
𝑥 真のデータ
[0,1]
入力が真で
ある確率
モチベーションは・・・
Generator=Discriminatorに誤判定させたい
Discriminator=正しく判定したい
参考:GAN:敵対的生成ネットワークとは何か ~「教師なし学習」による画像生成
10.2 GANの価値関数
GANは「2プレイヤーのMin Maxゲーム」
一人が自分の勝つ確率を最大化=相手の勝つ確率を最小化
価値関数Vを定義し、Dを最大化、Gを最小化する 𝑚𝑖𝑛
𝐺
𝑚𝑎𝑥
D
𝑉(𝐷, 𝐺)
𝑉(𝐷, 𝐺) = 𝔼𝑥~𝑝𝑑𝑎𝑡𝑎 𝑥 [𝑙𝑜𝑔𝐷 𝑥 ]+ 𝔼𝑧~𝑝𝑧 𝑧 [log(1 − 𝐷 𝐺(𝑧 )]
価値関数
※ 𝔼𝑥~𝑝𝑑𝑎𝑡𝑎 𝑥 :期待値( 𝑥 𝑃𝑑𝑎𝑡𝑎 𝑥 )
この項は、 𝐷 によって、 𝐺が生成した画像を
偽物(𝐷 𝐺(𝑧 )=0)と判断できたら最大となる
この項は、 𝐷 によって真の画像を、正しく
判定できたら(𝐷(𝑥)=1)最大となる
参考:GAN (Generative Adversarial Networks):敵対的生成ネットワーク
𝐿 = −𝑦 log 𝑦 − 1 − 𝑦 log 1 − 𝑦
バイナリ―クロスエントロピーに帰着させて解いていく
※𝑦: ground truth, 𝑦: predicted value
10.3 価値関数の最適化
1.Discriminatorのパラメータ更新
Generatorのパラメータ𝜃𝑔を固定
真データ、生成データをm個ずつとり、 𝜃𝑑を勾配上昇法で更新(複数回繰り返し更新)
𝜕
𝜕𝜃𝑑
1
𝑚
𝑙𝑜𝑔𝐷 𝑥; 𝜃𝑑 ]+ log(1 − 𝐷 𝐺(𝑧; 𝜃𝑔 ; 𝜃𝑑)
2. Generatorのパラメータ更新
Discriminatorのパラメータ𝜃𝑑を固定
生成データをm個とり、 𝜃𝑔を勾配降下法で更新(1回だけ更新)
𝜕
𝜕𝜃𝑔
1
𝑚
log(1 − 𝐷 𝐺(𝑧; 𝜃𝑔 ; 𝜃𝑑)
Generatorは最小化したいので勾配降下法
Discriminatorは最大化したいので勾配降下法
10.4 GANの学習イメージ
𝑝𝑑𝑎𝑡𝑎
𝑝𝑔
𝐷(𝑥)
𝑥
𝑧
𝑥 = 𝐺(𝑧)
1.初期状態
𝑧は等間隔に取ったものとする
𝐺(𝑧)により偏った分布の𝑝𝑔に変換される
𝑝𝑑𝑎𝑡𝑎は与えられた真値
𝐷(𝑥)は真値を予想できる確率
(未学習なのでうまく分類できていない状態)
2. 𝜃𝑑の更新
𝑝𝑑𝑎𝑡𝑎
𝑝𝑔
𝐷(𝑥)
𝑥
𝑧
𝑥 = 𝐺(𝑧)
学習によって𝐷 𝑥 の分類精度が向上
3. 𝜃𝑔の更新
𝑝𝑑𝑎𝑡𝑎
𝑝𝑔
𝐷(𝑥)
𝑥
𝑧
𝑥 = 𝐺(𝑧)
学習によって𝐺(𝑧) 𝐷(𝑥)の勾配を元に
𝑝𝑔を𝑝𝑑𝑎𝑡𝑎に近づける
4. 最終状態(理想)
𝑝𝑑𝑎𝑡𝑎
𝑝𝑔
𝐷(𝑥)
𝑥
𝑧
𝑥 = 𝐺(𝑧)
最終的には𝑝𝑔と𝑝𝑑𝑎𝑡𝑎が一致し、
𝐷(𝑥)はうまく分類できないため1/2で一
定になる事を目指す
10.5 DCGAN
DCGAN(Deep Convolutional GAN)は、
GANよりも自然な画像を生成する事が可能となっている
GANに対する主な改善点は以下の通り
1. Generatorに全結合層やPooling層ではなく、Transposed Convolution層(Deconvolution層と同義)を使っ
ている
2. Discriminatorに全結合層やPooling層ではなく、Convolution層を使っており、Reluの代わりにLeaky Reluを
使っている
3. Generator,Discriminator共通の変更点として、Batch Normalizationを使っている
参考:DCGAN (Deep Convolutional GAN):畳み込みニューラルネットワークによる敵対的生成

More Related Content

Similar to Rabbit challenge 6_dnn4

Resnet.pptx
Resnet.pptxResnet.pptx
Resnet.pptx
YanhuaSi
 
Deep Learning for NLP (without Magic) - Richard Socher and Christopher Manning
Deep Learning for NLP (without Magic) - Richard Socher and Christopher ManningDeep Learning for NLP (without Magic) - Richard Socher and Christopher Manning
Deep Learning for NLP (without Magic) - Richard Socher and Christopher Manning
BigDataCloud
 
Introduction to Machine Learning.
Introduction to Machine Learning.Introduction to Machine Learning.
Introduction to Machine Learning.
butest
 
ensemble learning
ensemble learningensemble learning
ensemble learning
butest
 
Machine Learning
Machine LearningMachine Learning
Machine Learning
butest
 
Icml2012 tutorial representation_learning
Icml2012 tutorial representation_learningIcml2012 tutorial representation_learning
Icml2012 tutorial representation_learning
zukun
 

Similar to Rabbit challenge 6_dnn4 (20)

Deep Learning and Watson Studio
Deep Learning and Watson StudioDeep Learning and Watson Studio
Deep Learning and Watson Studio
 
Resnet.pptx
Resnet.pptxResnet.pptx
Resnet.pptx
 
Resnet.pdf
Resnet.pdfResnet.pdf
Resnet.pdf
 
Deep Learning for NLP (without Magic) - Richard Socher and Christopher Manning
Deep Learning for NLP (without Magic) - Richard Socher and Christopher ManningDeep Learning for NLP (without Magic) - Richard Socher and Christopher Manning
Deep Learning for NLP (without Magic) - Richard Socher and Christopher Manning
 
Introduction to Machine Learning.
Introduction to Machine Learning.Introduction to Machine Learning.
Introduction to Machine Learning.
 
Deep learning
Deep learningDeep learning
Deep learning
 
ensemble learning
ensemble learningensemble learning
ensemble learning
 
Deep Learning: Chapter 11 Practical Methodology
Deep Learning: Chapter 11 Practical MethodologyDeep Learning: Chapter 11 Practical Methodology
Deep Learning: Chapter 11 Practical Methodology
 
Devoxx traitement automatique du langage sur du texte en 2019
Devoxx   traitement automatique du langage sur du texte en 2019 Devoxx   traitement automatique du langage sur du texte en 2019
Devoxx traitement automatique du langage sur du texte en 2019
 
introduction to deeplearning
introduction to deeplearningintroduction to deeplearning
introduction to deeplearning
 
Machine Learning
Machine LearningMachine Learning
Machine Learning
 
Deep Dive on Deep Learning (June 2018)
Deep Dive on Deep Learning (June 2018)Deep Dive on Deep Learning (June 2018)
Deep Dive on Deep Learning (June 2018)
 
An Introduction to Deep Learning (May 2018)
An Introduction to Deep Learning (May 2018)An Introduction to Deep Learning (May 2018)
An Introduction to Deep Learning (May 2018)
 
AI and Deep Learning
AI and Deep Learning AI and Deep Learning
AI and Deep Learning
 
[PR12] Inception and Xception - Jaejun Yoo
[PR12] Inception and Xception - Jaejun Yoo[PR12] Inception and Xception - Jaejun Yoo
[PR12] Inception and Xception - Jaejun Yoo
 
Deep Learning for Developers (Advanced Workshop)
Deep Learning for Developers (Advanced Workshop)Deep Learning for Developers (Advanced Workshop)
Deep Learning for Developers (Advanced Workshop)
 
Real-world Reinforcement Learning
Real-world Reinforcement LearningReal-world Reinforcement Learning
Real-world Reinforcement Learning
 
Kaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learnt
Kaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learntKaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learnt
Kaggle Otto Challenge: How we achieved 85th out of 3,514 and what we learnt
 
Real-world Reinforcement Learning
Real-world Reinforcement LearningReal-world Reinforcement Learning
Real-world Reinforcement Learning
 
Icml2012 tutorial representation_learning
Icml2012 tutorial representation_learningIcml2012 tutorial representation_learning
Icml2012 tutorial representation_learning
 

More from TOMMYLINK1 (6)

財務会計1_BS_PL_CF.pptx
財務会計1_BS_PL_CF.pptx財務会計1_BS_PL_CF.pptx
財務会計1_BS_PL_CF.pptx
 
Rabbit challenge 5_dnn3
Rabbit challenge 5_dnn3Rabbit challenge 5_dnn3
Rabbit challenge 5_dnn3
 
Rabbit challenge 3 DNN Day2
Rabbit challenge 3 DNN Day2Rabbit challenge 3 DNN Day2
Rabbit challenge 3 DNN Day2
 
Rabbit challenge 3 DNN Day1
Rabbit challenge 3 DNN Day1Rabbit challenge 3 DNN Day1
Rabbit challenge 3 DNN Day1
 
Rabbit challenge 2 Machine Learning
Rabbit challenge 2 Machine LearningRabbit challenge 2 Machine Learning
Rabbit challenge 2 Machine Learning
 
Rabbit challenge 1_math
Rabbit challenge 1_mathRabbit challenge 1_math
Rabbit challenge 1_math
 

Recently uploaded

FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdf
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 

Rabbit challenge 6_dnn4