CNN ๊ธฐ๋ฐ ์์ ๊ฐ์ ๋ถ๋ฅ๊ธฐ ๐ต
๊ฐ์
์ด ๋ชจ๋ธ์ ์์ ์ด ์ ๋ฌํ๋ ๊ฐ์ ์ Convolutional Neural Network (CNN) ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ๋ฅํฉ๋๋ค. ๋ชจ๋ธ์ ์์ ์ํ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ์ ์์ ๊ฐ์ ๋ฒ์ฃผ(Angry, Fear, Happy, Tender, Sad) ์ค ํ๋๋ก ๋ผ๋ฒจ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ํ์ตํ์ต๋๋ค.
๋ชจ๋ธ์ ์ค๋์ค ๋ฐ์ดํฐ๋ฅผ Mel-spectrogram์ผ๋ก ๋ณํํ ํ, CNN ๋ ์ด์ด๋ฅผ ํตํด ์์ ์์ ๊ฐ์ ์ํ์ ๊ด๋ จ๋ ํจํด์ ํ์ตํฉ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ:
์ ๋ ฅ: Mel-spectrogram์ผ๋ก ๋ณํ๋ 5์ด ๊ธธ์ด์ ์ค๋์ค ์ธ๊ทธ๋จผํธ
์ถ๋ ฅ: ๋ค์ ๊ฐ์ ์ค ํ๋
- Angry (0)
- Fear (1)
- Happy (2)
- Tender (3)
- Sad (4)
์ํคํ ์ฒ: 3๊ฐ์ ์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด์ ์์ ์ฐ๊ฒฐ์ธต์ผ๋ก ๊ตฌ์ฑ๋ CNN ๋ชจ๋ธ
๋ฐ์ดํฐ์
์ด ๋ชจ๋ธ์ ๋ ๊ฐ์ง ๋ฐ์ดํฐ์ ์ ์ฌ์ฉํ์ฌ ํ์ต๋์์ต๋๋ค:
- MER_audio_taffc_dataset: ์ด ๋ฐ์ดํฐ์ ์ ํน์ ์ฌ๋ถ๋ฉด(Q1~Q4)์ ๋ฐ๋ผ ๋ผ๋ฒจ๋ง๋ ์์ ํ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- OSF_IO Dataset: ๋ ๋ค๋ฅธ ์์ ํ์ผ ๋ฐ ๊ฐ์ ๋ผ๋ฒจ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ์ ์ ๋๋ค.
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ:
- ๊ฐ ์ค๋์ค ํ์ผ์ 5์ด ๋จ์๋ก ๋ถํ
- ๋ถํ ๋ ์ค๋์ค ์ธ๊ทธ๋จผํธ๋ฅผ Mel-spectrogram์ผ๋ก ๋ณํ
- ๋ ๋ฐ์ดํฐ์ ์ ์์ด์ ํ์ต ๋ฐ ๊ฒ์ฆ์ฉ์ผ๋ก ๋ณํฉ
๋ชจ๋ธ ์์ธ ์ ๋ณด
์ํคํ ์ฒ:
- ์ปจ๋ณผ๋ฃจ์
๋ ์ด์ด:
- Conv1: 32๊ฐ์ ํํฐ, ์ปค๋ ํฌ๊ธฐ 3x3
- Conv2: 64๊ฐ์ ํํฐ, ์ปค๋ ํฌ๊ธฐ 3x3
- Conv3: 128๊ฐ์ ํํฐ, ์ปค๋ ํฌ๊ธฐ 3x3
- ํ๋ง: ๊ฐ ์ปจ๋ณผ๋ฃจ์ ํ MaxPooling ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฐจ์์ ์ถ์
- ๋๋กญ์์: ๋๋กญ์์ ์ ๊ทํ๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฒํผํ ๋ฐฉ์ง (ํ๋ฅ 0.5)
- ์์ ์ฐ๊ฒฐ์ธต:
- ์ฒซ ๋ฒ์งธ FC ๋ ์ด์ด: 256 ์ ๋
- ์ถ๋ ฅ ๋ ์ด์ด: 5๊ฐ์ ์ ๋ (5๊ฐ์ ๊ฐ์ ๋ฒ์ฃผ)
์์ค ํจ์:
- CrossEntropyLoss: ๋ค์ค ํด๋์ค ๋ถ๋ฅ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ
์ตํฐ๋ง์ด์ :
- Adam: ํ์ต๋ฅ 1e-4๋ก ์ค์
ํ์ต
์ด ๋ชจ๋ธ์ ๋ณํฉ๋ ๋ฐ์ดํฐ์ ์ ์ฌ์ฉํ์ฌ 10 ์ํญ ๋์ ํ์ต๋์์ต๋๋ค. ํ์ต๊ณผ ๊ฒ์ฆ ๋ฐ์ดํฐ ๋น์จ์ 80:20์ผ๋ก ๋๋์ด ๋ชจ๋ธ ์ฑ๋ฅ์ ํ๊ฐํ์ต๋๋ค.
๊ฒ์ฆ ์ ํ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์ ๋ชจ๋ธ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ ํํ์ฌ ์ ์ฅํ์์ต๋๋ค.
์ฑ๋ฅ
- ๊ฒ์ฆ ๋ฐ์ดํฐ์ ๋ํด ์ฝ 47% ์ ํ๋
์ฌ์ฉ ๋ฐฉ๋ฒ
์์ ์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ๋ถ๋ฅํ๋ ๋ฐ ์ด ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๋ฉด Hugging Face Hub์์ ์ง์ ๋ก๋ํ ์ ์์ต๋๋ค:
from transformers import AutoModel
model = AutoModel.from_pretrained("rkdaldus/music_sent5_classification")