확률과 분류 기준을 구분하기
인공지능응용 · 7주차
이번 주 목표 · 같은 모델에서도 threshold를 바꾸면 판정이 달라지는 이유를 설명합니다.
실행: Colab에서 내 Drive에 사본을 저장한 뒤 Code Cell의 ▶ 또는 Shift+Enter로 위에서부터 실행하세요. ⟦직접 입력⟧ 표시가 있는 Text Cell은 더블클릭해서 수정합니다.
Logit에서 확률과 Loss 계산하기
Linear가 계산한 Logit에 Sigmoid를 적용하면 0~1 사이의 확률을 얻습니다. BCEWithLogitsLoss는 Sigmoid와 Binary Cross Entropy를 함께 계산하므로, 학습할 때는 Logit을 바로 넣습니다. 확률을 표시하거나 Threshold로 판정할 때는 sigmoid를 사용하세요. CSV에는 표본마다 특징이 8개 있으므로 입력 shape는 (N,8)입니다.
Sigmoid와 Loss를 따로 배우고 함께 계산하는 이유
Sigmoid는 점수를 확률로 바꾸고, Binary Cross Entropy는 그 확률과 정답의 차이를 평가합니다. 두 단계를 나누어 생각하면 예측과 오차 계산의 역할이 분명해집니다. 구현에서는 BCEWithLogitsLoss가 두 연산을 수치적으로 안정적인 형태로 함께 계산합니다. 따라서 함수에 넣기 전에 Sigmoid를 다시 적용하지 않습니다. 개념적으로 구분한 두 단계를 하나의 함수로 계산하는 것입니다.
1. 숫자 예측에서 두 범주 판정으로
선형층의 출력 z는 제한 없는 점수(logit)입니다. sigmoid(z)는 0과 1 사이 값으로 바꿉니다. 이것을 기준값과 비교하면 0 또는 1이라는 최종 판정을 얻습니다.
숫자 예측에서 두 범주 판정으로
확률처럼 해석하는 출력과 최종 클래스는 다른 값입니다. 이면 입니다. threshold가 0.5이면 z>=0과 같은 판정을 합니다.
2. 입력과 정답의 모양 확인
이번 CSV는 입력 특징 8개와 마지막 label 열로 구성됩니다. x는 (N,8), y는 (N,1) float로 맞춥니다. 이진 label이 실제로 0과 1인지 먼저 출력해 확인하세요.
입력과 정답의 모양 확인
전처리도 모델의 일부입니다. Standardization에 쓴 평균·표준편차는 학습 데이터로 계산하고 새 데이터에도 같은 값을 적용합니다. 이번 Training Accuracy는 학습에 쓴 표본을 얼마나 맞혔는지 나타냅니다. 처음 보는 데이터에서도 같은 정확도를 얻는다는 뜻은 아닙니다.
3. Binary Cross Entropy로 학습
이 실습은 수치적으로 안정적인 BCEWithLogitsLoss를 사용합니다. 학습 Loss(손실)에는 선형층의 logit을 그대로 넣고, 결과를 보여줄 때 sigmoid를 적용합니다. 개념적으로 sigmoid와 binary cross entropy를 결합한 계산입니다.
이진 교차 엔트로피로 학습
BCEWithLogitsLoss 앞에 sigmoid를 또 적용하면 잘못된 입력을 주게 됩니다. 반대로 BCELoss를 쓴다면 0~1 확률이 필요합니다. 함수와 출력 범위를 한 쌍으로 확인하세요.
4. 무엇이 바뀌었는지 통제하기
threshold 0.3과 0.5의 비교에서는 모델을 다시 학습하지 않습니다. Learning Rate(학습률) 0.001과 0.1의 비교에서는 새 모델을 같은 Initial State로 만들고 같은 epoch 수로 학습합니다. Threshold 비교는 판정 기준만, Learning Rate 비교는 학습할 때 Weight를 바꾸는 크기만 달라지도록 다른 조건을 맞추세요.
무엇이 바뀌었는지 통제하기
Accuracy가 높은 threshold가 모든 목적에 좋은 것은 아닙니다. 어떤 오분류가 늘었는지도 확인하면 판정 기준의 의미를 더 잘 이해할 수 있습니다.
학습 내용 확인
- 코드에 넣을 값은 무엇이며, 결과 배열의 각 행·열은 무엇을 뜻하나요? 물리량을 계산한다면 단위도 확인했나요?
- 조건을 하나 바꿨을 때 다시 실행해야 하는 부분을 찾을 수 있나요?
- 실행 결과가 예상과 맞나요? 다르다면 출력값이나 그래프를 보고 이유를 설명할 수 있나요?
실습 자료
- AI_Applications_Week07_LogisticRegression.ipynbColab 노트북 미리보기 · Colab 노트북 다운로드
- L14_Logistic_Regression.ipynbColab 노트북 미리보기 · Colab 노트북 다운로드