규제의 기술: 과적합과의 싸움딥러닝 모델이 강력해질수록 역설적이게도 하나의 위험이 커진다. 바로 과적합이다. 모델이 훈련 데이터를 너무 완벽하게 외워버려서 실제 세상에서는 제대로 작동하지 못하는 현상. 오늘은 이 과적합을 막기 위한 다양한 규제 기법들, 그리고 그 이면에 숨겨진 수학적 원리에 대해 이야기해보려 한다.용량의 딜레마모델의 용량과 성능의 관계는 단순하지 않다. 그래프로 보면 흥미로운 패턴이 나타난다. 훈련 집합에 대한 오류는 모델이 커질수록 계속 감소한다. 당연하다. 큰 모델일수록 더 복잡한 패턴을 학습할 수 있으니까. 하지만 테스트 집합은 다르다. 처음에는 오류가 감소하지만, 어느 순간부터 다시 증가하기 시작한다. 이 전환점이 바로 과적합이 시작되는 지점이다.과적합 구간은 훈련 오류와 테스트..
최적화의 기술: 모멘텀부터 배치 정규화까지딥러닝 모델을 학습시키다 보면 예상치 못한 문제들을 만나게 된다. 손실 함수를 최소화하는 과정이 생각보다 순탄하지 않다. 마치 산을 오르는데 안개가 자욱하고, 바람이 사방에서 불어대고, 발밑의 경사는 고르지 않은 것과 같다. 오늘은 이런 험난한 여정을 조금이라도 수월하게 만들어주는 몇 가지 기법들에 대해 이야기해보려 한다.잡음과의 싸움: 모멘텀의 등장미니배치로 학습할 때 근본적인 문제가 하나 있다. 전체 데이터가 아닌 일부 샘플만으로 그래디언트를 추정하기 때문에 항상 잡음이 섞인다는 점이다. 원래는 정확히 북쪽으로 가야 하는데, 어떤 순간에는 북동쪽을 가리키고, 또 어떤 순간에는 북서쪽을 가리킨다. 이렇게 들쭉날쭉한 방향으로 업데이트되다 보면 수렴 속도가 매우 느..
딥러닝 최적화의 세계: 왜 학습은 이토록 어려운가딥러닝 모델을 학습시키는 일은 생각보다 훨씬 복잡하고 섬세한 작업이다. 단순히 데이터를 넣고 버튼을 누르면 마법처럼 최적의 모델이 만들어지는 것이 아니라, 수많은 함정과 장애물을 피해가며 조심스럽게 모델을 훈련시켜야 한다. 오늘은 딥러닝 최적화가 왜 어려운지, 그리고 어떻게 하면 효과적으로 학습시킬 수 있는지에 대한 이야기를 해보려 한다.학습의 근본적인 딜레마딥러닝을 처음 배울 때 많은 사람들이 간과하는 사실이 하나 있다. 바로 우리가 학습할 때 사용하는 목적 함수와 실제로 모델의 성능을 평가하는 지표가 다르다는 점이다. 예를 들어, 우리가 이미지 분류 모델을 학습시킬 때 실제로 관심 있는 것은 '정확도'다. 100장의 사진 중 90장을 맞추면 90%의 정..
이 논문은 AI 안전성 연구에서 기존 통념을 뒤집는 흥미로운 발견을 제시한다. 일반적으로 대규모 언어모델 훈련 시 독성 데이터는 필터링해서 제거하는 것이 상식이었는데, 오히려 적절한 양의 독성 데이터를 포함시키면 후훈련에서 더 효과적으로 독성을 제거할 수 있다는 것이다. 대부분의 LLM 개발에서는 사전훈련 단계에서 독성 콘텐츠를 최대한 필터링한다. C4 데이터셋처럼 웹에서 수집한 텍스트를 정제해서 깨끗한 데이터만 사용하는 것이 일반적이다. 이는 직관적으로 타당해 보인다 독성 데이터로 훈련하면 독성 모델이 나올 것 같으니까. 하지만 Longpre et al. (2023)의 연구에 따르면, 독성 필터링이 오히려 모델의 독성 식별 능력과 전반적인 성능을 떨어뜨린다는 것이 밝혀졌다. 현실 세계의 완전한 표현을 ..
WebRTC: 웹 브라우저 기반 실시간 통신 기술WebRTC의 정의와 개발 배경WebRTC(Web Real-Time Communication)는 웹 애플리케이션과 사이트가 중간자 없이 브라우저 간에 오디오나 영상 미디어를 포착하고 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술이다.WebRTC의 개발은 2010년 구글이 GIPS(Global IP Solutions)라는 스웨덴 회사를 인수하면서 시작되었다. GIPS의 개발자들인 Justin Uberti와 Peter Thatcher가 원래 개발자였으며, 구글은 2011년 이 기술을 WebRTC로 개명한 후 오픈소스로 공개했다.표준화 과정에서는 IETF를 통한 프로토콜 표준화와 W3C를 통한 브라우저 API 정의가 동시에 진행되었다. 201..
1. 정적 링킹 (Static Linking)컴파일 시점에 필요한 라이브러리 코드를 실행 파일에 직접 포함장점: 실행 시 외부 의존성이 없어 안정적단점: 실행 파일 크기가 크고, 메모리 사용량이 많음2. 동적 링킹 (Dynamic Linking)실행 시점에 필요한 라이브러리를 메모리에 로드하여 공유장점:실행 파일 크기가 작음메모리 효율성 (여러 프로그램이 같은 라이브러리 공유)라이브러리 업데이트 시 재컴파일 불필요단점: 필요한 동적 라이브러리가 없으면 실행 불가3. 원격 함수 호출 (RPC)네트워크를 통해 다른 컴퓨터의 함수를 호출필요 요소:RPC 프로토콜 (통신 규약)Stub (로컬 함수 호출처럼 보이게 하는 인터페이스)IDL (Interface Definition Language) - 함수 시그니처 ..
백트래킹은 해를 찾는 도중에 '막히면' 되돌아가서 다시 해를 찾아가는 전략이다. 모든 가능한 경우의 수를 전부 살펴보는 브루트 포스(Brute Force) 방식과 달리, 백트래킹은 현재 상태에서 해가 될 가능성이 없다고 판단되면 더 이상 그 방향으로 탐색하지 않고 이전으로 돌아간다. N-Queens 문제N-Queens 문제는 N×N 체스판에 N개의 퀸을 서로 공격할 수 없도록 배치하는 문제이다. 알고리즘 구현: cvoid queens(index i) { index j; if(promising(i)) if(i==n) cout 유망성 검사: cbool promising(index i) { index k; bool switch; k=1; ..
다익스트라 (Dijkstra's Algorithm)다익스트라 알고리즘은 가중치가 있는 그래프에서 한 정점으로부터 다른 모든 정점까지의 최단 경로를 찾는 그리디 알고리즘이다. 이 알고리즘은 항상 현재 상태에서 가장 비용이 적은 노드를 선택하는 방식으로 동작한다.시작 노드를 설정하고, 시작 노드에서 직접 연결된 모든 노드까지의 거리를 초기화한다.미방문 노드 중에서 현재까지의 최단 거리가 가장 짧은 노드를 선택한다.선택한 노드를 방문 처리하고, 이 노드를 거쳐 갈 수 있는 다른 노드들의 최단 거리를 갱신한다.모든 노드를 방문할 때까지 2-3 과정을 반복한다. 구현 상세:touch[i]: 노드 i로 가는 최단 경로에서 i 직전에 방문하는 노드 번호length[i]: 시작 노드(v₁)에서 노드 i까지의 현재까지 ..
ZeroMQ네트워크 프로토콜은 구현 위치에 따라 커널 계층과 애플리케이션 계층으로 구분할 수 있으며, 각 위치에는 고유한 장단점이 있다. 초기 인터넷 프로토콜은 주로 운영체제 커널 내부에 구현되었으나, 현대 프로토콜은 점차 애플리케이션 계층으로 이동하는 추세를 보인다. 위치별 특성:커널 계층: 데이터 처리 효율성과 메모리 사용 최적화 측면에서 우수하나, 개발과 업데이트가 복잡함애플리케이션 계층: 구현과 확장이 용이하고 유연성이 높으나, 상대적으로 오버헤드가 발생할 수 있음기존 TCP/UDP/IP와 같은 저수준 프로토콜에서는 소켓 API가 커널과 응용 프로그램 사이의 중간 인터페이스 역할을 담당한다. POSIX 호환 시스템에서는 소켓이 파일 디스크립터로 추상화되어, 파일 시스템의 일부로 취급된다. Zero..
Blockchain 용어Blockchain 기술의 핵심 특징 중 하나는 "no firewall, no trust" 원칙이다. 이는 중앙화된 신뢰 기관 없이도 시스템이 안전하게 작동할 수 있음을 의미한다. 또한 모든 데이터는 네트워크의 모든 참여자에게 복제되어(replication of all data) 분산 원장으로서의 투명성과 내구성을 보장한다. Consensus Algorithm분산 시스템에서 참여자들이 공통된 상태에 합의하는 메커니즘이다.BFT(Byzantine Fault Tolerance): 비잔틴 장애에도 시스템이 올바르게 작동할 수 있게 하는 알고리즘PoW(Proof of Work): 계산 작업을 통해 블록 생성 권한을 얻는 방식으로, Bitcoin이 사용PoS(Proof of Stake): ..