모델 선택과 평가 제대로 이해하기 — NFL부터 교차검증·Selection Bias까지
·
AI
이번 강의자료는 "모델을 만드는 법"이 아니라 "만든 모델을 어떻게 고르고 믿을 수 있게 평가하느냐"에 관한 파트였습니다. 슬라이드가 목적 함수·가설 같은 용어 정리에서 시작해서 No Free Lunch, 오컴의 면도날 같은 철학적 전제를 깔고, 거기서 Bias-Variance 분해로 오차의 정체를 파고든 다음, 홀드아웃·교차검증·하이퍼파라미터 탐색까지 쭉 이어지더라고요. 중간중간 Wolpert, Domingos, Kohavi, Bergstra·Bengio, Cawley·Talbot 같은 원논문 인용이 계속 튀어나오는 게 인상적이었습니다.개념이 워낙 많아서, 이 글에서는 자료의 뼈대를 이루는 네 개의 질문으로 압축해 정리하려고 합니다. "완벽한 모델이 왜 없는가 → 오차는 어디서 오는가 → 성능을 어떻게..
LLM 에이전트의 Human-in-the-Loop — LangGraph interrupt로 멈추고 재개하기
·
AI
부트캠프에서 LLM 에이전트를 만들다 보면 슬슬 무서워지는 순간이 옵니다. 에이전트가 스스로 판단해서 도구를 호출하는데, 그게 메일 발송이나 DB 삭제 같은 되돌릴 수 없는 행동이면요. "얘가 혼자 다 처리하게 두는 게 맞나?" 싶은 지점, 바로 여기서 Human-in-the-Loop가 등장합니다.이 글은 HITL이 무엇이고 왜 필요한지, 그리고 실전에서 LangGraph의 interrupt()로 이걸 어떻게 구현하는지를 공식 문서를 근거로 정리합니다. 앞서 정리한 프레임워크 시리즈가 "모델을 학습시키는 법"이었다면, 이건 "학습된 모델(에이전트)을 안전하게 굴리는 법"에 가깝습니다.1. 큰 그림 — 멈추고, 묻고, 재개한다HITL의 뼈대는 단순합니다. 위험한 순간에 멈추고, 사람에게 묻고, 답을 받아 ..
TensorFlow 전문가 학습 루프 — 서브클래싱·GradientTape·@tf.function
·
AI
공식 TensorFlow 튜토리얼에는 "초보자용"과 "전문가용" 두 개의 quickstart가 나란히 있습니다. 초보자용은 model.fit() 한 줄로 학습이 끝나는데, 전문가용은 학습 루프를 손으로 다 씁니다. 처음엔 "왜 굳이 번거롭게?" 싶었는데, 뜯어보니 fit()이 안에서 대신 해주던 일이 전부 코드로 드러나더라고요.이 글은 전문가용 quickstart(MNIST 분류기)를 근거로, 커스텀 학습 루프의 세 축 — 모델 서브클래싱, GradientTape, @tf.function — 을 공식 문서와 함께 정리합니다. GAN이나 강화학습처럼 fit()으로 안 되는 걸 만들려면 반드시 넘어야 하는 문턱이에요.1. 큰 그림 — 학습 루프의 톱니바퀴모델을 학습시킨다는 건 결국 "예측하고 → 틀린 만큼 ..
PyTorch 학습 루프 — nn.Module·loss.backward()와 zero_grad 함정 (TF 대응)
·
AI
바로 앞 글에서 TensorFlow 전문가 학습 루프(「TensorFlow 전문가 학습 루프」)를 정리했는데요. PyTorch 공식 quickstart를 열어보니 구조가 거의 판박이였습니다. 모델을 클래스로 정의하고, 배치마다 예측→손실→미분→갱신을 도는 흐름이요. 다만 문법이 다르고, PyTorch에만 있는 함정이 하나 있더라고요 — 바로 zero_grad()입니다.이 글은 PyTorch quickstart(FashionMNIST 분류기)를 근거로 nn.Module 서브클래싱, autograd와 loss.backward(), train()/eval()를 정리하되, TF를 아는 사람이 바로 매핑할 수 있게 대응 관계를 먼저 깔고 갑니다.1. 큰 그림 — TF와 같은 루프, 다른 문법학습 루프의 네 조각(..
pandas 선택과 집계 제대로 — .loc·iloc, SettingWithCopyWarning, groupby
·
AI
넘파이 인덱싱을 정리하고 나니(「NumPy 인덱싱 5종」), 자연스럽게 판다스가 궁금해졌습니다. 표(表) 데이터를 다루다 보면 df["A"], df.loc[...], df.iloc[...]가 뒤섞여 나오는데, 어떤 땐 되고 어떤 땐 SettingWithCopyWarning이라는 노란 경고가 떠서 늘 찜찜했거든요.공식 "10 minutes to pandas"와 인덱싱 가이드를 다시 읽어보니, 판다스 선택의 핵심은 딱 세 갈래([] · .loc · .iloc)였고, 그 경고도 "왜 뜨는지"를 알면 두 번 다시 안 볼 수 있더라고요. 이 글에선 그 세 갈래와 경고의 정체, 그리고 데이터 분석의 심장인 groupby까지 공식 문서를 근거로 짚습니다.1. 큰 그림 — 고르고, 안전하게 고치고, 묶는다판다스로 하는..
NumPy 인덱싱 5종 제대로 — Basic·Advanced와 View/Copy 함정
·
AI
넘파이 공식 Quickstart를 다시 훑다가, "Indexing"이라는 짧은 절 하나에 발이 걸렸습니다. 인덱싱이 파이썬 리스트처럼 a[2], a[1:5] 정도인 줄 알았는데, 정수·슬라이스·불리언·정수배열까지 종류가 여러 갈래더라고요. 특히 fancy indexing(팬시 인덱싱)이라는 이름이 낯설어서 "이게 대체 뭔데 이름까지 붙었나" 싶었습니다.파보니 인덱싱의 진짜 핵심은 "종류가 몇 개냐"가 아니라, 어떤 인덱싱은 원본을 공유(view)하고 어떤 인덱싱은 복사본(copy)을 만든다는 갈림길이었습니다. 이 글은 넘파이 인덱싱 5종을 정리하면서, 그 밑에 깔린 Basic/Advanced 구분과 view/copy 함정까지 공식 문서를 근거로 짚어봅니다. (배열이 메모리에 어떻게 놓이길래 view가 가..
데이터 전처리, 왜 모델보다 먼저인가 — sklearn으로 정리하는 ML 전처리 파이프라인
·
AI
이번 강의자료는 「기계학습」 개론이었는데요, 앞부분에서 "기계가 데이터로부터 규칙을 학습한다"는 정의와 지도·비지도·강화 학습 분류를 훑고, 뒷부분(53쪽 이후)에서 2장. 전처리의 중요성으로 넘어갑니다. 저는 이 뒷부분에 꽂혔습니다. 모델 알고리즘은 한 줄이면 바꾸는데, 정작 성능을 좌우하는 건 그 앞단의 데이터 손질이더라고요.강의는 인코딩·결측치 처리·스케일링·차원 축소·특성 선택을 쭉 나열하고 마지막에 scikit-learn 파이프라인으로 닫습니다. 그런데 슬라이드만 보면 "이런 도구들이 있다"는 카탈로그처럼 읽혀요. 이 글에서는 그 도구들을 실제 데이터가 모델에 들어가기까지의 순서로 다시 엮고, 강의가 개념 그림으로 보여준 것들을 sklearn 공식 API·예제와 하나씩 맞춰보겠습니다. 강의자료엔..
Bad Data 제대로 다루기 — 데이터 클리닝·랭글링부터 ML 데이터 누수까지
·
AI
이번 강의자료는 제목부터 bad_data였습니다. 67장 내내 "데이터는 원래 지저분하다"는 한 문장을 여러 각도에서 못 박는 덱이었는데요. 슬라이드를 넘기다 보면 217과 2.17이 뒤섞인 CSV, 전화번호 형식이 제각각인 표, "Isreal"처럼 오타 난 국가명, 심지어 성이 "Null"이라서 시스템에서 사라져 버린 사람 이야기까지 나옵니다. 그러다 후반부에서 갑자기 결이 바뀌어서 데이터 누수(data leakage)·데이터셋 시프트(dataset shift) 같은 머신러닝 전용 함정으로 넘어가더라고요.즉 이 자료의 진짜 메시지는 "지저분한 데이터를 어떻게 청소하느냐"가 아니라, "에러를 원인부터 이해하고 → 탐지하고 → 예방하고 → 고치는" 하나의 사이클이고, 그 사이클이 ML 파이프라인에서는 특유..
Tidy Data 제대로 이해하기 — 지저분한 표를 pandas로 정돈하기
·
AI
… (use는 🔗 어디에 쓰나) 구문강조 span: cm(주석) st(문자열) nu(숫자) fn(함수) kw(키워드) 개념 지도: div.map > (c>mb / ar / row>cell>q,s / ft)-->이번 강의는 "Bad Data"라는 넓은 주제였습니다. 실무 데이터가 왜 지저분한지(오타·결측·중복·비표준·이상치…), 그걸 어떻게 청소하고(cleaning) 주무르는지(wrangling), 에러를 어떻게 탐지·예방하는지까지 훑고, 마지막에 Tidy Data로 마무리하더라고요. 그리고 강의와 함께 받은 tidy-data-master 폴더에는 이 Tidy Data 개념의 원전 — Hadley Wickham(해들리 위컴)의 논문과 실제 지저분한 데이터 파일들(종교·소득 조사, 빌보드 차트, 결핵..
NumPy는 왜 빠른가 — ndarray 메모리 모델부터 einsum까지
·
AI
이번 강의자료는 NumPy/SciPy 한 편인데, 분량이 124장이나 됩니다. "왜 파이썬은 느린가"에서 출발해서 ndarray 내부 구조, stride, broadcasting, ufunc, 그리고 마지막엔 einsum까지 훑는, 사실상 "NumPy를 어떻게 생각해야 하는가"를 다룬 자료더라고요. 슬라이드가 그림 위주라 개념 흐름은 좋은데, 정작 "그래서 왜?"를 묻는 대목마다 근거가 비어 있어서 이 글에서 공식 문서로 메꿔가며 다시 정리해 봤습니다.강의 전체를 한 문장으로 압축하면 이렇습니다 — "파이썬 리스트가 아니라 ndarray로 생각하라. 메모리 레이아웃을 이해하면 뷰·브로드캐스팅·벡터화가 왜 거의 공짜인지 보인다." 그래서 이 글도 그 축을 따라, 메모리 모델을 바닥에 깔고 위로 쌓아 올리는..