게시글
질문&답변
2020.12.30
RPN와 앵커박스에 관련되 제가 잘 이해 하고 있는건지 확인을 위해 질문 드립니다.
저도 Faster RCNN 관련 structure 이해가 부족한 것 같아 계속 고민하고 있던 찰나에 좋은 모식도 감사드립니다. 다만 1) IOU 관련해서, IOU > 0.7인 것을 Positive (Foreground), IOU 또 Batch 단위로 학습시킬 때 Positive/Negative에서 각각 동일 sample 수만큼 추출을 해서 한 Batch 내에 50%/50% 비율을 맞춰주고요. 2) (이건 강사님께 질문) Faster RCNN 관련해서 처음에 헷갈렸던 부분이 역전파 과정에서 Classification 부분과 Regression 부분의 계산인 것 같습니다. Loss function 공식을 보면 Classification loss와 Regression loss를 합치는 것으로 되어있는데, 그러면 위 모식도에서 (3 x 3) x 512 channel 의 parameter를 갱신할 때는 (1번 anchor box의 classfication을 위한 output node 2개로부터 오는 loss) + (1번 anchor box의 regression을 위한 output node 4개로부터 오는 loss) + (2번 anchor box의 classfication을 위한 output node 2개로부터 오는 loss) + (2번 anchor box의 regression을 위한 output node 4개로부터 오는 loss) + .... (9번 anchor box의 classfication을 위한 output node 2개로부터 오는 loss) + (9번 anchor box의 regression을 위한 output node 4개로부터 오는 loss)를 loss function으로 계산한다고 보면 될지요. 즉 위 모식도의 출력층은 classification을 위한 2개 x 9 set의 node와 regression을 위한 4개 x 9 set의 node의 순서대로 정렬되어 있지만, 사실 이건 (2개 + 4개) x 9 set로 실질적으로 구성되어있는게 맞겠지요? 각각의 (2개 + 4개)의 node는 특정 centroid를 중심으로 하는 특정 사이즈의 어떤 anchor box가 들어왔을 때 이 box 내에 물체가 있는지 없는지 (2개)와 box 위치/크기를 regression 할지 (4개)로 이루어지는 거고요. 즉, 예를 들어 128 x 128 anchor box에 대한 (2개 + 4개) node로부터 오는 loss는 256 x 128 anchor box에 대한 (2개 + 4개) node와 서로 영향을 주지 않으면서 독립적으로 역전파 되어오는 것이고, 단지 (3 x 3) x 512 channel 의 parameter를 갱신하는 과정에서 loss가 합쳐진다고 이해하면 될까요? 말로 풀다보니 다소 장황해졌네요. 감사합니다.
- 1
- 5
- 591
질문&답변
2020.02.26
LightGBM 등에서 cross-validation을 통한 early stopping 결정
감사합니다! 질문이 많았는데 덕분에 도움이 정말 많이 되었습니다 ㅠㅠ
- 0
- 8
- 2.8K
질문&답변
2020.02.24
LightGBM 등에서 cross-validation을 통한 early stopping 결정
감사합니다! 질문을 하다보니 자꾸 질문이 생기네요... 일반적으로 SPSS나 R에서 사용하는 로지스틱회귀와 scikit-learn에서 사용하는 로지스틱 회귀 분석은 서로 다른 것일지요. scikit-learn에선 경사하강법을 통해 계수를 추정한다는 것이 차이점일까요??
- 0
- 8
- 2.8K
질문&답변
2020.02.24
LightGBM 등에서 cross-validation을 통한 early stopping 결정
자세한 답변 감사합니다! 사실 cross-validation을 하려는 이유가 최적의 hyperparameter를 찾기 위해서라기보다는 전체 sample size가 작다보니 따로 validation set을 만드는게 부담스러워서 그랬던 거였습니다. 그 과정에서 마치 deep learning에서 loss function을 최소화 시키는 epoch을 찾는 것과 같이 적정한 n_estimators를 찾는 것이 좋을 것 같아 질문드리게 되었던 것이구요. (실제로 eval metric을 test set으로 해서 추이를 봤더니 n_estimators가 증가함에 따라 loss값이 나이키 로고처럼 나와서요) 말씀주신 방법대로, list(range(100, 500, 50))과 같은 형태로 하이퍼파라미터 적용해보면 될 것 같습니다. 감사합니다. P.S 제 데이터셋이 너무 작아서 그럴 수도 있긴 한데, XGBoost나 LightGBM보다 Logistic regression이 더 performance가 좋게 나오는데 ㅠㅠ 이럴 수도 있는 것일까요?
- 0
- 8
- 2.8K
질문&답변
2020.02.21
LightGBM 등에서 cross-validation을 통한 early stopping 결정
늦은 시간이었는데 빠른 답변 감사합니다. 제가 이해한게 맞다면, 예를 들어 내가 원래 설정하고자 했던 n_estimator가 500이었다고 할 때 hyperparmeters = {'n_estimator : [1:501]} 과 같은 형태로 만든 뒤에 model을 fitting하면 n_estimator 중에서 cross-validation에 의한 loss값을 최소로 만들어주는 estimator 수를 찾아준다는 것일지요? 그렇게 되면 GridSearchCV 기능을 통해서 자연스래 early-stopping이 되는 것 같은 효과를 얻을 수 있는 것이니까요.
- 0
- 8
- 2.8K