기계학습 모델 구현 보고서

쓰레기 사진으로 분리수거 자동 분류

헷갈리는 쓰레기를 구별해 주는 모델을 만들었는데,
정작 처음에 헷갈렸던 그 물건은 어떻게 될까?

지도학습 · 분류 (이미지) 도구: 티처블머신 환경 · 스마트시티 · 공공행정

기계학습 모델 구현 보고서를 어떻게 쓰는지 보여 주는 예시 프로젝트입니다. 문항을 푸는 순서와 근거를 대는 방식을 참고하되, 내용은 자신의 프로젝트로 채웁니다. 정확도와 확률 값은 수업에서 원리를 확인하려고 지어낸 값이며 실제 측정 결과가 아닙니다.

기계학습 모델 구현 보고서 예시 내려받기

이 페이지의 문항 1~8을 그대로 담은 보고서 파일입니다. 내려받아 작성 방법을 확인하고 자신의 프로젝트로 바꾸어 채웁니다.

아이디어에서 설계까지

헷갈리는 쓰레기, 카메라가 대신 봐 줄 수 있을까?

규칙을 쓰는 대신 사진을 보여 주기로 한 이유를 따라가 봅시다.

보고서 여덟 문항은 이 여섯 단계를 따라간다 1 문제 정의 2 데이터 수집 3 데이터 전처리 4 유형· 알고리즘 선정 5 모델 생성 6 성능 평가 문항 1 · 2 문항 4 문항 3 문항 5 문항 6 · 7
문항 번호와 단계 번호가 나란히 가지 않는다. 유형과 알고리즘은 데이터를 모아 정리한 다음에 고르는 것이라 보고서에서는 문항 3이지만 실제 작업은 데이터 전처리를 마친 뒤에 한다.
1

어디서 아이디어를 얻었나 — 실생활의 불편함

분리수거를 하다가 다 마신 음료 팩 앞에서 멈췄다. 겉은 종이 같은데 안쪽은 은박이고 뚜껑은 플라스틱이다. 어느 통에 넣어야 할지 몰라 결국 아무 데나 버렸다. 사진만 찍으면 알려 주는 것이 있으면 좋겠다고 생각했다.

2

왜 기계학습인가 — 규칙으로 적을 수가 없다

투명하면 플라스틱이라고 적어 보면 곧 막힌다. 유리병도 투명하고, 플라스틱은 색이 수십 가지다. 찌그러지거나 내용물이 묻으면 완전히 다르게 보인다. 사람은 보면 아는데 그 기준을 글로 옮길 수가 없다.

3

왜 분류인가 — 답의 생김새가 정한다

얻고 싶은 답은 정해진 통 가운데 하나다. 숫자를 맞히는 것이 아니고, 비슷한 사진끼리 묶는 것도 아니다. 얻고 싶은 답의 생김새가 방법을 정한다. 다만 이때 통을 몇 개로 잡을지가 나중에 발목을 잡는다.

무엇을 풀 것인가

분리수거는 왜 매번 헷갈릴까?

인공지능이 손댈 수 있는 모양으로 문제를 다시 써 봅시다.

문항 1. 문제 정의

실생활이나 학문 분야에서 인공지능으로 해결하고자 하는 문제를 구체적으로 정의하시오. 어떤 상황에서 어떤 불편함 또는 필요가 발생하는지를 포함하여 서술하시오.

분리수거를 제대로 하고 싶어도 무엇을 어느 통에 넣어야 하는지 헷갈리는 물건이 많다. 페트병 뚜껑, 음식이 묻은 용기, 여러 재질이 붙어 있는 포장지가 특히 그렇다. 잘못 넣으면 그 통 전체가 재활용되지 못하는데, 버리는 사람은 잘못했는지조차 알 수 없다.

그래서 쓰레기 사진을 넣으면 종이 · 플라스틱 · 유리 · 금속 · 일반쓰레기 가운데 어디에 해당하는지 알려 주는 모델을 만들고자 한다. 분리수거를 돕는 앱에 넣어 버리기 전에 한 번 확인하는 용도로 쓰는 것이 목적이다.

자기점검 체크리스트

  • ☑ 해결하고자 하는 문제가 실생활 또는 학문 분야와 연관되어 구체적으로 제시되어 있다.
  • ☑ 문제가 발생하는 상황(불편함·필요성)이 명확하게 서술되어 있다.

무엇이 들어가고 무엇이 나오는가

다섯 칸 중 하나를 고른다는 것은 무슨 뜻일까?

입력과 출력을 못 박으면 만들 것의 윤곽이 잡힙니다.

문항 2. 모델 설명 (입력 → 출력)

구현하려는 인공지능 모델을 설명하시오. 이 모델은 어떤 데이터를 입력받아, 어떤 결과를 출력하는가? 입력과 출력을 중심으로 모델의 역할을 구체적으로 서술하시오.

  • ■ 입력: 쓰레기가 담긴 사진 한 장 (스마트폰이나 웹캠으로 촬영, 224×224 픽셀)
  • ■ 출력: 다섯 클래스의 확률 — 종이 · 플라스틱 · 유리 · 금속 · 일반쓰레기 (합이 100%)

모델은 언제나 이 다섯 가지 안에서만 답한다. 다섯 확률을 더하면 반드시 100%가 되므로, 다섯 어디에도 해당하지 않는 물건을 넣어도 모델은 「해당 없음」이라고 말하지 못한다. 가장 덜 어색한 칸에 확률을 몰아줄 뿐이다. 이 점이 문항 6에서 그대로 드러난다.

다섯 확률의 합은 언제나 100%다 입력 쓰레기 사진 224 × 224 픽셀 학습된 모델 종이 · 플라스틱 유리 · 금속 일반쓰레기 사람이 정한 규칙 가장 큰 칸을 고른다 → 플라스틱 다섯 밖의 물건이 들어와도 다섯 중 하나로 답이 나온다

자기점검 체크리스트

  • ☑ 만들고자 하는 모델의 입력 데이터(종류·형태)가 명확히 제시되어 있다.
  • ☑ 모델이 출력하는 결과(레이블·수치·군집 등)가 구체적으로 서술되어 있다.
  • ☑ 입력과 출력을 통해 모델의 역할이 명확하게 드러난다.

어떤 방법으로 풀 것인가

칸이 둘이 아니라 다섯이어도 같은 방법일까?

두 번의 질문으로 유형이 정해지고, 정해진 유형이 도구를 정합니다.

문항 3. 기계학습 유형 및 구현 도구 선택

위에서 구상한 모델을 구현하기 위해 아래 ①, ② 순서대로 선택하고 그 이유를 서술하시오. ① 기계학습 유형: 지도학습과 비지도학습 중 이 모델에 적합한 유형을 선택하고, 분류·군집·예측 등의 개념을 활용하여 그 이유를 설명하시오. ② 구현 도구: ①에서 선택한 유형을 구현하기 위해 티처블머신·코랩·오렌지 중 어떤 도구를 선택했는지 밝히고, 그 이유를 서술하시오.

유형은 취향이 아니라 두 번의 질문으로 정해진다 데이터에 정답(레이블)이 함께 들어 있는가? 아니오 예 비지도학습 군집 지도학습 출력이 숫자인가, 범주인가? 숫자 범주 예측 (회귀) 분류 ↑ 이 프로젝트
칸이 둘이든 다섯이든 자리는 같다. 나무가 정해 주는 것은 「분류」까지이고, 칸을 몇 개로 나눌지는 나무가 알려 주지 않는다 — 그것은 내가 정하는 일이다.

① 기계학습 유형: 지도학습 — 분류 (이미지 분류)

사진마다 다섯 재질 중 하나를 이름으로 붙여서 학습시킨다. 정답이 붙어 있으므로 지도학습이다. 그리고 내놓아야 할 답이 정해진 다섯 개의 범주이므로, 수치를 맞히는 예측이 아니라 범주 하나를 집는 분류를 쓴다. 칸이 둘에서 다섯으로 늘어도 유형은 바뀌지 않는다.

다른 방법이 아닌 이유: 예측(회귀)로 하면 「재활용 가능도 0.6」 같은 숫자가 나오는데, 필요한 답은 어느 통에 넣느냐이지 정도가 아니다. 군집은 사진을 비슷한 것끼리 묶어 주기는 하지만 어느 묶음이 「플라스틱」인지를 알려 주지 못한다 — 이름은 결국 사람이 붙여야 한다.

② 구현 도구: 티처블머신

사진을 다루는 도구가 필요한데, 티처블머신은 클래스를 몇 개든 늘려 가며 사진을 넣을 수 있고 학습이 끝나면 그 자리에서 스마트폰 카메라로 확인할 수 있다. 다섯 개의 확률 막대가 함께 보이므로 모델이 무엇과 무엇 사이에서 헷갈리는지가 드러난다. 오렌지는 표 데이터를 다루는 도구라 사진에는 맞지 않고, 코랩은 같은 일을 할 수 있지만 코드를 직접 써야 해서 이번 목적에는 과하다.

자기점검 체크리스트

  • ☑ 지도학습 또는 비지도학습 중 하나를 명확히 선택하였다.
  • ☑ 분류·군집·예측 등의 개념을 활용하여 유형 선택 이유가 논리적으로 서술되어 있다.
  • ☑ 구현 도구를 선택하고 그 이유가 기계학습 유형과 연결되어 설명되어 있다.

무엇으로 배우게 할 것인가

검색해서 나온 사진을 써도 될까?

사진을 어디서 구하느냐에 따라 저작권 문제가 생깁니다.

문항 4. 데이터 설명

모델 학습에 사용한 데이터를 설명하시오. 데이터의 출처·유형·수량·특성 등을 작성하고, 필요한 경우 스크린샷을 첨부하시오.

  • • 출처: 집과 학교에서 직접 촬영한 사진 240장 + 자유 이용이 허락된 공개 이미지 60장 (이용 조건을 하나씩 확인하고 내려받음)
  • • 유형: 이미지 데이터 (224×224 픽셀)
  • • 수량: 클래스별 60장 / 총 300장 (5클래스)
  • • 클래스 1 — 종이(60장): 신문지, 상자, 종이컵, 전단지
  • • 클래스 2 — 플라스틱(60장): 페트병, 용기, 비닐봉투
  • • 클래스 3 — 유리(60장): 유리병, 유리 조각
  • • 클래스 4 — 금속(60장): 캔, 알루미늄 포일, 철사
  • • 클래스 5 — 일반쓰레기(60장): 음식이 묻은 포장지, 이쑤시개, 담배꽁초
  • • 다양하게 만든 것: 조명(실내등·햇빛·그늘), 배경색, 상태(원형 그대로인 것·접힌 것·찌그러진 것)

실제 수행평가 때는 여기에 티처블머신 5개 클래스 이미지 업로드 화면 스크린샷을 붙입니다.

검색해서 나온 사진을 그냥 쓰면 안 된다

사진이 300장쯤 필요하다 보면 검색으로 한꺼번에 내려받고 싶어진다. 그런데 검색 결과에 뜨는 사진은 거의 다 남이 찍은 것이고 저작권이 있다. 「화면에 보이니까」나 「수업용이니까」는 이용해도 된다는 근거가 되지 못한다.

  • 직접 찍는 것이 가장 확실하다. 쓰레기는 집에 얼마든지 있고, 직접 찍으면 조명과 각도를 원하는 대로 바꿀 수 있다는 이점까지 따라온다.
  • 모자라면 자유 이용이 허락된 이미지를 쓴다. 다만 「무료」와 「마음대로 써도 됨」은 다르다. 출처 표시를 요구하는지, 학습에 써도 되는지를 한 장씩 확인하고 어디서 받았는지 적어 둔다.
  • 클래스마다 장수를 맞춘다. 한쪽이 많으면 모델이 많은 쪽으로 기운다. 여기서는 60장씩 같게 했다.
  • 배경이 정답을 대신 알려 주지 않게 한다. 플라스틱만 부엌에서, 종이만 책상에서 찍으면 모델이 물건이 아니라 배경을 보고 맞히게 된다. 그래서 배경을 섞어 찍었다.

자기점검 체크리스트

  • ☑ 데이터의 출처(직접 촬영·공개 데이터셋·직접 수집 등)가 명시되어 있다.
  • ☑ 데이터의 유형(이미지·텍스트·수치 등)과 수량이 구체적으로 서술되어 있다.
  • ☑ 학습에 사용된 데이터 화면 또는 데이터 목록 스크린샷이 첨부되어 있다.

모델은 무엇을 배웠는가

정확도 90%면 열에 아홉은 맞다는 뜻일까?

클래스마다 성적이 다르다는 것을 봅시다.

문항 5. 학습 결과

수집한 데이터로 모델을 학습시킨 결과를 서술하시오. 학습이 완료된 화면 또는 학습 결과를 스크린샷으로 첨부하고, 수치나 지표를 포함하여 결과의 의미를 간략히 설명하시오.

이 결과를 직접 만들어 보려면 — 티처블머신에서 누르는 순서

  1. 이미지 프로젝트를 고르고 표준 이미지 모델을 연다.
  2. Add a class를 눌러 클래스를 다섯 개로 늘리고, 이름을 종이 · 플라스틱 · 유리 · 금속 · 일반쓰레기로 바꾼다.
  3. 클래스마다 60장씩 사진을 올린다. 여기서 장수를 맞추는 것이 중요하다 — 한 클래스만 많으면 모델이 그쪽으로 기운다.
  4. Advanced를 열어 설정을 확인하고 Train Model을 누른다.
  5. 학습이 끝나면 클래스별로 몇 장씩 맞혔는지를 본다. 전체 정확도 하나만 보면 특정 클래스만 유난히 못 맞히는 것을 놓친다.
  6. 미리보기에서 다섯 칸 어디에도 딱 맞지 않는 물건을 일부러 비춰 본다. 여기서 나오는 것이 문항 6에 쓸 결과다.

이 상자는 보고서에 쓰는 답이 아니라 따라 해 보라는 안내다.

  • 학습 설정: Epochs 50 / 배치 크기 16 / 학습률 0.001 (티처블머신 기본값 그대로)
  • 300장 중 20%인 60장을 시험용으로 떼어 놓고 나머지로 학습했다.
  • 시험 결과: 60장 중 54장 정답 — 정확도 90.0%
  • 클래스별로 나눠 보면 성적이 고르지 않다 — 종이 12/12, 플라스틱 11/12, 유리 11/12, 금속 11/12, 일반쓰레기 9/12
  • 일반쓰레기가 가장 낮은 것은 예상할 수 있는 결과다. 다른 넷은 재질이라는 공통점이 있지만, 일반쓰레기는 「나머지 전부」라는 뜻이라 생김새에 공통점이 없다.

실제 수행평가 때는 여기에 티처블머신 학습 완료 화면(정확도·손실 그래프) 스크린샷을 붙입니다.

전체 정확도 하나로는 알 수 없는 것

90%는 다섯 클래스의 성적을 한데 묶은 평균이다. 나눠 보니 잘 맞히는 클래스는 100%였고 일반쓰레기는 75%였다. 평균 하나만 보면 이 차이가 통째로 가려진다.

클래스를 나눠 보는 것이 왜 중요한가? 고칠 곳이 어디인지 알려 주기 때문이다. 전체 정확도만 보면 「사진을 더 모으자」는 막연한 결론밖에 나오지 않지만, 나눠 보면 일반쓰레기 클래스를 어떻게 할지가 다음 할 일로 잡힌다.

클래스가 여러 개인 분류에서는 전체 정확도보다 클래스별 성적을 먼저 본다.

다섯 칸 안에 있는 물건과 없는 물건 투명 페트병 — 학습한 그대로 종이 0% 플라스틱 95% 유리 3% 금속 1% 일반쓰레기 1% 한 칸으로 크게 기운다 음료 팩 — 다섯 칸 어디에도 없다 종이 52% 플라스틱 17% 유리 0% 금속 0% 일반쓰레기 31% 가장 큰 값이 52%뿐이다
오른쪽이 이 프로젝트를 시작하게 만든 바로 그 물건이다. 확률이 세 칸에 흩어지는 것은 모델이 헷갈린다는 신호인데, 화면에는 그래도 「종이」라고만 뜬다.

자기점검 체크리스트

  • ☑ 학습이 완료된 모델 화면 또는 학습 결과 스크린샷이 첨부되어 있다.
  • ☑ 모델의 학습 결과를 확인할 수 있는 수치나 지표가 언급되어 있다.
  • ☑ 학습 결과의 의미(모델이 잘 학습되었는지 여부 등)가 서술되어 있다.

새로운 값을 넣으면 맞히는가

처음에 헷갈렸던 그 음료 팩은 어떻게 될까?

모델을 만든 계기가 된 물건을 직접 넣어 봅시다.

문항 6. 테스트 및 결과 분석

학습된 모델에 새로운 데이터를 직접 입력하여 성능을 테스트하시오. 테스트 전 예상했던 결과와 실제 결과를 비교하고, 차이가 발생했다면 그 원인을 분석하시오.

■ 테스트 1 — 학습한 것과 비슷한 물건 (빈 투명 페트병)

  • 예상: 플라스틱으로 분류
  • 실제 출력: 플라스틱 95% / 유리 3% / 금속 1% / 일반쓰레기 1% / 종이 0%
  • 예상대로 맞았고, 확신도 컸다.

■ 테스트 2 — 학습에 없던 상태 (내용물이 남은 알루미늄 캔)

  • 예상: 금속으로 분류
  • 실제 출력: 금속 44% / 플라스틱 33% / 일반쓰레기 23%
  • 맞히기는 했지만 확신이 크게 떨어졌다. 학습 사진은 전부 비어 있고 깨끗한 캔이었다.

■ 테스트 3 — 다섯 칸에 아예 없는 물건 (음료 팩)

  • 예상: 판단하기 어려움 — 애초에 이것 때문에 모델을 만들기 시작했다.
  • 실제 출력: 종이 52% / 일반쓰레기 31% / 플라스틱 17% → 화면에는 「종이」
  • 모델이 대신 답해 주기를 바랐던 바로 그 물건에서 확신이 낮았다.

■ 분석

테스트 2는 학습 사진의 폭이 좁았던 것이 원인이다. 금속 사진 속 캔은 전부 비어 있고 깨끗했으니, 내용물이 남아 색과 형태가 달라진 캔은 모델에게 낯설다. 이것은 사진을 더 다양하게 모으면 나아지는 문제다.

테스트 3은 성격이 다르다. 음료 팩은 종이와 은박과 플라스틱이 붙어 있어 실제로도 별도로 모아 배출하는 대상이다. 그런데 내 모델에는 그 칸이 없다. 없는 답은 아무리 사진을 더 넣어도 나오지 않는다. 다섯 확률의 합이 100%로 정해져 있으니 모델은 반드시 다섯 중 하나에 답을 몰아야 한다.

그래서 52%라는 낮은 확률이 곧 신호다. 테스트 1의 95%와 비교하면 차이가 뚜렷하다. 확률이 낮다는 것은 「이 물건은 내가 아는 다섯 가지와 잘 맞지 않는다」는 뜻인데, 화면에 답만 띄우면 그 신호가 통째로 사라진다.

정확도 90%는 이 실패를 예고하지 못했다. 시험용 60장이 전부 다섯 클래스 안의 물건이었기 때문이다. 모델은 자기가 모르는 것을 시험해 볼 수 없다 — 그것은 사람이 골라 넣어야 한다.

자기점검 체크리스트

  • ☑ 학습에 사용하지 않은 새로운 데이터로 테스트를 수행하였다.
  • ☑ 테스트 전 예상 결과와 실제 결과가 모두 서술되어 있다.
  • ☑ 예상과 실제 사이에 차이가 있다면 그 원인이 분석되어 있다. (차이가 없으면 이유 서술)

어디에 쓰고 무엇을 고칠 것인가

칸을 늘리면 다 풀릴까?

쓸모와 한계를 나란히 놓고, 개선해도 남는 어려움까지 봅시다.

문항 7. 기대 효과 및 개선 사항

기대 효과: 이 모델을 자신의 관심 분야(예: 의료·환경·스포츠 등)에 적용한다면 어떤 효과를 기대할 수 있는지 서술하시오. 개선 사항: 현재 모델의 한계를 바탕으로, 성능을 향상시키기 위해 필요한 개선사항을 구체적으로 서술하시오.

기대 효과

관심 분야: 환경 · 스마트시티

앱에 넣으면 버리기 전에 사진 한 장으로 확인할 수 있다. 잘못 넣어 통째로 못 쓰게 되는 일을 줄이면 실제로 재활용되는 양이 늘어난다.

확률까지 함께 보여 주면 「이건 확실하고 저건 애매하다」는 것까지 전해진다. 애매한 물건은 지자체 안내를 찾아보라고 이어 주면 된다.

개선 사항

한계: 클래스가 다섯뿐이라 음료 팩처럼 그 안에 없는 물건에 답할 수 없다. 일반쓰레기 정확도가 가장 낮고, 내용물이 남은 상태의 사진이 부족하다.

개선 방향: ① 종이팩·비닐·스티로폼을 클래스로 추가한다. ② 내용물이 남거나 찌그러진 상태의 사진을 더 찍는다. ③ 가장 큰 확률이 60% 아래면 「확인 필요」로 표시하고 답을 단정하지 않는다.

개선해도 남는 어려움

칸을 늘려도 「칸 밖」은 늘 남는다. 종이팩을 넣으면 다음에는 아이스팩이, 그다음에는 새로 나온 포장재가 걸린다. 세상의 물건은 계속 새로 생기는데 클래스는 만든 시점에 고정된다. 칸을 아무리 늘려도 이 구조는 바뀌지 않으므로, 모르는 것을 모른다고 말하게 만드는 쪽이 칸을 늘리는 것보다 중요할 수 있다.

정답이 하나가 아닌 물건이 있다. 음료 팩은 종이인가 복합재인가? 뚜껑은 떼면 플라스틱이고 붙어 있으면 다른 답이 된다. 분리배출 기준은 지역마다 다르고 해마다 바뀌기도 한다. 모델은 만들 때의 기준을 굳혀 놓으므로, 기준이 바뀌면 조용히 틀린 답을 계속 내놓는다.

편해질수록 사람이 판단을 멈춘다는 점도 있다. 「앱이 종이라고 했으니까」로 끝내면, 앱이 틀렸을 때 아무도 알아채지 못한다. 도움을 주는 도구가 오히려 스스로 확인하는 습관을 없앨 수 있다는 것은 정확도를 올려서 해결되는 문제가 아니다.

자기점검 체크리스트

  • ☑ 자신의 관심 분야가 명시되고, 모델 적용 시 기대되는 효과가 구체적으로 서술되어 있다.
  • ☑ 현재 모델의 한계 또는 부족한 점이 언급되어 있다.
  • ☑ 성능 향상을 위한 개선사항(데이터 확충·모델 변경·파라미터 조정 등)이 제시되어 있다.

무엇이 남았는가

만들기 전과 후, 무엇이 달라졌을까?

점수가 아니라 생각의 변화를 적는 자리입니다.

문항 8. 소감

기계학습 모델을 직접 구현하는 과정에서 달라진 생각, 어려웠던 점, 새롭게 알게 된 것, 또는 느낀 점을 자유롭게 서술하시오.

사진 300장을 모으는 데 시간이 가장 많이 들었다. 처음에는 검색해서 내려받으려 했는데, 남이 찍은 사진에는 저작권이 있다는 걸 알고 직접 찍기로 했다. 쓰레기를 찍으려고 집 안을 돌아다닌 것이 이번 실습에서 제일 오래 걸린 일이었다.

가장 크게 남은 것은 음료 팩을 넣어 봤을 때다. 애초에 그것 때문에 모델을 만들기 시작했는데, 정작 그 물건에서 확률이 52%밖에 나오지 않았다. 내가 칸을 다섯 개로 정한 순간, 그 밖의 답은 아예 나올 수 없게 된 것이었다. 문제를 어떻게 나눌지 정하는 일이 사진을 모으는 일만큼 중요하다는 걸 알았다.

90%라는 정확도도 다시 보게 됐다. 클래스별로 나눠 보니 일반쓰레기만 75%였고, 평균 하나로는 어디를 고쳐야 하는지 알 수 없었다. 그리고 확률이 낮다는 것 자체가 「나는 잘 모르겠다」는 신호인데, 화면에 답만 띄우면 그 말이 사라진다는 것도 이번에 처음 생각해 봤다.

자기점검 체크리스트

  • ☑ 기계학습 구현 과정에서 새롭게 알게 된 것 또는 달라진 생각이 포함되어 있다.
  • ☑ 자신의 경험을 바탕으로 진솔하게 작성되어 있다.