[cs231n] Lecture 7: Training Neural Networks, Part 2

๊ฐ•๋™์—ฐยท2022๋…„ 2์›” 10์ผ
0

[CS231n-2017]

๋ชฉ๋ก ๋ณด๊ธฐ
6/7
post-thumbnail

๐Ÿ‘จโ€๐Ÿซ ๋ณธ ๋ฆฌ๋ทฐ๋Š” cs231n-2017 ๊ฐ•์˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

Syllabus
Youtube Link

Today

  • Fanicer optimization
  • Regularization
  • Transfer Learning

Optimization

๐Ÿ“Œ ์ผ๋ฐ˜์ ์œผ๋กœ Neural Netwoks์—์„œ optimization์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์†์‹ค ํ•จ์ˆ˜๊ฐ€ ๊ฐ€์ค‘์น˜์— ๋Œ€ํ•œ "landscape(์‚ฐ)"์ด๋ผ๊ณ  ์ƒ์ƒํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ์œ„์—๋Š” ๋‹จ์ˆœํ•œ ๊ฐ€์ค‘์น˜์— ๋Œ€ํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. "red"๋ถ€๋ถ„์ด 0์— ๊ฐ€๊นŒ์šด ์ง€์ ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ SGD๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ๋ฏธ๋‹ˆ ๋ฐฐ์น˜์•ˆ์˜ ๋ฐ์ดํ„ฐ์—์„œ Loss๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ๊ทธ๋ฆฌ๊ณ  Gradient์˜ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์„ ์ด์šฉํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ํ•˜์ง€๋งŒ ์ด ์‹ฌํ”Œํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ฒซ๋ฒˆ์งธ ๋ฌธ์ œ๋กœ๋Š” ์œ„์˜ ๊ทธ๋ž˜ํ”„์™€ ๊ฐ™์ด ํ•œ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ๋Š” ๋น ๋ฅด๊ณ , ๋‹ค๋ฅธ ํ•œ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ๋Š๋ฆฌ๊ฒŒ ์ง„ํ–‰๋œ๋‹ค๋ฉด ๊ทธ๋ž˜ํ”„์™€ ๊ฐ™์ด ํŠน์ดํ•œ ์ง€๊ทธ์žฌ๊ทธ ํ˜•ํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ์œ„์™€ ๊ฐ™์ด ๊ทธ๋ž˜ํ”„๋Š” ์ˆ˜ํ‰๋ฐฉํ–ฅ ์ฐจ์›์˜ ๊ฐ€์ค‘์น˜๋Š” ์—…๋ฐ์ดํŠธ๊ฐ€ ์•„์ฃผ ๋Š๋ฆฌ๊ฒŒ ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ์ด๋Š” ๋งค์šฐ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ๊ทธ๋ž˜ํ”„๋Š” ๋‹จ์ˆœํ•œ ์ฐจ์›์ด์ง€๋งŒ ์‹ค์ œ์—์„œ๋Š” ๋”์šฑ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์œ„ ๊ทธ๋ฆผ์€ x์ถ•์€ ๊ฐ€์ค‘์น˜, Y์ถ•์€ loss๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. loss๊ฐ’์ด local minima or saddle point์— ์œ„์น˜ํ•œ๋‹ค๋ฉด, SGD๋Š” ๋ฉˆ์ถฐ ๋ฒ„๋ฆด๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์ด์œ ๋Š” gradient๊ฐ€ 0์ด ๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋˜ํ•œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” SGD์˜ ๊ฒฝ์šฐ minibatch๋งŒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ •ํ™•ํ•œ gradient๊ฐ€ ์•„๋‹Œ noisy estimate๋งŒ์„ ๊ตฌํ•  ๋ฟ ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ์ ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๋ฐฉ๋ฒ•์€ ํ•˜๋‚˜๋Š” SGD + Momentum(๊ด€์„ฑ๊ณ„์ˆ˜)๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ๋„ velocity(์†๋„)๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ gradient๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ velocity๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ณด๋ฉด ์ง๊ด€์ ์œผ๋กœ velocity ๋Š” ์ด์ „ gradients์˜ weight sum์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ "rho"๋ผ๋Š” ์ถ”๊ฐ€ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ์ด๋Š” ๋ชจ๋งจํ…€์€ ๋น„์œจ์„ ๋งํ•˜๊ณ , ์ผ๋ฐ˜์ ์œผ๋กœ 0.9๋กœ ๋งž์ถฐ์ค€๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ Momentum๋งŒ์œผ๋กœ๋„ ์œ„์—์„œ ์ œ์‹œ๋œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Momentum ๊ณ„์ˆ˜๋กœ ์ธํ•ด์„œ Local Minima ํ˜น์€ Saddle points์™€ ๊ฐ™์€ ์ง€์ ์—์„œ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Momentum์„ ์ถ”๊ฐ€ํ•ด velocity๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ฒฐ๊ตญ noise๊ฐ€ ํ‰๊ท ํ™” ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค(?????? ์ด ๋ถ€๋ถ„์€ ์ •ํ™•ํžˆ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

๐Ÿ“Œ velocity๋ฅผ ์‚ฌ์šฉํ•ด noise๋ฅผ ๊ทน๋ณตํ•˜๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฒกํ„ฐ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๊ณ  ์žˆ๋Š” gradient velocity(momentum)์„ ์‚ฌ์šฉํ•ด ๊ทน๋ณตํ•˜๊ณ  ์žˆ๋Š” ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ์˜ค๋ฅธ์ชฝ์—๋Š” "Nesterov Momentum"๋ผ๊ณ  ๋ชจ๋งจํ…€์˜ ๋ฒˆํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋งจํ…€์—์„œ ๊ณ„์‚ฐ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พผ ๊ฒƒ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. "velocity" ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ„ ํ›„์— gradient๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ๋‹ค์‹œ ์›์ ์œผ๋กœ ๋Œ์•„์™€ ๋‘˜์„ ํ•ฉ์นœ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ convexํ•œ ๋ฌธ์ œ์—์„œ๋Š” ํšจ๊ณผ์ ์ด๋ผ๊ณ  ํ•˜์ง€๋งŒ neural network๋Š” non-convex์ด๊ธฐ์— ํšจ๊ณผ์ ์ด์ง€ ์•Š๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ธ AdaGrad๋Š” ํ›ˆ๋ จ๋„์ค‘ ๊ณ„์‚ฐ๋˜๋Š” gradients๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. AdaGrad๋Š” "velocity" term ๋Œ€์‹ ์— "gradient_squaerd" term์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. gradient๋ฅผ ์ œ๊ณฑ์˜ ํ˜•ํƒœ๋กœ ๊ณ„์†ํ•ด์„œ ๋”ํ•˜๋ฉฐ, ์œ„์˜ ์ˆ˜์‹๊ณผ ๊ฐ™์ด ๊ทธ ์ œ๊ณฑ ํ•ญ์„ ๋‚˜๋ˆ ์ค๋‹ˆ๋‹ค.

๐Ÿ“Œ 2์ฐจ์›์˜ ์ขŒํ‘œ์—์„œ ํ•œ ์ฐจ์›์€ ํ•ญ์ƒ ๋†’์€ gradient๋ฅผ ๊ฐ€์ง€๋Š” ์ฐจ์›์ด๊ณ , ๋‚˜๋จธ์ง€ ํ•˜๋‚˜๋Š” ์ž‘์€ gradient๋ฅผ ๊ฐ€์ง€๋Š” ์ฐจ์›์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋†’์€ gradient์—์„œ๋Š” ๋†’์€ "gradient_squaerd" ๊ฐ’์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์—, ์†๋„๊ฐ€ ์ ์  ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. ๊ทธ ๋ฐ˜๋Œ€๋กœ ์˜คํžˆ๋ ค ์†๋„๊ฐ€ ๋นจ๋ผ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ํ•˜์ง€๋งŒ AdaGrad์—๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•™์Šต ํšŸ์ˆ˜ t๊ฐ€ ๊ณ„์† ๋Š˜์–ด๋‚œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?
step์„ ์ง„ํ–‰ํ•  ์ˆ˜๋ก ๊ฐ’์ด ์ ์  ์ž‘์•„์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์—ฐํ•˜๊ฒŒ๋„ gradient๋ฅผ ๊ณ„์†ํ•ด์„œ ๋”ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ ์  ์ฆ๊ฐ€ํ•  ๊ฒƒ์ด๊ณ  Step size๋ฅผ ์ ์  ๋” ์ž‘์€ ๊ฐ’์ด ๋˜๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ RMSProp ๋ฐฉ๋ฒ•์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค. RMSProp์—์„œ๋„ ์ œ๊ณฑ ํ•ญ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ decay_rate๋ฅผ ๋ˆ„์  ๊ฐ’์— ๊ณฑํ•ด์ค๋‹ˆ๋‹ค. decay_rate์˜ ๊ฐ’์€ ์ผ๋ฐ˜์ ์œผ๋กœ 0.9 or 0.99๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด step์˜ ์†๋„๋ฅผ ๊ฐ€์†/๊ฐ์† ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์œ„์™€ ๊ฐ™์€ ํŠน์ง•์œผ๋กœ Step size์˜ ๊ฐ’์ด ์ž‘๊ฒŒ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋จผ์ € RMSProp์€ ๊ธฐ์กด์˜ momentum๊ณผ ๋‹ค๋ฅธ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‘ ๋ฐฉ๋ฒ•์„ ํ•ฉ์ณ์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋” ์ข‹์€ ์„ฑ๋Šฅ์„ ๊ฐ€์ง€๊ฒŒ ๋  ๊ฒƒ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ ๋ฐฉ๋ฒ•๋ก ์ด ๋ฐ”๋กœ Adam(= momentum + RMSProp) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ์ˆ˜์‹์€ Adam ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋จผ์ € first_moment๋Š” velocity์˜ ์—ญํ™œ์„ ํ•˜๊ณ , second_moment gradient์˜ ์ œ๊ณฑ ํ•ญ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋„ ๋ฌธ์ œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ดˆ๊ธฐ์— second_moment๋ฅผ 0๋กœ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. second moment์„ 1ํšŒ ์—…๋ฐ์ดํŠธ ํ•˜๊ณ  ๋‚œ ํ›„์— ๋ณด๋ฉด ์—ญ์‹œ 0์— ๊ฐ€๊นŒ์šด ๊ฐ’์„ ๊ฐ€์งˆ ๊ฒ๋‹ˆ๋‹ค.(beta2(=decay_rate) 0.9 or 0.99) ๊ทธ๋Ÿฌ๋ฉด ์ดˆ๊ธฐ step์ด ์—„์ฒญ๋‚˜๊ฒŒ ์ปค์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ธ์œ„์ ์ธ ํ˜„์ƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ญ”๊ฐ€ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์œ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด unbiased term์„ ๊ณ„์‚ฐํ•ด ์ค๋‹ˆ๋‹ค. unbiased term์„ ํ†ตํ•ด ์œ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ Adam optimization์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๋ชจ๋“  optimization ๋ฐฉ๋ฒ•์—๋Š” learning rate๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ์ข‹์€ ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„  ์ ์ ˆํ•œ learning rate๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๊ทธ๋ž˜ํ”„ ์ฒ˜๋Ÿผ learning rate์— ๋”ฐ๋ผ์„œ loss์˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ํ™•์—ฐํ•˜๊ฒŒ ์ฐจ์ด๋‚˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ €ํฐ learning rates dacay ์ „๋žต์„ ์‚ฌ์šฉํ•ด, ๊ฐ๊ฐ์˜ learning rates์˜ ํŠน์„ฑ์„ ์ ์ ˆํžˆ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ฒ˜์Œ์—๋Š” learning rates๋ฅผ ๋†’๊ฒŒ ์„ค์ •ํ•œ ๋‹ค์Œ์— ํ•™์Šต์ด ์ง„ํ–‰๋ ์ˆ˜๋ก learning rates๋ฅผ ์ ์  ๋‚ฎ์ถ”๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์€ ResNet๋…ผ๋ฌธ์˜ loss ๊ทธ๋ž˜ํ”„ ์ž…๋‹ˆ๋‹ค. ํ‰ํ‰ํ•ด์ง€๋‹ค๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋‚ด๋ ค๊ฐ€๋Š” ๊ตฌ๊ฐ„์ด learning rates๋ฅผ ๋‚ฎ์ถ”๋Š” ๊ตฌ๊ฐ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. learning rates๋ฅผ ๋‚ฎ์ถ”๋Š” ๊ตฌ๊ฐ„์€ ํ˜„์žฌ ์ž˜ ์ˆ˜๋ ดํ•˜๊ณ  ์žˆ์ง€๋งŒ gradient๊ฐ€ ์ ์  ์ž‘์•„์ง€๊ณ  ์žˆ๋‹ค๋ฉด, learning rate์˜ ๊ฐ’์ด ์ปค ๋”์šฑ ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€์ง€๋Š” ๋ชปํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— learning rates์„ ๋‚ฎ์ถฐ์ค๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ถ”๊ฐ€์ ์œผ๋กœ learning rates decay๋Š” ์ถ”๊ฐ€์ ์ธ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ์ธ๋ฐ ์ด๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ณ ๋ คํ•˜์ง€ ๋ง๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ๊ธฐ์—, ๋จผ์ € decay ์—†์ด ์ˆ˜ํ–‰ํ•ด๋ณด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿคทโ€โ™‚๏ธ ์ดํ›„ ์ง€๊ธˆ๊นŒ์ง€์˜ optimization ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ๋ชจ๋‘ 1์ฐจ ๋ฏธ๋ถ„์„ ํ™œ์šฉํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ด์•ผ๊ธฐ ํ•˜๋ฉด์„œ, 2์ฐจ ๋ฏธ๋ถ„์„ ์‚ฌ์šฉํ•ด ์ •๋ณด๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด๋น ๋ฅด๊ฒŒ minima ์ง€์ ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๊ณค ํ•˜์ง€๋งŒ... neural network์—์„œ๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. NxN Hessian ๋ฉ”ํŠธ๋ฆญ์Šค๊ฐ€ ํ•„์š”ํ•œ๋ฐ ์ด๋Š” ๋„ˆ๋ฌด๋‚˜๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•„์š”๋กœ ํ•˜๊ธฐ์— ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค...ํ•ฉ๋‹ˆ๋‹ค๋งŒ.. ์ด ๋ถ€๋ถ„์€ ์–ด๋ ค์›Œ์„œ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šค๋นˆ๋‹ค..

Regularizations & Model Ensembles

๐Ÿ“Œ ์œ„์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด๋ฉด ์™„๋ฒฝํ•˜๊ฒŒ fit๋˜์ง€ ์•Š๋Š” train loss์™€ train, val์˜ ํฐ gap์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์”๋‹ˆ๋‹ค.

Model Ensembles

๐Ÿ“Œ ์ฃผ๋กœ ๋จธ์‹ ๋Ÿฌ๋‹์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋ธ ์•™์ƒ๋ธ” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ชจ๋ธ ํ•˜๋‚˜๋งŒ ํ•™์Šต์‹œํ‚ค์ง€ ์•Š๊ณ  10๊ฐœ์˜ ๋ชจ๋ธ์„ ๋…๋ฆฝ์ ์œผ๋กœ ํ•™์Šต์‹œ์ผœ ๋ชจ๋ธ์˜ ๊ฒฐ๊ณผ์˜ ํ‰๊ท ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋…๋ฆฝ์ ์œผ๋กœ ๋ชจ๋ธ์„ ํ•™์Šต์‹œ์ผœ ์•™์ƒ๋ธ” ํ•˜๋Š” ๊ฒƒ์™ธ์—๋„, ํ•™์Šต ๋„์ค‘ ์ค‘๊ฐ„ ๋ชจ๋ธ๋“ค์„ ์ €์žฅ(snapshots)ํ•ด ์•™์ƒ๋ธ” ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Test์‹œ ์—ฌ๋Ÿฌ snapshot์˜ ๊ฒฐ๊ณผ๋ฅผ ํ‰๊ท ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ํ•™์Šตํ•˜๋Š” ๋™์•ˆ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ decaying average๋ฅผ ๊ณ„์‚ฐํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ smooth ์•™์ƒ๋ธ” ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Regularization

๐Ÿ“Œ Regularization๋Š” ์•™์ƒ๋ธ”๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋‹ค์–‘ํ•œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ•˜๋‚˜์˜ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ์œ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ธฐ์กด์˜ ๋ฐฐ์› ๋˜ L2 Regularization์€ ๋”ฅ๋Ÿฌ๋‹์—์„œ๋Š” ์ฃผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Neural network์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” regularzation์€ ๋ฐ”๋กœ dropout์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ Dropout์€ forward pass ๊ณผ์ •์—์„œ ์ž„์˜๋กœ ์ผ๋ถ€ ๋‰ด๋Ÿฐ์„ 0์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์–ด๋–ค ํ™•๋ฅ ์„ ์‚ฌ์šฉํ•ด dropout์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋žœ๋ค์œผ๋กœ ๋‰ด๋Ÿฐ์„ ์„ ํƒํ•˜๊ธฐ์— ๋งค forawrd pass๋งˆ๋‹ค ๋‹ค๋ฅธ ๋‰ด๋Ÿฐ๋“ค์ด ์„ ํƒ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ํ•œ ๊ฐ€์ง€ ์˜๋ฌธ์€ ์™œ Dropout์ด ์ข‹์„๊นŒ์š”? ์ผ๋ถ€์˜ ๋‰ด๋Ÿฐ ์ฆ‰ ์ •๋ณด๋ฅผ ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฆ„์ด ์—†๋Š” ํ–‰๋™์ž…๋‹ˆ๋‹ค. Dropout์€ ์‰ฝ๊ฒŒ ๋„คํŠธ์›Œํฌ๊ฐ€ ์–ด๋–ค ์ผ๋ถ€์˜ features์—๋งŒ ์˜์กดํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ฆ‰ Overfit๋˜๋Š” ๊ฒƒ์„ ์–ด๋Š์ •๋„ ๋ง‰์•„์ค€๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋ธ ์•™์ƒ๋ธ” ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋˜ํ•œ ํ•œ ๊ฐ€์ง€ ์ƒ๊ฐํ•ด๋ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด Test์‹œ์—๋Š” dropout์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ์š”? test time์—์„œ๋Š” ์ž„์˜์˜ ๊ฐ’์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์œ„์˜ ์‹์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋“ฏ์ด "z"(random mask)์„ marginal out์„ ํ†ตํ•ด f(x)์— ๋Œ€ํ•œ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์งˆ์ ์œผ๋กœ๋Š” ๊ณ„์‚ฐ์ด ๋งค์šฐ ์–ด๋ ต๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ด๋ฅผ ๋Œ€์ฑ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ , dropout์„ 0.5๋กœ ์ง€์ •ํ•˜๊ณ  ํ•˜๋Š” training ๊ณผ์ •์—์„œ ์šฐ๋ฆฌ๋Š” E[a]E[a]์˜ ๊ธฐ๋Œ“๊ฐ’์„ ์œ„์™€ ๊ฐ™์ด 0.5(w1x+w2x)0.5(w_1x + w_2x)๋ผ๊ณ  ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(dropout mask์—๋Š” 4๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.) ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ test์‹œ ์ถœ๋ ฅ ๊ฐ’์— dropout probability๋ฅผ ๊ณฑํ•ฉ์œผ๋กœ์จ ์ด ๋‘˜์˜ ๊ธฐ๋Œ“๊ฐ’์ด ๊ฐ™์•„์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ Dropout vs Batch Normalization(์œ ์‚ฌํ•œ ํšจ๊ณผ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.)

Data Augmentation

๐Ÿ“Œ Data Augmentation๋Š” input image๋ฅผ randomํ•˜๊ฒŒ transformํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. transform์—๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ Horizontal Flips, Random crops and scales, Color Jitter( Randomize contrast and brightness), rotation... ๋“ฑ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ด ์™ธ์—๋„ ๋‹ค์–‘ํ•œ Regularization ๋ฐฉ๋ฒ•๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

Transfer Learning

๐Ÿ“Œ ๋ชจ๋‘๊ฐ€ ์•Œ๊ณ ์žˆ๋‹ค ์‹ถ์ด ์ผ๋ฐ˜์ ์œผ๋กœ CNN์„ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด์„ , ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ผ๋ฒจ๋ง๋œ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ Transfer Learning๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ImageNet๊ณผ ๊ฐ™์ด ๋งค์šฐ ํฐ ๋ฐ์ดํ„ฐ ํ•™์Šต์‹œํ‚ต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ pre-train์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๋‹ค๋ฆ„ ๋‚ด๊ฐ€ ํ˜„์žฌ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ๋กœ ์ผ๋ถ€์˜ layer๋งŒ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•™์Šต์‹œํ‚ค์ง€ ์•Š๋Š” layer์€ ์ „๋ถ€ freeze ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ผ๋ฐ˜์ ์œผ๋กœ layer๋ฅผ ํ•™์Šต์‹œํ‚ฌ ๋•Œ๋Š” ์› lr์˜ 1/10์˜ lr์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์œ„์™€ ๊ฐ™์ด ์ถ”๊ฐ€์ ์œผ๋กœ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ์„ fine-tuning ํ•œ๋‹ค๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

๐Ÿ“Œ Transfer Learning์€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ fine-tuning์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ํ‘œ์—์„œ๋Š” ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์–ผ๋งˆ๋‚˜ fine-tuning ํ•ด์•ผํ•˜๋Š”์ง€ ๋Œ€๋žต์ ์œผ๋กœ ์•Œ๋ ค์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ Transfer Learning์€ ๋งค์šฐ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋‹ค์–‘ํ•œ ๋…ผ๋ฌธ๋“ค์„ ํ™•์ธํ•ด๋ณด๋ฉด ๊ฑฐ์˜ ๋ชจ๋“  ๋…ผ๋ฌธ๋“ค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ์˜ ํ•„์ˆ˜์ ์œผ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๊ณ ๋„ ๋งํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

profile
Maybe I will be an AI Engineer?

0๊ฐœ์˜ ๋Œ“๊ธ€