Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kaggleで使用される敵対学習方法AWPの論文解説と実装解説 ~Adversarial We...

Kaggleで使用される敵対学習方法AWPの論文解説と実装解説 ~Adversarial Weight Perturbation Helps Robust Generalization~

本資料では、AWPという学習手法について、元論文と実装の解説を行っている。

AWPはモデルに敵対的な摂動を加えながら学習するという手法で、汎化能力が高まることからKaggleで人気の手法となっている。

Masaki AOTA

August 05, 2022
Tweet

More Decks by Masaki AOTA

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ ੨ాխً .BTBLJ"PUB  w ೔ຊܦࡁ৽ฉࣾ೔ܦΠϊϕʔγϣϯɾϥϘ ݚڀ։ൃ෦ୂ  w ࢴ໘ϏϡʔΞʔͷ0$3Τϯδϯ։ൃ

    w ΩϟογϡϑϩʔγϛϡϨʔγϣϯͳͲͷࣄۀධՁͳͲ w εΩϧ w "U$PEFSਫ৭ ,BHHMF&YQFSU w ࢿ֨౳Ԡ༻৘ใɺ฽هڃɺ'1ڃ
  2. ໨࣍   ఢରతࣄྫͷ঺հ ͓࿩͚ͩ  w "EWFSTBSJBM&YBNQMFʹؔ͢Δࣄલ஌ࣝΛಋೖ  ࿦จղઆ

    ਺͕ࣜొ৔  w "EWFSTBSJBM8FJHIU1FSUVSCBUJPO 
 )FMQT3PCVTU(FOFSBMJ[BUJPO  ࣮૷ղઆ ࣮૷͕ొ৔  w ,BHHMFͰ༻͍ΒΕΔ࣮૷Λ࿦จͷ਺ࣜͱରԠͤͯ͞ղઆ
  3. ໨࣍   ఢରతࣄྫͷ঺հ ͓࿩͚ͩ  w "EWFSTBSJBM&YBNQMFʹؔ͢Δࣄલ஌ࣝΛಋೖ  ࿦จղઆ

    ਺͕ࣜొ৔  w "EWFSTBSJBM8FJHIU1FSUVSCBUJPO 
 )FMQT3PCVTU(FOFSBMJ[BUJPO  ࣮૷ղઆ ࣮૷͕ొ৔  w ,BHHMFͰ༻͍ΒΕΔ࣮૷Λ࿦จͷ਺ࣜͱରԠͤͯ͞ղઆ
  4. ੈքҰ༗໊ͳςφΨβϧ ఢରతࣄྫͷྫࣔ  Ian J. Goodfellow +, Explaining and Harnessing

    Adversarial Examples, 2014 ύϯμͷը૾ʹ ਓؒʹ͸Θ͔Βͳ͍ఔ౓ͷ 
 ઁಈ ϊΠζ ΛՃ͑Δͱ ςφΨβϧͱ ޡೝࣝ͢Δ
  5. ఢରతࣄྫ΋ֶशʹՃ͑Δͱ൚Խੑೳ্͕͕Δ ఢରతࣄྫ͸ֶशΛؤ݈ʹ͢Δ  Ian J. Goodfellow +, Explaining and Harnessing

    Adversarial Examples, 2014 ྆ํΛQBOEBͱֶͯ͠शͤ͞ΔͱɺఢରతࣄྫҎ֎ʹର͢Δ 
 ൚Խੑೳ΋޲্͢Δ͜ͱ͕ܦݧతʹ஌ΒΕ͍ͯΔɻ 111.ίϯϖͰ΋ۚϝμϧΛऔͬͨνʔϜͷ൒෼Ҏ্͸ 
 ఢରతࣄྫΛֶशʹՃ͍͑ͯͨɻ
  6. αϯϓϧͷํͰ͸ͳ͘ϞσϧʹޡΒͤΔ͜ͱ΋Մೳ Ϟσϧʹ΋ઁಈΛՃ͑Δ  w v w + v  ͋ΔϞσϧͷॏΈʹ

    ͋ΔछͷઁಈΛ 
 Ճ͑Δͱ ѱ͍ϞσϧʹͳΔ ֶशதʹϞσϧ͕ѱ͘ͳ͍Α͏ʹઁಈΛՃֶ͑ͭͭश͢Δͱɺ ൚Խੑೳ্͕͕Δͱ͍͏࿦จΛ͜Ε͔Βղઆ χϡʔϥϧωοτΛલఏʹ͓࿩͠͠·͢
  7. ໨࣍   ఢରతࣄྫͷ঺հ ͓࿩͚ͩ  w "EWFSTBSJBM&YBNQMFʹؔ͢Δࣄલ஌ࣝΛಋೖ  ࿦จղઆ

    ਺͕ࣜొ৔  w "EWFSTBSJBM8FJHIU1FSUVSCBUJPO 
 )FMQT3PCVTU(FOFSBMJ[BUJPO  ࣮૷ղઆ ࣮૷͕ొ৔  w ,BHHMFͰ༻͍ΒΕΔ࣮૷Λ࿦จͷ਺ࣜͱରԠͤͯ͞ղઆ
  8. ࿦จͷ֓ཁ  ఢରతࣄྫʹର͢Δؤ݈ੑ͕ߴ·ͬͨ ໨త ఢରతࣄྫʹର͢Δؤ݈ੑΛߴΊ͍ͨ طଘݚڀ ఢରతࣄྫΛ࡞ֶͬͯशʹՃ͑Δख๏͕ଟ͔ͬͨ ܦݧత 
 ࣄ࣮

    ٻ·ͬͨॏΈͷपล͕ΑΓฏΒͳଛࣦʹͳΔ৔߹ɺ ఢରతࣄྫʹର͢Δؤ݈ੑ͕ߴ͍ ख๏ ϞσϧʹఢରతͳઁಈΛՃ͑ͳ͕Βֶश͢Δ ݁Ռ ՝୊఺ ฏΒͳଛࣦͱͳΔΑ͏ͳ௚઀తͳఆࣜԽ͕ͳ͞Ε͍ͯͳ͍
  9. ࿦จͷ֓ཁ  ఢରతࣄྫʹର͢Δؤ݈ੑ͕ߴ·ͬͨ ໨త ఢରతࣄྫʹର͢Δؤ݈ੑΛߴΊ͍ͨ طଘݚڀ ఢରతࣄྫΛ࡞ֶͬͯशʹՃ͑Δख๏͕ଟ͔ͬͨ ܦݧత 
 ࣄ࣮

    ٻ·ͬͨॏΈͷपล͕ΑΓฏΒͳଛࣦʹͳΔ৔߹ɺ ఢରతࣄྫʹର͢Δؤ݈ੑ͕ߴ͍ ख๏ ϞσϧʹఢରతͳઁಈΛՃ͑ͳ͕Βֶश͢Δ ݁Ռ ՝୊఺ ฏΒͳଛࣦͱͳΔΑ͏ͳ௚઀తͳఆࣜԽ͕ͳ͞Ε͍ͯͳ͍
  10. ฏΒ͞ͷ֬ೝ  8FJHIU-PTT-BOETDBQF ρ(w) = 1 n n ∑ i=1

    max ∥x′  i −xi ∥p ≤ϵ ℓ(fw (x′  ), yi ) ఢରతࣄྫΛϞσϧʹೖྗͨ͠৔߹ͷଛࣦ͸ҎԼͷΑ͏ʹఆࣜԽՄೳ ఢରతࣄྫΛೖྗ͢Δͱ͍͏ҙຯ ρ(w + αd) = 1 n n ∑ i=1 max ∥x′  i −xi ∥p ≤ϵ ℓ(fw+αd (x′  ), yi ) ϞσϧͷॏΈͷपลͷଛࣦ͸ҎԼͷΑ͏ʹఆࣜԽՄೳ ύϥϝʔλʔXΛֶ࣋ͭशࡁΈϞσϧ ௕͞Ћํ޲E͚ͩۙ๣ͷଛࣦ͕ܭࢉͰ͖Δ
  11. ฏΒ͞ͷ֬ೝ  8FJHIU-PTT-BOETDBQF Λ ʹ͍ͭͯඳը͢ΔͱɺଛࣦͷฏΒ͞ΛՄࢹԽՄೳ Ed [ρ(w + αd)] α

    Ed [ρ(w + αd)] w ॏΈͷपลʹߦ͚͹ߦ͘΄Ͳଛࣦ͕େ͖͘ͳΔ w ख๏ʹΑͬͯฏΒ͞͸ҟͳΓͦ͏ طଘݚڀ
  12. ΑΓฏΒͳଛࣦ͸ؤ݈ੑ͕ߴ͍  طଘݚڀͷ࣮ݧతൺֱ w ଛࣦ͕ฏΒͰͳ͍ख๏͸ɺֶशͱςετͷਫ਼౓ͷHBQ͕େ͖͍ "5  w ଛࣦ͕ฏΒʹͳΔख๏͸ɺֶशͱςετͷਫ਼౓ͷHBQ͕খ͍͞ 345

    "5&4  w ϞσϧΛؤ݈ʹ͍ͨ͠ 
 ˠॏΈͷۙ๣ͷଛࣦ͕ฏΒͰ͋ΔΑ͏ͳֶशʹ͍ͨ͠ ֶश࣌ͱςετ࣌ͷੑೳͷΪϟοϓ ଛࣦͷฏΒ͞ طଘݚڀ
  13. ໰୊ͷఆࣜԽ  ॏΈͷۙ๣ͷଛࣦ͕ฏΒͰ͋ΔΑ͏ͳֶशʹ͍ͨ͠ argmin w max v∈ 𝒱 ρ(w +

    v) ۙ๣ʹ͓͚Δଛࣦͷ࠷େ஋Λ ࠷খԽ͢ΔXΛݟ͚ͭΖ argmin w max v∈ 𝒱 1 n n ∑ i=1 max ∥x′  i −xi ∥p ≤ϵ ℓ(fw+v (x′  ), yi ) ЛΛల։ ্ه͕ղ͚Ε͹ɺఢରతࣄྫʹؤ݈ͳX͕ಘΒΕΔ͸ͣ
  14. ໰୊ͷղ͖ํ  *OQVU1FSUVSCBUJPO argmin w max v∈ 𝒱 1 n

    n ∑ i=1 max ∥x′  i −xi ∥p ≤ϵ ℓ(fw+v (x′  ), yi ) ఢରతࣄྫΛೖྗ͢Δͱ͍͏ҙຯ ࠷ॳͷ࠷େԽ໰୊͸طଘݚڀͱಉ͘͡ɺఢରతࣄྫͷೖྗΛҙຯ͢Δ ࿦จͰ༻͍͍ͯͨ1(%BUUBDLͷ৔߹ԼهͷY`Λೖྗ͢Ε͹ྑ͍ x′  i ← Πϵ (x′  i + η1 sign(∇x′  i ℓ(fw+v (x′  i ), yi )) ˞࿦จʹ߹Θͤͨදهʹ͍ͯ͠Δɻ ͸૯৐ͷҙຯͰ͸ͳ͍ɻ 
 ɹཧղͷͨΊʹແࢹͯ͠΋ྑ͍ɻ Π
  15. argmin w max v∈ 𝒱 1 n n ∑ i=1

    max ∥x′  i −xi ∥p ≤ϵ ℓ(fw+v (x′  ), yi ) ໰୊ͷղ͖ํ  8FJHIU1FSUVSCBUJPO ॏΈʹઁಈΛՃ͑ͯ࠷΋ϞσϧΛѱ͍ͨ͘͠ ͭ໨ͷ࠷େԽ໰୊͸Xۙ๣ͰϞσϧGΛ࠷΋ѱ͘͢Δ͜ͱΛҙਤ 8VΒ͸ޯ഑Λ༻͍ͯҎԼͷΑ͏ʹWΛࢉग़ v ← Πγ v + η2 ∇v 1 m ∑m i=1 ℓ(fw+v (x′  i ), yi ) ∇v 1 m ∑m i=1 ℓ(fw+v (x′  i ), yi ) ∥w∥ ˞࿦จʹ߹Θͤͨදهʹ͍ͯ͠Δɻ ͸૯৐ͷҙຯͰ͸ͳ͍ɻ 
 ɹཧղͷͨΊʹແࢹͯ͠΋ྑ͍ɻ Π
  16. ໰୊ͷղ͖ํ  8FJHIU1FSUVSCBUJPO v ← Πγ v + η2 ∇v

    1 m ∑m i=1 ℓ(fw+v (x′  i ), yi ) ∇v 1 m ∑m i=1 ℓ(fw+v (x′  i ), yi ) ∥w∥ ˞࿦จʹ߹Θͤͨදهʹ͍ͯ͠Δɻ ͸૯৐ͷҙຯͰ͸ͳ͍ɻ 
 ɹཧղͷͨΊʹແࢹͯ͠΋ྑ͍ɻ Π ࠷΋ଛࣦΛ࠷େԽ͢Δ୯ҐϕΫτϧ X΁ͷεέʔϧ߹Θͤ ֶश཰
  17. ໰୊ͷղ͖ํ  ॏΈͷߋ৽ argmin w max v∈ 𝒱 1 n

    n ∑ i=1 max ∥x′  i −xi ∥p ≤ϵ ℓ(fw+v (x′  ), yi ) *OQVU1FSUVSCBUJPOͱ8FJHIU1FSUVSCBUJPOΛߦ্ͬͨͰɺ ௨ৗͷֶशͱಉ༷ʹόοΫϓϩοϓ͢Ε͹ྑ͍ ղܾ w ← w − η3 ∇w+v 1 m m ∑ i=1 ℓ(fw+v (x′  i ), yi ) *OQVU1FSUVSCBUJPOͱ8FJHIU1FSUVSCBUJPOΛ 
 ߦͬͨͱ͖ͷXͷޯ഑
  18. ໰୊ͷఆࣜԽ  ॏΈͷۙ๣ͷଛࣦ͕ฏΒͰ͋ΔΑ͏ͳֶशʹ͍ͨ͠ argmin w max v∈ 𝒱 ρ(w +

    v) ۙ๣ʹ͓͚Δଛࣦͷ࠷େ஋Λ ࠷খԽ͢ΔXΛݟ͚ͭΖ ۩ମతʹ͸ w ← w − η3 ∇w+v 1 m m ∑ i=1 ℓ(fw+v (x′  i ), yi ) Ͱύϥϝʔλʔߋ৽Λߦ͑͹͍͍
  19. ໨࣍   ఢରతࣄྫͷ঺հ ͓࿩͚ͩ  w "EWFSTBSJBM&YBNQMFʹؔ͢Δࣄલ஌ࣝΛಋೖ  ࿦จղઆ

    ਺͕ࣜొ৔  w "EWFSTBSJBM8FJHIU1FSUVSCBUJPO 
 )FMQT3PCVTU(FOFSBMJ[BUJPO  ࣮૷ղઆ ࣮૷͕ొ৔  w ,BHHMFͰ༻͍ΒΕΔ࣮૷Λ࿦จͷ਺ࣜͱରԠͤͯ͞ղઆ ࿦จΦϦδφϧͰ͸ͳ͘ΧϨʔͪΌΜɺ ⊙✱⊙ ͞ΜͳͲ࣮૷͔Β೿ੜ͍ͯ͠·͢
  20. "81ͷ࣮૷  BUUBDL@CBDLXBSEͰ͸ԿΛ΍͍ͬͯΔͷ͔ʁ Ϟσϧ Λอଘ fw  ʹվม fw+v ௚ޙʹCBDLXBSE͍ͯ͠Δͱ͍͏͜ͱ͸

    ∇w+v 1 m m ∑ i=1 ℓ( fw+v (xi ), yi ) 1 m m ∑ i=1 ℓ( fw+v (xi ), yi ) ΛಘΔ͜ͱʹͳΔ ˠॏΈXۙ๣Ͱ ४ ࠷ѱͷଛࣦΛܭࢉ͍ͯ͠Δ
  21. "81ͷ࣮૷  @BUUBDL@TUFQͰ͸ԿΛ΍͍ͬͯΔͷ͔ʁ ˠ ʹվม͍ͯ͠Δ fw+v v ← η2 ∇v

    1 m ∑m i=1 ℓ( fw+v (x′  i ), yi ) ∇v 1 m ∑m i=1 ℓ( fw+v (x′  i ), yi ) ∥w∥
  22. "EWFSTBSJBM8FJHIU1FSUVSCBUJPO)FMQT3PCVTU(FOFSBMJ[BUJPO ·ͱΊ࿦จΛղઆ͠·ͨ͠  ఢରతࣄྫʹର͢Δؤ݈ੑ͕ߴ·ͬͨ ໨త ఢରతࣄྫʹର͢Δؤ݈ੑΛߴΊ͍ͨ طଘݚڀ ఢରతࣄྫΛ࡞ֶͬͯशʹՃ͑Δख๏͕ଟ͔ͬͨ ܦݧత 


    ࣄ࣮ ٻ·ͬͨॏΈͷपล͕ΑΓฏΒͳଛࣦʹͳΔ৔߹ɺ ఢରతࣄྫʹର͢Δؤ݈ੑ͕ߴ͍ ख๏ ϞσϧʹఢରతͳઁಈΛՃ͑ͳ͕Βֶश͢Δ ݁Ռ ՝୊఺ ฏΒͳଛࣦͱͳΔΑ͏ͳ௚઀తͳఆࣜԽ͕ͳ͞Ε͍ͯͳ͍