전체 글 69

머신러닝 기초 (4) 교차검증

지난 글에서 과적합은 테스트 성능으로 알아챈다고 했다. 그런데 "한 번 나눈 테스트"는 운에 휘둘릴 수 있다. 이번 글은 그 운을 줄이는 교차검증을 정리한다. 1. 한 번만 나누는 것의 한계 : 보통 데이터를 훈련/테스트로 한 번 나눠 성능을 잼 : 그런데 어쩌다 테스트에 쉬운 데이터만 몰리면 성능이 실제보다 높게, 어려운 게 몰리면 낮게 나옴 : 즉 "어떻게 나뉘었나"라는 우연에 점수가 흔들림 : 데이터가 적을수록 이 흔들림이 더 커짐 2. 교차검증의 아이디어 : 한 번이 아니라 여러 번 나눠서, 번갈아 검증하고 평균을 내자는 것임 : 모든 데이터가 한 번씩은 검증에 쓰이도록 돌려 가며 평가함 : 그러면 특정 분할의 운에 덜 휘둘리고, 더 안정적인 성능 추정을 얻음 3. k-겹 교차검증 (k..

AI/Basic 2026.10.08

SQL 문제풀이 (3) 서브쿼리와 CTE(WITH)

쿼리 안에 또 쿼리를 넣는 게 서브쿼리다. 복잡해지면 읽기 힘들어지는데, 이를 깔끔하게 정리해 주는 게 CTE(WITH)다. 이번 글은 둘을 정리하고 문제 세 개를 풀어 본다. 1. 서브쿼리 개념 정리 : 서브쿼리 - 다른 쿼리 안에 괄호로 감싸 들어가는 쿼리임 : 놓이는 자리에 따라 역할이 다름 - SELECT 자리(스칼라), FROM 자리(파생 테이블), WHERE 자리(조건) : 보통 "먼저 계산해야 할 값"을 안쪽에서 구해, 바깥 쿼리가 그 결과를 씀 : 중첩이 깊어지면 읽기 어려워지는 게 단점임 2. CTE(WITH) 개념 정리 : CTE(common table expression) - WITH로 쿼리에 "이름"을 붙여 먼저 정의해 두는 방식임 : WITH 이름 AS (쿼리) 로 정의..

Chinchilla

논문: Hoffmann et al., "Training Compute-Optimal Large Language Models" (2022)링크: https://arxiv.org/abs/2203.15556 한동안 LLM 경쟁은 "누가 더 큰 모델을 만드나"였다. 그런데 오늘 읽은 "Chinchilla"는 그 흐름에 제동을 건 논문이다. 같은 연산 자원이면, 모델을 더 키우는 것보다 데이터를 더 먹이는 게 낫다는 걸 보였다. 1. Abstract 한 줄 요약 : 당시 대형 모델들(GPT-3 등)은 파라미터만 키우고, 학습 데이터는 상대적으로 적게 썼음: 이 논문은 "주어진 연산 예산에서 성능을 최대로 하려면 모델 크기와 데이터 양을 어떻게 나눌지"를 체계적으로 실험함: 결론 - 둘을 같은 비율로 키워야 함...

Paper/LLM 2026.10.07

데이터 심화 - 피처 엔지니어링 (수치, 범주, 날짜 다루기와 데이터 누수)

"좋은 모델보다 좋은 피처가 성능을 더 좌우한다"는 말이 있다. 같은 데이터라도 어떻게 가공해 넣느냐에 따라 결과가 꽤 달라진다. 이번 글은 피처 엔지니어링의 자주 쓰는 기법과, 꼭 피해야 할 데이터 누수를 정리한다. 1. 피처 엔지니어링이란 : 피처 - 모델에 넣는 입력 변수(열)임: 피처 엔지니어링 - 원본 데이터를 모델이 잘 학습하도록 가공, 변형, 새로 만드는 작업임: 모델을 바꾸기 전에, 피처를 다듬는 것만으로 성능이 오르는 경우가 많음: 핵심은 "도메인을 아는 사람이 의미 있는 신호를 피처로 꺼내 주는 것"임ㅡ 2. 수치형 다루기 : 스케일링 - 값의 범위를 맞춤. 표준화(평균0, 분산1)나 정규화(0~1). 거리, 경사하강 기반 모델에서 중요: 로그 변환 - 한쪽으로 치우친(왜곡된) 분포..

머신러닝 기초 (3) 과적합과 정규화

모델을 복잡하게 만들수록 훈련 데이터는 더 잘 맞힌다. 그런데 정작 새 데이터에서는 오히려 성능이 떨어지곤 한다. 이번 글은 그 함정인 과적합과, 이를 누르는 정규화를 정리한다. 1. 과소적합과 과적합 : 과소적합(underfitting) - 모델이 너무 단순해 데이터의 규칙조차 제대로 못 잡음. 훈련도 테스트도 둘 다 성능이 낮음 : 적정(good fit) - 큰 규칙을 잡으면서 잡음은 무시함. 새 데이터에서도 잘 맞음 : 과적합(overfitting) - 모델이 너무 복잡해 훈련 데이터의 잡음까지 외움. 훈련은 거의 완벽한데 새 데이터에선 크게 틀림 2. 과적합은 왜 생기나 : 변수나 모델 복잡도가 데이터 양에 비해 너무 크면 생김 : 모델이 "규칙"이 아니라 "이 훈련 데이터만의 우연"까지..

AI/Basic 2026.10.06

캐글 미니 프로젝트 (2) 집값 예측 - 선형회귀로 캘리포니아 집값 맞히기

지난 타이타닉은 생존/사망을 맞히는 분류였음. 이번엔 숫자(집값)를 맞히는 회귀를 해 봄. 캘리포니아 집값 데이터로, 소득 같은 지역 특성이 집값과 어떻게 이어지는지 보고 선형회귀로 예측까지. 1. 데이터 불러오기 sklearn 내장 캘리포니아 집값 데이터를 씀. 캘리포니아의 20,640개 지역 블록 데이터임. from sklearn.datasets import fetch_california_housingd = fetch_california_housing(as_frame=True)df = d.frameprint(len(df)) # 20640print(df["MedHouseVal"].mean()) # 2.069 : 타깃(집값)은 지역 집값 중앙값이고 단위는 1..

LoRA (적은 파라미터로 거대 모델 파인튜닝하기)

논문: Hu et al., "LoRA: Low-Rank Adaptation of Large Language Models" (2021)링크: https://arxiv.org/abs/2106.09685 모델이 수백억 파라미터로 커지면서, 하나를 통째로 파인튜닝하는 건 너무 비싸졌다. 오늘은 그 비용을 확 줄인 "LoRA"를 읽어 보았다. 지금 오픈소스 모델을 각자 입맛에 맞게 튜닝할 때 거의 기본으로 쓰이는 방법이다. 1. Abstract 한 줄 요약 : 큰 모델을 전부 파인튜닝하면, 모델 하나 크기만큼의 가중치를 새로 저장해야 함 - 비용이 큼: LoRA는 원래 가중치를 얼리고(freeze), 각 층에 작은 "저차원 행렬"만 끼워 넣어 그것만 학습함: 그 결과 GPT-3 기준 학습 파라미터를 약 1만분의..

Paper/LLM 2026.10.03

SQL 문제풀이 (2) GROUP BY와 HAVING - 집계, 그룹별 조건

"카테고리별 매출 합계", "고객별 주문 횟수"처럼 그룹마다 숫자를 내는 일은 분석에서 늘 나온다. 이때 쓰는 게 GROUP BY와 집계 함수. 이번 글은 GROUP BY의 구조와 HAVING을 정리하고, 문제 세 개를 직접 풀어 본다. 1. GROUP BY 개념 정리 : GROUP BY - 지정한 열의 값이 같은 행끼리 묶어, 그룹마다 한 줄로 집계함: 집계 함수 - 묶인 그룹에 적용함 (COUNT 개수, SUM 합, AVG 평균, MAX/MIN 최대/최소): SELECT에는 "그룹 기준 열"과 "집계 함수"만 올 수 있음 - 그 외 열을 그냥 넣으면 안 됨: 그룹 기준이 여러 개면 열을 쉼표로 나열함 (조합마다 한 그룹) 2. WHERE와 HAVING의 차이 조건을 거는 자리가 두 군데라 헷갈리기..

머신러닝 기초 (2) 결정트리와 랜덤포레스트

지난 글에서 지도학습의 큰 갈래를 봤다. 이번엔 가장 직관적인 지도학습 모델인 결정트리와, 그걸 여러 개 묶어 성능을 끌어올린 랜덤포레스트를 정리한다. 1. 결정트리 - 질문을 이어 가며 나눈다 : 데이터를 "예/아니오" 질문으로 계속 쪼개 가며 답을 내는 모델임 : 예를 들어 타이타닉이면 "여성인가?" → "3등급인가?" → "나이가 10세 미만인가?" 식으로 가지를 침 : 각 질문(분기)에서 데이터가 가장 깔끔하게 둘로 나뉘는 기준을 고름 : 맨 아래 잎(leaf)에 도달하면 그 그룹의 다수 쪽으로 예측함 2. 무엇을 기준으로 나누나 : "깔끔하게 나뉜다"를 수치로 재는 기준이 필요함 - 불순도(impurity) : 지니 불순도, 엔트로피 같은 값으로, 한 그룹에 한 종류만 모일수록 낮아짐..

AI/Basic 2026.10.02

데이터 심화 - 분류 평가지표 (정밀도, 재현율, F1, ROC)

지난 타이타닉 글에서 "정확도 80.4%"라고 했지만, 분류를 제대로 보려면 정확도 하나로는 부족하다. 이번 글은 혼동행렬에서 출발해 정밀도, 재현율, F1, ROC까지 정리한다. 1. 왜 정확도만으로는 부족한가 : 정확도 - 전체 중 맞힌 비율. 직관적이지만 함정이 있음 : 암 환자 1%를 찾는 문제에서 "모두 정상"이라 찍으면 정확도 99%가 나옴 - 정작 환자는 한 명도 못 찾았는데도 : 이렇게 한쪽이 드문(불균형) 문제에서는 정확도가 성능을 과대평가함 : 그래서 "무엇을 맞히고 무엇을 틀렸는지" 쪼개서 봐야 함 2. 혼동행렬 - 모든 지표의 출발점 예측과 실제를 2x2로 나눠 보는 표임. 양성(찾으려는 것)을 기준으로 네 칸으로 나뉨.: TP(진짜양성,TruePositive) - 양성을..