inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

딥러닝 CNN 완벽 가이드 - TFKeras 버전

사전 훈련 모델 VGG16을 이용하여 CIFAR10 학습 모델 구현 후 모델 성능 비교

backbone 질문

1376

guentc1

작성한 질문수 8

0

선생님 안녕하세요.

수업을 듣다가 궁금한게 생겨서 여기 강의에서 질문하는게 맞지 않을까 해서 여기에 질문합니다.

1. backbone, neck, head? 이렇게 구조가 있다는데 현재 수업에서 나오는 VGG16, ResNet50, Xception 등은 backbone에 해당하는 모델을 말하는 것일까요?

2. yolo, SSD, RetinaNet을 일컷는 모델이라는 말은 backbone, neck, head를 다 합쳐놓은 모델이라고 부르는 것이겠쬬??

3. 그렇다면 yolo나 RetinaNet의 backbone을 저희가 임의로 바꿔 사용해도 가능한 것일까요? (원래 기존 것을 사용하면 더 좋겠지만)

4. 이렇게 backbone 모델 등을 바꾸는 것을 Fine tuning이라고 하나용?

아아.. 마지막으로 VGG16의 하이퍼파라미터? learning rate나 가중치 초기화 등 이러한 부분들은 수업에서 처럼 Function으로 사용하면 튜닝이 불가능한 것일까요?

아직 체계가 잘 안 잡혀있따보니..ㅎㅎ 헷갈리는 부분들을 많이 질문하는 것 같습니다. .

그래도 이렇게 질문할 수 있는 곳이 있어 너무 좋습니다!!

backbone 머신러닝 배워볼래요? tensorflow keras 딥러닝 kaggle cnn

답변 1

1

권 철민

안녕하십니까,

1. backbone, neck, head? 이렇게 구조가 있다는데 현재 수업에서 나오는 VGG16, ResNet50, Xception 등은 backbone에 해당하는 모델을 말하는 것일까요?

=> 네, 맞습니다.

2. yolo, SSD, RetinaNet을 일컷는 모델이라는 말은 backbone, neck, head를 다 합쳐놓은 모델이라고 부르는 것이겠쬬??
=> 좀 더 부연 설명을 드리자면, Object Detection 모델을 backbone, neck, head로 나누는건 약간 언어 유희(?) 적인 게 있다고 생각합니다.

누가 backbone이라는 말을 만들었는지 잘 모르지만 image classification 같은 경우에는 feature extraction + classification layer로 이해하는 게 명백합니다. 그리고 feature extraction를 backbone으로 classification layer를 head로 개념화 하면 여러 backbone(vgg, resnet, xception)등만 교체하고 classification을 그대로 가져가서 유연한 모델이 됩니다.

이런 형태로 확장을 해서 Object Detection Model을 head로 보기에는 너무 layer가 많은 부분이 있는데, 특히 FPN이 나오면서 backbone과 head를 연결하는 또 다른 layer에 대한 개념 정립이 필요해서 backbone, neck, head로 모델을 개념화 한것 뿐입니다. 어떤 분들은 Object Detection model에서도 backbone과 head(neck + head) 만 개념화 하는게 더 편하다고 생각하시는 분도 있습니다.

3. 그렇다면 yolo나 RetinaNet의 backbone을 저희가 임의로 바꿔 사용해도 가능한 것일까요? (원래 기존 것을 사용하면 더 좋겠지만)

=> 물론입니다. Inference 수행 시간을 위해서는  Mobilenet 또는 요즘은 성능을 위해서 EfficientNet도 backbone으로 많이 테스트 합니다. 높은 성능을 가지는 EfficientDet의 경우에는 EfficientNet를 backbone으로 합니다.

4. 이렇게 backbone 모델 등을 바꾸는 것을 Fine tuning이라고 하나용?

=> 아닙니다. fine tuning을 pretrained 모델을 이용할 때 backbone에 해당하는 feature extractor layer들을 일차로 학습하지 않고 classification layer만 일차로 학습 한뒤에 다시 전체 layer들 학습하는 방식입니다. classification layer들 부터 weight 학습을 진행하면서  급격하게 전체 layer들을 학습하지 않는 방식입니다.

아아.. 마지막으로 VGG16의 하이퍼파라미터? learning rate나 가중치 초기화 등 이러한 부분들은 수업에서 처럼 Function으로 사용하면 튜닝이 불가능한 것일까요?

=> 음.. 해당 질문은 제가 잘 이해를 못했습니다. 좀 더 자세한 설명 부탁드립니다(특히 function으로 사용한다는 것이 어떤 것인지요?)

resize 질문

0

51

1

20251212 Kaggle 런타임에 scikit-learn 설치 실패 트러블 슈팅

0

76

1

Loss와 매트릭 관계

0

62

2

Boston 코랩 실습

0

164

2

배치 정규화의 이해와 적용 2 강의 질문

0

136

2

Augmentation원본에 적용해서 데이터 갯수 자체를 늘리는 행위는 의미가있나요?

0

145

2

Conv함수 안에 activation 을 넣지 않는 이유가 뭔지 궁금합니다.

0

206

2

소프트맥스 관련 질문입니다

0

208

1

강의 관련 질문입니다

0

151

2

residual block과 identity block의 차이

0

190

2

옵티마이저와 경사하강법의 차이가 궁금합니다.

1

240

1

실습 환경

0

165

2

입력 이미지 크기

0

244

2

데이터 증강

0

196

2

albumentations ShiftScaleRotate

0

207

1

Model Input Size 관련

0

281

1

마지막에 bird -> frog 말고도 deer -> frog 도 잘못된것 아닌가요??

0

204

1

일반적인 질문 (kaggle notebook사용)

0

272

2

실무에서 Augmentation 적용 시

0

338

2

안녕하세요 교수님

0

231

1

가중치 초기화(Weight Initialization) 질문입니다.

0

327

1

테스트 데이터셋 predict의 'NoneType' object has no attribute 'shape' 오류

0

409

1

학습이 이상하게 됩니다.

2

1036

2

boston import가 안됩니다

0

229

1