SE block

iissaacc·2021년 10월 19일
0

Computer vision

목록 보기
6/11

Prologue

SE block을 구현할 때 FC layerConv layer사이에 별차이가 없는 것 같아서 실험해봤다.

Experiment

x = Conv2D()(x)
x = BatchNomralization()
x = se_block()

SE block을 기반으로 하는 block을 몇 번 반복한 모델로 CIFAR-100을 학습했다. 빼먹었는데 아래 그래프는 train accuracy다.

이렇게 보면 별 차이가 없는 것 같지만 70-100 epoch 사이를 자세히 보면

성능차이가 50 epoch에서 1%, 100 epoch에서는 대략 2% 정도로 벌어졌는데 학습을 지속했으면 차이는 더 심해질 거다. 결론은 SE block을 구현할 때는 Conv layer를 쓰자.

Epilogue

그냥 저거만 알아보려고 만든 모델이기는 하지만 워낙 가벼운 마음으로 만들어서 그런지 overfitting이 잘 일어난다는 문제가 있다. 잘 된다고 할 때는 trainig 뿐만아니라 validation 성능도 좋아야 하지 않나 싶다.

데이터에 비해 모델이 커서 그런가 모델구조에 최대한 손을 안 대면서 알고 있는 걸 모조리 동원해봤는데 이게 극복이 잘 안 된다. 각잡고 제대로 만들고 싶긴 하다.

0개의 댓글