ABOUT ME

AI Engineer가 되는 그날까지

Today
Yesterday
Total
  • Mask Classification
    CS 공부/취업준비 이론정리 2023. 11. 7. 02:28

    1. Resnet34, Efficientnetb3보다 VGG19가 성능이 더 안 좋은 이유는?

    VGGNet의 FC Layer의 parameter 개수를 보면 하나의 layer에서 약 1억개에 육박하는 굉장히 많은 파라미터를 가지고 있다. 이 때문에 굉장히 비효율적인 training이 이루어지며 overfitting이 발생하기 쉽습니다.

    반면에 ResNet34는 Residual Connection을 통해 깊은 네트워크에서 발생하는 훈련 문제를 완화하며

    EfficientNetB3는 더 적은 파라미터와 연산량으로도 성능을 향상시킵니다. (Compound Scaling 방법을 사용해 width, depth, resolution을 동시에 조정)

     

    2. Efficientnetb0~b7 나누는 기준, 무슨 차이점이 있는지

    구분하는 기준은 주로 네트워크의 깊이, 너비 및 해상도의 변화에 의해 결정됩니다.

    EfficientNet B0에서 B7까지의 숫자가 커질수록 네트워크의 깊이가 증가합니다.

    예를 들어, EfficientNet B0는 비교적 작은 모델로서 낮은 깊이, 너비 및 해상도를 가지며, B7은 크고 깊은 모델로서 높은 깊이, 너비 및 해상도를 갖습니다.

     

    3. 어떤 loss를 사용했으며, 그 loss를 시도한 이유는?

    Focal loss: 데이터 불균형 문제를 해결하기 위해 잘못된 예측에 대한 가중치를 더 크게 부여하기 때문이다. (Age에서의 데이터 불균형을 완화해줄 것이라 생각)

    Label smoothing loss: 일반화 능력을 향상시켜주고, 잘못된 학습 데이터 라벨에 대한 영향을 줄여준다.

    label smoothing loss는 cross entropy보다 valid loss는 더 컸으나 valid f1 score가 높았고,

    cross entropy의 valid loss는 focal loss만큼 작으면서 valid f1 score은 더 높아서 이상적이라고 생각했습니다.

    (아무래도 focal loss나 label smoothing loss는 최적의 파라미터를 찾는 것이 중요한데 찾지 못해서 최고의 성능을 내지 못했을 것이라고 예상함)

    https://gaussian37.github.io/dl-concept-focal_loss/

     

    4. Outlier 이상치 처리

    남성으로 보이지만 여성으로 라벨링된 경우와 여성으로 보이지만 남성으로 라벨링된 경우 성별 라벨링을 바꿔 oulier를 제거했습니다.

     

    5. 사용한 torchvision Transforms 기법

    첫번째로 사람의 얼굴을 집중적으로 학습하기 위해 CenterCrop(380,380) 사용했습니다

    두번째로 정규화를 통해 데이터 분포를 균일하게 하고 학습을 더 안정적으로 수행했습니다.

    세번째로 마스크를 선명하게 하고, 주름을 선명하게 보이게 하기 위해 ColorJitter를 사용했고 f1 score가 0.3% 증가했습니다. 후에 Age 모델에만 ColoJitter을 적용했을 때는 f1 score가 3%가 증가했습니다.

     

    6. Efficientnetb0~b7 중에 b3 사용한 이유는?

    우선은 b4 ~ b7은 학습 시간과 연산량, 메모리 사용량을 따졌을 때 너무 오래 걸리고 비효율적이라고 생각했습니다.

    또한 b3는 너무 크고 복잡한 모델로 인한 과적합 문제를 완화하고, 너무 작거나 단순한 모델로 인한 성능 저하 문제를 방지하는 적당한 모델 크기를 가지고 있다고 생각했습니다.

     

     

     

     

     

     

Designed by Tistory.