인공지능재료공학 · 실습 04 · AI 기법: 배치 처리

20개를 한 표로

TiO₂ 20종을 3회씩 측정한 라만 스펙트럼 60개를 에이전트에게 한 번에 처리시킨다. 소성 온도가 올라가면 아나타제가 루타일로 바뀌므로, 온도 순으로 순위가 나와야 한다. 에이전트는 순위표를 만들어 준다. 잘 만든다.

오늘 할 일은 그 표를 받는 것이 아니라, 그 순위를 믿어도 되는지 따지는 것이다.

전체 흐름

앞 실습과 다른 점은 하나다 — 파일이 60개다. 손으로는 못 한다.

관문답을 아는 것부터
본론60개 → 순위표
방법어떻게 했어?
확인네 가지를 묻는다
손으로세 시료를 직접
제출3줄 보고서
규모가 커지면 저절로 생기는 실패가 있다

조용히 건너뛴 파일. 뒤엉킨 정렬. 비교할 수 없는 것을 비교한 표. 이건 누가 실수해서 생기는 게 아니라 60개를 다루면 그냥 생긴다. 그것을 잡는 것이 이번 실습이다.


오늘 할 일

01 · 관문

답을 아는 것부터 통과시킨다

본 시료 60개는 아직 건드리지 않는다. 실리콘 웨이퍼를 두 번 측정한 파일이 있다.

패널에 입력
data/standard/ 의 Si_r1.csv 와 Si_r2.csv 에서 가장 강한 라만 피크의 위치를 찾아줘.
data/standard/인증값.md 에 정답이 적혀 있다.

results/표준검증.md 에 아래 표를 남겨줘.
| 파일 | 인증값 | 내 결과 | 차이 | 허용범위 | 통과 |

허용범위를 벗어나면 본 시료로 넘어가지 마. 무엇이 틀렸는지 먼저 알려줘.
두 파일 모두 통과해야 한다

실리콘의 라만 피크는 520.5 cm⁻¹다. 확정된 값이라 파수 축이 제대로 읽혔는지 확인하는 기준이 된다.

한쪽만 맞고 한쪽이 엉뚱한 값이라면, 그게 이 관문의 핵심이다.

패널에 입력
두 파일을 같은 그래프에 겹쳐 그려줘.
한쪽에만 있는 봉우리

같은 시료를 두 번 쟀는데 한 번만 나타난 것은 시료가 아니다. 데이터설명.md의 「우주선」 항목에 무엇인지 적혀 있다.

이것이 반복 측정을 하는 이유 중 하나다. 재현되지 않는 것은 시료의 성질이 아니다.

우주선 제거를 만든다

데이터설명.md의 「폭을 숫자로 본다」를 먼저 읽는다. 파장 축 간격이 0.5 cm⁻¹라서 폭을 점 수로 셀 수 있다 — 실리콘 선은 9점, 아나타제 선은 22점, 루타일 선은 84점, 우주선은 1~2점이다.

통째로 복사
우주선 제거를 만들어줘. 조건은 이렇다.

- 한 점을 ±2 점 떨어진 이웃과 비교해서, 그보다 터무니없이 높으면 우주선으로 본다.
  (바로 옆 점만 보면 2점짜리 우주선을 못 잡는다)
- 「터무니없이」의 기준은 그 스펙트럼의 잡음 크기로 정한다. 고정된 숫자를 쓰지 마.
- 우주선으로 판정된 점만 이웃값으로 바꾼다. 나머지 점은 건드리지 마.

그리고 파일마다 몇 점을 바꿨는지 반드시 같이 보고해줘.

바꾼 점 수를 항상 본다. 1400점짜리 스펙트럼에서 수십 점이 바뀌었다면 우주선을 지운 게 아니라 스펙트럼을 갈아버린 것이다.

대조 검증 — 안 지워야 할 것을 안 지웠는가
패널에 입력
방금 만든 처리를, 우주선이 없는 쪽인 Si_r2.csv 에 그대로 걸어줘.
처리 전과 후로 아래를 비교해서 표로 보여줘.

| | 처리 전 | 처리 후 | 변화 |
| 520.5 피크 위치 |  |  |  |
| 520.5 피크 높이 |  |  |  |
| 바꾼 점 수 |  |  |  |
위치만 보면 속는다

흔히 쓰는 중앙값 필터를 걸면 관문을 통과한다Si_r1이 520.5로 제대로 나온다. 그런데 같은 필터가 Si_r2피크 높이를 몇 %씩 깎는다. 창을 넓힐수록 더 깎인다.

위치는 맞는데 높이가 틀린 처리가 존재한다는 것, 그리고 오늘 구할 값이 높이의 비라는 것 — 이 둘을 같이 놓고 본다.

우주선이 없는 파일에서는 바꾼 점 수가 0이고 위치도 높이도 그대로여야 한다. results/표준검증.md에 이 표를 같이 남긴다. 위치 표만으로는 통과가 아니다.

여기서 만든 것이 본론에 그대로 쓰인다

관문을 통과하려고 넣은 처리가 60개에도 필요한 필수 단계가 된다. 그게 관문의 목적이다.

02 · 본론

60개를 한 표로

관문을 통과했으면 같은 파이프라인을 본 시료에 적용한다.

패널에 입력
좋아. 이제 같은 파이프라인을 data/spectra/ 의 60개 파일에 적용해줘.

시료 20종을 3회씩 측정한 것이다. data/시료목록.csv 에 각 시료의 소성 온도가 있다.
144 cm-1(아나타제)와 447 cm-1(루타일) 밴드로 루타일이 얼마나 늘었는지 보고,
소성 온도 순으로 표를 만들어줘.

AGENTS.md에 적힌 대로 results/계산근거.md 도 남겨줘.

표가 나왔을 것이다. 온도가 올라가면서 루타일이 늘어나는 경향도 보일 것이다. 여기서부터가 오늘의 실습이다.

03 · 방법

어떻게 했어?

표를 받았으면 확인하기 전에 방법부터 듣는다.

패널에 입력
피크 위치와 밴드 세기를 어떻게 정했는지 알려줘.

- 피크 위치: 최대값인 점의 파수를 그대로 썼어? 무게중심이야? 함수를 맞췄어?
- 밴드 "세기": 봉우리 높이야, 면적이야? 면적이면 어느 구간을 적분했어?
- 배경: 뺐어? 뺐다면 어떤 방법으로, 기준선을 어디에 그었어?

각 단계마다 왜 그 방법을 골랐는지도 한 줄씩 적어줘.
파수 격자보다 정밀할 수는 없다
패널에 입력
파수 축의 간격이 얼마야? 그것보다 정밀한 위치를 보고할 수 있어?
유효숫자 하나가 방법을 알려준다

이 데이터의 파수 간격은 0.5 cm⁻¹다. 최대값인 점을 그대로 썼다면 답은 520.0, 520.5, 521.0 중 하나일 수밖에 없다.

그런데 520.53 같은 답이 나왔다면? 최대값이 아니라 함수를 맞춘 것이다. 그럼 새 질문이 생긴다 — 어떤 함수로? 어느 구간에서?

대안을 대게 한다
패널에 입력
방금 말한 각 단계에서, 다른 선택지는 뭐가 있었어?
표로 만들어줘. [단계 | 내가 쓴 방법 | 다른 선택지 | 결과가 달라지나]

배경 제거만 해도 방법이 여러 가지다. 직선? 다항식? 반복 최소값? 어느 것을 골랐고 왜 골랐는지를 대게 한다.

그다음이 학생의 일이다

AI가 말한 방법이 그럴듯한가? 그럴듯한 것과 이 시료에 맞는 것은 다르다.

이 시료들은 형광 배경이 제각각이다. 직선 기준선으로 충분한가? 그리고 60개 전부에 같은 방법을 썼는가, 파일마다 다르게 했는가?

04 · 확인 · 오늘의 핵심

네 가지를 묻는다

한 번에 다 묻지 말고, 하나씩.

① 몇 개를 처리했나
패널에 입력
60개 중 몇 개를 실제로 처리했어?
실패한 파일이 있으면 파일명과 이유를 전부 알려줘.

60이 아니면 그 표는 60개의 결과가 아니다. 실패한 파일이 있었다면 왜 실패했는지, 그리고 왜 아무 말 없이 넘어갔는지 물어본다.

② 순서가 맞나
패널에 입력
시료를 어떤 순서로 정렬했어? 정렬 기준을 보여줘.
S1, S10, S11, S12, ... S19, S2, S20, S3, ...

이렇게 되어 있지는 않은가? 파일명은 문자열이라 그렇게 정렬된다. 온도 축이 뒤엉키면 경향은 무의미하다.

③ 무엇으로 나눴나 — 순위가 뒤집히는가

세기는 같은 시료를 세 번 재도 흔들린다. 레이저 출력과 초점이 매번 다르기 때문이다. 그래서 무언가로 나눠야 하는데, 무엇으로 나누느냐에 따라 순위가 달라질 수 있다.

패널에 입력
세 가지 방식으로 각각 순위를 매겨서 나란히 보여줘.

(가) 루타일 / (루타일 + 아나타제)
(나) 루타일 / 스펙트럼 최대값
(다) 루타일 / 스펙트럼 전체 면적

그리고 배경(형광)을 제거한 경우와 제거하지 않은 경우를 각각 계산해줘.

어느 조합에서 순위가 무너지는가? 그리고 왜 그런가? 데이터설명.md의 「배경이 시료마다 다르다」 항목을 읽고 답을 맞춰 본다.

④ 이 순위를 다 믿어도 되나
패널에 입력
각 시료의 반복 3회 표준편차를 계산해서,
이웃한 시료끼리의 차이와 나란히 표로 보여줘.

이웃 시료의 차이가 반복 산포보다 작은 구간이 있다. 거기서는 순위가 성립하지 않는다 — 측정이 그 차이를 구분하지 못하기 때문이다.

한 걸음 더 간다.

패널에 입력
참고로 소성 온도 400도와 520도 시료의 실제 루타일 함량은 20배 넘게 차이가 난다.
그런데 내 측정값은 그만큼 차이가 나나? 표를 다시 봐줘.
낮은 온도 구간에서 측정값이 거의 안 움직인다

참값은 크게 변하는데 측정값은 좁은 범위에서 오르내린다. 심지어 단조롭지도 않다. 루타일이 너무 적어서 검출 한계 아래이기 때문이다.

순위가 노이즈로 흔들리는 것과 측정이 아예 그 범위를 못 보는 것은 다른 문제다.

그래서 오늘의 결론

순위표에는 유효 구간이 있다. 20행짜리 표를 받았다고 20개를 다 비교할 수 있는 것이 아니다.

그 경계를 말할 수 있어야 이 표를 쓸 수 있다.

손으로 재본다

에이전트 없이 한 번은 직접 읽는다. 오늘 제출물 중 유일하게 반드시 진짜여야 하는 숫자다.

01

세 시료를 고른다 — 낮은 온도, 중간, 높은 온도

예를 들어 S2, S12, S19.

02

각 시료의 r1 파일을 그래프로만 그리게 한다

숫자 계산은 시키지 않는다. 그림만 받는다.

03

자를 대고 두 봉우리의 높이를 mm로 잰다

144 cm⁻¹(아나타제)와 447 cm⁻¹(루타일). 그다음 447 / (447 + 144)를 손으로 계산한다.

손글씨 + 사진

세 값을 손으로 적고 사진을 찍어 제출한다. 에이전트가 낸 값과 순서가 같은가?

제출

results/ 폴더 전체를 압축해서 낸다.

3줄 보고서 · results/보고서.md
그대로 채운다
결론:     [숫자] [단위]
불확실성: [값] — 노이즈에서 온 것인지 절차 선택에서 온 것인지 밝힐 것
적용 범위: 이 방법의 가정이 이 시료에서 성립하는가. 확인한 근거는?

이번 실습 셋째 줄에는 이런 것이 들어간다 — “순위는 S□~S□ 구간에서만 유효하다. 그 밖에서는 인접 차이가 반복 산포보다 작다.”

검증 로그 · results/검증로그.md
#채울 것
에이전트가 낸 주장 (순위표)
내가 시킨 검증
결과
남은 의심
손 앵커 — 자로 잰 세 시료 (손글씨 + 사진)
에이전트에게 맡기면 안 되는 단계 1개 + 이유 2줄
최종 결론 = ______ (유효 구간: ______)
⑥번 힌트

에이전트는 표준편차와 인접 차이를 계산해 줄 수 있다. 그런데 “이 정도 차이면 구분됐다고 볼 것인가”의 기준은 누가 정했나?

막혔을 때

증상해볼 것
관문에서 한 파일만 이상한 값정상이다. 두 파일을 겹쳐 그려 본다
우주선 제거 후 피크가 낮아졌다그 처리는 못 쓴다. 대조 검증을 다시 본다
바꾼 점 수가 수십 점이다기준이 너무 헐겁다. 잡음 배수를 키운다
우주선이 그대로 남아 있다이웃을 ±1로 봤는가? 2점짜리는 못 잡는다
처리 개수가 60이 아니다실패 파일명과 이유를 전부 나열하게 한다
온도 경향이 뒤죽박죽정렬 기준을 물어본다. 문자열 정렬일 가능성이 크다
순위가 방식마다 다르다그게 오늘의 발견이다. 왜 다른지 따진다
스파이크를 지웠더니 진짜 피크도 낮아졌다스펙트럼을 뭉개는 방식이다. 으로 가르게 한다
그림의 한글이 네모(□□□)그래프 한글 폰트를 Malgun Gothic으로 지정해줘
에이전트가 “맞습니다”만 한다질문이 잘못됐다. “맞아?” 대신 “바꾸면?”으로 묻는다

표가 20행이라고 해서 20개를 다 비교할 수 있는 것은 아니다.

에이전트는 60개를 처리해 순위표를 만들어 준다. 그건 잘한다. 그런데 그 표의 어디까지가 측정이고 어디부터가 노이즈인지는 말해주지 않는다. 묻지 않으면. 규모가 커질수록, 표를 만드는 일보다 표의 경계를 아는 일이 중요해진다.

인공지능재료공학 · 실습 04 · 신소재공학부
데이터: 교육용으로 합성한 라만 스펙트럼 — 실제 측정이 아니다