RNN & SSM
·
통계 & 머신러닝/기본개념
과거의 vanila RNN부터 최근 각광받는 상태공간모델(State Space Model)인 S4(Structured State Spaces)와 Mamba까지, 이들은 '시간 이동(Time translation)'에 대해 어떤 대칭성을 가정하고 설계되었을까요?RNN단방향 RNN의 핵심은 매 시점마다 '같은 상태 전이 규칙(가중치)'을 재사용한다는 점입니다.$$h_t = \phi_\theta(h_{t-1}, x_t)$$이전 상태와 현재 입력을 같은 함수에 넣어 다음 상태를 계산합니다. LSTM이나 GRU도 게이트 구조가 추가되었을 뿐 이 틀을 유지합니다. 하지만 "규칙이 공유된다"는 것이 곧바로 "입력을 임의의 시간만큼 늦추면 출력도 똑같이 늦춰진다(Time Translation Equivariance)"..
Attention
·
통계 & 머신러닝/기본개념
지금 가장 인기있고 트래픽을 일으키는 딥러닝 구조는 단연 Transformer입니다. 그렇다면 Transformer의 핵심 연산인 Self-Attention은 어떤 종류의 대칭성을 가지고 있을까요?Permutation EquivariantScaled dot-product attention 연산은 다음과 같습니다.$$\text{Attn}(Q, K, V) = \text{softmax}_{\text{row}} \left( \frac{QK^\top}{\sqrt{d_k}} \right) V$$여기서 토큰의 축을 뒤섞는 permutation maatrix $P$를 적용한다고 해봅시다. $Q, K, V$가 모두 같은 순서로 재배열된다면, 다음과 같은 항등식이 도출됩니다.$$\text{Attn}(PQ, PK, PV) ..
Deep Sets & GNN
·
통계 & 머신러닝/기본개념
CNN은 픽셀이라는 격자 구조 위에서 위치의 이동에 대한 대칭성을 다룹니다. 그렇다면 이미지처럼 격자형태가 아니라, 순서가 없는 데이터 뭉탱이나 노드와 엣지로 이루어지는 그래프는 어떤 구조로 처리해야 할까요? 이번에는 원소 Permutation에 대한 대칭성을 다루는 모델을 알아봅시다.Naive MLP vs. Deep Sets가장 기본적인 신경망 구조인 MLP는 입력 좌표마다 다른 가중치를 둘 수 있습니다. 예를들어, $f(x_1,x_2)=x_1+2x_2$라는 함수는 두 좌표인 $x1$과 $x_2$를 교환하면 출력이 완전히 바뀌어 버립니다. 즉, 일반적인 MLP는 구조 자체에 대칭성 제약이 없습니다. 반대로, Point cloud나 추천 시스템에서 아이템 목록처럼 '집합' 데이터를 다룰 때에는 입력 순서..
CNN
·
통계 & 머신러닝/기본개념
딥러닝 모델들을 공부하다보면 CNN, RNN, GNN, Transformer 등등 여러 구조를 만나게 됩니다. 이 모델들은 왜 등장했을까요? 이를 이해하는 가장 좋은 렌즈는 아무래도 `귀납편향 (inductive bias)`이 아닐까 합니다. 그리고 그 귀납편향의 핵심인 `invariance`와 `equivariance`를 중심으로 어떤 철학으로 설계되었는지 살펴봅시다.Invariance & Equivariance우선 두가지 핵심 용어를 정의해봅시다. 입력 변환을 $T$, 그에 대응되는 출력 변환을 $S$라고 할 때에 두 성질은 다음과 같이 구분됩니다.Invariance$$f(Tx)=f(x)$$입력이 변해도 출력은 변하지 않는 성질입니다. 예를들어, 사진 속 고양이가 왼쪽으로 5픽셀 이동해도, "고양이"..
우분투 카카오톡 한글 오류 해결
·
카테고리 없음
우분투에서 카카오톡을 쓰는데 이런 문제가 반복됐다...;;왜 그럴까...? 한글은 ㅎ → 하 → 한처럼 여러 키를 눌러 한 글자를 완성한다. 화면에 글자가 보여도 입력기는 아직 그 글자를 조합 중일 수 있다. 증상으로 보면, 이 조합을 확정하는 처리보다 전송·특수문자·띄어쓰기 처리가 먼저 진행되는 문제로 보였다. 그래서 마지막 글자가 뒤늦게 남거나 순서가 바뀌는 것이다. 다른 앱에서는 정상이고 카카오톡에서만 발생했다. 내 환경은 Ubuntu 24.04 / Wine 11 / IBus 한글 입력기며, 카톡은 우분투용 앱이 아니라 Wine을 통해 실행 중이었다. 입력방식과 실행환경 두가지를 확인하면 해결될 것이다. 1. Wine 레지스트리에 다음 설정을 추가경로:HKEY_CURRENT_USER\Software..
Cold Start; Frequentist & Bayesian
·
통계 & 머신러닝/논의
StatisticsBayesianStreaming실시간 확률 추정: 빈도주의 & 베이지안데이터가 한 건씩 흘러 들어오는 환경에서 '조건 X의 성공 확률'을 매 순간 추정한다고 해봅시다. 빈도주의는 관측만으로 s/n을 계산하고, 베이지안은 사전 분포를 얹어 (α+s)/(α+β+n)을 계산합니다. 둘은 데이터가 쌓이면 같은 값으로 수렴합니다. 하지만 초반 몇 건에서의 행동은 완전히 다릅니다.실시간 추천, 광고 클릭률, A/B 테스트, 이상탐지. 이런 시스템은 데이터가 한 건씩 흘러 들어옵니다. 그리고 매 순간 같은 질문을 던집니다. 지금까지 본 것으로 볼 때, 조건 X에서 성공할 확률은 얼마인가?가장 단순한 추정은 비율입니다. 본 것 중 성공이 몇 번이었나. 하지만 스트리밍 초반에는 본 것이 거의 없습니다...