머신러닝 입문 (6) — 자동미분(autograd) 직접 만들기

5편에서는 은닉층 하나짜리 신경망의 기울기를 손으로 유도했는데, 활성함수를 바꾸거나 층을 하나 더 얹으면 유도를 처음부터 다시 해야 한다. 프레임워크는 이 일을 자동미분(automatic differentiation)으로 대신한다. 이 글에서는 스칼라 autograd 엔진을 100줄…

Continue Reading머신러닝 입문 (6) — 자동미분(autograd) 직접 만들기

머신러닝 입문 (5) — 역전파를 손으로 계산하고 코드로 검증하기

4편까지의 모델은 층이 하나라 기울기를 종이에 한 줄로 적을 수 있었지만, 층을 쌓으면 손실이 합성함수가 되어 기울기를 연쇄법칙으로 뒤에서 앞으로 전달해야 한다. 이것이 역전파(backpropagation)다. 이 글에서는 은닉층 하나짜리 신경망의 역전파를…

Continue Reading머신러닝 입문 (5) — 역전파를 손으로 계산하고 코드로 검증하기

머신러닝 입문 (4) — 로지스틱 회귀와 이진 분류

압축 저장소를 만든다면 압축률을 정확히 맞히기보다 "이 파일을 압축할 가치가 있는가"를 먼저 판정해야 하고, 잘못 판정하면 CPU를 헛쓰거나 저장 공간을 손해 본다. 이 글에서는 같은 데이터로 원본의 30% 미만으로 줄어드는가를…

Continue Reading머신러닝 입문 (4) — 로지스틱 회귀와 이진 분류

머신러닝 입문 (3) — 경사하강법과 학습률

2편의 정규방정식은 손실이 이차식일 때만 쓸 수 있고, 로지스틱 회귀나 신경망에는 그런 닫힌 해가 없다. 그래서 대부분의 학습은 기울기를 따라 조금씩 내려가는 경사하강법(gradient descent)으로 한다. 이 글에서는 같은 데이터로 경사하강을…

Continue Reading머신러닝 입문 (3) — 경사하강법과 학습률

머신러닝 입문 (2) — 선형회귀를 밑바닥부터 구현하기

1편에서 np.linalg.lstsq가 내놓은 직선 ratio = 0.1936 * entropy - 0.6163이 무엇을 계산한 것인지는 건너뛰었다. 이 글에서는 손실을 미분해 정규방정식을 직접 풀고 lstsq와 같은 답이 나오는지 확인한 뒤, 설계행렬에 열을…

Continue Reading머신러닝 입문 (2) — 선형회귀를 밑바닥부터 구현하기

머신러닝 입문 (1) — 규칙 기반 코드와 학습 기반 코드의 차이

리눅스에서 개발하다 보면 대부분의 문제를 조건과 분기로 푼다. 그런데 이 파일을 gzip으로 압축하면 얼마나 줄어들까 같은 문제는 확장자로 if를 짜봐도 확장자 없는 실행 파일이나 이미 압축된 .gz에서 막히고, 머신러닝은 규칙을…

Continue Reading머신러닝 입문 (1) — 규칙 기반 코드와 학습 기반 코드의 차이

리눅스 커널 7.3, Rust 툴체인이 있으면 randstruct 기본 해제 — allmodconfig에서 Rust가 사라지던 문제

커널 하드닝 옵션 randstruct와 Rust는 지금까지 한 커널에 함께 들어갈 수 없었습니다. Kconfig에 depends on !RANDSTRUCT가 박혀 있어 둘 중 하나를 켜면 다른 하나가 조용히 꺼집니다. 문제는 이 규칙이 커널의…

Continue Reading리눅스 커널 7.3, Rust 툴체인이 있으면 randstruct 기본 해제 — allmodconfig에서 Rust가 사라지던 문제

TeamPCP 공급망 공격 용의자 기소 — Trivy·KICS·LiteLLM을 타고 번진 자격증명 50만 건

오픈소스 공급망 공격 사건 하나가 5개월 만에 체포로 이어졌습니다. 호주연방경찰(AFP)은 8월 26일 웨스턴오스트레일리아 세 곳에서 압수수색을 집행하고, 다음 날 20대 남성 두 명을 퍼스 치안법원에 세웠습니다. 두 사람에게 적용된 혐의는…

Continue ReadingTeamPCP 공급망 공격 용의자 기소 — Trivy·KICS·LiteLLM을 타고 번진 자격증명 50만 건