Top

Classification model by English phonetic nationality
Deep learning / Voice processing / Code review


Code Base / Data
Reference Code : Conv2D Network / Link : DACON Conv Net 1st
Reference Code : Bassline Code / Link : DACON Bassline Code
Import Library : Clone as Git / Link : AlcoholWolf Git Code
Import Data : Dawnload / Link : Google Download Drive



특이점 :
Conv2D 네트워크를 사용합니다.

데이터가 너무 큰 탓에 속도가 느리기도 하고, 처리할수도 없어서
완전히 따로 학습하는 모델 1개와 트레인 데이터를 처리하는 모델 4개가 합쳐진 1개의 모델
을 사용하여 저장/학습을 반복하여 해결햇습니다.
Conv2D라고 쓰여진 모델은 각 각 하나의 대분류된 채널(피치 기준)을 처리합니다
기준은 해상도, 규격은 피치값, 파라미터는 Loss값입니다.
기준인 해상도(5개)에 따라서 규격(8개)에 적용하여 Loss값을 적용해야 합니다

EDA :
테스트 데이터를 정렬하여 파일 순서(같은 사람 4명)으로 줄지어있는 파일에서
최대한 하나의 데이터셋에 같은 사람의 녹음본이 들어가지 않도록 4등분
여러 해상도를 학습하기 위해 200, 400, 800, 1000 해상도 설정
규격에 대한 최적화를 위해
대분류가 아닌 소분류로 "high"를 "high-low","high-middle" 로 나누어보기도 하엿지만
최 저 음역파 (low-low) 빼고는 loss값에 영향을 주지 않거나 Nan값을 도출하는걸 확인하엿습니다
최고음역파(high-high)는 인간이 낼 수 없는 소리값으로 인해 Nan(0)값을 도출하므로 제거시켯습니다. 4등분한 데이터를 Min-Max로 스케일링 해준다.
(파일을 한번에 다 하면 6시간 가까이 걸리므로 나누어서 실행)
실행 후 전처리한 데이터셋을 저장해줍니다.

Network :
네트워크는 Conv2d, BatchNorm2d, ReLU 를 합친 block으로 주로 구성햇으며
output 전 dropout, AvgPool, AdaptiveAvgPool을 적용했습니다.
데이터를 배치단위로 불러올 때 train 데이터의 분포로 min-max scaling 해주었습니다.

Model Stat :
batch_size : 128
epoch : 35
optimizer : adam
LearningRate : 1e-3
scheduler : CosineAnnealingLR
loss : CELoss

Output :
CELoss에 기반한 점수는 1.09- 가 나왔습니다.
1등팀의 CELoss 점수는 1.05- 2위가 1.07점이엇습니다.
01.wav 를 넣는다고 가정시, 01.wav가 1,2,3,4,5의 카테고리 중 1개에 해당함 이라는 결과를
해당 사이트의 글 그림, 디자인의 저작권은 AlcoholWolf에게 있습니다
text pictures and designs on the site are copyrighted by Alcohol Wolf

무단 도용, 퍼가기는 처벌의 대상이 될 수 있습니다
Unauthorized theft or scooping may be subject to punishment