독립(independence)이란 개념은 자연과학의 많은 맥락에서 반복적으로 자주 등장한다.

 

사실 그 이전에 우리가 무심코 사용하는 "독립"이라는 단어는 일상 속에서 아주 자연스럽게 등장한다.

예를 들어,

  • "저 사람은 부모로부터 독립했어."
    → 부모 도움 없이 살아감. (혼자서 살아갈 수 있는 상태)
  • "이 팀원은 독립적으로 일할 수 있어."
    → 혼자 힘으로 성과를 낼 수 있음. (다른 팀원 도움 없이 일을 완성)

이 일상의 예시들을 보면 독립이란 단순히 혼자라는 의미가 아니라
"혼자서도 무언가를 이루거나 작동할 수 있는 상태"임을 알 수 있다.

즉, 독립은 자연스럽게 "혼자서 가능하다"는 느낌과 연결되어 있다.

 

혼자 가능하다는 건, 곧 '다른 것에 의존하지 않아도 된다'는 것

그럼, "의존하지 않는다"는 건 뭘까?

  • A가 B에 의존하지 않는다. → B가 없어도 A는 존재할 수 있다.
  • A가 B에 의존한다. → B가 없으면 A도 존재할 수 없다.

즉, 의존성은 곧 '존재나 작동의 조건'이다.

그러니까 독립은 반대로
"자신의 존재나 작동이 다른 무언가의 조건이 아니라 자기 스스로 그 조건을 만족한다는 뜻" 이다.


 

이를 자연과학에서 특히 수학이라는 학문에서는 어떻게 쓰는지 생각해보자.

 

  • 벡터 공간에서의 두 벡터가 서로 독립이란 뜻은
    → 하나의 벡터가 다른 벡터로부터 만들어지지 않는다는 뜻이다.(의존하지 않으며 자신이 스스로 하나의 축을 만듦)

  • 확률적 독립이란
    → 다른 사건에 의존하지 않아도 확률이 성립하는 사건이다. (자기 확률을 스스로 결정함)

  • 그래프에서 간선들의 집합이 독립이라는 뜻은
    → 간선들이 서로 연결돼 있긴 하지만 절대로 순환(cycle)을 만들지 않는다는 뜻이다.
    (어느 하나의 간선도 다른 간선들로 만들어진 경로에 의해 중복되지 않음.
    즉, 각각의 간선이 불필요한 연결 없이 필수적인 연결 구조만 구성함.)
    쉽게 말해, 그래프에서 독립적인 간선 집합은 "순환 없이 최소한의 연결만을 이루는 간선들의 집합이다."

마지막 그래프에서의 독립을 간단한 예시로 풀어보면

 

  • 섬 3개를 다리로 연결한다고 할 때
    • 섬 3개는 최소 2개의 다리로 연결됨 (트리 형태)
    • 이때 두 다리 중 하나라도 없으면 연결 끊김 (필수적, 독립적)
  • 만약 다리가 3개 이상이 되면
    • 반드시 어딘가에서 순환(cycle)이 발생
    • 이때 추가된 다리는 이미 존재하는 다른 다리 조합으로 대체 가능한 중복 연결 (종속적, 비독립적)

와 같다.

 


 

서로 다른 분야에서 나타나는 이 독립이라는 개념은 언뜻 보기에 사뭇 달라보인다.

그렇지만 그 개념의 본질까지 다른 것은 아니다. 일상 속에 쓰이는 독립의 의미와 마찬가지로

벡터 공간의 독립, 확률 이론의 독립, 그래프 구조에서의 독립은 모두 다른 대상에 의해 설명되거나 구성되지 않는 상태를 뜻한다.
즉, 존재하거나 작동하기 위해 타자의 개입이 필요하지 않은 상태, 다시 말해 자기 스스로 성립할 수 있는 상태라는 점에서 본질적으로 같다.

 

다만 이러한 독립이 구체적으로 드러나는 방식은 그 개념이 정의되는 수학적 공간의 연산 구조에 따라 달라질 뿐이다.

  • 벡터 공간에서는 연산의 기본 단위가 선형결합이기 때문에 어떤 벡터가 다른 벡터들의 선형결합으로 나타날 수 없다는 사실은
    그 벡터가 새로운 차원을 형성한다는 구조적 의미를 갖는다.
  • 확률 공간에서는 연산의 기본 단위가 조건부 확률이기 때문에 어떤 사건이 다른 사건을 알아도 예측되지 않는다는 것은
    그 사건이 정보적으로 분리되어 있다는 의미를 갖는다.

즉, 동일한 철학적 정의(의존의 부재)에서 출발한 독립 개념이 서로 다른 수학적 구조 안에서는
"차원을 확장하는 힘", "정보 간 예측의 단절", "경로의 비포함성"과 같은 서로 다른 형태로 구체화되는 것이다.

결국, "의존하지 않는다"는 이 하나의 문장은 수학 각 분야에서 "생성할 수 없다", "예측할 수 없다", "경로로 대체되지 않는다"와 같이 각 구조의 언어로 번역되어 표현되는 것이다.

이제 우리는 이러한 관점에서 독립이라는 개념을 두 가지 서로 다른 방향에서 다시 바라볼 수 있다. 하나는 구조적으로 생성 불가능한 상태로서의 독립 다른 하나는 정보적으로 예측 불가능한 상태로서의 독립이다.

 

 


 

구조적 독립과 정보적 독립

위의 두 관점으로 독립의 개념을 두 가지 다른 ‘독립’ 개념으로 나눌 수 있을 것이다.

이를 구조적 독립과 정보적 독립이라 하겠다.

  • 구조적 독립이란
    어떤 대상이 구성 요소나 구조에 의해 생성되지 않음을 의미한다.
    이는 "생성 불가능성"의 의미와 정확히 대응된다. 이는 존재의 구조나 물리적 구성 차원에서의 독립성을 뜻한다.

    위에서 언급했듯이
    1) 하나의 벡터가 다른 벡터들의 선형결합으로 표현되지 않는다면 그것은 구조적으로 독립이다. 
    2)  어떤 간선이 다른 간선들로 만들어진 경로에 포함되지 않는다면 그것도 구조적으로 독립이다.
    3) 프로그래밍에서 모듈 A가 모듈 B에 전혀 의존하지 않고 작동한다면
    → A는 B에 대해 구조적으로 독립이다. 또한, 반대로 B도 A에 대해 구조적으로 독립이다.
    → 이는 서로 별개의 구조라는 뜻이며 한 쪽이 없어도 다른 쪽이 문제없이 존재할 수 있음을 의미한다.
    ( 위의 예시들에 대해서는 다음 글에서 자세히 다루겠다 ) 

    즉, 어떤 대상이 그 자체로 존재의 조건을 만족할 수 있는가를 묻는 것이다.
  • 정보적 독립이란
    어떤 사건이나 대상이 다른 정보로부터 예측될 수 없음을 의미한다.
    이는 "예측 불가능성"의 개념과 대응된다.
    1) 주사위를 두 번 던졌을 때
    → 첫 번째 결과를 알아도 두 번째 결과의 확률은 바뀌지 않는다.
    → 두 사건은 정보적으로 독립이다.
    2) 두 센서 A, B가 각각 다른 위치의 데이터를 측정하고 있고
    → A의 측정값을 알더라도 B의 값을 더 정확히 추정할 수 없다면
    → A와 B는 정보적으로 독립이다.


    즉, 어떤 대상에 대해 아는 것이 다른 대상에 대한 추론 가능성이나 예측력을 높이지 못할 때, 우리는 이 둘이 정보적으로 독립이라 한다.

 

이 둘은 모두 '의존하지 않는다'는 공통 개념을 포함하지만
그 기준점은 완전히 다르다.

비교 항목 구조적 독립 정보적 독립
핵심 질문 존재 자체가 성립 가능한가? 정보를 통해 예측 가능한가?
기준 생성 구조의 독립성 정보량의 상호 무관성
관련 분야 선형대수, 그래프 이론, 시스템 구조, 존재론 확률이론, 통계학, 정보이론, 인식론
개념적 초점 '존재의 원천'에 대한 질문 '지식의 확장 가능성'에 대한 질문
키워드 생성 불가능성 예측 불가능성
판단 방법 다른 요소들로 만들 수 있는가? 다른 정보로 더 잘 알 수 있는가?
 

따라서 다음과 같이 두 개의 독립이 엇갈려서 나타날 수 있다.

예를 들어

  • 두 사람의 생각이 전혀 예측되지 않는다면
    → 정보적으로는 독립일 수 있지만
    → 둘이 같은 교육 시스템에서 자라났다면 구조적으로는 의존적일 수 있다.
  • 반대로, 서로 완전히 분리된 장치가 있다고 해도
    → 동일한 외부 정보를 바탕으로 작동한다면
    → 구조적으로는 독립이지만 정보적으로는 종속적일 수 있다.

이렇듯 서로 다른 분야에 걸쳐 다양하게 나타나는 독립이란 개념은 단순히 "의존하지 않는다"는 말로는 충분히 설명되지 않는다.

 

가지 풀이로 모든 해결하려는 집착의 비용

고등학교 나는 수학 문제를 보자마자 대수식부터 세웠다. 모든 문제를 그렇게 풀면 깔끔할 알았다. 결과는 시간 부족이었다. 비슷하게 다른 과목도 성인이 돼서 치른 많은 시험에서도 다른 분야를 공부할 때에도 그런 방법을 찾았던 같다. 가장 우아하고 결정적이며 강력한 무언가쫓았다.
과정이 마냥 버려지진 않았다. 다만 분명히 말할 있는 것은 한국의 많은 사고력 시험에서 이런 행위는 매우 비효율적이었다는 것이다. 이제 나는 비효율적이었는지 같다. 경험적으로 체득했을 뿐만 아니라 지식을 쌓고 다양한 이론들을 접하며 같은 결론을 내린 많은 거인들이 있었다.

No Free Lunch 정리
어떤 방법도 모든 문제에서 평균적으로 우수하지 않다. 은탄환은 없다.

지식을 추구하라

나는 때때로 수식으로 없는 문제에 매달렸다. 그것이 수학적으로 없는 문제라는 사실조차 모른 채로 시간을 쏟았다. 집중력은 산만하게 흩어졌고 ADHD처럼 보이는 증상까지 겹쳤다. 문제에 매몰되어 의미 없는 반복에 빠지곤 했다. 돌아보면 그것은 지식 부족의 문제였다.
지식을 쌓았다면 일찍 한계를 깨닫고 다른 길을 찾았을 것이다.

지식을 추구하는 시행착오를 줄이는 가장 빠른 방법이다.
모르면 바로 찾아라. 작은 습관이 불필요한 고통과 시간을 줄인다.

유형 학습으로 약한 고리를 공략하기

나는 과외 학생들에게 항상 한마디만 한다면 유형별로 풀라한다. 생각을 많이 하지 않아도 된다. 인간의 뇌는 반복되는 유형 속에서 스스로 패턴을 찾고 정렬한다.
조금만 구체화하면 아래와 같다.

  • 기출을 훑어 유형을 분류한다.
  • 유형에서 가장 오래 걸리는 단계를 측정한다.
  • 시간을 잡아먹는 단계마다 전략만든다.
  • 유형 연습으로 전략 전환 속도를 줄인다.

뇌와 딥러닝의 닮은

뇌는 자주 쓰는 연결을 강화한다. 딥러닝은 오차 역전파로 가중치를 조정한다. 구조 모두 세부 패턴에 맞춰 파라미터를 다르게 준다.
유형 학습은 이런 미세 조정과 같다. 전체를 하나의 규칙으로 묶으려 하지 않고 국소 최적화반복한다.

깊이 파기의 가치와 시험의 현실

전문가가 되려면 주제를 끝까지 파고들어야 한다. 깊은 탐구는 직관과 통찰준다.
그러나 제한 시간이 있는 시험에서는 위험하다. 파고드는 동안 다른 유형에서 손해가 난다.
시험을 통과한 뒤에는 깊이를 다시 파도 늦지 않다.

모든 문제를 한 번에 해결하는 방법은 없다

개발자든 연구자든 모든 문제를 단번에 해결하는 방법을 찾고 싶어 한다.
하지만 여러 분야의 이론은 그런 기대가 잘못된 접근이라고 말한다.
어떤 기술도 어떤 알고리즘도 모든 상황에서 항상 잘 작동하지 않는다.

대표적인 예가 No Silver BulletNo Free Lunch이다.
두 이론은 서로 다른 분야에서 나왔지만 같은 결론을 말한다.
비슷한 내용은 다른 분야에서도 반복된다.


이들은 모두 이렇게 말한다.

단일 도구로 모든 문제를 해결하려 하지 마라.

내용은 달라도 대부분의 정리는 다음의 구조를 따른다.

  • 첫째. 해결하려는 대상에는 제거할 수 없는 제한이 있다.
  • 둘째. 어떤 방법도 평균적으로 항상 더 낫지는 않다.
  • 셋째. 결국 무엇을 선택하고, 무엇을 포기할지 정해야 한다.

분야별 정리

정리명분야핵심 내용
No Silver Bullet (1986) 소프트웨어 개발 복잡함은 사라지지 않는다.
No Free Lunch (1997) 최적화 하나의 알고리즘이 항상 우수할 수 없다.
CAP 정리 (2002) 분산 시스템 일관성, 가용성, 분리 허용성을 동시에 충족할 수 없다.
Arrow 정리 (1951) 집단 선택 모든 조건을 만족하는 집계 방법은 없다.
Gödel 정리 (1931) 수학 증명할 수 없는 참이 반드시 존재한다.
Halting Problem (1936) 계산 이론 정지 여부를 판단하는 일반 알고리즘은 없다.
Bias–Variance Trade-off 머신러닝 편향과 분산은 동시에 줄일 수 없다.
Shannon 압축 한계 (1948) 정보 처리 모든 데이터를 항상 더 짧게 만들 수는 없다.
  • No Silver Bullet
    소프트웨어 개발에서 단숨에 생산성을 높이는 방법은 없다.
    효율을 높이는 기술은 존재하지만, 반복적인 개선 없이는 큰 변화가 생기지 않는다.
  • No Free Lunch
    어떤 최적화 알고리즘도 모든 문제에 대해 평균적으로 항상 우수할 수는 없다.
    알고리즘의 성능은 문제마다 다르다.
  • CAP 정리
    분산 시스템에서 일관성, 가용성, 분리 허용성 중 세 가지를 모두 만족할 수 없다.
    네트워크 장애가 발생하면 하나는 포기해야 한다.
  • Bias–Variance Trade-off
    모델이 복잡하면 훈련 데이터에는 잘 맞지만, 새로운 데이터에는 민감하게 반응해 성능이 떨어질 수 있다.
    단순한 모델은 일관되지만 오차가 크다.
    결국 완벽한 모델은 없다.

다른 정리들

  • Arrow 정리
    선거 방식에서 비독재, 만장일치, 독립성, 완전성 같은 조건을 모두 만족하는 집계 방식은 없다.
  • Gödel 정리
    표현력이 충분한 수학 체계에는 참이지만 증명할 수 없는 명제가 반드시 존재한다.
  • Halting Problem
    모든 프로그램의 정지 여부를 판별하는 알고리즘은 존재하지 않는다.
  • Shannon 압축 한계
    무손실 압축에서 모든 데이터를 항상 줄일 수는 없다.
    어떤 입력은 오히려 길어질 수밖에 없다.

 

이 이론들은 모두 불가능한 것이 있다는 사실을 알려 준다.
하지만 단순히 포기하라는 의미는 아니다.

모든 조건을 만족하는 방법은 없다.
그래서 우리는 상황에 따라 선택하고 제한을 감수해야 한다.
불가능을 인정하면 가능한 것의 범위가 드러난다.
무엇을 얻기 위해 무엇을 포기할지 판단하는 기준이 생긴다.

이해는 끝이 없다는 걸 이해하게 되기까지

어떤 개념을 이해했다고 느끼는 순간이 있다.
정의를 외우고 예시도 이야기할 수 있다.
그럼 이제 이건 됐다고 생각하고 다음으로 넘어간다.

그런데 시간이 조금 지나거나 예상 못 한 상황을 만나면
그 이해는 생각보다 쉽게 흔들린다.
잘 연결돼 있다고 믿었던 개념들이 각자 흩어져 버린다.

그때부터 묻게 됐다.
‘이해했다’는 건 정확히 어떤 상태를 말하는 걸까
이 질문 하나가 내 공부 방식 사고방식 심지어 일과 경험을 대하는 태도까지 바꿔 놓았다.


이해와 암기 따로 보지 않기로 했다

처음에는 나도 그랬다.
이해는 암기보다 더 깊고 고급스러운 거라고.
그러나 어느 순간부터 둘은 함께 간다라는 걸 깨달았다.

암기는 정보를 붙잡아 두고 이해는 그걸 엮어 준다.
다른 정보들과 연결되기 시작하면 기억도 자연스럽게 오래간다.
이해는 암기가 머무를 수 있는 자리다.
둘 중 하나만 있어도 불안하다.


이해에도 단계가 있다

이해했다고 말하려면 단순히 외우는 걸 넘어서야 한다.
이건 나 스스로 정리한 기준이다.

  1. 설명할 수 있어야 하고
  2. 왜 그렇게 되는지 말할 수 있어야 하며
  3. 다른 상황에도 적용해볼 수 있어야 하고
  4. 어디서 시작됐고 어디까지 확장될 수 있는지도 짚을 수 있어야 한다

이게 다 되면 완벽할까 꼭 그렇지도 않다.
오히려 그렇게 생각하는 순간 새로운 질문이 생긴다.
이해는 점이 아니라 움직이는 선이다.


이해가 계속 바뀌는 이유

이해는 왜 이렇게 자주 바뀔까
내가 찾은 이유는 크게 네 가지다.

  1. 기원을 알면 다르게 보인다
    대부분의 개념은 문제를 풀기 위한 도구로 태어났다.
    그 문제를 모르면 개념도 껍데기처럼 느껴진다.
  2. 전제는 끝이 없다
    왜 그렇게 되는지 물으면 결국 전제가 나온다.
    그런데 전제를 또 물으면 그 위에 또 다른 전제가 있다.
    끝까지 가기가 어렵다.
  3. 처음 생각해낸 순간은 재현이 안 된다
    그 사람이 어떤 맥락에서 어떤 직관으로 떠올렸는지는 대부분 알 수 없다.
    우리는 그냥 결과만 따라가고 있을지도 모른다.
  4. 적용할수록 흔들린다
    다른 문제에 써보면 어긋난다.
    틀렸다는 뜻이 아니라 다시 봐야 한다는 뜻이다.

예시는 끝이 아니다 시작일 뿐이다

어떤 예시를 듣고 “아 이제 알겠다”는 느낌이 든 적 누구나 있을 거다
나도 그렇다.
하지만 그건 아주 좁은 틀에서만 통하는 국지적 이해일 수 있다

그 개념이 정말 내 것이 되려면
다른 맥락에 던져봐야 한다.
그래도 작동한다면 그때 비로소 조금은 이해했다고 말할 수 있다.


경험도 이해를 만든다

일을 잘하는 사람을 보고 우리는 “짬이 찼다”고 말한다.
그건 단순히 오래 했다는 뜻이 아니다.
많은 상황을 겪고 많은 실패와 성공을 누적하면서
패턴을 감으로 익혔다는 뜻이다.

어떤 문제가 생기면 어디를 먼저 의심해야 할지 안다.
그건 데이터를 많이 본 알고리즘이 가중치를 바꾸는 것과 비슷하다.
시간이 만든 이해는 견고하다.


전제를 보면 학문이 보인다

어느 날 수학이 공리 위에 세워진 체계라는 걸 선명하게 이해하게 됐다.
그 순간부터 수학은 단순한 계산이 아니라
전제를 세우고 그로부터 무엇이 필연적으로 나오는지를 탐색하는 구조로 보이기 시작했다

그 시선으로 물리를 다시 보게 됐다.
물리학도 자연을 그대로 묘사하는 게 아니라
모델을 세우고 예측하는 학문이었다.
수식보다도 그 수식이 무엇을 전제로 하고 있는지에 더 눈이 갔다.

그 이후로 다른 분야들도 다르게 보였다.
경제학 공학 컴퓨터과학 프로그래밍 언어
전부 각자의 방식으로 현실을 모델링하고 추상화하는 틀이었다.

내용보다 그걸 만든 철학과 전제를 먼저 이해하게 되니까
공부도 훨씬 편해졌다.
결국 이해란 지식을 맥락에 놓는 일이라는 걸 조금은 알게 된 것 같다.


이해가 흔들려도 괜찮다

이제는 이해했다는 말을 조심하게 된다.
지금 당장 내가 풀고 싶은 문제를 해결할 수 있다면
그 정도면 일단 충분하다고 여긴다.

하지만 곧 또 다른 상황이 오고 그 개념은 다시 낯설어진다.
그래서 빈틈을 메우고 연결을 다시 짓는다.

완벽한 이해는 없을지도 모른다.
하지만 빈틈을 알아차리고 거기서 다시 시작할 수 있다면
그건 계속 배우고 있다는 뜻이다.

'잡생각' 카테고리의 다른 글

복소평면에 대한 생각  (3) 2024.12.29
데이터가 사는 곳  (3) 2024.12.12
효과와 효율  (0) 2024.03.04

이분탐색의 구조

이 문제는 정수 범위 위의 단조 불리언 함수(monotonic boolean function)를 기반으로 한다.
수학적으로 이분탐색이 정확히 작동할 수 있는 구조 위에 놓여 있다.

  1. 문제 정의
  • 심사관은 여러 명 존재한다
  • 각 심사관은 time[i]분마다 1명씩 심사 가능하다
  • 사람 수는 n명이다
  • 목표: 모든 사람이 심사를 마치기 위한 최소 시간 t를 구하라
  1. 함수 정의

시간 t가 주어졌을 때, 각 심사관이 처리할 수 있는 인원을 모두 더하면
다음과 같은 함수 f(t)를 얻는다.

$$
f(t) = \sum_{i=1}^{m} \left\lfloor \frac{t}{\text{time}[i]} \right\rfloor
$$

이 함수는 단조 증가 함수이다.
즉, t가 커질수록 처리 인원은 절대 줄지 않는다.

  1. 명제 정의

우리는 다음과 같은 참/거짓 명제를 생각할 수 있다.

$$
P(t) := (f(t) \geq n)
$$

이 명제는 t가 증가할수록 False → True로 바뀐다.
즉, 단조 불리언 함수이며, 한 번만 상태가 바뀐다.

목표는 P(t)가 처음으로 True가 되는 가장 작은 t를 찾는 것이다.

  1. 이분탐색이 가능한 이유

이분탐색은 다음 조건을 만족할 때 사용할 수 있다:

  • 정수 범위 t ∈ ℕ
  • P(t)는 단조 불리언 함수 (False → True)
  • 우리는 min { t | P(t) = True } 를 찾고자 한다

즉, "논리 명제의 최소 참 구간"을 찾는 탐색이 된다.

아래는 이를 구현한 이분탐색 알고리즘이다.

def solution(n, times):
    left, right = 1, max(times) * n
    while left <= right:
        mid = (left + right) // 2
        people = sum(mid // t for t in times)
        if people >= n:
            right = mid - 1
        else:
            left = mid + 1
    return left

I. 머신러닝 기초 및 학습 패러다임 (Fundamentals & Learning Paradigms)

A. 기본 개념 (Basic Concepts)

  • 머신러닝 (Machine Learning): 명시적인 프로그래밍 없이 데이터로부터 학습하여 패턴을 인식하고 예측 또는 결정을 내리는 시스템을 구축하는 인공지능의 한 분야이다.
  • 데이터 (Data), 특징 (Features), 레이블 (Labels): 학습의 기반이 되는 정보(데이터), 모델의 입력으로 사용되는 개별 속성(특징), 지도 학습에서 예측 대상이 되는 정답(레이블)이다.
  • 모델 (Model): 데이터로부터 학습된 패턴의 수학적 표현으로, 입력을 받아 출력을 생성한다.
  • 학습/훈련 (Learning/Training): 데이터를 사용하여 모델 파라미터를 조정하는 과정이다.
  • 추론/예측 (Inference/Prediction): 학습된 모델을 사용하여 새로운 데이터에 대한 결과를 생성하는 과정이다.
  • 과적합 (Overfitting) / 과소적합 (Underfitting): 모델이 훈련 데이터에만 너무 잘 맞거나(과적합), 훈련 데이터의 패턴조차 제대로 학습하지 못하는(과소적합) 현상이다.
  • 편향-분산 트레이드오프 (Bias-Variance Tradeoff): 모델의 예측 오차는 편향(모델의 단순성으로 인한 오류)과 분산(데이터 변화에 대한 민감성) 요소로 나뉘며, 이 둘 사이의 균형을 맞추는 것이 중요한다. 일반적으로 복잡도를 높이면 편향은 줄고 분산은 늘어난다.

B. 학습 패러다임 (Learning Paradigms)

  1. 지도 학습 (Supervised Learning)
  2. 비지도 학습 (Unsupervised Learning)
  3. 강화 학습 (Reinforcement Learning)
  4. 준지도 학습 (Semi-Supervised Learning)
  5. 자기지도 학습 (Self-Supervised Learning)

II. 주요 머신러닝 모델 및 알고리즘 (Key ML Models & Algorithms)

A. 모델 분류 기준 (Model Classification Criteria)

  1. 파라메트릭 모델 (Parametric Models)
  2. 비파라메트릭 모델 (Non-Parametric Models)
  3. 준파라메트릭 모델 (Semi-Parametric Models)

B. 선형 모델 (Linear Models)

  • Linear Regression: 입력과 출력 사이의 선형 관계를 추정하는 회귀 모델이다.
  • Polynomial Regression: 입력 변수의 다항식을 사용해 비선형 관계를 모델링합니다 (선형 모델의 확장).
  • Logistic Regression: 입력 변수의 선형 조합을 통해 이진 분류 클래스 확률을 예측한다.
  • Softmax Regression: 다중 클래스 분류를 위한 확장형 선형 모델이다. 출력층에 Softmax 함수를 적용해 확률 분포를 만든다.
  • Linear Discriminant Analysis (LDA): 클래스 간 분산을 최대화하고 클래스 내 분산을 최소화하는 선형 판별 분류 모델이다. (차원 축소 기법으로도 사용됨 - II.H 참고)
  • Ridge Regression: L2 정규화를 사용하여 과적합을 줄이는 선형 회귀이다.
  • Lasso Regression: L1 정규화를 사용하여 가중치 희소성을 유도하는 회귀이다.
  • Elastic Net: L1 L2 정규화를 혼합하여 사용하는 회귀 방법이다.

C. 결정 트리 및 앙상블 (Decision Trees & Ensembles)

  1. Decision Tree: 데이터 특성을 기반으로 조건 분기를 반복하여 예측하는 나무 구조 모델이다.
  2. 앙상블 학습 (Ensemble Learning): 여러 개의 약한 모델을 조합해 더 강한 모델을 만든다.

D. 서포트 벡터 머신 (Support Vector Machines - SVM)

  • Support Vector Machine (Classifier): 마진(margin) 최대화를 통해 최적의 분류 경계(결정 초평면)를 학습하는 모델이다. 커널 기법(Kernel Trick)을 통해 비선형 문제도 효과적으로 해결할 수 있다.
  • Support Vector Regression (SVR): SVM의 원리를 회귀 문제에 적용한 모델이다. 마진 내 오류는 허용하면서 마진 밖 오류를 최소화한다.

E. 베이즈 모델 (Bayesian Models)

  • Optimal Bayes Classifier: 베이즈 정리를 기반으로 사전 확률과 우도(likelihood)를 이용하여 분류 오류를 최소화하는 이론적인 최적 분류기이다. 실제 구현은 확률 분포 추정이 필요한다.
  • Naive Bayes: 모든 특징들이 클래스에 대해 조건부 독립(conditionally independent)이라고 가정하고 베이즈 정리를 적용하는 간단하면서도 효과적인 분류기이다.

F. 거리 기반 모델 (Distance-Based Models)

  • K-Nearest Neighbors (KNN): 새로운 데이터 포인트 주변의 가장 가까운 k개의 훈련 데이터 이웃을 참조하여 다수결(분류) 또는 평균(회귀)으로 예측하는 비파라메트릭 모델이다.
  • Minimum Distance Classifier: 각 클래스의 평균(또는 프로토타입)까지의 유클리드 거리(또는 다른 거리 척도)를 계산하여 가장 가까운 클래스로 분류하는 간단한 분류기이다.

G. 군집화 알고리즘 (Clustering Algorithms)

  • K-Means: 데이터를 k개의 중심점(centroid) 기준으로 반복적으로 할당하고 중심점을 업데이트하여 클러스터링한다.
  • Hierarchical Clustering: 데이터를 유사도(또는 거리) 기반으로 계층적인 트리 구조(덴드로그램)로 병합(agglomerative)하거나 분할(divisive)한다.
  • DBSCAN (Density-Based Spatial Clustering of Applications with Noise): 데이터 포인트의 밀도를 기반으로 클러스터를 형성하며, 임의 형태의 클러스터를 찾고 잡음(noise) 데이터 식별에 강건한다.
  • Gaussian Mixture Model (GMM): 데이터가 여러 개의 가우시안(정규) 분포의 혼합으로 구성되었다고 가정하고, 각 데이터 포인트가 각 분포에 속할 확률을 추정하여 클러스터링합니다 (Soft Clustering).
  • Spectral Clustering: 데이터 포인트 간의 유사도를 그래프로 표현하고, 그래프 라플라시안 행렬의 고유벡터(eigenvectors)를 사용하여 저차원 공간으로 임베딩한 후 클러스터링을 수행한다. 복잡한 형태의 클러스터 분리에 효과적이다.

H. 차원 축소 및 표현 학습 (Dimensionality Reduction & Representation Learning)

  1. 선형 차원 축소 (Linear Dimensionality Reduction)
  2. 비선형 차원 축소 (Non-linear Dimensionality Reduction)
  3. 표현 학습 (Representation Learning) - 주로 Autoencoder 기반

I. 신경망 기초 (Neural Network Basics)

  • Neural Network (Artificial Neural Network, ANN): 상호 연결된 노드(뉴런)들의 층(layer)으로 구성된 모델이다. 비선형 활성화 함수를 통해 복잡한 패턴을 학습할 수 있으며, 지도, 비지도, 강화 학습 등 다양한 패러다임에 적용될 수 있다.

J. 기타 모델 (Other Models)

  • Gaussian Process Regression (GPR): 함수 자체에 대한 사전 분포(prior distribution, 주로 가우시안 프로세스)를 정의하고, 관측 데이터를 통해 사후 분포(posterior distribution)를 업데이트하여 예측을 수행하는 베이즈 비파라메트릭 회귀 방법이다. 예측의 불확실성 추정이 가능한다.
  • Generalized Additive Model (GAM): 선형 회귀를 확장하여 각 특징 변수에 대해 비선형 함수(주로 스플라인)를 적용한 후 이들의 합으로 예측하는 준파라메트릭 모델이다. 선형 모델의 해석 가능성을 유지하면서 비선형 관계를 모델링할 수 있다.
  • Cox Proportional Hazards Model: 생존 분석(survival analysis)에 주로 사용되는 준파라메트릭 모델로, 특정 시점에서의 사건 발생 위험률(hazard rate)을 공변량(covariates)의 함수로 모델링한다. 기저 위험 함수(baseline hazard function)는 비모수적으로, 공변량의 효과(계수)는 모수적으로 추정한다.

III. 딥러닝 아키텍처 (Deep Learning Architectures)

딥러닝은 여러 개의 은닉층을 가진 심층 신경망(Deep Neural Network, DNN)을 사용하여 복잡한 문제를 해결하는 머신러닝의 하위 분야이다. 특정 과업에 특화된 다양한 아키텍처가 개발되었다.

A. CNN (Convolutional Neural Network) 계열

  • LeNet: 최초의 실용적인 CNN 중 하나로, 주로 손글씨 숫자 인식(MNIST)에 사용되었다.
  • AlexNet: GPU를 활용하여 대규모 이미지 분류(ImageNet)에서 획기적인 성능을 보여 딥러닝 부흥을 이끈 모델이다.
  • VGGNet: 3x3 크기의 작은 합성곱 필터를 깊게 쌓아 네트워크 깊이의 중요성을 보여준 모델이다.
  • ResNet (Residual Network): 잔차 연결(residual connection) 또는 스킵 연결(skip connection)을 도입하여 매우 깊은 네트워크(수백~수천 개 층)의 학습을 가능하게 하고 기울기 소실 문제를 완화했다.
  • DenseNet (Densely Connected Convolutional Network): 각 층이 이후의 모든 층과 직접 연결되는 구조(dense connection)를 통해 특징 재사용(feature reuse)을 극대화하고 정보 흐름을 개선했다.
  • EfficientNet: 네트워크의 깊이(depth), 너비(width), 입력 해상도(resolution)를 복합적인 스케일링 방법(compound scaling)으로 균형 있게 확장하여 효율성과 성능을 동시에 높인 모델이다.

B. 순환 신경망 (RNN) 및 관련 구조 (Recurrent Neural Networks & Related Architectures)

  • RNN (Vanilla RNN): 순환 연결을 통해 이전 스텝의 정보를 현재 스텝의 계산에 활용하여 순차 데이터(sequence data)를 처리하는 기본적인 순환 구조이다. 장기 의존성 문제(long-term dependency problem)에 취약한다.
  • LSTM (Long Short-Term Memory): 입력, 망각, 출력 게이트(gate) 메커니즘을 도입하여 장기 의존성 문제를 효과적으로 해결한 RNN의 변형 구조이다.
  • GRU (Gated Recurrent Unit): LSTM의 구조를 간소화(업데이트 게이트, 리셋 게이트 사용)하여 계산 효율성을 높이면서 유사한 성능을 보이는 구조이다.
  • Bi-LSTM (Bidirectional LSTM): 순방향과 역방향의 LSTM을 모두 사용하여 과거와 미래의 문맥 정보를 동시에 활용하는 구조이다.
  • Seq2Seq (Sequence-to-Sequence): 인코더 RNN이 입력 시퀀스를 고정된 크기의 문맥 벡터로 압축하고, 디코더 RNN이 이 문맥 벡터를 받아 출력 시퀀스를 생성하는 구조이다. 기계 번역 등에 사용된다. 초기 Seq2Seq 모델은 고정된 크기의 문맥 벡터가 정보 병목 현상을 일으킬 수 있다는 한계가 있었다.

C. 어텐션 메커니즘 (Attention Mechanism)

  • 정의: 어텐션은 모델이 출력 시퀀스의 특정 부분을 생성할 때, 입력 시퀀스 전체에서 관련성이 높은 부분에 '집중'하여 가중치를 부여하는 메커니즘이다. 이는 인간이 정보를 처리할 때 중요한 부분에 집중하는 방식과 유사한다.
  • 역할: 초기에는 RNN 기반 Seq2Seq 모델의 한계(고정된 문맥 벡터로 인한 정보 손실)를 극복하기 위해 도입되었다. 디코더가 각 타임 스텝에서 입력 시퀀스의 모든 은닉 상태(hidden states)를 참고하되, 현재 예측과 관련성이 높은 상태에 더 높은 가중치(어텐션 스코어)를 부여하여 동적인 문맥 벡터를 생성한다.
  • 핵심 요소 (Query, Key, Value): 일반적인 어텐션 메커니즘은 쿼리(Query, Q), (Key, K), (Value, V)이라는 세 가지 요소로 설명될 수 있다.
  • 진화: 어텐션 메커니즘은 Seq2Seq 모델의 성능을 크게 향상시켰으며, 이후 트랜스포머 아키텍처에서는 순환 구조를 완전히 대체하는 핵심 구성 요소(셀프 어텐션)로 발전했다.

D. Transformer 계열 (Transformer Family)

  • Transformer: RNN의 순환 구조를 완전히 제거하고, 셀프 어텐션(Self-Attention) 메커니즘만을 사용하여 입력 시퀀스 내의 요소 간 관계(의존성)를 직접 모델링하는 혁신적인 아키텍처이다. 순환 구조가 없어 병렬 처리가 매우 용이하며, 이는 대규모 모델 학습 시간을 크게 단축시켰다.
  • BERT (Bidirectional Encoder Representations from Transformers): Transformer의 인코더 구조만을 사용하여, 문장 내 양방향 문맥을 동시에 고려하여 단어 및 문장 표현을 사전 학습(pre-training)하는 모델이다. 주로 자연어 이해(NLU) 작업에 강점을 보이며, 마스크된 언어 모델(Masked Language Model, MLM)과 다음 문장 예측(Next Sentence Prediction, NSP)이라는 두 가지 목표로 사전 학습된다.
  • GPT (Generative Pre-trained Transformer): Transformer의 디코더 구조를 기반으로, 대규모 텍스트 데이터로 사전 학습되어 주로 텍스트 생성(text generation) 작업에 강력한 성능을 보이는 모델이다. 이전 단어들을 바탕으로 다음 단어를 예측하는 방식으로 학습하며, 단방향(왼쪽에서 오른쪽) 문맥만을 고려한다.
  • T5 (Text-to-Text Transfer Transformer): 모든 NLP 문제를 텍스트 입력에서 텍스트 출력으로 변환하는 통일된 프레임워크(text-to-text)를 제안한 모델이다. 인코더-디코더 구조를 사용한다.
  • 최신 대형 언어 모델 (Large Language Models - LLMs):

E. Vision Transformer (ViT) 계열

  • ViT (Vision Transformer): 이미지를 여러 개의 작은 패치(patch)로 나누고, 각 패치를 시퀀스 데이터처럼 처리하여 Transformer 구조를 이미지 인식에 적용한 모델이다.
  • DeiT (Data-efficient Image Transformers): ViT를 더 적은 데이터로도 효율적으로 학습시키기 위해 지식 증류(knowledge distillation) 등의 기법을 사용한 모델이다.
  • Swin Transformer: 이미지를 계층적(hierarchical)으로 처리하고, 이동된 윈도우(shifted window) 기반의 로컬 어텐션을 사용하여 계산 효율성과 성능을 높인 ViT 변형 모델이다.
  • ConvNeXt: CNN의 고전적인 구조(: ResNet) Transformer의 설계 원칙(: 레이어 정규화, 활성화 함수 변경 등)을 점진적으로 적용하여 CNN의 성능을 크게 향상시킨 모델이다.

F. 그래프 신경망 (Graph Neural Networks - GNN)

  • GCN (Graph Convolutional Network): 그래프 구조 데이터에서 노드의 특징을 업데이트할 때, 인접 노드들의 특징 정보를 평균(또는 다른 집계 함수)하여 사용하는 기본적인 그래프 합성곱 방식이다.
  • GAT (Graph Attention Network): 노드 특징을 집계할 때, 인접 노드들과의 관계 중요도(어텐션 가중치)를 학습하여 가중 평균을 사용하는 방식이다.
  • GraphSAGE (Graph Sample and Aggregate): 대규모 그래프에서 모든 이웃 대신 일부 이웃을 샘플링하여 특징을 집계함으로써 확장성과 효율성을 높인 방식이다.
  • Graph Transformer: Transformer의 셀프 어텐션 메커니즘을 그래프 데이터에 적용하여 노드 간의 장거리 의존성 및 복잡한 관계를 모델링하는 구조이다.

G. 생성 모델 (Generative Models)

  • GAN (Generative Adversarial Network): 실제 데이터와 유사한 데이터를 생성하는 생성자(Generator)와 생성된 데이터가 실제인지 가짜인지 판별하는 판별자(Discriminator)가 서로 경쟁하며 학습하는 구조이다. 고품질 이미지 생성 등에 뛰어난다.
  • VAE (Variational Autoencoder): 확률적인 잠재 공간을 학습하여 데이터를 생성하는 오토인코더 기반 생성 모델이다. (II.H.3 참고)
  • Diffusion Models: 데이터에 점진적으로 노이즈를 추가하는 과정(forward process)과 노이즈로부터 원본 데이터를 점진적으로 복원하는 과정(reverse process)을 학습하여 고품질의 다양한 데이터를 생성하는 모델이다. GAN보다 학습이 안정적이고 생성된 샘플의 다양성이 높다는 장점이 있다.
  • Latent Diffusion Models (LDM): 고차원 데이터(: 이미지)를 직접 다루는 대신, 저차원의 압축된 잠재 공간(latent space)에서 확산(diffusion) 및 복원 과정을 수행하여 계산 효율성을 높인 모델이다 (: Stable Diffusion).
  • ControlNet: 사전 학습된 대규모 확산 모델(: Stable Diffusion)에 추가적인 조건(: 스케치, 자세)을 입력하여 생성 과정을 제어할 수 있도록 확장한 구조이다.

H. 멀티모달 / 분할 / 3D (Multimodal / Segmentation / 3D)

  • SAM (Segment Anything Model): 입력 이미지와 프롬프트(: 클릭, 박스)를 받아 이미지 내의 어떤 객체든 분할(segmentation)할 수 있는 범용적인 제로샷(zero-shot) 분할 모델이다.
  • NeRF (Neural Radiance Fields): 여러 각도에서 촬영된 2D 이미지들로부터 3D 장면을 연속적인 신경망 표현(신경 광채 필드)으로 학습하여, 새로운 시점에서의 이미지를 사실적으로 렌더링하는 기술이다.

IV. 모델 학습 및 평가 (Model Training & Evaluation)

A. 손실 함수 (Loss Functions)

모델의 예측값과 실제 값 사이의 오차를 측정하는 함수이다. 훈련 목표는 이 손실을 최소화하는 것이다.

  1. 회귀 문제용 (Regression Loss)
  2. 분류 문제용 (Classification Loss)
  3. 정보 이론 기반 손실 (Information Theory Based Loss)

B. 최적화 알고리즘 (Optimization Algorithms)

손실 함수를 최소화하기 위해 모델 파라미터(가중치)를 업데이트하는 방법이다.

  1. 1차 미분 기반 최적화 (First-Order Optimization): 기울기(gradient) 정보만 사용한다.
  2. 2차 미분 기반 최적화 (Second-Order Optimization): 헤시안 행렬(Hessian matrix) 2차 미분(곡률) 정보를 사용한다. 수렴 속도가 빠를 수 있지만 계산 비용이 매우 높다.
  3. 제약 최적화 (Constrained Optimization): 특정 제약 조건 하에서 목표 함수를 최적화한다.
  4. 메타휴리스틱 알고리즘 (Metaheuristic Algorithms): 문제에 대한 가정이 적고, 전역 최적해(global optimum)를 찾기 위한 경험적(heuristic) 탐색 기법이다. 주로 복잡하거나 미분 불가능한 문제에 사용된다.
  5. 이산 최적화 (Discrete Optimization): 결정 변수가 정수 또는 이산적인 값을 갖는 최적화 문제이다.
  6. 다목적 최적화 (Multi-Objective Optimization): 두 개 이상의 상충하는 목적 함수를 동시에 최적화하는 문제이다. 단일 최적해가 아닌 파레토 최적해(Pareto optimal solutions) 집합을 찾는 것을 목표로 한다.

C. 정규화 기법 (Regularization Techniques)

모델의 복잡도를 제어하여 과적합(Overfitting)을 방지하고 일반화 성능을 높이는 기법이다.

  1. 매개변수 규제 (Parameter Norm Penalties): 모델의 가중치(파라미터) 크기에 직접 제약을 가한다.
  2. 구조적/암시적 규제 (Structural/Implicit Regularization): 학습 과정이나 모델 구조 자체에 제약을 가하여 과적합을 막다.
  3. 특수 규제 (Specialized Regularization)

D. 평가 및 검증 (Evaluation & Validation)

모델의 성능을 측정하고 일반화 능력을 평가하는 방법 및 지표이다.

  1. 분류 문제용 지표 (Classification Metrics)
  2. 회귀 문제용 지표 (Regression Metrics)
  3. 검증 방법 (Validation Methods)
  4. 불확실성 평가 (Uncertainty Evaluation)

E. 하이퍼파라미터 탐색 (Hyperparameter Tuning/Search)

모델 성능에 영향을 미치는, 학습 전에 사용자가 설정해야 하는 하이퍼파라미터(: 학습률, 정규화 강도, 트리 깊이)의 최적 조합을 찾는 과정이다.

  • Grid Search: 탐색할 하이퍼파라미터 값들의 조합을 격자(grid) 형태로 모두 시도하여 최적 조합을 찾다. 계산 비용이 높다.
  • Random Search: 지정된 범위 내에서 하이퍼파라미터 값들을 무작위로 샘플링하여 탐색한다. Grid Search보다 효율적으로 좋은 조합을 찾을 수 있는 경우가 많다.
  • Bayesian Optimization: 이전 탐색 결과를 바탕으로 아직 탐색하지 않은 영역 중 성능 개선 가능성이 높은 지점(획득 함수(acquisition function) 최대화)을 확률적으로 선택하여 탐색하는 방식이다. 적은 시도 횟수로 최적 조합을 찾는 데 효과적이다.
  • Hyperband: 제한된 자원(: 시간, 반복 횟수) 하에서 여러 하이퍼파라미터 조합을 병렬로 시도하고, 성능이 낮은 조합은 조기에 중단(early-stopping)하여 유망한 조합에 더 많은 자원을 할당하는 효율적인 탐색 기법이다.
  • BOHB (Bayesian Optimization and HyperBand): Hyperband의 효율적인 자원 할당 방식과 Bayesian Optimization의 지능적인 탐색 방식을 결합한 기법이다.
  • Optuna: 베이즈 최적화, TPE(Tree-structured Parzen Estimator), CMA-ES 등 다양한 최신 탐색 알고리즘을 지원하고, 분산 환경에서의 병렬 탐색, 탐색 과정 시각화 등을 제공하는 자동화된 하이퍼파라미터 최적화 프레임워크이다.
  • Population-Based Training (PBT): 여러 모델(개체군)을 병렬로 훈련시키면서, 주기적으로 성능이 좋은 모델의 가중치와 하이퍼파라미터를 성능이 낮은 모델로 복사하고 약간의 변형(mutation)을 가하는 방식으로, 하이퍼파라미터와 모델 가중치를 동시에 최적화한다.

V. 관련 이론 및 고급 주제 (Related Theory & Advanced Topics)

A. 정보 이론 (Information Theory)

데이터의 불확실성을 정량화하고, 확률 분포 간의 관계를 측정하는 수학적 이론이다. 머신러닝에서 손실 함수 정의, 모델 평가, 특징 선택 등에 활용된다.

  • Shannon Entropy: 확률 변수의 불확실성(정보량)을 측정하는 기댓값이다. 분포가 균일할수록 엔트로피가 높다.
  • Conditional Entropy: 다른 확률 변수 Y의 값이 주어졌을 때, 확률 변수 X의 남은 불확실성을 측정합니다 (H(X|Y)).
  • Joint Entropy: 두 확률 변수 X Y가 함께 가질 수 있는 상태에 대한 총 불확실성을 측정합니다 (H(X, Y)).
  • Mutual Information (상호 정보량): 두 확률 변수 X Y가 공유하는 정보량이다. , Y를 앎으로써 X에 대한 불확실성이 얼마나 감소하는지를 나타냅니다 (I(X; Y) = H(X) - H(X|Y)).
  • Cross-Entropy: 실제 분포 P에 대해 예측 분포 Q를 사용하여 정보를 인코딩할 때 필요한 평균 비트 수이다. 분류 문제의 손실 함수로 널리 사용된다.
  • KL Divergence (Kullback-Leibler Divergence): 두 확률 분포 P Q 사이의 비대칭적인 거리(차이)를 측정한다. P Q로 근사할 때의 정보 손실량을 나타냅니다 (D_KL(P | | Q)).
  • Jensen-Shannon Divergence (JSD): KL Divergence를 대칭적으로 만들고 값 범위를 또는 [0, log2]로 제한한 거리 척도이다.

B. 설명 가능한 AI (Explainable AI - XAI)

복잡한 인공지능 모델(특히 딥러닝)의 예측 결과를 사람이 이해하고 신뢰할 수 있도록 설명하는 기술 및 방법론이다.

  • SHAP (SHapley Additive exPlanations): 게임 이론의 샤플리 값(Shapley value) 개념을 적용하여, 각 특징(feature)이 특정 예측 결과에 얼마나 기여했는지를 공정하게 측정하고 설명하는 통합 프레임워크이다.
  • LIME (Local Interpretable Model-agnostic Explanations): 특정 예측 결과 주변의 데이터를 샘플링하고, 이 로컬 영역에서 해석 가능한 간단한 모델(: 선형 모델)을 학습시켜 해당 예측을 설명하는 모델 불특정(model-agnostic) 기법이다.
  • Integrated Gradients (IG): 예측 결과의 변화에 대한 입력 특징의 기여도를 계산할 때, 기준선(baseline) 입력부터 실제 입력까지의 경로를 따라 기울기를 적분하여 특징 중요도를 측정하는 방법이다.
  • Grad-CAM (Gradient-weighted Class Activation Mapping): CNN 모델에서 특정 클래스 예측에 중요한 영향을 미친 입력 이미지 영역(특징 맵)을 시각화하여 모델이 어디를 보고 판단했는지 보여주는 기법이다.

C. 분산 학습 및 MLOps (Distributed Learning & MLOps)

대규모 데이터나 모델을 처리하기 위한 기술과 머신러닝 모델의 개발, 배포, 운영을 자동화하고 효율화하는 방법론이다.

  1. 분산 학습 구조 (Distributed Learning Architectures): 여러 컴퓨팅 자원(장비, 프로세스)을 사용하여 모델 학습을 병렬로 수행한다.
  2. MLOps (Machine Learning Operations): 머신러닝 모델의 전체 생명주기(데이터 준비, 실험, 훈련, 배포, 모니터링, 재훈련)를 안정적이고 효율적으로 관리하기 위한 원칙과 실천 방법이다. DevOps의 원칙을 머신러닝 시스템에 적용한 것이다.

D. 프라이버시 및 연합 학습 (Privacy & Federated Learning)

데이터 프라이버시를 보호하면서 머신러닝 모델을 학습하고 활용하는 기술이다.

  • Federated Learning (연합 학습): 원본 데이터를 중앙 서버로 보내지 않고, 각 사용자(클라이언트)의 로컬 장치에서 데이터를 사용하여 모델을 개별적으로 학습시킨 후, 모델 업데이트(: 가중치 변화량)만을 중앙 서버로 보내 통합(aggregation)하는 분산 학습 방식이다. 데이터 프라이버시 보호에 유리한다.
  • Split Learning (분할 학습): 모델의 일부는 사용자 장치에서, 나머지 부분은 서버에서 나누어 학습하는 방식으로, 연합 학습과 달리 모델 구조를 분할하여 프라이버시를 보호하고 계산 부담을 분산시킵니다.
  • Differential Privacy (차분 프라이버시): 데이터셋에 대한 질의(query) 결과나 학습된 모델 파라미터에 통계적인 노이즈를 추가하여, 특정 개인의 정보가 결과에 미치는 영향을 제한함으로써 개인 식별 위험을 수학적으로 보장하는 프라이버시 보호 기법이다.

E. 강화학습 심화 기술 (Advanced Reinforcement Learning Techniques)

  • MuZero: 게임 규칙이나 환경 모델을 명시적으로 알지 못해도, 스스로 상태 표현, 전이(dynamics), 보상 함수를 학습하는 모델 기반 강화학습 알고리즘이다. (I.B.3 참고)
  • Dreamer (DreamerV3): 환경 모델을 학습하여 잠재 공간(latent space)에서 미래 상태와 보상을 예측하고, 이를 바탕으로 상상(imagination) 속에서 정책을 효율적으로 학습하는 모델 기반 강화학습 구조이다. (I.B.3 참고)
  • MADDPG (Multi-Agent Deep Deterministic Policy Gradient): 여러 에이전트가 존재하는 환경에서, 각 에이전트가 다른 에이전트들의 정책 정보를 활용하여 협력 또는 경쟁하며 학습하는 다중 에이전트 강화학습 알고리즘이다.
  • QMIX: 개별 에이전트의 Q 함수를 비선형적으로 결합하여 팀 전체의 공동 Q 함수를 추정하고, 이를 통해 협력적인 다중 에이전트 환경에서 분산된 정책을 학습하는 기법이다.
  • Offline Reinforcement Learning (오프라인 강화학습): 환경과의 실시간 상호작용 없이, 미리 수집된 고정된 데이터셋(로그 데이터 등)만을 사용하여 정책을 학습하는 강화학습 방식이다. 관련 기법 예시: Conservative Q-Learning (CQL), Implicit Q-Learning (IQL), Advantage-Weighted Actor-Critic (AWAC).
  • Constrained Reinforcement Learning (제약 강화학습): 보상 최대화뿐만 아니라, 특정 제약 조건(: 안전 제약, 비용 제약)을 만족하도록 정책을 학습하는 강화학습 방식이다. 관련 기법 예시: Constrained Policy Optimization (CPO), Shielded Reinforcement Learning.

F. 수학적 최적화 (Mathematical Optimization) - ML과의 관계

머신러닝 모델 학습(손실 함수 최소화) 자체가 최적화 문제이며, 다양한 수학적 최적화 기법들이 직간접적으로 활용된다. (IV.B 최적화 알고리즘과 중복되는 내용이 많으나, 보다 이론적인 관점에서 분류)

  1. 선형 계획법 (Linear Programming - LP): 선형 목적 함수를 선형 등식/부등식 제약 조건 하에서 최적화한다.
  2. 이차 계획법 (Quadratic Programming - QP): 이차 목적 함수를 선형 제약 조건 하에서 최적화한다. SVM 등에서 활용된다.
  3. 비선형 계획법 (Nonlinear Programming - NLP): 비선형 목적 함수 또는 비선형 제약 조건을 갖는 최적화 문제이다. 대부분의 딥러닝 학습이 여기에 해당한다.
  4. 혼합 정수 계획법 (Mixed-Integer Programming - MIP): 일부 변수는 연속적이고 일부 변수는 정수인 최적화 문제이다.
  5. 동적 계획법 (Dynamic Programming - DP): 최적 부분 구조(optimal substructure)와 중복되는 부분 문제(overlapping subproblems) 특성을 갖는 문제를 작은 부분 문제로 나누어 해결하고, 그 결과를 저장하여 재활용하는 방식이다. 강화학습의 벨만 방정식(Bellman Equation) 등에서 활용된다.
  6. 제약 충족 문제 (Constraint Satisfaction Problems - CSP): 변수 집합, 각 변수의 도메인, 변수 간 제약 조건이 주어졌을 때, 모든 제약 조건을 만족하는 변수 값 할당을 찾는 문제이다.
  7. 이진 결정 다이어그램 (Binary Decision Diagrams - BDD): 부울 함수(Boolean function)를 효율적으로 표현하고 조작하기 위한 데이터 구조이다.
  8. 유한차분법 (Finite Difference Method): 미분 방정식을 이산적인 격자점(grid points)에서의 함수 값 차이를 이용하여 근사적인 대수 방정식으로 변환하여 수치적으로 해를 구하는 방법이다. (머신러닝 자체보다는 물리 시뮬레이션 등 관련 분야에서 사용)

G. 최신 연구 키워드 (Recent Research Keywords - 2023~2025 기준)

머신러닝 및 딥러닝 분야의 최신 연구 동향을 나타내는 주요 키워드이다.

  • Diffusion Models: 고해상도 이미지, 비디오, 오디오 등 다양한 데이터를 생성하는 데 탁월한 성능을 보이는 생성 모델 계열이다. (III.G 참고)
  • RAG (Retrieval-Augmented Generation): 대형 언어 모델(LLM)이 답변을 생성할 때, 외부 지식 베이스(: 문서 데이터베이스)에서 관련 정보를 검색(retrieve)하여 이를 참고함으로써 답변의 정확성과 최신성을 향상시키는 기법이다.
  • PEFT (Parameter-Efficient Fine-Tuning): 사전 학습된 대규모 모델(Foundation Model)을 특정 작업에 맞게 미세 조정(fine-tuning)할 때, 모델의 모든 파라미터를 업데이트하는 대신 일부 파라미터(또는 추가된 작은 파라미터)만 학습하여 계산 비용과 메모리 사용량을 크게 줄이는 기법이다. 예시:
  • RLHF (Reinforcement Learning from Human Feedback) / DPO (Direct Preference Optimization): 인간의 피드백(선호도 데이터 등)을 사용하여 언어 모델의 출력을 인간의 의도나 가치에 맞게 정렬(alignment)하고, 유해하거나 편향된 출력을 줄여 안전성을 높이는 기법이다.
  • Long-Context Transformers: 표준 Transformer 모델이 처리하기 어려운 매우 긴 입력 시퀀스(: 수십만~수백만 토큰)를 효율적으로 처리할 수 있도록 확장된 아키텍처 및 기법이다 (: FlashAttention, Ring Attention).
  • NeRF (Neural Radiance Fields): 3D 장면을 연속적인 신경망 표현으로 학습하여 새로운 시점 렌더링(novel view synthesis)을 가능하게 하는 기술이다. (III.H 참고)
  • SAM (Segment Anything Model): 제로샷(zero-shot)으로 이미지 내의 어떤 객체든 분할할 수 있는 대규모 비전 모델이다. (III.H 참고)
  • Foundation Model Compression: 대규모 파운데이션 모델을 경량화하여 모바일 기기나 제한된 환경에서도 사용할 수 있도록 만드는 기술이다. 예시:
  • Multimodal Integration: 텍스트, 이미지, 오디오, 비디오 등 여러 종류의 데이터(양식, modality)를 하나의 모델이 동시에 이해하고 처리하며 생성할 수 있는 기술이다. 최신 LLM(: GPT-4o, Gemini)들이 이러한 방향으로 발전하고 있다.
  • 대표 모델 (Representative Models): (III.D 참고) GPT-4o, Gemini, Claude 3, Mistral, LLaMA, Qwen, StableLM .

 

작년 이맘때쯤 수업을 들으면서 머신러닝을 처음 배우면서 관련 개념과 용어가 무슨 소리인지 아예 몰랐다.

당시 GPT를 이용해 뭔가 어떻게든 이해하기 위하여 정리도 해봤지만 솔직히 뭐가 뭔지 하나도 몰랐다.

정리한 것을 읽어도 한 문장마다 한 단어에는 꼭 걸려 넘어졌다.

예를 들어 Lasso Regression 에 대한 아래와 같은 설명을 읽을 때,
" L1 정규화를 사용하여 가중치 희소성을 유도하는 회귀다. "

구체적이지 않은 문장이지만 이 문장을 읽고 L1은 무엇인지 정규화는 수학에서의 그 정규화가 맞는지 가중치 희소성은 무슨 말인지 회귀의 구체적 정의는 무엇인지 그려지지 않았다.


그러다 1년이 흘렀고 오늘 우연히 예전에 써둔 글을 다시 봤다.

이제는 왜 그렇게 묶이고 어떤 차이가 있는지 보인다.

그게 너무 신기하고 좀 기뻐서 예전에 복붙해놓고도 몰랐던 알고리즘들을
지금의 나 기준에서 다시  GPT(초안) + Gemini Deep Research를 이용하여 정리해보기로 했다.

다음 1년 아니 이번엔 더 짧게

6개월 후에는 이것들 모두가 빠짐없이 머릿속에 그려지기를 바란다.


I. 머신러닝 기초 및 학습 패러다임 (Fundamentals & Learning Paradigms)

A. 기본 개념 (Basic Concepts)

  • 머신러닝 (Machine Learning): 명시적인 프로그래밍 없이 데이터로부터 학습하여 패턴을 인식하고 예측 또는 결정을 내리는 시스템을 구축하는 인공지능의 한 분야이다.
  • 데이터 (Data), 특징 (Features), 레이블 (Labels): 학습의 기반이 되는 정보(데이터), 모델의 입력으로 사용되는 개별 속성(특징), 지도 학습에서 예측 대상이 되는 정답(레이블)이다.
  • 모델 (Model): 데이터로부터 학습된 패턴의 수학적 표현으로, 입력을 받아 출력을 생성한다.
  • 학습/훈련 (Learning/Training): 데이터를 사용하여 모델 파라미터를 조정하는 과정이다.
  • 추론/예측 (Inference/Prediction): 학습된 모델을 사용하여 새로운 데이터에 대한 결과를 생성하는 과정이다.
  • 과적합 (Overfitting) / 과소적합 (Underfitting): 모델이 훈련 데이터에만 너무 잘 맞거나(과적합), 훈련 데이터의 패턴조차 제대로 학습하지 못하는(과소적합) 현상이다.
  • 편향-분산 트레이드오프 (Bias-Variance Tradeoff): 모델의 예측 오차는 편향(모델의 단순성으로 인한 오류)과 분산(데이터 변화에 대한 민감성) 요소로 나뉘며, 이 둘 사이의 균형을 맞추는 것이 중요하다. 일반적으로 복잡도를 높이면 편향은 줄고 분산은 늘어난다.

B. 학습 패러다임 (Learning Paradigms)

  1. 지도 학습 (Supervised Learning)
    • 정의: 정답(레이블)이 주어진 데이터를 바탕으로 예측 모델을 학습하는 방법이다.
    • 주요 과제:
      • 분류 (Classification): 데이터를 미리 정의된 범주로 할당한다.
      • 회귀 (Regression): 연속적인 수치 값을 예측한다.
    • 관련 알고리즘 예시 (세부 내용은 II장에서 다룸): Logistic Regression, Softmax Regression, LDA, SVM, Optimal Bayes Classifier, Minimum Distance Classifier, KNN, Decision Tree, Neural Network (분류/회귀 적용 시), Linear Regression, Polynomial Regression, Ridge/Lasso/Elastic Net Regression, SVR, Gaussian Process Regression.
  2. 비지도 학습 (Unsupervised Learning)
    • 정의: 정답 없이 데이터의 구조나 패턴을 스스로 학습하는 방법이다.
    • 주요 과제 및 관련 알고리즘:
      • 군집화 (Clustering): 유사한 데이터 포인트를 그룹으로 묶는다.
        • K-Means: 데이터를 k개의 중심점 기준으로 클러스터링한다.
        • Hierarchical Clustering: 데이터를 유사도 기반 트리 구조로 병합 또는 분할한다.
        • DBSCAN: 밀도 기반 클러스터링으로, 잡음 데이터에도 강건하다.
        • Gaussian Mixture Model (GMM): 데이터가 여러 정규분포의 혼합으로 구성되었다고 가정하고 클러스터링한다.
        • Spectral Clustering: 그래프 라플라시안의 고유벡터를 사용한 클러스터링이다.
      • 차원 축소 (Dimensionality Reduction): 특징의 수를 줄인다. (세부 내용은 II.H장에서 다룸)
        • PCA: 최대 분산 방향을 기준으로 축을 회전시켜 데이터를 투영한다.
        • ICA: 통계적으로 독립인 성분을 추출하는 기법이다.
        • t-SNE: 조건부 확률 기반으로 이웃 정보를 보존하며 시각화한다.
        • UMAP: 저차원 위상 구조를 보존하도록 임베딩한다.
        • Autoencoder 계열 (표현 학습과도 연관): 입력을 재구성하면서 중간 표현(잠재 공간)을 학습한다. (세부 내용은 II.H장에서 다룸)
      • 밀도 추정 (Density Estimation): 데이터의 확률 분포를 추정한다.
        • Kernel Density Estimation (KDE): 커널 함수로 확률 밀도함수를 추정한다.
        • Parzen Window: 고전 KDE 방식으로, 슬라이딩 윈도우 기반 밀도 추정이다.
  3. 강화 학습 (Reinforcement Learning)
    • 정의: 에이전트가 환경과 상호작용하며 보상을 극대화하는 정책(행동 전략)을 학습하는 방식이다.
    • 주요 접근법 및 관련 알고리즘:
      • 값 기반 (Value-Based): 상태 또는 상태-행동 쌍의 가치를 학습한다.
        • Q-Learning: Q값을 반복적으로 갱신해 최적 정책을 찾는다.
        • Deep Q Network (DQN): Q-Learning에 신경망을 적용하여 고차원 상태를 처리한다.
        • Double Q-Learning: Q-Learning의 과추정을 줄인다.
        • SARSA: on-policy 방식의 Q-learning이다.
        • Rainbow DQN: 여러 개선 기법을 통합한 DQN 구조이다.
      • 정책 기반 (Policy-Based): 정책을 직접 학습하고 최적화한다.
        • REINFORCE: 기대 보상을 최대화하도록 정책 확률을 직접 업데이트한다.
        • Policy Gradient: 정책에 직접 기울기를 계산하여 학습한다.
        • Proximal Policy Optimization (PPO): KL 발산을 제한해 안정적으로 정책을 업데이트한다.
        • Trust Region Policy Optimization (TRPO): Trust Region 안에서만 정책을 업데이트한다.
      • 액터-크리틱 (Actor-Critic): 값 함수(크리틱)와 정책(액터)을 함께 학습한다.
        • A2C, A3C: 액터와 크리틱을 분리해 서로를 보완하며 학습한다.
        • Deep Deterministic Policy Gradient (DDPG): 연속 액션을 다루는 deterministic 정책 기반 알고리즘이다.
        • Twin Delayed DDPG (TD3): DDPG의 overestimation 문제를 개선한 구조이다.
        • Soft Actor-Critic (SAC): stochastic 정책을 사용하며 entropy 보상을 포함한다.
      • 모델 기반 (Model-Based): 환경의 동작 방식(모델)을 학습하거나 사용하여 계획한다.
        • MuZero: 환경 모델 없이도 상태 전이와 보상을 예측하며 학습한다.
        • Dreamer: 상태-행동 예측을 위한 모델을 학습해 시뮬레이션으로 탐색을 효율화한다.
      • 심화 기술 (Advanced Techniques): (세부 내용은 V.E장에서 다룸)
  4. 준지도 학습 (Semi-Supervised Learning)
    • 정의: 라벨이 있는 데이터와 없는 데이터를 함께 활용하여 학습한다.
    • 관련 기법:
      • Label Propagation: 그래프 기반으로 라벨을 전파한다.
      • Pseudo-Labeling: 예측 결과를 임시 라벨로 사용해 비라벨 데이터를 학습에 포함시킨다.
      • FixMatch: 강한 증강에 대해 confident prediction만 반영하는 기법이다.
  5. 자기지도 학습 (Self-Supervised Learning)
    • 정의: 데이터 내부의 특성에서 스스로 레이블을 생성해 학습하는 방법 (비지도 학습의 한 형태). 주로 표현 학습(Representation Learning)에 사용된다.
    • 관련 기법:
      • SimCLR, BYOL: 대조 학습(Contrastive Learning) 기반으로 표현을 학습한다.
      • MAE, SimMIM: 입력의 일부를 마스크하고 복원하는 과제를 통해 표현을 학습한다.
      • DINO, DINOv2: 예측 대상의 다양한 증강본을 통해 표현을 정렬한다.

II. 주요 머신러닝 모델 및 알고리즘 (Key ML Models & Algorithms)

A. 모델 분류 기준 (Model Classification Criteria)

  1. 파라메트릭 모델 (Parametric Models)
    • 정의: 모델 구조가 고정되어 있으며, 학습을 통해 정해진 수의 파라미터만 학습한다.
    • 예시: Linear Regression, Logistic Regression, LDA, Naive Bayes, Neural Network (구조 고정 시), Transformer, Diffusion Model (구조 고정 시).
  2. 비파라메트릭 모델 (Non-Parametric Models)
    • 정의: 모델 복잡도가 데이터 크기에 따라 유동적으로 증가하며, 전체 데이터가 모델의 일부가 될 수 있다.
    • 예시: KNN, Decision Tree, Random Forest, KDE, Parzen Window.
  3. 준파라메트릭 모델 (Semi-Parametric Models)
    • 정의: 모델 일부는 파라메트릭, 일부는 비파라메트릭 특성을 가진다.
    • 예시: Gaussian Process, Generalized Additive Model (GAM), Cox Model (생존 분석).

B. 선형 모델 (Linear Models)

  • Linear Regression: 입력과 출력 사이의 선형 관계를 추정하는 회귀 모델이다.
  • Polynomial Regression: 입력 변수의 다항식을 사용해 비선형 관계를 모델링한다 (선형 모델의 확장).
  • Logistic Regression: 입력 변수의 선형 조합을 통해 이진 분류 클래스 확률을 예측한다.
  • Softmax Regression: 다중 클래스 분류를 위한 확장형 선형 모델이다. 출력층에 Softmax 함수를 적용해 확률 분포를 만든다.
  • Linear Discriminant Analysis (LDA): 클래스 간 분산을 최대화하고 클래스 내 분산을 최소화하는 선형 판별 분류 모델이다. (차원 축소 기법으로도 사용됨 - II.H 참고)
  • Ridge Regression: L2 정규화를 사용하여 과적합을 줄이는 선형 회귀다.
  • Lasso Regression: L1 정규화를 사용하여 가중치 희소성을 유도하는 회귀다.
  • Elastic Net: L1과 L2 정규화를 혼합하여 사용하는 회귀 방법이다.

C. 결정 트리 및 앙상블 (Decision Trees & Ensembles)

  1. Decision Tree: 데이터 특성을 기반으로 조건 분기를 반복하여 예측하는 나무 구조 모델이다.
  2. 앙상블 학습 (Ensemble Learning): 여러 개의 약한 모델을 조합해 더 강한 모델을 만든다.
    • 배깅 (Bagging): 독립적인 모델들을 병렬로 학습시켜 결합한다 (분산 감소 효과).
      • Random Forest: 다수의 결정 트리를 훈련 데이터의 bootstrap 샘플 및 특징 서브셋으로 학습하여 평균/다수결로 예측한다.
      • Extra Trees (Extremely Randomized Trees): 트리 구조 생성 시 분기점과 특징을 더욱 무작위화하여 편차를 줄인다.
    • 부스팅 (Boosting): 모델들을 순차적으로 학습하며 이전 모델의 오류를 보정한다 (편향 감소 효과).
      • AdaBoost (Adaptive Boosting): 이전 모델이 틀린 샘플에 가중치를 부여해 다음 모델을 학습시킨다.
      • Gradient Boosting Machines (GBM): 이전 모델의 잔여 오차(gradient)를 학습하여 점진적으로 성능을 개선한다.
      • XGBoost: 정규화와 가지치기, 병렬 처리 등을 추가하여 성능과 속도를 높인 GBM 기법이다.
      • LightGBM: 히스토그램 기반 분할과 리프 중심 트리 성장으로 학습 속도가 매우 빠르다.
      • CatBoost: 범주형 변수 처리에 특화되어 있으며, 과적합 방지 기술이 내장되어 있다.
    • 스태킹 / 보팅 / 블렌딩 (Stacking / Voting / Blending): 여러 다른 모델들의 예측을 결합하는 방식이다.
      • Voting: 각 모델의 예측을 다수결(분류) 또는 평균(회귀)으로 결합한다.
      • Stacking: 여러 기본 모델들의 예측 결과를 입력으로 사용하여 최종 예측을 하는 메타 모델을 학습시킨다.
      • Blending: 홀드아웃(검증) 데이터셋에 대한 기본 모델들의 예측을 입력으로 메타 모델을 학습시킨다.

D. 서포트 벡터 머신 (Support Vector Machines - SVM)

  • Support Vector Machine (Classifier): 마진(margin) 최대화를 통해 최적의 분류 경계(결정 초평면)를 학습하는 모델이다. 커널 기법(Kernel Trick)을 통해 비선형 문제도 효과적으로 해결할 수 있다.
  • Support Vector Regression (SVR): SVM의 원리를 회귀 문제에 적용한 모델이다. 마진 내 오류는 허용하면서 마진 밖 오류를 최소화한다.

E. 베이즈 모델 (Bayesian Models)

  • Optimal Bayes Classifier: 베이즈 정리를 기반으로 사전 확률과 우도(likelihood)를 이용하여 분류 오류를 최소화하는 이론적인 최적 분류기이다. 실제 구현은 확률 분포 추정이 필요하다.
  • Naive Bayes: 모든 특징들이 클래스에 대해 조건부 독립(conditionally independent)이라고 가정하고 베이즈 정리를 적용하는 간단하면서도 효과적인 분류기이다.

F. 거리 기반 모델 (Distance-Based Models)

  • K-Nearest Neighbors (KNN): 새로운 데이터 포인트 주변의 가장 가까운 k개의 훈련 데이터 이웃을 참조하여 다수결(분류) 또는 평균(회귀)으로 예측하는 비파라메트릭 모델이다.
  • Minimum Distance Classifier: 각 클래스의 평균(또는 프로토타입)까지의 유클리드 거리(또는 다른 거리 척도)를 계산하여 가장 가까운 클래스로 분류하는 간단한 분류기이다.

G. 군집화 알고리즘 (Clustering Algorithms)

  • K-Means: 데이터를 k개의 중심점(centroid) 기준으로 반복적으로 할당하고 중심점을 업데이트하여 클러스터링한다.
  • Hierarchical Clustering: 데이터를 유사도(또는 거리) 기반으로 계층적인 트리 구조(덴드로그램)로 병합(agglomerative)하거나 분할(divisive)한다.
  • DBSCAN (Density-Based Spatial Clustering of Applications with Noise): 데이터 포인트의 밀도를 기반으로 클러스터를 형성하며, 임의 형태의 클러스터를 찾고 잡음(noise) 데이터 식별에 강건하다.
  • Gaussian Mixture Model (GMM): 데이터가 여러 개의 가우시안(정규) 분포의 혼합으로 구성되었다고 가정하고, 각 데이터 포인트가 각 분포에 속할 확률을 추정하여 클러스터링한다 (Soft Clustering).
  • Spectral Clustering: 데이터 포인트 간의 유사도를 그래프로 표현하고, 그래프 라플라시안 행렬의 고유벡터(eigenvectors)를 사용하여 저차원 공간으로 임베딩한 후 클러스터링을 수행한다. 복잡한 형태의 클러스터 분리에 효과적이다.

H. 차원 축소 및 표현 학습 (Dimensionality Reduction & Representation Learning)

  1. 선형 차원 축소 (Linear Dimensionality Reduction)
    • Principal Component Analysis (PCA): 데이터의 분산을 최대한 보존하는 주성분(principal components) 축으로 데이터를 투영하여 차원을 축소한다 (비지도).
    • Linear Discriminant Analysis (LDA): 클래스 간 분리를 최대화하는 축으로 데이터를 투영하여 차원을 축소한다 (지도). (II.B 참고)
    • Independent Component Analysis (ICA): 원본 데이터를 통계적으로 독립적인 비가우시안(non-Gaussian) 신호들의 선형 조합으로 분리하여 독립적인 성분을 추출한다.
    • Non-negative Matrix Factorization (NMF): 원본 행렬을 두 개의 음수 값을 갖지 않는 행렬의 곱으로 분해하여, 부분 기반(parts-based) 표현을 추출하는 데 유용하다 (예: 토픽 모델링).
  2. 비선형 차원 축소 (Non-linear Dimensionality Reduction)
    • t-Distributed Stochastic Neighbor Embedding (t-SNE): 고차원 공간에서의 데이터 포인트 간 유사도(조건부 확률)를 저차원 공간(주로 2D/3D)에서도 최대한 보존하도록 임베딩하여 시각화에 주로 사용된다.
    • Uniform Manifold Approximation and Projection (UMAP): 데이터의 국소적 위상 구조(local manifold structure)와 전역적 구조(global structure)를 모두 보존하도록 저차원 공간으로 임베딩하며, t-SNE보다 계산 효율성이 높고 시각화 및 일반 차원 축소에 사용된다.
    • Isomap (Isometric Mapping): 데이터 포인트 간의 측지선 거리(geodesic distance, 매니폴드 상의 최단 거리)를 기반으로 다차원 척도법(MDS)을 적용하여 비선형 구조를 보존하며 차원을 축소한다.
    • Locally Linear Embedding (LLE): 각 데이터 포인트가 이웃들의 선형 조합으로 잘 근사될 수 있다고 가정하고, 이러한 지역적 선형 관계를 저차원 공간에서도 유지하도록 임베딩한다.
  3. 표현 학습 (Representation Learning) - 주로 Autoencoder 기반
    • Autoencoder (AE): 인코더(encoder)와 디코더(decoder)로 구성된 신경망 구조로, 입력을 저차원의 잠재 공간(latent space)으로 압축했다가 다시 원본 입력으로 재구성하도록 학습하여 데이터의 유용한 표현(representation)을 학습한다 (비지도).
    • Denoising Autoencoder (DAE): 입력에 의도적으로 노이즈를 추가한 후 원본 노이즈 없는 입력을 복원하도록 학습하여, 더 강건하고 일반화된 표현을 학습한다.
    • Variational Autoencoder (VAE): 잠재 공간을 확률 분포(주로 가우시안)로 모델링하는 생성형 오토인코더이다. 잠재 공간에서 샘플링하여 새로운 데이터를 생성할 수 있다.
    • β-VAE: VAE의 손실 함수에 가중치(β)를 추가하여 잠재 공간의 각 차원이 더 독립적이고 해석 가능한 의미 단위(disentangled representation)를 학습하도록 유도한다.
    • Diffusion Autoencoder: (Diffusion Model과 관련) 점진적인 노이즈 추가 및 제거 과정을 통해 데이터를 재구성하며 표현을 학습한다.

I. 신경망 기초 (Neural Network Basics)

  • Neural Network (Artificial Neural Network, ANN): 상호 연결된 노드(뉴런)들의 층(layer)으로 구성된 모델이다. 비선형 활성화 함수를 통해 복잡한 패턴을 학습할 수 있으며, 지도, 비지도, 강화 학습 등 다양한 패러다임에 적용될 수 있다.

J. 기타 모델 (Other Models)

  • Gaussian Process Regression (GPR): 함수 자체에 대한 사전 분포(prior distribution, 주로 가우시안 프로세스)를 정의하고, 관측 데이터를 통해 사후 분포(posterior distribution)를 업데이트하여 예측을 수행하는 베이즈 비파라메트릭 회귀 방법이다. 예측의 불확실성 추정이 가능하다.
  • Generalized Additive Model (GAM): 선형 회귀를 확장하여 각 특징 변수에 대해 비선형 함수(주로 스플라인)를 적용한 후 이들의 합으로 예측하는 준파라메트릭 모델이다. 선형 모델의 해석 가능성을 유지하면서 비선형 관계를 모델링할 수 있다.
  • Cox Proportional Hazards Model: 생존 분석(survival analysis)에 주로 사용되는 준파라메트릭 모델로, 특정 시점에서의 사건 발생 위험률(hazard rate)을 공변량(covariates)의 함수로 모델링한다. 기저 위험 함수(baseline hazard function)는 비모수적으로, 공변량의 효과(계수)는 모수적으로 추정한다.

III. 딥러닝 아키텍처 (Deep Learning Architectures)

딥러닝은 여러 개의 은닉층을 가진 심층 신경망(Deep Neural Network, DNN)을 사용하여 복잡한 문제를 해결하는 머신러닝의 하위 분야이다. 특정 과업에 특화된 다양한 아키텍처가 개발되었다.

A. CNN (Convolutional Neural Network) 계열

  • LeNet: 최초의 실용적인 CNN 중 하나로, 주로 손글씨 숫자 인식(MNIST)에 사용되었다.
  • AlexNet: GPU를 활용하여 대규모 이미지 분류(ImageNet)에서 획기적인 성능을 보여 딥러닝 부흥을 이끈 모델이다.
  • VGGNet: 3x3 크기의 작은 합성곱 필터를 깊게 쌓아 네트워크 깊이의 중요성을 보여준 모델이다.
  • ResNet (Residual Network): 잔차 연결(residual connection) 또는 스킵 연결(skip connection)을 도입하여 매우 깊은 네트워크(수백~수천 개 층)의 학습을 가능하게 하고 기울기 소실 문제를 완화했다.
  • DenseNet (Densely Connected Convolutional Network): 각 층이 이후의 모든 층과 직접 연결되는 구조(dense connection)를 통해 특징 재사용(feature reuse)을 극대화하고 정보 흐름을 개선했다.
  • EfficientNet: 네트워크의 깊이(depth), 너비(width), 입력 해상도(resolution)를 복합적인 스케일링 방법(compound scaling)으로 균형 있게 확장하여 효율성과 성능을 동시에 높인 모델이다.

B. 순환 신경망 (RNN) 및 관련 구조 (Recurrent Neural Networks & Related Architectures)

  • RNN (Vanilla RNN): 순환 연결을 통해 이전 스텝의 정보를 현재 스텝의 계산에 활용하여 순차 데이터(sequence data)를 처리하는 기본적인 순환 구조이다. 장기 의존성 문제(long-term dependency problem)에 취약하다.
  • LSTM (Long Short-Term Memory): 입력, 망각, 출력 게이트(gate) 메커니즘을 도입하여 장기 의존성 문제를 효과적으로 해결한 RNN의 변형 구조이다.
  • GRU (Gated Recurrent Unit): LSTM의 구조를 간소화(업데이트 게이트, 리셋 게이트 사용)하여 계산 효율성을 높이면서 유사한 성능을 보이는 구조이다.
  • Bi-LSTM (Bidirectional LSTM): 순방향과 역방향의 LSTM을 모두 사용하여 과거와 미래의 문맥 정보를 동시에 활용하는 구조이다.
  • Seq2Seq (Sequence-to-Sequence): 인코더 RNN이 입력 시퀀스를 고정된 크기의 문맥 벡터로 압축하고, 디코더 RNN이 이 문맥 벡터를 받아 출력 시퀀스를 생성하는 구조이다. 기계 번역 등에 사용된다. 초기 Seq2Seq 모델은 고정된 크기의 문맥 벡터가 정보 병목 현상을 일으킬 수 있다는 한계가 있었다.

C. 어텐션 메커니즘 (Attention Mechanism)

  • 정의: 어텐션은 모델이 출력 시퀀스의 특정 부분을 생성할 때, 입력 시퀀스 전체에서 관련성이 높은 부분에 '집중'하여 가중치를 부여하는 메커니즘이다. 이는 인간이 정보를 처리할 때 중요한 부분에 집중하는 방식과 유사하다.
  • 역할: 초기에는 RNN 기반 Seq2Seq 모델의 한계(고정된 문맥 벡터로 인한 정보 손실)를 극복하기 위해 도입되었다. 디코더가 각 타임 스텝에서 입력 시퀀스의 모든 은닉 상태(hidden states)를 참고하되, 현재 예측과 관련성이 높은 상태에 더 높은 가중치(어텐션 스코어)를 부여하여 동적인 문맥 벡터를 생성한다.
  • 핵심 요소 (Query, Key, Value): 일반적인 어텐션 메커니즘은 쿼리(Query, Q), 키(Key, K), 값(Value, V)이라는 세 가지 요소로 설명될 수 있다.
    • 쿼리(Q): 현재 타겟(예: 디코더의 현재 상태)을 나타낸다. "무엇을 찾고 있는가?"에 해당한다.
    • 키(K): 입력 시퀀스의 각 요소(예: 인코더의 각 은닉 상태)를 나타내는 식별자이다. 쿼리와 비교되어 관련성을 계산하는 데 사용된다. "내가 무엇을 가지고 있는가?"에 해당한다.
    • 값(V): 입력 시퀀스의 각 요소에 대한 실제 내용 또는 표현이다. 키와 쿼리의 관련성(어텐션 가중치)에 따라 가중 합산되어 최종 출력을 만드는 데 사용된다. "내가 실제로 제공하는 것은 무엇인가?"에 해당한다.
    • 계산 과정: 쿼리와 모든 키의 유사도(예: 내적)를 계산하여 점수(score)를 얻고, 이를 소프트맥스(softmax) 함수를 통해 정규화하여 어텐션 가중치를 구한다. 이 가중치를 해당 키에 대응하는 값들에 곱하여 가중 합(weighted sum)을 계산하면 최종 어텐션 출력(문맥 벡터)이 된다.
  • 진화: 어텐션 메커니즘은 Seq2Seq 모델의 성능을 크게 향상시켰으며, 이후 트랜스포머 아키텍처에서는 순환 구조를 완전히 대체하는 핵심 구성 요소(셀프 어텐션)로 발전했다.

D. Transformer 계열 (Transformer Family)

  • Transformer: RNN의 순환 구조를 완전히 제거하고, 셀프 어텐션(Self-Attention) 메커니즘만을 사용하여 입력 시퀀스 내의 요소 간 관계(의존성)를 직접 모델링하는 혁신적인 아키텍처이다. 순환 구조가 없어 병렬 처리가 매우 용이하며, 이는 대규모 모델 학습 시간을 크게 단축시켰다.
    • 셀프 어텐션 (Self-Attention): 입력 시퀀스 내의 각 요소(예: 단어)가 다른 모든 요소들과의 관련성을 계산하여 자신의 표현(representation)을 업데이트하는 방식이다. 이를 통해 모델은 문맥 내에서 단어의 의미를 더 잘 파악할 수 있다. Q, K, V 벡터가 모두 동일한 입력 시퀀스로부터 생성된다.
    • 멀티 헤드 어텐션 (Multi-Head Attention): 어텐션 계산을 여러 개의 '헤드'로 나누어 병렬로 수행하고 결과를 결합하는 방식이다. 각 헤드는 서로 다른 표현 부분 공간(representation subspace)에서 Q, K, V를 학습하여, 모델이 다양한 관점에서 정보의 관계를 파악하고 집중할 수 있도록 한다.
  • BERT (Bidirectional Encoder Representations from Transformers): Transformer의 인코더 구조만을 사용하여, 문장 내 양방향 문맥을 동시에 고려하여 단어 및 문장 표현을 사전 학습(pre-training)하는 모델이다. 주로 자연어 이해(NLU) 작업에 강점을 보이며, 마스크된 언어 모델(Masked Language Model, MLM)과 다음 문장 예측(Next Sentence Prediction, NSP)이라는 두 가지 목표로 사전 학습된다.
  • GPT (Generative Pre-trained Transformer): Transformer의 디코더 구조를 기반으로, 대규모 텍스트 데이터로 사전 학습되어 주로 텍스트 생성(text generation) 작업에 강력한 성능을 보이는 모델이다. 이전 단어들을 바탕으로 다음 단어를 예측하는 방식으로 학습하며, 단방향(왼쪽에서 오른쪽) 문맥만을 고려한다.
  • T5 (Text-to-Text Transfer Transformer): 모든 NLP 문제를 텍스트 입력에서 텍스트 출력으로 변환하는 통일된 프레임워크(text-to-text)를 제안한 모델이다. 인코더-디코더 구조를 사용한다.
  • 최신 대형 언어 모델 (Large Language Models - LLMs):
    • 오픈소스 기반: LLaMA, Falcon, Qwen, Mistral 등
    • 상용/주요 모델: GPT-4o, Claude 3, Gemini 등 (멀티모달 기능 포함)

E. Vision Transformer (ViT) 계열

  • ViT (Vision Transformer): 이미지를 여러 개의 작은 패치(patch)로 나누고, 각 패치를 시퀀스 데이터처럼 처리하여 Transformer 구조를 이미지 인식에 적용한 모델이다.
  • DeiT (Data-efficient Image Transformers): ViT를 더 적은 데이터로도 효율적으로 학습시키기 위해 지식 증류(knowledge distillation) 등의 기법을 사용한 모델이다.
  • Swin Transformer: 이미지를 계층적(hierarchical)으로 처리하고, 이동된 윈도우(shifted window) 기반의 로컬 어텐션을 사용하여 계산 효율성과 성능을 높인 ViT 변형 모델이다.
  • ConvNeXt: CNN의 고전적인 구조(예: ResNet)에 Transformer의 설계 원칙(예: 레이어 정규화, 활성화 함수 변경 등)을 점진적으로 적용하여 CNN의 성능을 크게 향상시킨 모델이다.

F. 그래프 신경망 (Graph Neural Networks - GNN)

  • GCN (Graph Convolutional Network): 그래프 구조 데이터에서 노드의 특징을 업데이트할 때, 인접 노드들의 특징 정보를 평균(또는 다른 집계 함수)하여 사용하는 기본적인 그래프 합성곱 방식이다.
  • GAT (Graph Attention Network): 노드 특징을 집계할 때, 인접 노드들과의 관계 중요도(어텐션 가중치)를 학습하여 가중 평균을 사용하는 방식이다.
  • GraphSAGE (Graph Sample and Aggregate): 대규모 그래프에서 모든 이웃 대신 일부 이웃을 샘플링하여 특징을 집계함으로써 확장성과 효율성을 높인 방식이다.
  • Graph Transformer: Transformer의 셀프 어텐션 메커니즘을 그래프 데이터에 적용하여 노드 간의 장거리 의존성 및 복잡한 관계를 모델링하는 구조이다.

G. 생성 모델 (Generative Models)

  • GAN (Generative Adversarial Network): 실제 데이터와 유사한 데이터를 생성하는 생성자(Generator)와 생성된 데이터가 실제인지 가짜인지 판별하는 판별자(Discriminator)가 서로 경쟁하며 학습하는 구조이다. 고품질 이미지 생성 등에 뛰어나다.
  • VAE (Variational Autoencoder): 확률적인 잠재 공간을 학습하여 데이터를 생성하는 오토인코더 기반 생성 모델이다. (II.H.3 참고)
  • Diffusion Models: 데이터에 점진적으로 노이즈를 추가하는 과정(forward process)과 노이즈로부터 원본 데이터를 점진적으로 복원하는 과정(reverse process)을 학습하여 고품질의 다양한 데이터를 생성하는 모델이다. GAN보다 학습이 안정적이고 생성된 샘플의 다양성이 높다는 장점이 있다.
  • Latent Diffusion Models (LDM): 고차원 데이터(예: 이미지)를 직접 다루는 대신, 저차원의 압축된 잠재 공간(latent space)에서 확산(diffusion) 및 복원 과정을 수행하여 계산 효율성을 높인 모델이다 (예: Stable Diffusion).
  • ControlNet: 사전 학습된 대규모 확산 모델(예: Stable Diffusion)에 추가적인 조건(예: 스케치, 자세)을 입력하여 생성 과정을 제어할 수 있도록 확장한 구조이다.

H. 멀티모달 / 분할 / 3D (Multimodal / Segmentation / 3D)

  • SAM (Segment Anything Model): 입력 이미지와 프롬프트(예: 클릭, 박스)를 받아 이미지 내의 어떤 객체든 분할(segmentation)할 수 있는 범용적인 제로샷(zero-shot) 분할 모델이다.
  • NeRF (Neural Radiance Fields): 여러 각도에서 촬영된 2D 이미지들로부터 3D 장면을 연속적인 신경망 표현(신경 광채 필드)으로 학습하여, 새로운 시점에서의 이미지를 사실적으로 렌더링하는 기술이다.

IV. 모델 학습 및 평가 (Model Training & Evaluation)

A. 손실 함수 (Loss Functions)

모델의 예측값과 실제 값 사이의 오차를 측정하는 함수이다. 훈련 목표는 이 손실을 최소화하는 것이다.

  1. 회귀 문제용 (Regression Loss)
    • MSE (Mean Squared Error): 제곱 오차의 평균으로, 큰 오차에 민감하다.
    • MAE (Mean Absolute Error): 절대 오차의 평균으로, 이상치(outlier)에 덜 민감하다.
    • Huber Loss: 오차가 작을 때는 MSE처럼, 클 때는 MAE처럼 동작하여 두 함수의 장점을 결합한다.
    • Log-Cosh Loss: 로그 코사인 하이퍼볼릭 함수 기반으로, MSE와 유사하지만 더 부드러운(smooth) 손실 함수이다.
    • Quantile Loss: 예측 값이 특정 분위수(quantile)를 따르도록 유도하여, 예측 구간 추정 등에 사용된다.
  2. 분류 문제용 (Classification Loss)
    • Binary Cross-Entropy (Log Loss): 이진 분류 문제에서 모델의 확률 출력과 실제 레이블 간의 차이를 측정한다.
    • Categorical Cross-Entropy: 다중 클래스 분류 문제에서 사용되는 교차 엔트로피 손실이다.
    • Focal Loss: 정답을 맞추기 쉬운(easy) 샘플보다 어려운(hard) 샘플의 손실에 더 큰 가중치를 부여하여, 클래스 불균형 문제 등에 효과적이다 (주로 객체 탐지).
    • Hinge Loss: SVM에서 주로 사용되며, 올바른 클래스의 점수가 다른 클래스의 점수보다 특정 마진(margin) 이상 높도록 유도한다.
    • Squared Hinge Loss: Hinge Loss를 제곱한 형태로, 미분 가능하며 부드러운 경계를 만든다.
  3. 정보 이론 기반 손실 (Information Theory Based Loss)
    • KL Divergence (Kullback-Leibler Divergence): 두 확률 분포 간의 비대칭적인 거리(차이)를 측정한다. 예측 분포가 실제 분포에 얼마나 가까운지를 나타낸다.
    • Jensen-Shannon Divergence (JSD): KL Divergence를 대칭적으로 만들고 값 범위를 또는 [0, log2]로 제한하여 안정화시킨 거리 척도이다.
    • Cross-Entropy: (분류 손실과 연관) 실제 분포 P와 예측 분포 Q가 있을 때, P의 관점에서 Q를 사용하여 정보를 인코딩하는 데 필요한 평균 비트 수를 나타낸다. KL Divergence와 밀접한 관련이 있다 (CrossEntropy(P, Q) = Entropy(P) + KL(P | | Q)).
    • Energy Distance: 두 확률 분포 간의 통계적 거리를 측정하는 지표 중 하나로, 특성 함수(characteristic function)를 기반으로 한다.

B. 최적화 알고리즘 (Optimization Algorithms)

손실 함수를 최소화하기 위해 모델 파라미터(가중치)를 업데이트하는 방법이다.

  1. 1차 미분 기반 최적화 (First-Order Optimization): 기울기(gradient) 정보만 사용한다.
    • Gradient Descent (GD): 전체 훈련 데이터를 사용하여 한 번에 파라미터를 업데이트한다. 데이터가 크면 느리다.
    • Stochastic Gradient Descent (SGD): 무작위로 선택한 하나의 데이터 샘플 또는 작은 미니배치를 사용하여 파라미터를 업데이트한다. 빠르지만 불안정할 수 있다.
    • Mini-Batch Gradient Descent: 전체 데이터와 SGD의 절충안으로, 일정 크기의 미니 배치 단위로 파라미터를 업데이트한다. 가장 널리 사용된다.
    • Momentum: 이전 업데이트 방향을 일정 비율 유지하여 관성처럼 이동함으로써 지역 최적점(local minimum) 탈출 및 수렴 속도 개선을 돕는다.
    • Nesterov Accelerated Gradient (NAG): Momentum을 개선하여, 현재 위치가 아닌 관성 방향으로 미리 이동한 지점에서 기울기를 계산하여 업데이트한다.
    • Adagrad (Adaptive Gradient Algorithm): 각 파라미터마다 학습률을 다르게 조정한다. 자주 업데이트되지 않은 파라미터는 더 큰 학습률을 갖는다.
    • Adadelta: Adagrad의 학습률이 계속 감소하는 문제를 해결하기 위해, 과거 기울기 정보의 양을 제한한다.
    • RMSProp (Root Mean Square Propagation): Adagrad와 유사하게 파라미터별 학습률을 조정하지만, 지수 이동 평균을 사용하여 최근 기울기 정보에 더 큰 가중치를 둔다.
    • Adam (Adaptive Moment Estimation): Momentum과 RMSProp의 장점을 결합한 방식으로, 1차 모멘텀(평균)과 2차 모멘텀(분산의 제곱근)을 함께 사용하여 파라미터별 학습률을 적응적으로 조정한다. 널리 사용되는 최적화 기법이다.
  2. 2차 미분 기반 최적화 (Second-Order Optimization): 헤시안 행렬(Hessian matrix) 등 2차 미분(곡률) 정보를 사용한다. 수렴 속도가 빠를 수 있지만 계산 비용이 매우 높다.
    • Newton's Method: 헤시안 행렬의 역행렬을 사용하여 2차 근사를 통해 파라미터를 업데이트한다.
    • Quasi-Newton Methods (준-뉴턴 방법): 헤시안 행렬의 역행렬을 직접 계산하는 대신 근사하여 사용한다.
      • BFGS (Broyden–Fletcher–Goldfarb–Shanno): 가장 널리 사용되는 준-뉴턴 방법 중 하나이다.
      • L-BFGS (Limited-memory BFGS): 메모리 사용량을 제한하여 대규모 문제에 적용 가능하도록 BFGS를 개선한 방법이다.
    • Conjugate Gradient Method: 헤시안 정보를 직접 사용하지 않으면서도, 매 스텝마다 이전 방향과 켤레(conjugate)인 방향으로 이동하여 효율적으로 최적점을 탐색한다.
    • Gauss-Newton Algorithm: 비선형 최소 제곱(non-linear least squares) 문제에 특화된 방법으로, 헤시안 대신 자코비안(Jacobian) 행렬을 사용한다.
    • Levenberg-Marquardt Algorithm (LMA): Gauss-Newton 방법과 Gradient Descent 방법을 절충하여, 안정성과 수렴 속도를 개선한 방법이다.
  3. 제약 최적화 (Constrained Optimization): 특정 제약 조건 하에서 목표 함수를 최적화한다.
    • Lagrange Multipliers: 등식 제약 조건(equality constraints)을 목표 함수에 통합하여 제약 없는 문제로 변환한다.
    • Augmented Lagrangian Methods: 라그랑주 승수법에 벌점 항(penalty term)을 추가하여 수렴성과 안정성을 개선한다.
    • Sequential Quadratic Programming (SQP): 각 반복 단계에서 원본 비선형 제약 문제를 이차 계획법(Quadratic Programming) 부문제로 근사하여 해를 구한다.
    • Interior-Point Methods / Barrier Methods: 부등식 제약 조건(inequality constraints)을 만족하는 영역 내부에서 시작하여, 제약 경계에 가까워질수록 큰 값을 갖는 장벽 함수(barrier function)를 목표 함수에 추가하여 최적점을 탐색한다.
    • Penalty Methods: 제약 조건을 위반할 경우 벌점(penalty)을 부과하는 항을 목표 함수에 추가하여 최적화한다.
    • Trust-Region Methods: 현재 해 주변의 신뢰 영역(trust region) 내에서 모델 함수(주로 2차 함수)를 최소화하는 방식으로 다음 해를 결정하여 안정성을 확보한다.
  4. 메타휴리스틱 알고리즘 (Metaheuristic Algorithms): 문제에 대한 가정이 적고, 전역 최적해(global optimum)를 찾기 위한 경험적(heuristic) 탐색 기법이다. 주로 복잡하거나 미분 불가능한 문제에 사용된다.
    • Genetic Algorithm (GA): 생물의 진화 과정을 모방하여, 해집단(population)을 유지하면서 선택(selection), 교차(crossover), 돌연변이(mutation) 연산을 통해 세대를 반복하며 더 좋은 해를 탐색한다.
    • Differential Evolution (DE): GA와 유사하지만, 해 벡터들 간의 차이를 이용하여 새로운 후보 해를 생성하는 방식이다.
    • Particle Swarm Optimization (PSO): 새 떼나 물고기 떼의 사회적 행동을 모방하여, 여러 입자(particle)들이 각자의 경험(개인 최적해)과 집단의 경험(전역 최적해)을 바탕으로 해 공간을 탐색한다.
    • Simulated Annealing (SA): 금속의 담금질(annealing) 과정에서 영감을 얻은 방법으로, 온도를 점차 낮추면서 현재 해보다 나쁜 해도 일정 확률로 수용하여 지역 최적점에서 벗어나 전역 최적점을 찾으려 시도한다.
    • Ant Colony Optimization (ACO): 개미들이 먹이를 찾아 집으로 돌아갈 때 페로몬(pheromone)을 남기는 행동을 모방하여, 인공 개미들이 해 공간을 탐색하며 페로몬 농도를 조절하여 최적 경로(해)를 찾는 방식이다. 주로 조합 최적화 문제에 사용된다.
    • Tabu Search (TS): 지역 탐색(local search)을 기반으로 하되, 최근에 방문했던 해나 이동(move)을 금지 목록(tabu list)에 저장하여 탐색 과정이 순환(cycling)에 빠지는 것을 방지하고 다양한 영역을 탐색하도록 유도한다.
    • Iterated Local Search (ILS): 좋은 지역 최적해를 찾은 후, 현재 해를 약간 변경(perturbation)하고 다시 지역 탐색을 수행하는 과정을 반복하여 더 나은 해를 찾으려는 기법이다.
    • Hill Climbing: 현재 해에서 이웃한 해들 중 가장 좋은 해로만 이동하는 단순한 지역 탐색 기법이다. 지역 최적점에 빠지기 쉽다.
    • Sparse Evolutionary Search: (비교적 덜 일반적) 희소한 연결 구조나 특징 부분집합 등을 진화적으로 탐색하는 데 특화된 기법일 수 있다.
  5. 이산 최적화 (Discrete Optimization): 결정 변수가 정수 또는 이산적인 값을 갖는 최적화 문제이다.
    • Branch-and-Bound: 해 공간을 트리 형태로 분할(branch)하고, 각 노드에서 해의 상한 또는 하한(bound)을 계산하여 가능성 없는 가지를 제거(prune)하며 최적해를 탐색한다.
    • Branch-and-Cut: Branch-and-Bound 방법에 절단 평면(cutting plane)을 추가하여 해 공간을 더욱 효과적으로 줄여나가는 기법이다.
    • Branch-and-Price: 대규모 정수 계획 문제에서 열 생성(column generation) 기법과 분지 한정법(Branch-and-Bound)을 결합한 방법이다.
    • Hungarian Algorithm: 이분 그래프(bipartite graph)에서 최대 가중치 매칭(maximum weight matching) 또는 최소 비용 할당(minimum cost assignment) 문제를 효율적으로 푸는 알고리즘이다.
  6. 다목적 최적화 (Multi-Objective Optimization): 두 개 이상의 상충하는 목적 함수를 동시에 최적화하는 문제이다. 단일 최적해가 아닌 파레토 최적해(Pareto optimal solutions) 집합을 찾는 것을 목표로 한다.
    • NSGA-II (Non-dominated Sorting Genetic Algorithm II): 파레토 지배 관계(Pareto dominance)와 혼잡도 거리(crowding distance)를 사용하여 다양한 파레토 최적해를 효율적으로 찾는 대표적인 유전 알고리즘 기반 다목적 최적화 기법이다.
    • Weighted Sum Method: 각 목적 함수에 가중치를 부여하여 단일 목적 함수로 변환한 후 최적화한다. 가중치에 따라 다른 파레토 해를 찾을 수 있다.
    • ε-Constraint Method: 하나의 목적 함수를 최적화하면서 나머지 목적 함수들은 특정 값(ε) 이하 또는 이상이 되도록 제약 조건으로 설정하는 방법이다.

C. 정규화 기법 (Regularization Techniques)

모델의 복잡도를 제어하여 과적합(Overfitting)을 방지하고 일반화 성능을 높이는 기법이다.

  1. 매개변수 규제 (Parameter Norm Penalties): 모델의 가중치(파라미터) 크기에 직접 제약을 가한다.
    • L1 Regularization (Lasso): 가중치의 절댓값 합()을 손실 함수에 추가하여, 일부 가중치를 정확히 0으로 만들어 특징 선택(feature selection) 효과를 유도한다 (희소성, sparsity).
    • L2 Regularization (Ridge / Weight Decay): 가중치의 제곱 합()을 손실 함수에 추가하여, 가중치 값을 전반적으로 작게 만들어 모델을 부드럽게 한다.
    • Elastic Net: L1과 L2 정규화를 선형 결합하여 사용하는 방식으로, L1의 특징 선택 효과와 L2의 안정성(특히 상관관계 높은 특징들이 있을 때)을 동시에 얻으려 한다.
    • Group Lasso: 미리 정의된 특징 그룹 단위로 L1 또는 L2 정규화를 적용하여, 그룹 전체가 선택되거나 제외되도록 유도한다.
  2. 구조적/암시적 규제 (Structural/Implicit Regularization): 학습 과정이나 모델 구조 자체에 제약을 가하여 과적합을 막는다.
    • Dropout: 신경망 훈련 시 각 뉴런(노드)을 일정 확률로 무작위 비활성화(출력을 0으로 만듦)하여, 모델이 특정 뉴런에 과도하게 의존하는 것을 방지하고 여러 개의 작은 모델을 앙상블하는 효과를 낸다.
    • DropConnect: Dropout이 뉴런을 비활성화하는 것과 달리, 뉴런 간의 연결(가중치)을 확률적으로 제거(0으로 만듦)한다.
    • Early Stopping: 훈련 중 검증 세트(validation set)에 대한 성능(예: 손실, 정확도)을 모니터링하다가, 성능이 더 이상 개선되지 않거나 나빠지기 시작하면 훈련을 조기에 중단한다.
    • Data Augmentation: 기존 훈련 데이터를 변형(예: 이미지 회전, 자르기, 밝기 조절)하여 데이터의 양과 다양성을 인위적으로 늘려 모델의 일반화 성능을 높인다.
    • Batch Normalization (BatchNorm): 신경망의 각 층 입력에 대해 미니 배치 단위로 평균과 분산을 계산하여 정규화(평균 0, 분산 1로 조정 후 스케일 및 시프트)함으로써, 학습 과정을 안정화하고 수렴 속도를 높이며 약간의 규제 효과도 제공한다.
    • Layer Normalization (LayerNorm): BatchNorm과 달리 미니 배치가 아닌 개별 데이터 샘플 내의 모든 뉴런(또는 특징)에 대해 정규화를 수행한다. 주로 RNN이나 Transformer와 같이 시퀀스 길이가 가변적인 모델에 사용된다.
    • Weight Decay: 최적화 단계에서 가중치 업데이트 시 현재 가중치 값에 비례하는 항을 빼주는 방식으로, L2 정규화와 동일한 효과를 낸다.
  3. 특수 규제 (Specialized Regularization)
    • Total Variation Regularization: 주로 영상 처리나 역 문제(inverse problem)에서 사용되며, 예측 결과(예: 복원된 이미지)의 총 변동(픽셀 값의 차이 합)을 최소화하여 결과가 부드럽고 노이즈가 적도록 유도하면서도 중요한 경계(edge)는 보존하려 한다.

D. 평가 및 검증 (Evaluation & Validation)

모델의 성능을 측정하고 일반화 능력을 평가하는 방법 및 지표이다.

  1. 분류 문제용 지표 (Classification Metrics)
    • Accuracy (정확도): 전체 샘플 중 올바르게 분류된 샘플의 비율이다. 클래스 불균형이 심할 경우 부적절할 수 있다.
    • Precision (정밀도): 양성(Positive)으로 예측된 샘플 중 실제로 양성인 샘플의 비율이다 (TP / (TP + FP)). 모델이 Positive라고 예측한 것이 얼마나 정확한지를 나타낸다.
    • Recall (재현율 / 민감도): 실제 양성인 샘플 중 모델이 양성으로 올바르게 예측한 샘플의 비율이다 (TP / (TP + FN)). 실제 Positive를 얼마나 잘 찾아내는지를 나타낸다.
    • F1 Score: 정밀도와 재현율의 조화 평균()이다. 두 지표가 모두 중요할 때 사용된다.
    • AUC-ROC (Area Under the Receiver Operating Characteristic Curve): ROC 곡선(다양한 분류 임계값에서 FPR(False Positive Rate) 대비 TPR(True Positive Rate, Recall)을 그린 그래프) 아래의 면적이다. 1에 가까울수록 모델 성능이 좋음을 의미하며, 임계값에 관계없이 모델의 전반적인 판별 능력을 평가한다.
    • PR-AUC (Area Under the Precision-Recall Curve): Precision-Recall 곡선 아래 면적이다. 클래스 불균형이 심한 데이터셋에서는 ROC-AUC보다 더 유용한 평가 지표가 될 수 있다.
    • Cohen’s Kappa: 우연에 의한 예측 일치 수준을 고려하여 평가자 간 또는 모델 예측과 실제 값 간의 일치도를 측정하는 지표이다.
    • Matthews Correlation Coefficient (MCC): 이진 분류 성능을 종합적으로 측정하는 지표로, 클래스 불균형에 강건하며 -1(완전 불일치)부터 +1(완전 일치) 사이의 값을 가진다.
  2. 회귀 문제용 지표 (Regression Metrics)
    • R² (결정 계수, Coefficient of Determination): 모델이 종속 변수의 분산을 얼마나 잘 설명하는지를 나타내는 비율이다 (0~1 사이 값). 1에 가까울수록 설명력이 높다.
    • Adjusted R² (조정된 결정 계수): 독립 변수(특징)의 수가 증가하면 R²가 높아지는 경향을 보정하기 위해 변수 수를 고려한 R² 값이다.
    • RMSE (Root Mean Squared Error): MSE(평균 제곱 오차)에 제곱근을 취한 값으로, 오차의 크기를 원래 데이터와 동일한 단위로 해석할 수 있게 한다.
    • MAPE (Mean Absolute Percentage Error): 실제 값 대비 절대 오차의 백분율 평균이다. 오차의 상대적인 크기를 평가할 때 유용하지만, 실제 값이 0에 가까우면 불안정해질 수 있다.
    • SMAPE (Symmetric Mean Absolute Percentage Error): MAPE의 비대칭성(과대 예측과 과소 예측의 페널티가 다름) 문제를 개선한 지표이다.
  3. 검증 방법 (Validation Methods)
    • Hold-out Method: 데이터를 훈련 세트와 테스트 세트로 한 번 나누어 평가한다. 간단하지만 데이터 분할에 따라 결과가 달라질 수 있다.
    • k-Fold Cross-Validation: 데이터를 k개의 폴드(fold)로 나누고, 각 폴드를 한 번씩 테스트 세트로 사용하고 나머지 k-1개 폴드를 훈련 세트로 사용하는 과정을 k번 반복하여 성능을 평균낸다. 더 안정적인 성능 추정치를 제공한다.
    • Stratified k-Fold Cross-Validation: k-Fold 교차 검증 시 각 폴드의 클래스 비율이 원본 데이터의 클래스 비율과 동일하게 유지되도록 데이터를 분할한다. 클래스 불균형 데이터에 유용하다.
    • LOOCV (Leave-One-Out Cross-Validation): k-Fold에서 k가 데이터 샘플 수(N)와 같은 극단적인 경우이다. 각 샘플을 한 번씩 테스트 세트로 사용한다. 계산 비용이 매우 높다.
    • Time Series Split (시계열 교차 검증): 시계열 데이터에서는 미래의 데이터를 사용하여 과거를 예측하는 것을 방지해야 하므로, 훈련 세트는 항상 테스트 세트보다 시간적으로 앞서도록 데이터를 분할한다 (예: Expanding Window, Sliding Window).
  4. 불확실성 평가 (Uncertainty Evaluation)
    • Calibration Curve (신뢰도 곡선): 모델이 예측한 확률(신뢰도)이 실제 정확도와 얼마나 일치하는지를 시각적으로 보여주는 그래프이다. 완벽하게 보정된 모델은 대각선 형태를 띤다.
    • Expected Calibration Error (ECE): 예측 확률과 실제 빈도 간의 평균적인 차이를 정량화하여 모델의 보정(calibration) 정도를 측정하는 지표이다.

E. 하이퍼파라미터 탐색 (Hyperparameter Tuning/Search)

모델 성능에 영향을 미치는, 학습 전에 사용자가 설정해야 하는 하이퍼파라미터(예: 학습률, 정규화 강도, 트리 깊이)의 최적 조합을 찾는 과정이다.

  • Grid Search: 탐색할 하이퍼파라미터 값들의 조합을 격자(grid) 형태로 모두 시도하여 최적 조합을 찾는다. 계산 비용이 높다.
  • Random Search: 지정된 범위 내에서 하이퍼파라미터 값들을 무작위로 샘플링하여 탐색한다. Grid Search보다 효율적으로 좋은 조합을 찾을 수 있는 경우가 많다.
  • Bayesian Optimization: 이전 탐색 결과를 바탕으로 아직 탐색하지 않은 영역 중 성능 개선 가능성이 높은 지점(획득 함수(acquisition function) 최대화)을 확률적으로 선택하여 탐색하는 방식이다. 적은 시도 횟수로 최적 조합을 찾는 데 효과적이다.
  • Hyperband: 제한된 자원(예: 시간, 반복 횟수) 하에서 여러 하이퍼파라미터 조합을 병렬로 시도하고, 성능이 낮은 조합은 조기에 중단(early-stopping)하여 유망한 조합에 더 많은 자원을 할당하는 효율적인 탐색 기법이다.
  • BOHB (Bayesian Optimization and HyperBand): Hyperband의 효율적인 자원 할당 방식과 Bayesian Optimization의 지능적인 탐색 방식을 결합한 기법이다.
  • Optuna: 베이즈 최적화, TPE(Tree-structured Parzen Estimator), CMA-ES 등 다양한 최신 탐색 알고리즘을 지원하고, 분산 환경에서의 병렬 탐색, 탐색 과정 시각화 등을 제공하는 자동화된 하이퍼파라미터 최적화 프레임워크이다.
  • Population-Based Training (PBT): 여러 모델(개체군)을 병렬로 훈련시키면서, 주기적으로 성능이 좋은 모델의 가중치와 하이퍼파라미터를 성능이 낮은 모델로 복사하고 약간의 변형(mutation)을 가하는 방식으로, 하이퍼파라미터와 모델 가중치를 동시에 최적화한다.

V. 관련 이론 및 심화된 주제 (Related Theory & Advanced Topics)

A. 정보 이론 (Information Theory)

데이터의 불확실성을 정량화하고, 확률 분포 간의 관계를 측정하는 수학적 이론이다. 머신러닝에서 손실 함수 정의, 모델 평가, 특징 선택 등에 활용된다.

  • Shannon Entropy: 확률 변수의 불확실성(정보량)을 측정하는 기댓값이다. 분포가 균일할수록 엔트로피가 높다.
  • Conditional Entropy: 다른 확률 변수 Y의 값이 주어졌을 때, 확률 변수 X의 남은 불확실성을 측정한다 (H(X|Y)).
  • Joint Entropy: 두 확률 변수 X와 Y가 함께 가질 수 있는 상태에 대한 총 불확실성을 측정한다 (H(X, Y)).
  • Mutual Information (상호 정보량): 두 확률 변수 X와 Y가 공유하는 정보량이다. 즉, Y를 앎으로써 X에 대한 불확실성이 얼마나 감소하는지를 나타낸다 (I(X; Y) = H(X) - H(X|Y)).
  • Cross-Entropy: 실제 분포 P에 대해 예측 분포 Q를 사용하여 정보를 인코딩할 때 필요한 평균 비트 수이다. 분류 문제의 손실 함수로 널리 사용된다.
  • KL Divergence (Kullback-Leibler Divergence): 두 확률 분포 P와 Q 사이의 비대칭적인 거리(차이)를 측정한다. P를 Q로 근사할 때의 정보 손실량을 나타낸다 (D_KL(P | | Q)).
  • Jensen-Shannon Divergence (JSD): KL Divergence를 대칭적으로 만들고 값 범위를 또는 [0, log2]로 제한한 거리 척도이다.

B. 설명 가능한 AI (Explainable AI - XAI)

복잡한 인공지능 모델(특히 딥러닝)의 예측 결과를 사람이 이해하고 신뢰할 수 있도록 설명하는 기술 및 방법론이다.

  • SHAP (SHapley Additive exPlanations): 게임 이론의 샤플리 값(Shapley value) 개념을 적용하여, 각 특징(feature)이 특정 예측 결과에 얼마나 기여했는지를 공정하게 측정하고 설명하는 통합 프레임워크이다.
  • LIME (Local Interpretable Model-agnostic Explanations): 특정 예측 결과 주변의 데이터를 샘플링하고, 이 로컬 영역에서 해석 가능한 간단한 모델(예: 선형 모델)을 학습시켜 해당 예측을 설명하는 모델 불특정(model-agnostic) 기법이다.
  • Integrated Gradients (IG): 예측 결과의 변화에 대한 입력 특징의 기여도를 계산할 때, 기준선(baseline) 입력부터 실제 입력까지의 경로를 따라 기울기를 적분하여 특징 중요도를 측정하는 방법이다.
  • Grad-CAM (Gradient-weighted Class Activation Mapping): CNN 모델에서 특정 클래스 예측에 중요한 영향을 미친 입력 이미지 영역(특징 맵)을 시각화하여 모델이 어디를 보고 판단했는지 보여주는 기법이다.

C. 분산 학습 및 MLOps (Distributed Learning & MLOps)

대규모 데이터나 모델을 처리하기 위한 기술과 머신러닝 모델의 개발, 배포, 운영을 자동화하고 효율화하는 방법론이다.

  1. 분산 학습 구조 (Distributed Learning Architectures): 여러 컴퓨팅 자원(장비, 프로세스)을 사용하여 모델 학습을 병렬로 수행한다.
    • Data Parallelism: 동일한 모델을 여러 장치(예: GPU)에 복제하고, 전체 훈련 데이터를 나누어 각 장치에서 병렬로 처리한 후 결과를 동기화(예: 기울기 평균)한다.
    • Model Parallelism: 모델 자체의 크기가 너무 커서 단일 장치에 올릴 수 없을 때, 모델의 다른 부분을 여러 장치에 나누어 배치하고 병렬로 연산한다.
    • Pipeline Parallelism: 모델의 계층(layer)들을 여러 장치에 순차적으로 배치하고, 미니 배치를 여러 마이크로 배치로 나누어 파이프라인처럼 처리하여 장치 활용률을 높인다.
    • Parameter Server Architecture: 파라미터 서버(중앙 서버)가 모델의 파라미터를 저장 및 관리하고, 여러 워커(worker) 노드가 데이터를 받아 학습을 수행하며 파라미터 업데이트를 요청/수신하는 구조이다.
    • 분산 학습 프레임워크/라이브러리:
      • Horovod: TensorFlow, PyTorch, Keras 등에서 MPI(Message Passing Interface) 기반의 효율적인 데이터 병렬 분산 훈련을 지원하는 프레임워크이다.
      • DeepSpeed: Microsoft에서 개발한 대규모 모델(수십억~수조 파라미터) 학습을 위한 최적화 라이브러리로, ZeRO(Zero Redundancy Optimizer) 등의 기술을 통해 메모리 효율성을 극대화한다.
      • TensorFlow Distributed: TensorFlow에서 제공하는 분산 훈련 전략(예: MirroredStrategy, MultiWorkerMirroredStrategy, ParameterServerStrategy)을 포함하는 프레임워크이다.
  2. MLOps (Machine Learning Operations): 머신러닝 모델의 전체 생명주기(데이터 준비, 실험, 훈련, 배포, 모니터링, 재훈련)를 안정적이고 효율적으로 관리하기 위한 원칙과 실천 방법이다. DevOps의 원칙을 머신러닝 시스템에 적용한 것이다.
    • 모델 관리 및 서빙 도구 (Model Management & Serving Tools):
      • MLflow: 실험 추적(tracking), 모델 패키징, 모델 레지스트리(저장 및 버전 관리), 모델 배포(serving) 등 머신러닝 생명주기 관리를 위한 오픈소스 플랫폼이다.
      • DVC (Data Version Control): Git과 유사하게 대규모 데이터셋과 머신러닝 모델 파일의 버전을 관리하고 실험 재현성을 높이는 도구이다.
      • Airflow: 워크플로우(작업 흐름)를 DAG(Directed Acyclic Graph) 형태로 정의하고 스케줄링, 모니터링, 실행하는 오픈소스 플랫폼이다. ML 파이프라인 자동화에 사용된다.
      • Kubeflow / Kubeflow Pipelines: Kubernetes 위에서 머신러닝 워크플로우를 구축, 배포, 관리하기 위한 플랫폼이다. 특히 컨테이너 기반의 확장 가능하고 이식성 있는 ML 시스템 구축에 유용하다.
      • BentoML: 학습된 머신러닝 모델을 고성능의 예측 서비스(REST API 등)로 쉽게 패키징하고 배포할 수 있도록 지원하는 프레임워크이다.
      • Seldon Core: Kubernetes 기반으로 머신러닝 모델을 배포, 확장, 모니터링하고 A/B 테스트, 카나리 배포 등을 지원하는 오픈소스 플랫폼이다.
    • 데이터 라벨링 도구 (Data Labeling Tools):
      • Label Studio: 이미지, 텍스트, 오디오, 비디오 등 다양한 유형의 데이터에 대한 라벨링(주석 작업) 인터페이스를 제공하는 오픈소스 도구이다.

D. 프라이버시 및 연합 학습 (Privacy & Federated Learning)

데이터 프라이버시를 보호하면서 머신러닝 모델을 학습하고 활용하는 기술이다.

  • Federated Learning (연합 학습): 원본 데이터를 중앙 서버로 보내지 않고, 각 사용자(클라이언트)의 로컬 장치에서 데이터를 사용하여 모델을 개별적으로 학습시킨 후, 모델 업데이트(예: 가중치 변화량)만을 중앙 서버로 보내 통합(aggregation)하는 분산 학습 방식이다. 데이터 프라이버시 보호에 유리하다.
  • Split Learning (분할 학습): 모델의 일부는 사용자 장치에서, 나머지 부분은 서버에서 나누어 학습하는 방식으로, 연합 학습과 달리 모델 구조를 분할하여 프라이버시를 보호하고 계산 부담을 분산시킨다.
  • Differential Privacy (차분 프라이버시): 데이터셋에 대한 질의(query) 결과나 학습된 모델 파라미터에 통계적인 노이즈를 추가하여, 특정 개인의 정보가 결과에 미치는 영향을 제한함으로써 개인 식별 위험을 수학적으로 보장하는 프라이버시 보호 기법이다.

E. 강화학습 심화 기술 (Advanced Reinforcement Learning Techniques)

  • MuZero: 게임 규칙이나 환경 모델을 명시적으로 알지 못해도, 스스로 상태 표현, 전이(dynamics), 보상 함수를 학습하는 모델 기반 강화학습 알고리즘이다. (I.B.3 참고)
  • Dreamer (DreamerV3): 환경 모델을 학습하여 잠재 공간(latent space)에서 미래 상태와 보상을 예측하고, 이를 바탕으로 상상(imagination) 속에서 정책을 효율적으로 학습하는 모델 기반 강화학습 구조이다. (I.B.3 참고)
  • MADDPG (Multi-Agent Deep Deterministic Policy Gradient): 여러 에이전트가 존재하는 환경에서, 각 에이전트가 다른 에이전트들의 정책 정보를 활용하여 협력 또는 경쟁하며 학습하는 다중 에이전트 강화학습 알고리즘이다.
  • QMIX: 개별 에이전트의 Q 함수를 비선형적으로 결합하여 팀 전체의 공동 Q 함수를 추정하고, 이를 통해 협력적인 다중 에이전트 환경에서 분산된 정책을 학습하는 기법이다.
  • Offline Reinforcement Learning (오프라인 강화학습): 환경과의 실시간 상호작용 없이, 미리 수집된 고정된 데이터셋(로그 데이터 등)만을 사용하여 정책을 학습하는 강화학습 방식이다. 관련 기법 예시: Conservative Q-Learning (CQL), Implicit Q-Learning (IQL), Advantage-Weighted Actor-Critic (AWAC).
  • Constrained Reinforcement Learning (제약 강화학습): 보상 최대화뿐만 아니라, 특정 제약 조건(예: 안전 제약, 비용 제약)을 만족하도록 정책을 학습하는 강화학습 방식이다. 관련 기법 예시: Constrained Policy Optimization (CPO), Shielded Reinforcement Learning.

F. 수학적 최적화 (Mathematical Optimization) - ML과의 관계

머신러닝 모델 학습(손실 함수 최소화) 자체가 최적화 문제이며, 다양한 수학적 최적화 기법들이 직간접적으로 활용된다. (IV.B 최적화 알고리즘과 중복되는 내용이 많으나, 보다 이론적인 관점에서 분류)

  1. 선형 계획법 (Linear Programming - LP): 선형 목적 함수를 선형 등식/부등식 제약 조건 하에서 최적화한다.
    • Simplex Method: 해 공간의 꼭짓점(vertex)을 따라 이동하며 최적해를 탐색하는 고전적인 해법이다.
    • Interior-Point Methods: 해 공간의 내부(interior)에서 시작하여 중심 경로(central path)를 따라 최적점에 점근적으로 접근하는 해법이다.
  2. 이차 계획법 (Quadratic Programming - QP): 이차 목적 함수를 선형 제약 조건 하에서 최적화한다. SVM 등에서 활용된다.
    • Active Set Methods (e.g., Wolfe's Method): 활성 제약 조건(active constraints) 집합을 관리하며 최적해를 찾는 방식이다.
    • Primal-Dual Interior Point Methods: LP와 유사하게 내부점 방법을 적용하여 QP 문제를 해결한다.
  3. 비선형 계획법 (Nonlinear Programming - NLP): 비선형 목적 함수 또는 비선형 제약 조건을 갖는 최적화 문제이다. 대부분의 딥러닝 학습이 여기에 해당한다.
    • Gradient Descent 계열: (IV.B.1 참고)
    • Newton's Method, SQP, Trust-Region Methods: (IV.B.2, IV.B.3 참고)
  4. 혼합 정수 계획법 (Mixed-Integer Programming - MIP): 일부 변수는 연속적이고 일부 변수는 정수인 최적화 문제이다.
    • Branch-and-Bound, Branch-and-Cut, Branch-and-Price: (IV.B.5 참고)
  5. 동적 계획법 (Dynamic Programming - DP): 최적 부분 구조(optimal substructure)와 중복되는 부분 문제(overlapping subproblems) 특성을 갖는 문제를 작은 부분 문제로 나누어 해결하고, 그 결과를 저장하여 재활용하는 방식이다. 강화학습의 벨만 방정식(Bellman Equation) 등에서 활용된다.
    • Bellman Equation: 현재 상태의 가치 함수를 다음 상태의 가치 함수와 즉각적인 보상으로 표현하는 재귀적인 관계식이다. DP 및 강화학습의 핵심 원리이다.
    • Viterbi Algorithm: 은닉 마르코프 모델(Hidden Markov Model, HMM)과 같은 시퀀스 모델에서 가장 가능성 높은 은닉 상태(hidden state) 시퀀스를 찾는 동적 계획법 기반 알고리즘이다.
  6. 제약 충족 문제 (Constraint Satisfaction Problems - CSP): 변수 집합, 각 변수의 도메인, 변수 간 제약 조건이 주어졌을 때, 모든 제약 조건을 만족하는 변수 값 할당을 찾는 문제이다.
    • Backtracking Search: 변수에 값을 할당해 보면서 제약 조건을 만족하는지 확인하고, 만족하지 않으면 이전 단계로 돌아가 다른 값을 시도하는 완전 탐색 기반 알고리즘이다.
    • Forward Checking: 변수에 값을 할당할 때마다, 해당 할당으로 인해 제약 조건에 영향을 받는 다른 변수들의 도메인에서 불가능한 값들을 미리 제거하는 기법이다.
    • Arc Consistency (AC-3 Algorithm): 변수 쌍 간의 제약 조건을 반복적으로 검사하여, 각 변수의 도메인에서 제약을 만족하는 값이 없는 값들을 제거하여 도메인을 축소하는 기법이다.
  7. 이진 결정 다이어그램 (Binary Decision Diagrams - BDD): 부울 함수(Boolean function)를 효율적으로 표현하고 조작하기 위한 데이터 구조이다.
    • ROBDD (Reduced Ordered Binary Decision Diagram): 변수 순서가 고정되고, 중복 노드와 불필요한 노드가 제거된 표준적인 형태의 BDD이다.
    • ZDD (Zero-suppressed Binary Decision Diagram): 희소한 조합 구조(예: 특징 부분집합) 표현에 특화된 BDD 변형이다.
  8. 유한차분법 (Finite Difference Method): 미분 방정식을 이산적인 격자점(grid points)에서의 함수 값 차이를 이용하여 근사적인 대수 방정식으로 변환하여 수치적으로 해를 구하는 방법이다. (머신러닝 자체보다는 물리 시뮬레이션 등 관련 분야에서 사용)
    • Forward/Backward Euler Method: 시간 또는 공간에 대해 전진(forward) 또는 후진(backward) 차분을 사용하여 1차 미분을 근사하는 가장 간단한 방법이다.
    • Crank-Nicolson Method: 시간 축에서 현재와 다음 시간 스텝의 평균을 사용하여 미분을 근사하는 암시적(implicit) 방법으로, 안정성이 높다.

G. 최신 연구 키워드 (Recent Research Keywords - 2023~2025 기준)

머신러닝 및 딥러닝 분야의 최신 연구 동향을 나타내는 주요 키워드이다.

  • Diffusion Models: 고해상도 이미지, 비디오, 오디오 등 다양한 데이터를 생성하는 데 탁월한 성능을 보이는 생성 모델 계열이다. (III.G 참고)
  • RAG (Retrieval-Augmented Generation): 대형 언어 모델(LLM)이 답변을 생성할 때, 외부 지식 베이스(예: 문서 데이터베이스)에서 관련 정보를 검색(retrieve)하여 이를 참고함으로써 답변의 정확성과 최신성을 향상시키는 기법이다.
  • PEFT (Parameter-Efficient Fine-Tuning): 사전 학습된 대규모 모델(Foundation Model)을 특정 작업에 맞게 미세 조정(fine-tuning)할 때, 모델의 모든 파라미터를 업데이트하는 대신 일부 파라미터(또는 추가된 작은 파라미터)만 학습하여 계산 비용과 메모리 사용량을 크게 줄이는 기법이다. 예시:
    • LoRA (Low-Rank Adaptation): 기존 가중치 행렬의 업데이트를 저차원(low-rank) 행렬의 곱으로 근사하여 학습 파라미터 수를 줄인다.
    • QLoRA: LoRA를 더욱 개선하여, 사전 학습된 모델의 가중치를 낮은 비트(예: 4비트)로 양자화(quantization)하고 저차원 어댑터만 학습하여 메모리 효율성을 극대화한다.
    • 기타: Adapter Tuning, Prompt Tuning, P-tuning 등.
  • RLHF (Reinforcement Learning from Human Feedback) / DPO (Direct Preference Optimization): 인간의 피드백(선호도 데이터 등)을 사용하여 언어 모델의 출력을 인간의 의도나 가치에 맞게 정렬(alignment)하고, 유해하거나 편향된 출력을 줄여 안전성을 높이는 기법이다.
    • RLHF: 인간 선호도를 학습한 보상 모델(reward model)을 구축하고, 이 보상 모델을 최대화하도록 강화학습을 통해 언어 모델을 미세 조정한다.
    • DPO: RLHF의 복잡한 파이프라인(보상 모델 학습 + 강화학습) 대신, 선호도 데이터를 직접 사용하여 선호되는 응답의 확률은 높이고 선호되지 않는 응답의 확률은 낮추는 방향으로 언어 모델을 직접 최적화(분류 문제로 변환)하는 더 간단하고 안정적인 방법이다.
  • Long-Context Transformers: 표준 Transformer 모델이 처리하기 어려운 매우 긴 입력 시퀀스(예: 수십만~수백만 토큰)를 효율적으로 처리할 수 있도록 확장된 아키텍처 및 기법이다 (예: FlashAttention, Ring Attention).
  • NeRF (Neural Radiance Fields): 3D 장면을 연속적인 신경망 표현으로 학습하여 새로운 시점 렌더링(novel view synthesis)을 가능하게 하는 기술이다. (III.H 참고)
  • SAM (Segment Anything Model): 제로샷(zero-shot)으로 이미지 내의 어떤 객체든 분할할 수 있는 대규모 비전 모델이다. (III.H 참고)
  • Foundation Model Compression: 대규모 파운데이션 모델을 경량화하여 모바일 기기나 제한된 환경에서도 사용할 수 있도록 만드는 기술이다. 예시:
    • Pruning (가지치기): 모델의 중요도가 낮은 가중치나 연결, 또는 구조(채널, 레이어 등)를 제거하여 모델 크기를 줄인다.
    • Quantization (양자화): 모델의 가중치나 활성화 값을 높은 정밀도(예: 32비트 부동소수점)에서 낮은 정밀도(예: 8비트 정수)로 변환하여 모델 크기와 계산량을 줄인다.
    • Knowledge Distillation (지식 증류): 크고 성능 좋은 교사 모델(teacher model)의 지식을 작고 빠른 학생 모델(student model)에게 전달하여 학습시키는 방식이다.
    • Low-Rank Factorization/Decomposition (저차원 분해): 모델 내의 큰 가중치 행렬을 더 작은 행렬들의 곱으로 분해하여 파라미터 수를 줄인다. (LoRA도 이 원리를 활용한다)
  • Multimodal Integration: 텍스트, 이미지, 오디오, 비디오 등 여러 종류의 데이터(양식, modality)를 하나의 모델이 동시에 이해하고 처리하며 생성할 수 있는 기술이다. 최신 LLM(예: GPT-4o, Gemini)들이 이러한 방향으로 발전하고 있다.
  • 대표 모델 (Representative Models): (III.D 참고) GPT-4o, Gemini, Claude 3, Mistral, LLaMA, Qwen, StableLM 등.

언리얼 엔진에 NevarokML 설치하는 것이 생각보다 오래 걸렸다. 
언리얼 엔진으로 강화학습 환경 구성하려던 게 몇시간짜리 트러블슈팅이 됐다
처음엔 UE5.5 C++ 프로젝트로 빌드했는데 C++ 컴파일러 버전이 안 맞는다는 오류가 떴다
Visual Studio 설치부터 다시 하고 맞는 버전 찾는 데 시간 쓰고 드디어 빌드 환경 맞췄다
NevarokML 플러그인을 깃헙에서 클론해서 Plugins 폴더에 넣었는데 또 NNE 플러그인이 없다고 했다
언리얼 에디터에서 플러그인 설정 가서 NNE 활성화했지만 여전히 같은 오류
혹시나 해서 UE5.4로 버전 바꾸고 컴파일러 또 바꾸고 같은 작업 반복
그래도 안 됐다

이쯤 되면 누구나 고민한다 다른 플러그인 써야 하나 내가 뭐 놓쳤나
그때 NevarokML 공식 문서를 다시 봤다
거기엔 분명히 UE5.2까지만 지원한다고 적혀 있었다
UE5.2로 다시 설치하고 세팅했더니 아무 문제 없이 플러그인이 돌아갔다


이 과정에서 LLM의 약점을 명확히 느꼈다
코드 설명 문법 오류 알고리즘 이런 건 정말 빠르고 정확하다
근데 환경 세팅 버전 문제 플러그인 호환성 같은 건 기대 이하였다
왜냐면 LLM은 내가 주는 정보만으로 답을 만들어야 하는데 문제는 내가 뭘 모르는지조차 모를 때다
환경 설정에서 오류가 날 때는 내가 정확히 어떤 설정을 했고 어떤 구조에서 오류가 발생하는지 전체 상황을 공유하지 않으면 LLM도 그냥 이럴 수도 있고 저럴 수도 있다 수준에서 끝난다

게다가 실시간으로 상태를 점검할 수 없다는 한계도 크다
LLM은 내가 지금 어떤 파일을 열었고 어떤 버전을 설치했고 어떤 경로에 어떤 플러그인이 들어있는지 모른다
그걸 일일이 설명해줘야 하는데 정작 설명하는 나도 헷갈리는 경우가 많다
이게 LLM이 코드를 이해하지 못한다는 말과는 좀 다르다
LLM은 상태를 추적하지 못한다
시스템에서 벌어지는 일련의 흐름을 보는 눈이 없다


이번에 느낀 건 하나다
LLM은 결국 상황이 명확할 때만 제대로 작동한다
초기 설정이 꼬였거나 내가 뭘 놓쳤는지 감이 안 올 때는 공식 문서를 보고 하나하나 짚어보는 게 더 빠르다
LLM이 해줄 수 없는 건 상황 판단이다
지금 이 문제의 본질이 뭔지 전체 그림에서 뭐가 틀렸는지 찾는 건 여전히 사람 몫이다

그리고 이건 앞으로 어떤 프로젝트를 하든 꼭 기억해야 할 부분 같다
LLM은 강력한 도구지만 모든 걸 맡길 수는 없다
특히 환경 세팅 같은 거 직접 확인하고 체크하는 습관이 없으면 LLM이 아니라 누구도 답 못 준다

+ Recent posts