ํ™ˆ
๐Ÿ“„

PHMAP 21 Data Challenge (Winner) ์ฐธ๊ฐ€ ํ›„๊ธฐ - [Task 1] 1. End to End Model๐Ÿ”ญ[Task 2] Hierarchical Model

Goal

๋ชจํ„ฐ์™€ ์Šคํฌ๋ฅ˜์—์„œ ํš๋“๋œ ์ง„๋™์‹ ํ˜ธ๋ฅผ ์ปดํ”„๋ ˆ์„œ์˜ ๊ฑด์ „์„ฑ ์ƒํƒœ์™€ ์ง๊ฒฐํ•˜๋Š” End-to-End ๋ถ„๋ฅ˜ ๋ชจ๋ธ์„ ํ•™์Šต/ํ™œ์šฉ ํ•ด๋ณด๊ธฐ.

Background

๋„๋ฉ”์ธ ์ง€์‹์„ ์ตœ๋Œ€ํ•œ ๋ฐฐ์ œํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ์‰ฌ์šด ์ ‘๊ทผ๋ฐฉ๋ฒ•์€ End-to-End ๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰ ์ฃผ์–ด์ง„ ์ง„๋™์‹ ํ˜ธ๋ฅผ ๋ณ„๋‹ค๋ฅธ ์ฒ˜๋ฆฌ ์—†์ด(ํ˜น์€ ์ตœ์†Œํ•œ์˜ ์ •๊ทœํ™”(Normalization)๋งŒ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ) ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์˜ ์ž…๋ ฅ ์‹ ํ˜ธ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๋ชจ๋ธ์˜ ์ถœ๋ ฅ๊ฐ’์œผ๋กœ ์ €ํฌ๊ฐ€ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์ปดํ”„๋ ˆ์„œ์˜ ๊ฑด์ „์„ฑ ์ƒํƒœ๋ฅผ ๋งคํ•‘(Mapping)ํ•˜๋Š” ๊ฒƒ์ด์ฃ . ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ฐ•๋ ฅํ•œ ํ•˜๋‚˜์˜ ์ „์ œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๋ชจ๋ธ์„ ํ•™์Šตํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ๋งŽ๋‹ค
์ด๋Ÿฌํ•œ ์ „์ œ๋งŒ ๋งŒ์กฑ๋œ๋‹ค๋ฉด ์˜คํžˆ๋ ค ์ธ๊ฐ„์˜ ์–ด๋– ํ•œ ์„ ์ž…๊ฒฌ(Preconception/Bias)๋„ ์—†์ด ์ˆœ์ˆ˜ํ•˜๊ฒŒ ๋ชฉ์ ํ•จ์ˆ˜์— ๊ท€์†๋˜๋Š” ๋ชจ๋ธ์ด ํ•™์Šต๋  ์ˆ˜ ์žˆ๊ณ , ์‹ค์ œ ๋‹ค์–‘ํ•œ ์‚ฌ๋ก€์—์„œ ์˜คํžˆ๋ ค ๋” ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ๊ฒƒ์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๊ฐ€ ๋ฐ”๋กœ ๊ทธ ์œ ๋ช…ํ•œ ์•ŒํŒŒ๊ณ ์ž…๋‹ˆ๋‹ค. 2016๋…„ ์ด์„ธ๋Œํ”„๋กœ์™€์˜ ๊ฒฝ๊ธฐ์—์„œ ์‚ฌ์šฉ๋œ ๋ชจ๋ธ์€ ์•ŒํŒŒ๊ณ  ๋ฒ„์ „ 18 ์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ์ˆ˜๋งŽ์€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํ•™์Šตํ•˜์˜€์ง€๋งŒ ๊ทธ ํ•™์Šต๊ณผ์ •์—๋Š” ์ธ๊ฐ„์˜ ๊ธฐ๋ณด๊ฐ€ ๋Œ€ํ‘œ์ ์ธ ๋ ˆํผ๋Ÿฐ์Šค๋กœ ํ™œ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ ์ธ๊ฐ„์˜ ์„ ์ž…๊ฒฌ์ด ํ•™์Šต ์ค‘์— ๋ฐ˜์˜๋œ ๋ชจ๋ธ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ์ข…์˜ ์ธ๋ฅ˜์˜ ๋ฐ”๋‘‘ ์—ญ์‚ฌ์˜ ๋ชจ๋“  ๋ฐ”๋‘‘ ๊ธฐ์‚ฌ๋“ค์ด ์•ŒํŒŒ๊ณ  ๋ฒ„์ „ 18 ์˜ ์Šค์Šน์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์ง€์š”. ํ•˜์ง€๋งŒ ๋ถˆ๊ณผ 1๋…„ ๋’ค์ธ 2017๋…„, ๋”ฅ๋งˆ์ธ๋“œ๋Š” ์•ŒํŒŒ๊ณ  ์ œ๋กœ๋ผ๋Š” ๋ฌด์‹œ๋ฌด์‹œํ•œ ๋ชจ๋ธ์„ ์ƒˆ๋กญ๊ฒŒ ์„ ๋ณด์ž…๋‹ˆ๋‹ค. ์•ŒํŒŒ๊ณ  ์ œ๋กœ์—์„œ๋Š” ๊ทธ ์–ด๋– ํ•œ ์ธ๊ฐ„์˜ ๊ธฐ๋ณด๋„ ํ•™์Šต๊ณผ์ •์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ˆœ์ˆ˜ํ•˜๊ฒŒ ๋ฐ”๋‘‘๋Œ์˜ ํ˜„ํ™ฉ๊ณผ ๋ฐ”๋‘‘ ๊ฒฝ๊ธฐ์—์„œ ์Šน๋ฆฌํ•œ๋‹ค๋Š” ๋ชฉ์ ๋งŒ์„ ์„ค์ •ํ•œ End-to-End ํ•™์Šต์„ ์ ์šฉํ•œ ๊ฒƒ์ด์ง€์š”. ๊ทธ ๊ฒฐ๊ณผ๋Š” ์–ด๋• ์„๊นŒ์š”?
์•ŒํŒŒ๊ณ  ๋ฒ„์ „ 18(์ดˆ๋ก์ƒ‰ ์ ์„ ; AlphaGo Lee)๊ณผ ์•ŒํŒŒ๊ณ  ์ œ๋กœ(ํŒŒ๋ž€์ƒ‰ ์‹ค์„ )์˜ ์„ฑ๋Šฅ๋น„๊ต๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ํ•™์Šต์ด ์ง„ํ–‰๋˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ์•ŒํŒŒ๊ณ  ์ œ๋กœ์˜ ์„ฑ๋Šฅ์ด ๋ฌด์„ญ๊ฒŒ ํ–ฅ์ƒ๋˜๋Š” ๊ฒƒ์ด ๋ณด์ž…๋‹ˆ๋‹ค. ํŠนํžˆ 36์‹œ๊ฐ„์ด ์ง€๋‚˜๋Š” ์‹œ์ ์—์„œ ์•ŒํŒŒ๊ณ  ์ œ๋กœ๊ฐ€ ์•ŒํŒŒ๊ณ  ๋ฒ„์ „ 18์˜ ์„ฑ๋Šฅ์„ ์ถ”์›”ํ•˜๋Š” ๊ฒƒ์ด ๋ณด์ด๋Š”๋ฐ์š”, 72์‹œ๊ฐ„์ด ์ง€๋‚œ์‹œ์ ์—์„œ๋Š” ๋ฌด๋ ค 100๋Œ€ 0์ด๋ผ๋Š” ์ž”ํ˜นํ•œ ์„ฑ์ ์œผ๋กœ ์•ŒํŒŒ๊ณ  ์ œ๋กœ๊ฐ€ ์•ŒํŒŒ๊ณ  ๋ฒ„์ „ 18์„ ์••๋„ํ•˜๋Š” ๊ฒƒ์ด ๋ณด์ž…๋‹ˆ๋‹ค.

Preparation

์ž, ๊ทธ๋ ‡๋‹ค๋ฉด ๊ณผ์—ฐ ์šฐ๋ฆฌ๊ฐ€ End-to-End ํ•™์Šต์„ ์ง„ํ–‰ํ•  ๋งŒํผ ์ถฉ๋ถ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•๋ณดํ•˜์˜€๋Š”์ง€, ๋˜ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์ „๋žต์„ ๊ฒ€ํ† ํ•ด๋ณด์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์ด์ „ ํฌ์ŠคํŠธ์—์„œ ์„ค๋ช…๋“œ๋ ธ๋˜ ์ €ํฌ์—๊ฒŒ ์ฃผ์–ด์ง„ ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ์…‹ ์ƒ์„ธ์ •๋ณด

Status
Event
Length
# of available subsamples
Bearing
1
1,800s
18,979,199
Looseness
1
609s
6,521,295
Normal
1
1,485s
15,657,839
Unbalance
1
1,117s
11,779,755
Losseness-High
1
416s
4,384,195
Bearing
2
3,890s
41,020,377
Looseness
2
3,070s
32,365,831
Unbalance
2
2,852s
30,082,031
Normal
3
5,017s
52,907,683
Unbalance
3
2,240s
23,616,451
๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ž์„ธํžˆ ์—ด์–ด๋ณด๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ์ƒ๋‹นํžˆ ๋งŽ์€ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ End-to-End ํ•™์Šต ์ „๋žต์„ ๊ณ ๋ คํ•  ๋•Œ ์ €ํฌ๋Š” ์ž…๋ ฅ์‹ ํ˜ธ๋ฅผ 0.012์ดˆ์”ฉ ์ž๋ฅด๊ฒŒ ๋˜๋‹ˆ ์‹ค์งˆ์ ์œผ๋กœ ๊ฐ€์šฉํ•œ sub-sampled ๋ฐ์ดํ„ฐ๋Š” ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ์–‘์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  sub-sample์˜ ๊ฐฏ์ˆ˜๋Š” 237,314,656๊ฐœ(!!), ์ค‘๋ณต์„ ๋ฐฐ์ œํ•œ๋‹ค๊ณ  ํ•ด๋„ 1,854,020๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์ƒ˜ํ”Œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ๋‚œ์ด๋„์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ๋Š” ์žˆ์ง€๋งŒ, ์ด์ •๋„ ๋ฐ์ดํ„ฐ๋ผ๋ฉด End-to-End ํ›ˆ๋ จ์„ ์ง„ํ–‰ํ•˜๊ธฐ์—” ์ถฉ๋ถ„ํ•ด ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Batch Design

๊ทธ๋Ÿฌ๋ฉด ๋ณธ๊ฒฉ์ ์œผ๋กœ ํ›ˆ๋ จ์„ ์ง„ํ–‰ํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผํ•  ๋””ํ…Œ์ผ๋“ค์„ ๋…ผํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘์—์„œ๋„ ํŠนํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ํ›ˆ๋ จ๊ณผ์ •์— ๋…ธ์ถœ์‹œํ‚ฌ์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ๊ฐ€์žฅ ์šฐ์„ ๋˜๋Š”๋ฐ์š”, ๋ณดํ†ต ์ด๋ฏธ์ง€ ํ›ˆ๋ จ์˜ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ฆผ๋“ค์ด ๋ชจ๋‘ ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•˜์ง€๋งŒ ์ง€๊ธˆ ์ €ํฌ๋Š” ํฐ ๋ญ‰ํ……์ด ์‹ ํ˜ธ์—์„œ ์ผ๋ถ€ ์‹ ํ˜ธ๋ฅผ sub-sampling ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ์‹์€ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ sub-sample์„ ๋งŒ๋“ค์–ด ๋†“๊ณ , ์ด๋“ค์„ ์„ž์–ด์„œ ๋ฐฐ์น˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ Batch-Epoch ๋””์ž์ธ์—๋„ ๊ฐ€์žฅ ์ ํ•ฉํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ญ๋น„์—†์ด ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์น˜๋ช…์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋‘๊ฐ€์ง€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”, ์ฒซ๋ฒˆ์งธ๋กœ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ž์—์„œ ์–ธ๊ธ‰ํ•œ๊ฒƒ์ฒ˜๋Ÿผ ํ™œ์šฉ๊ฐ€๋Šฅํ•œ sub-sample์˜ ๊ฐฏ์ˆ˜๋Š” 237,314,656๊ฐœ, ์ค‘์ฒฉ์„ ๋ฐฐ์ œํ•œ๋‹ค๊ณ  ํ•ด๋„ 1,854,020๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ํ›ˆ๋ จ์— ํ™œ์šฉํ•œ๋‹ค๋ฉด 1 Epoch์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋˜๋‹ค๋ฅธ ๋ฌธ์ œ๋กœ๋Š” ๊ฐ ์ƒํƒœ์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ๋Ÿ‰์ด ๋ถˆ๊ท ํ˜•(Imbalance)ํ•˜๋‹ค๋Š” ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ Normal ์ƒํƒœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด 5,500s ์ •๋„์ธ ๋ฐ˜๋ช… Losseness-High์˜ ๋ฐ์ดํ„ฐ์–‘์„ 416s์ •๋„๋กœ 1/10์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‹จ์ˆœํ•˜๊ฒŒ ๋žœ๋ค์…”ํ”Œ๋ง์„ ํ†ตํ•ด ๋ฐฐ์น˜๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๋ฐฐ์น˜์—์„œ๋Š” Normal์— ํŽธํ–ฅ๋œ ํ›ˆ๋ จ์ด ์ด๋ค„์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ €ํฌ๋Š” Batch-Epoch ๋””์ž์ธ ๋ณด๋‹ค๋Š” Batch-Iteration ์ „๋žต์„ ์ทจํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ Batch Sampling์„ ์ €ํฌ๊ฐ€ ์ •ํ•œ Iteration ๋งŒํผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด์ง€์š”. ์ด ๊ฒฝ์šฐ ๋ˆ„๋ฝ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์ง€๋งŒ ํ›ˆ๋ จ ์–‘์„ ๋ณด๋‹ค ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ ๋ชจ๋“  Batch Sampling์—์„œ๋Š” ๊ฐ ์ƒํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์ผ๋Ÿ‰ ์ƒ˜ํ”Œํ•˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ „์ฒด Batch Size๊ฐ€ 100์ด๋ผ๋ฉด 20๊ฐœ๋Š” Normal์—์„œ, 20๊ฐœ๋Š” Unbalance์—์„œ ์ƒ˜ํ”Œ๋งํ•˜๋Š” ์‹์ด์ง€์š”. ์ด๋ฅผ ํ†ตํ•ด ํ›ˆ๋ จ ๊ณผ์ •์—์„œ ์†Œ์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋„ ์ถฉ๋ถ„ํžˆ ๋…ธ์ถœ์‹œ์ผœ์„œ ํŠน์ • ์ƒํƒœ์— ํŽธํ–ฅ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด๋ ‡๊ฒŒ ํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋Ÿ‰์ด ์ ์€ ํด๋ž˜์Šค์— ๋Œ€ํ•ด Overfitting์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”, ๋‹คํ–‰ํžˆ๋„ ์ €ํฌ๋Š” ์ถฉ๋ถ„ํžˆ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์œ„ํ—˜์„ฑ์€ ๋‚ฎ์„๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Network Design

์ด์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ์ง€ ์ •ํ–ˆ์œผ๋‹ˆ ์ด์ œ ๋„คํŠธ์›Œํฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋””์ž์ธ ํ•ด๋ณด๋„๋ก ํ—ˆ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ๋„คํŠธ์›Œํฌ์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ์—์„œ ๋งŽ์ด ํ™œ์šฉ๋˜๋Š” CNN(Convolutional Neural Network)์„ ํ™œ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฆ‰ ์ง„๋™์‹ ํ˜ธ๋ฅผ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ๋‹ค๋ฃจ๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ธ๋ฐ์š”, ์‚ฌ์‹ค ๋‹ค์†Œ ์˜์•„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฐ์ •์ž…๋‹ˆ๋‹ค. ๊ณต๊ฐ„์ƒ์˜(Spatial) ์ •๋ณด๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ CNN์„ ์‹œ๊ฐ„์ƒ์—(Time-wisely) ์ •์˜๋œ ์ง„๋™์‹ ํ˜ธ์— ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์ธ๋ฐ์š”, ์•„๋ž˜์˜ ์ด์œ ๋ฅผ ํ•จ๊ป˜ ์‚ดํŽด๋ณด์•˜์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.
- ์ผ๋ฐ˜์ ์œผ๋กœ CNN์€ DNN๋ณด๋‹ค ์ ์€ weights๋ฅผ, RNN๋ณด๋‹ค ๋งŽ์€ weights๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. - ๋™์ผํ•œ weights ์–‘์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•  ๋•Œ CNN์€ RNN๋ณด๋‹ค ํ•™์Šต์ด ๊ฐ„ํŽธํ•˜๊ณ  ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. - CNN์€ ๋‹ค๋ฅธ ๊ตฌ์กฐ์— ๋น„ํ•ด Pre-trained Model์ด ๋งŽ์ด ๋ฐฐํฌ๋˜์–ด ์žˆ๋‹ค. - (๋ฌด์—‡๋ณด๋‹ค๋„) CNN์€ ๊ธฐ๋ณธ์ ์œผ๋กœ kernel-wise computation์ด๊ธฐ ๋•Œ๋ฌธ์— Filter Design์œผ๋กœ ํ•ด์„ ๊ฐ€๋Šฅํ•˜๋‹ค.
์•ž์˜ ์„ธ๊ฐ€์ง€ ์กฐ๊ฑด๋ณด๋‹ค ๋งˆ์ง€๋ง‰ ์กฐ๊ฑด์„ ๊ฐ€์žฅ ์ฃผ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ๊นŒ์š”? ํšŒ์ „์ฒด์˜ ์‹ ํ˜ธ ๋ถ„์„์—์„œ, ํŠนํžˆ ๊ทธ ํšŒ์ „์ฒด๊ฐ€ ๋“ฑ์† ์ƒํƒœ์—(Stationary Rotation) ์žˆ์„ ๋•Œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ฃผํŒŒ์ˆ˜ ์„ฑ๋ถ„ ๋ถ„์„์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ๋„๋ฉ”์ธ์—์„œ ์‹ ํ˜ธ๋ฅผ ์•„๋ฌด๋ฆฌ ๋“ค์—ฌ๋‹ค๋ด๋„ ๋ณด์ด์ง€ ์•Š๋Š” ํŠน์ง•์ด ์ฃผํŒŒ์ˆ˜ ๋„๋ฉ”์ธ์œผ๋กœ ๋ณ€ํ™˜๋  ๊ฒฝ์šฐ ๊ทธ ํŠน์ง•๋“ค์ด ๋šœ๋ ทํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ์š”, ๋ฌด์—‡๋ณด๋‹ค๋„ ํŠน์„ฑ์ฃผํŒŒ์ˆ˜(Characteristic Frequency)๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ฃผํŒŒ์ˆ˜ ์„ฑ๋ถ„์ด ๊ณ ์žฅ ์ง„๋‹จ ๋ถ„์„์— ๋ชน์‹œ ์ค‘์š”ํ•œ ํžŒํŠธ๋ฅผ ์ฃผ๊ณค ํ•ฉ๋‹ˆ๋‹ค. (๋Œ€ํ‘œ์ ์ธ ํŠน์„ฑ ์ฃผํŒŒ์ˆ˜๋กœ๋Š” ํšŒ์ „์ฒด์˜ ํšŒ์ „์ฃผํŒŒ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.)
์ž ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์‹œ 1-Dimensional CNN์œผ๋กœ ๋Œ์•„์™€์„œ, ์šฐ์„  ๋‹ค์Œ๊ณผ ๊ฐ™์€ End-to-End ๋ชจ๋ธ์„ ๊ณ ๋ คํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ๊ฐ’์œผ๋กœ๋Š” ์ฃผ์–ด์ง„ 0.012์ดˆ์˜ ๋‘ ์ฑ„๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, ์ด๋Š” 2์ฑ„๋„์งœ๋ฆฌ ์ด๋ฏธ์ง€๋กœ, ์ฆ‰ 128x1x2 (width x height x channel) ์ด๋ฏธ์ง€๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์— ์ด๋ฏธ์ง€์—์„œ pre-train ๋˜์–ด์žˆ๋Š” ๋ชจ๋ธ์„ ํ™œ์šฉํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ์˜ ๋‘๊ฐ€์ง€ ์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์กฐ๊ฑด 1. ์ž…๋ ฅ๋˜๋Š” ์ฑ„๋„์ด 3์ฑ„๋„์ด์–ด์•ผ ํ•œ๋‹ค. ์กฐ๊ฑด 2. ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๊ฐ€ 5x5์ด์ƒ์ด์–ด์•ผํ•œ๋‹ค.
๋จผ์ € ์กฐ๊ฑด 1.์€ ๋ฐ˜๋“œ์‹œ ๋งŒ์กฑ๋˜์–ด์•ผํ•˜๋Š” ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋Š” ์ฐจ์›์ด ์ผ์น˜ํ•˜์ง€ ์•Š์•„ ์—ฐ์‚ฐ ์ž์ฒด๊ฐ€ ์ˆ˜ํ–‰๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ์กฐ๊ฑด 2์˜ ๊ฒฝ์šฐ์—๋Š” ๊ผญ ํ•„์š”ํ•˜์ง€๋Š” ์•Š์€ ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค. zero-padding ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฌด๋ฆฌ ์—†์ด ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์ง€์š”.
์šฐ์„  ์ €ํฌ๋Š” ๋ฌธ์ œ๋ฅผ ๋‹จ์ˆœํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ์˜ ์ „์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
- ๋ฐ์ดํ„ฐ์˜ ์ฑ„๋„์„ ๋†’์ด๋กœ ์‚ฌ์šฉํ•œ๋‹ค. (128x1x2 โ†’ 128x2x1) - ๋†’์ด๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ 3ํšŒ ๋ฐ˜๋ณตํ•˜์—ฌ ๋ง๋ถ™์ธ๋‹ค (concatenate) (128x2x1 โ†’ 128x6x1) - ์ฑ„๋„๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ 3ํšŒ ๋ฐ˜๋ณตํ•˜์—ฌ ๋ง๋ถ™์ธ๋‹ค (128x6x1 โ†’ 128x6x3)

Result and Evaluation

๊ณผ์—ฐ ๊ทธ๋ ‡๋‹ค๋ฉด ๊ฒฐ๊ณผ๋Š” ์–ด๋–ป๊ฒŒ ๋‚˜์™”์„๊นŒ์š”? ์šฐ์„  Confusion Matrix๋ฅผ ์ด์šฉํ•ด์„œ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. [0:Normal, 1:Unbalance, 4:Bearing Fault, 2: Belt-Looseness, 3: Belt-Looseness High)
์ฃผ๋ชฉํ•  ๋งŒํ•œ ์ ์€ ์„ฑ๋Šฅ์ด ๋‚˜์˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Accuracy๊ฐ€ 97.28%๋‚˜ ๋˜๊ณ , F1์Šค์ฝ”์–ด๋„ 0.9783์ด๋‚˜ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํ•œ๊ฐ€์ง€ ์•„์‰ฌ์šด ๊ฒƒ์€ ๋ฐ”๋กœ Belt-looseness์˜ ์„ฑ๋Šฅ์ธ๋ฐ์š”, ๊ฒฐ๋ก ์ ์œผ๋กœ ๋ณด๋ฉด ์ €ํฌ ๋ชจ๋ธ์€ Belt-looseness์˜ ์‹ฌ๊ฐํ•œ ์ˆ˜์ค€์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์—์„œ ์ƒ๋Œ€์ ์œผ๋กœ ์•„์‰ฌ์šด ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค. (๊ทธ๋Ÿผ์—๋„ 87% ์ด์ƒ์˜ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๊ธฐ๋Š” ํ•ฉ๋‹ˆ๋‹ค.)
์‚ฌ์‹ค ์ฒ˜์Œ์—๋Š” ์ด ์ •๋„ ์„ฑ์ ์ด๋ฉด ๋‚˜์˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ Leader Board์—์„œ 2์œ„ ์ •๋„์˜ ์ƒ์œ„๊ถŒ ์„ฑ์ ์„ ์ฐจ์ง€ํ•˜๊ธฐ๋„ ํ–ˆ๊ตฌ์š”. ํ•˜์ง€๋งŒ ๋Œ€ํšŒ๊ฐ€ ์ ์  ๋ง‰๋ฐ”์ง€์— ์น˜๋‹ฌ์•„๊ฐ€๋ฉด์„œ ์ ์ฐจ ๋‹ค๋ฅธ ํŒ€๋“ค์˜ ์„ฑ์ ์ด ์ €ํฌ์˜ ๋ชจ๋ธ์„ ๋ฐ”์ง ์ถ”๊ฒฉํ•ด์˜ค๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๊ณ ๋ฏผ ๋์— ์ €ํฌ๋Š” ํ™•์‹คํ•œ ์Šน๋ฆฌ๋ฅผ ์œ„ํ•ด 99.9% Accuracy๋ฅผ ๋ชฉํ‘œ๋กœ ๋ชจ๋ธ์„ ๋ณด๋‹ค ๋ฐœ์ „์‹œ์ผœ๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ ค๋ฉด ์•„๋ฌด๋ž˜๋„ ์•ฝ์ ์œผ๋กœ ์ง€์ ๋˜๋Š” Belt-Looseness๋ฅผ ์–ด๋–ป๊ฒŒ ๋” ์ •ํ™•ํžˆ ์ง„๋‹จํ•  ์ˆ˜ ์žˆ์„์ง€๊ฐ€ ๊ด€๊ฑด์ด์˜€๋Š”๋ฐ์š”, ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ Hierarchical ๋ชจ๋ธ์„ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

PHMAP 2021 Data ChallengeProject Stories

[Intro & overview] Data Challenge Overview
[Task 1] End to End Model

์ด ๊ธ€์„ ์“ด ์‚ฌ๋žŒ

๊น€ ์ˆ˜ ํ˜ธ | Product1ํŒ€
ํ–‰๋™๋ณด๋‹ค ๋ง์ด ์•ž์„œ๋Š” INTP Data Scientist ์ž…๋‹ˆ๋‹ค.
์ •๋ณด์˜ย ๋Šช์—์„œย ๋งน๋ชฉ์ ์œผ๋กœย ํ–‰๋™ํ•˜๊ธฐย ๋ณด๋‹ค๋Š”ย ๋จผ์ €ย ๊ณ ๋ฏผํ•˜๊ณ ย ํ•จ๊ป˜ย ์˜๋…ผํ•˜๋Š”ย ๊ฐœ๋ฐœ์ž๊ฐ€ย ๋˜๊ณ ย ์‹ถ์Šต๋‹ˆ๋‹ค.
์›ํ”„๋ ˆ๋”•ํŠธ ํ™ˆํŽ˜์ด์ง€ https://onepredict.ai/
์›ํ”„๋ ˆ๋”•ํŠธ ๋ธ”๋กœ๊ทธ https://blog.onepredict.ai/
์›ํ”„๋ ˆ๋”•ํŠธ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ https://tech.onepredict.ai