강의자료 · 인공지능응용

7주차 · 확률과 분류 기준을 구분하기

실습 전에

01 숫자 예측과 분류

예시 상황 내일의 온도를 예측하는 일과 장치가 정상인지 판단하는 일은, 모델에서 얻고 싶은 결과가 어떻게 다를까요?

설명
  • 온도 예측은 수치를, 정상·이상 판단은 범주를 얻는 문제입니다. 원하는 결과에 따라 모델의 출력과 학습 기준을 정합니다.
  • Binary Classification에서는 두 범주 중 하나를 고르기 위한 점수를 학습합니다. Logistic Regression은 이를 위한 기본 모델입니다.

02 예측을 판단으로 바꾸기

예시 상황 모델이 고장 가능성을 숫자로 알려주었습니다. 실제 경보를 울릴 기준은 어떻게 정하면 좋을까요?

설명
  • 모델의 점수를 경보 여부로 바꾸는 Threshold가 필요합니다.
  • 고장을 놓치는 비용과 불필요한 경보의 비용을 함께 고려합니다. 점수를 내는 모델과 행동을 정하는 기준은 구분합니다.

실습

1. CSV의 입력 확인

  1. 데이터를 읽는 셀을 실행하세요. x_raw와 x의 shape·dtype, 처음 다섯 행을 각각 출력하세요. 두 출력에 전처리 전·후라고 표시하세요.
  2. 같은 셀의 labels와 y에서 shape·dtype·처음 다섯 값을 출력하세요. Label을 Loss에 전달할 형태로 바꾼 부분을 찾으세요.
  3. 새 표본을 예측할 때 왜 학습 데이터의 mean·scale을 그대로 써야 하는지, 각 Feature가 모델에 입력되는 척도와 연결해 설명하세요.

2. 기준 학습 실행

  1. train_classifier를 Learning Rate η∈{0.001,0.01,0.1}\eta\in\{0.001,0.01,0.1\}, 각각 1000 epoch로 호출하세요. 함수 안의 Seed와 모델 초기화를 유지하세요.
  2. 세 Loss 곡선을 한 그래프에 그리고, 마지막 Training Loss·Training Accuracy를 Learning Rate별 표로 적으세요.
  3. Loss가 줄어드는 속도가 어떻게 다른지 곡선의 구간을 짚어 설명하세요.

3. 출력을 해석하기

  1. 앞 활동에서 학습한 모델 하나를 골라 Probability를 한 번 구하세요. 선택한 Learning Rate를 기록하세요. 같은 Probability에 Threshold θ∈{0.3,0.5,0.7}\theta\in\{0.3,0.5,0.7\}을 각각 적용하세요.
  2. Threshold·Accuracy·Positive 예측 개수를 세 행의 표로 기록하세요.
  3. Threshold에 따라 판정이 바뀐 표본을 최대 3개 고르세요. 표본 번호·Probability·정답·세 Threshold의 판정을 표로 적으세요. 판정이 바뀐 표본이 없으면 없다고 적으세요.

제출·저장

코드, 실제 Output·그래프, 직접 작성한 해석을 포함하세요. 제출은 KLAS를 이용하며 기한은 학기 일정과 최신 공지를 확인합니다.

파일명: 이름_학번_7주차.ipynb.

실행 환경을 다시 시작하고 전체 코드를 위에서부터 실행한 뒤 저장하세요.

선택 실습

BCE Target의 shape가 다른 경우

  1. 모델 학습까지 마친 뒤, 노트북 맨 아래에 Code Cell을 추가하고 다음 코드를 실행하세요.
    with torch.no_grad():
        debug_logits = model(x)
    print("Logits:", debug_logits.shape)
    for debug_target in [y.squeeze(1), y]:
        print("Target:", debug_target.shape)
        try:
            print("Loss:", F.binary_cross_entropy_with_logits(
                debug_logits, debug_target).item())
        except (RuntimeError, ValueError) as error:
            print(type(error).__name__, str(error))
  2. Text Cell에 Logits shape, 각 Target shape, 실행 성공 여부를 표로 적으세요. squeeze(1)로 어느 축이 사라졌으며, 이 Loss에서 Logits와 Target의 shape가 어떻게 맞아야 하는지 설명하세요.