728x90
반응형
SMALL

자연어처리 모델을 만들다 보면 항상 부딪히는 가장 큰 골첫거리가 있다. 바로 모델이 학습할 때 한번 도 본 적 없는 '모르는 단어(OOV, Out-Of-Vocabulary)'나 '처음 보는 문장 패턴'을 만났을 때이다. 

N-gram 언어 모델 같은 경우, 한 번도 본 적 없는 단어 조합이 나오면 확률을 '0'으로 계산해 버려서 문장 전체의 확률이 0이 되어버리는 치명적인 문제가 발생한다. 이런 융통성 없는 모델에게 유연함을 가르쳐주는 똑똑한 대처법, 백오프(Backoff) 기법이다. 

 

1. 백오프(Backoff)란 무엇인가 ?

백오프는 영어로 '물러서다', '후퇴하다'라는 뜻이다. 자연어 처리에서는 모델이 어떤 단어나 문장의 확률을 계산하려 할 때, "내가 아는 정보가 없으면, 한 발짝 물러나서 더 작고 일반적인 정보에 기대어 예측하겠다"는 전략을 말한다. 

주로 N-gram 언어 모델에서 '희소 문제(spartsity problem)'를 해결하기 위해 사용된다. 3개의 단어 조합(Trigram) 을 찾을 수 없다면 2개의 단어 조합(Bigram)으로 물러서고, 그것도 없으면 1개의 단어(Unigram)빈도수로 물러서서 어떻게든 확률을 계산해 내는 방식이다.

쉬운 비유로 이해하기 : 식당 메뉴 추천하기

단골 식당의 웨이터라고 상상해 보세요. 손님이 들어와서 주문을 하려고 합니다.

  • 원래 계획 (Trigram): "이 손님은 비가 오는 날(1) + 혼자 오면(2) + 항상 짬뽕(3)을 드셨지! 짬뽕을 추천하자."
  • 문제 발생: 그런데 오늘은 비가 오는데(1) + 친구랑 같이(2) 왔다. 이런 적은 처음이라 데이터가 없다! (확률 0)
  • 백오프(Backoff) 발동 (Bigram으로 후퇴): "비가 오고 친구랑 온 데이터는 없네... 한 발짝 물러서자. 그냥 '비가 오는 날(1)'에는 사람들이 보통 뭘 많이 먹었지? 아, 파전을 많이 먹었구나! 파전을 추천하자."

이처럼 완벽하게 일치하는 긴 조건(데이터)이 없을 때, 조건을 하나씩 줄여가며(후퇴하며) 어떻게든 가장 그럴듯한 정답을 찾아내는 과정이 바로 백오프이다. 

반응형

2. 백오프가 필요한 이유 (희소 문제 해결)

언어 모델이 "소년이 공을 던진다"라는 문장이 얼마나 자연스러운지 확률을 계산한다고 해본다.

만약 모델이 학습한 수백만 권의 책 중에 "소년이 공을 던진다"라는 정확히 똑같은 문장이 단 한 번도 나오지 않았다면 어떻게 될까요? 단순한 N-gram 모델은 이 문장이 세상에 존재할 확률을 '0%'라고 극단적으로 판단해 버린다. 이를 희소 문제(Sparsity Problem)라고 부르다.

백오프는 이럴 때 "소년이 공을"이라는 조건이 없으면, 한 발짝 물러나서 "공을 던진다"라는 패턴이 얼마나 자주 쓰였는지를 보고 확률을 대신 계산해 준다. 덕분에 모델이 처음 보는 문장 앞에서도 당황하지 않고 유연하게 대처할 수 있게 된다.

 

3. 카츠 백오프(Katz Backoff)

백오프 기법 중 가장 유명한 것이 바로 카츠 백오프(Katz Backoff)이다.

단순히 한 발짝 물러서기만 하면, 원래 데이터가 풍부했던 패턴과 물러서서 구한 패턴 사이의 확률 계산이 불공평해질 수 있다. 그래서 카츠 백오프는 "자주 등장하는 패턴의 확률을 아주 조금씩 깎아서(Discounting), 그 남은 확률들을 모아 한 번도 등장하지 않은 패턴들에게 나누어 주는" 아주 공평하고 정교한 수학적 방식을 사용한다.

마치 부자들에게 세금을 조금씩 걷어서 가난한 사람들에게 나누어주는 복지 정책과 비슷하다고 볼 수 있다. 

 

728x90

 

4. 한눈에 보는 비교 : 단순 N-gram vs 백오프 적용

비교 항목 단순 N-gram 백오프(Backoff) 적용 모델
모르는 패턴 대처 확률을 무조건 '0'으로 처리 (에러 발생) 한 단계 낮은 N-gram 으로 후퇴하여 활률 계산
희소 문제(Sparsity) 매우 취약함(조금만 길어져도 데이터가 없음) 유연하게 대처 가능(어떻게든 확률을 찾아냄)
계산의 유연성 융동성 없이 완벽히 일치하는 것만 찾음 조건이 안 맞으면 타협(후퇴)할 줄 앎
확률의 정확도 본 적 없는 문장은 무조건 틀린 문장 취급 처음 보는 문장도 꽤 그럴듯하게 자연스러움 평가 가능

 

 

마무리

백오프 (Back off)는 인공지능이 완벽한 정답(데이터)을 찾지 못했을 때 포기하지 않고, "내가 아는 선에서 가장 비슷한 차선책을 찾아보자"라며 한 발짝 물러서는 아주 똑똑하고 유연한 대처법이다. 

최근의 챗GPT 같은 딥러닝 기반의 대형 언어 모델(LLM)들은 임베딩(Embedding)이라는 더 발전된 기술을 사용하여 이 희소 문제를 해결하고 있다. 하지만 백오프가 보여준 "모르는 것을 만났을 때 유연하게 대처하는 철학"은 자연어 처리 발전 역사에서 빼놓을 수 없는 아주 중요한 개념이다.

728x90
반응형
728x90
반응형
SMALL

처음보는 단어나 오타가 섞인 단어의 의미까지 유추해 내는 페이스북(Meta)의 걸작, FastText에 대해 알아본다. 

1. FastText란 무엇인가?

FastText는 단어를 통째로 학습하던 기존의 방식(Word2Vec)에서 벗어나, 단어를 더 작은 단위 (글자 단위)로 쪼개서 학습하는 임베딩 기법이다. 

Word2Vec은 'apple'이라는 단어를 하나의 덩어리로 본다. 하지만 FastText는 'apple'을 <ap, app, ppl, ple, le>처럼 여러 개의 조간(subword) 으로 나눈 뒤, 이 조각들의 의미를 각각 학습하고 나중에 합치는 방식을 사용한다. 

 

쉬운 비유로 이해하기 : 한자어 유추하기

우리가 처음 보는 단어인 '초고속( 超高速)'을 만났다고 상상해 보세요 . 

  • Word2Vec 방식 : "초고속? 내 국어사전에 없는 단어네. 난 몰라!" (포기)
  • FastText 방식 : "초고속? 처음 보지만 쪼개보다. '초(뛰어넘다)' + '고(높다)' + '속(빠르다)' ... 아! 엄청나게 빠르다는 뜻이구나!" (유추 성공)

이처름 FastText는 단어 안에 숨어있는 작은 조각( 어근, 접두사, 접미사 등)들의 알고 있기 때문에, 처음 보는 단어라도 조각 들을 조립해서 의미를 훌륭하게 유추해 낸다. 

 

반응형

2. FastText의 3가지 강력한 장점

① 사전에 없는 단어(OOV) 처리 능력

가장 큰 장점이다. 신조어나 줄임말(예: '존맛탱', 'JMT')이 등장해도, 그 안에 포함된 글자 조각 ('맛', '탱')들의 의미를 이미 학습해 두었기 때문에 대략적인 의미를 파악할 수 있다. 

② 오타에 매우 강함

사용자가 '사과'를 '사과ㅏ'라고 잘못 쳤다고 해봅시다. Word2Vec은 이를 완전히 새로운 단어로 인식하지만, FastText는 '사', '과'라는 조각이 겹치는 것을 보고 "아, '사과'를 잘못 친 거구나!"라고 유추하여 비슷한 벡터 값을 할당해 준다. 

③ 희귀 단어(Rare words)  학습에 유리

자주 등장하지 않더라도 , 그 단어를 구성하는 글자 조각드은 다른 흔한 단어들에서 이미 많이 학습되었을 확률이 높아진다. 따라서 희귀 단어의 의미도 훨씬 정확하게 파악할 수 있다. 

 

3. FastText의 단점은 없을까?

물론 완변한 기술은 없다. 단어를 잘게 쪼개서 학습하다 보니 발생하는 문제점도 있다. 

  • 학습 시간이 오래 걸림 : 단어 하나를 여러 개의 조각으로 나누어 각각 학습해야 하므로, Word2Vec에 비해 계산량이 훨씬 많고 학습 시간이 오래 걸린다. 
  • 메모리 사용량 증가 : 단어뿐만 아니라 수많은 글자 조각(subword)들의 벡터 값까지 모두 저장해야 하므로 모델의 용량이 커진다. 
728x90

 

4. 한눈에 보는 비교 : Word2Vec vs FastText

비교 항목 Word2Vec FastText
학습 단위 단어 전체를 하나의 덩어리로 학습 단어를 여러 개의 조각(Subword)으로 쪼개서 학습
모르는 단어 (OOV)처리 불가능(에러 발생 또는 무시) 가능(조각들을 조합해 의미 유추)
오타 대체 능력 매우 취약함 매우 강함
학습 속도 및 용량 빠르고 가벼움 느리고 무거움(조각들까지 계산/저장해야 함)
한국어 적용 형태소 분석이 필수적임 자음/모음 단위로 쪼개면 한국어의 교착어 특성에 매우 유리함

 

마무리

 FastText는 단어를 통째로 외우는 바보 같은 암기법에서 벗어나, 단어의 뿌리와 조각을 이해아혀 처음 보는 단어나 오타까지 척척 알아맞히는 똑똑한 임베딩 기술이다. 

특히 띄어쓰거나 파괴되거나 신조어, 오타가 난무하는 인터넷 댓글, SNS 데이터를 분석할 때 FastText는 그야말로 빚을 발한다. 최신 LLM들이 서브워드 (Subword)로 토큰화를 사용하는 것도 바로 이 FastText의 철학과 맞당아 있다. 

 

제미나이, 챗지피티 등을 이용 하여 작성

728x90
반응형
728x90
반응형
SMALL

 

여러 문서에 등장하는 단어들의 빈도를 한 번에 깔끔하게 정리하고 비교할 수 있는 DTM(Document-Term Matrix, 문서-단어 행렬) 에 대해 알아보겠다. 

 

1. DTM(Document-Term Matrix, 문서-단어 행렬) 이란 무엇인가요 ?

DTM(Document-Term Matrix, 문서-단어 행렬)은 이름 그대로 문서(Document) 를 가로줄(행)로, 단어(Term)를 세로줄(열)로 삼아서 , 각 문서에 특정 단어가 몇 번 등장했는지 숫자로 기록한 거대한 표(행렬)이다.

쉽게 말해, 여러 개의 문서 각각에 대해 BoW(Bag of Words) 를 구한 뒤, 이것들을 하나로 합쳐서 커다란 엑셀 표처럼 만든 것이라고 생각하면 된다. 

 

쉬운 비유로 이해하기 : 식당의 '테이블별 주문 내역서'

DTM은 식당 사장님이 보는 "테이블별 주문 내역서"와 완벽하게 똑같다. 

  • 가로줄(행, Document) : 1번 테이블, 3번 테이블, 3번 테이블(각각의 문서)
  • 세로줄(열, Term) : 짜장면, 짬뽕, 탕수육, 볶음밥 ...(사전에 등록된 모든 단어)
  • 표 안의 숫자 : 1번 테이블이 짜장면 2개, 짬뽕 1개를 시켰다면 해당 칸에 '2'와 '1'을 적는다. 시키지 않은 메뉴칸은 모두 '0'이 된다. 

이렇게 표를 만들어두면 "1번 테이블과 3번 테이블은 주문한 메뉴가 비슷하네!(문서 유사도)" 또는 "우리 식당은 "짜장면이 제일 많이 팔리네 !(단어 빈도)"를 한눈에 파악할 수 있다. 

 

반응형

 

2. DTM의 장점 : 문서 간 비교가 가능해진다!

 

DTM을 만들면 컴퓨터는 드디어 "문서와 문서가 얼마나 비슷한지(문서 유사도)** 를 수학적으로 계산할 수 있게 된다. 

예를 들어, A문서와 B문서의 가로줄 숫자들이 비슷한 패턴을 보인다면, 두 문서는 같은 주제를 다루고 있을 확률이 높다. 이를 활용해 스팸 메일을 걸러내거나, 비슷한 뉴스 기사들을 자동으로 묶어주는(클러서팅) 작업이 가능해진다. 

 

3. DTM의 치명적인 한계점 2가지

하지만 DTM은 아주 기초적인 모델이기 때문에 명확한 단점도 존재한다. 

① 희소 행렬( Sparse Matrix) 문제와 메모리 낭비

사전에 등록된 단어가 10만 개라면, 세로줄(열)이 10만개가 된다. 하지만 짧은 뉴스 기사 하나에 쓰이는 단어는 기껏해야 수백 개에 불과하죠. 결국 표의 대부분(99%이상)은 '0'으로 텅텅 비게 된다. 이렇게 0이 대부분인 행렬을 희소 행렬이라고 부르며, 이는 컴퓨터의 메모리와 계산 시간을 엄청나게 낭비하게 된다. 

 

② 단순 빈도수의 함정 (흔한 단어 문제)

DTM은 단순히 단어가 '몇 번' 나왔지만 세다. 그러다 보니 모든 문서에 자주 등장하는 '나는', '이것은', '그리고' 같은 흔한 단어들이 가장 중요한 단어처럼 높은 숫자를 차지하게 된다. 진짜 핵심 키워드를 가려내지 못하는 것이죠. 

 

 

728x90

 

 

4. 한눈에 보는 비교 : DTM vs TF-IDF

DTM의 '단순 빈도수 함정'을 해결하기 위해 등장한 것이 바로 TF-IDF이다. 

비교항목 DTM(문서-단어 행렬) TF-IDF
평가 기준 단순히 단어가 등장한 횟수(빈도)만 기록 단어의 빈도 + 단어의 희귀성을 함께 고려
흔한 단어 처리 '그리고', '나는' 등 흔한 단어의 숫자가 높게 나옴 흔한 단어는 페널티를 받아 숫자가 낮아짐
핵심어 파악 문서의 진짜 핵심 키워드를 찾기 어려움 문서 고유의 핵심 키워드를 아자 잘 찾아냄
주요 용도 텍스트 데이터의 가장 기본적인 수치화 검색 엔진, 핵심 키워드 추출, 정말한 문서 비교

 

마무리

DTM(문서-단어 행렬)은 수많은 텍스트 문서를 컴퓨터가 계산할 수 있는 하나의 거대한 표로 만들어주는 자연어 처리의 가장 기본적이고 중요한 뼈대이다. 

비록 메모리 낭비나 흔한 단어 처리 등의 한계가 있지만, 이 DTM이 있었기에 이를 개선한 TF-IDF 나 최신 딥러닝 임베딩 기술들이 탄생할 수 있었다. 데이터 분석이나 텍스트 마이닝을 공부하신다면 DTM의 개념은 반드시 머릿속에 '주문 내역서' 비유와 함께 저장해 두시길 바란다!

 

 

 

제미나이, 챗지피티 등을 이용 하여 작성

728x90
반응형

'LLM' 카테고리의 다른 글

32. 백오프(Backoff)  (1) 2026.07.23
31. FastText  (0) 2026.06.04
29. UMAP(Uniform Manifold Approximation and Projection)  (0) 2026.05.21
28. t-SNE(t-distributed Stochastic Neighbor Embedding)  (0) 2026.05.20
27. PCA (주성분 분석)  (0) 2026.05.19
728x90
반응형
SMALL

PCA는 훌륭한 도구지만, 데이터가 복잡하게 꼬여있을 때는 한계가 있다. 

최근 데이터 과학자와 AI 연구자들 사이에서 "가장 빠르고, 가장 아름답게 데이터를 시각화하는 마법의 도구"  로 불리며 폭발적인 인기를 끌오 있는 최신 차원 축소 기법, UMAP(Uniform Manifold Approximation and Projection) 에 대해 알아본다. 

 

1. UMAP(Uniform Manifold Approximation and Projection)이란 무엇인가요 ?

UMAP는 수백, 수천 차원의 복잡한 고차원 데이터를 우리가 눈으로 볼 수 있는 2차원이나 3차원 평면으로 예쁘게  펼쳐주는 (차원 축소 및 시각화 ) 최신 알고리즘이다. 

기존에 시각화의 제왕으로 불리던 't-SNE' 라는 알고리즘이 있었지만, 계산 속도가 너무 느리고 데이터의 전체적인 구조를 잃어버린다는 단점이 있다. UMAP은 복잡한 위상수학(Topology) 이론을 바탕으로 만들어져, t-SNE보다 훨씬 빠르면서도 데이터의 세밀한 특징과 전체적인 그림을 모두 완벽하게 보존해 낸다. 

쉬운 비유로 이해하기 : 구겨진 세계 지도 평치기

종이로 만든 '지구본(고차원 데이터)'을 가지고 있다고 상상해 보세요. 그런데 이 지구본이 누군가에 의해 마구 구겨져서 보이지만, 구겨진 틈새에 있는 나라들은 겹쳐서 보이지 않는다. 

  • PCA (주성분 분석) : 구져진 종이 덩어리를 강한 빛을 비춰 바닥에 생긴 그림자를 본다. 대충 큰 대륙의 윤곽은 보이지만, 구겨진 틈새에 있는 나라들은 겹쳐서 보이지 않는다. 
  • UMAP : 구겨진 종이 덩어리의 표면을 따라가며 "한국 옆에는 일본이 있고, 그 옆에는 태평양이 있네" 라는 이웃 관계(위상 구조)를 꼼꼼히 기록한다. 그리고 이 이웃 관계가 끊어지지 않도록 조심스럽게 종이를 당기고 펴서, 평평하고 완벽한 2D 세계 지도로 만들어낸다!

UMAP은 데이터들 사이의 '누가 누구랑 친한가(이웃 관계)'를 고차원 공간에서 먼저 파악한 뒤, 저차원 공간에서도 그 친소 관계가 그대로 유지되도록 점들을 배치하는 원리이다. 

-> 고차원 데이터를 2차원이나 3차원으로 예쁘게 시각화할 때 아주 강력한 성능을 발휘하는 최신 기법이다. 

 

 

반응형

2. UMAP이 자연어 처리(NLP)에서 강력한 이유 

자연어 처리나 대형 언어 모델(LLM)에서 UMAP은 단순히 예쁜 그림을 그리는 용도를 넘어, AI 가 언어를 어떻게 이해하고 있는지 분석하는 핵심 도구로 쓰인다. 

  1. 단어 임베딩 (Word Embdding ) 시각화
    Word2Vec이나 BERT가 만들어낸 수백 차원의 단어 벡터들을 UMAP으로 2차원에 뿌려보면 놀라운 일이 버러진다. '긍정적인 단어'와 '부정적인 단어', '과일 이름'과 '동물 이름' 들이 모니터 화면 위에서 자기들끼리 완벽하게 무리를 지어 (Clustering)  모여 있는 것을 눈으로 직접 확인할 수 있다. 
  2. 문서 군집화 (Document Clustering)
    수만 건의 뉴스 기사나 리뷰 데이터를 UMAP으로 압축하면, 정치 기사는 정치 기사끼리, 스포츠 기사는 스포츠 기사끼리 섬처럼 뭉치게 된다. 이를 통해 방대한 텍스트 데이터의 전체적인 트렌드와 주제 분포를 한눈에 파악할 수 있다. 

 

3. 비교  : PCS vs t-SNE vs UMAP

비교 항목 PCA(주성분 분석) t-SNE UMAP
작동 원리 데이터의 분산(퍼짐)이 가장 큰 축을 찾음 데이터 간의 거리를 확률로 변환하여 배치 위상수학을 이용해 이웃관계(구조)를 보존하며 배치
계산 속도 매우 빠름 매우 느림(데이터가 많으면 멈춤) 빠름(t-SNE보다 압도적으로 빠름)
전역 구조 보존 전체적인 구조를 아주 잘 보존함 세밀한 군집은 잘 찾지만, 전체 구조는 잃어버 세밀한 군집과 전체 구조를 모두 훌륭하게 보존함
주요 용도 노이즈 제거, 기본 차원 축소 고차원 데이터의 2D/3D 시각화  대용량 고차원 데이터의 빠르고 정확한 시각화 및 군집화
728x90

마무리

UMAP은 복잡하게 얽혀있는 고차원 데이터의 이웃 관계를 파악하여, 가장 빠르고 정확하게 우리가 눈으로 볼 수 있는 지도로 펼쳐주는 최강의 시각화 마법이다. 

최신 AI 논문이나 데이터 분석 보고서를 보면 알록달록한 점들이 섬처럼 모여있는 예쁜 그래프들을 자주 볼 수 있는데, 십중팔구는 이 UMAP을 사용해 그린 것이다. 데이터의 숨겨진 패턴을 눈으로 직접 확인하고 싶다면 UMAP은 선택이 아닌 필수있다. 

 

 

 

 

제미나이, 챗지피티 등을 이용 하여 작성

728x90
반응형

'LLM' 카테고리의 다른 글

31. FastText  (0) 2026.06.04
30. DTM(Document-Term Matrix, 문서-단어 행렬)  (0) 2026.06.02
28. t-SNE(t-distributed Stochastic Neighbor Embedding)  (0) 2026.05.20
27. PCA (주성분 분석)  (0) 2026.05.19
26. 차원 축소(Dimensionality Reduction)  (0) 2026.05.18
728x90
반응형
SMALL

임베딩(Embedding), 이미지 특징 벡터, 문장 벡터처럼 차원이 높은 데이터를 사람이 이해하기 쉽게 2차원 또는 3차원으로 시각화할 때 자주 사용하는 기법이다. 

 

t-SNE란 무엇인가요?

t-SNE는 고차원 데이터의 가까운 관계를 최대한 보존하면서 저차원 공간으로 줄여주는 차원 축소 (Dimensionality Reduction)기법이다. 

예를 들어 얼굴 인식 모델이 만든 512차원 얼굴 임베딩이 있다고 해보겠다. 사람은 512차원 공간을 볼 수 없기 때문에, 이 벡터들을 2차원 평면에 점으로 찍어보면 어떤 사람끼리 비슷하게 묶이는지 확인할 수 있다. 

쉽게 비유하면, t-SNE는 복잡한 도시의 사람 관계를 한 장의 지도 위에 배치하는 작업과 비슷하다. 서로 친한 사람들은 가깝게, 관련이 적은 사람들은 멀리 배치해서 전체 관계를 눈으로 볼 수 있게 해준다. 

고차원 데이터를 2차원이나 3차원으로 예쁘게 시각화할 때 아주 강력한 성능을 발휘하는 최신 기법이다. 

 

t-SNE는 왜 사용하나요?

t-SNE의 가장 큰 목적은 데이터 구조를 눈으로 이해하는 것이다. 

예를 들어 다음과 같은 상황에서 유용한다. 

  • 이미지 분류 모델의 feature가 클래스별로 잘 나뉘는지 확인
  • 얼굴 임베딩이 사람별로 잘 군집화되는지 확인
  • NLP 문장 임베딩이 의미별로 가까이 모이는지 확인
  • 이상치(outlier)가 있는지 시각적으로 탐색
  • 모델 학습 전후의 representation 변화 비교

즉, t-SNE는 모델을 직접 학습시키는 도구라기보다는 모델이 데이터를 어떻게 이해하고 있는지 확인하는 시각화 도구에 가깝다. 

 

반응형

 

t-SNE의 핵심 아이디어

t-SNE는 고차원 공간에서 가까운 데이터들이 저차원 공간에서도 가깝게 유지되도록 배치한다. 

예를 들어 고차원 공간에서 A와 B가 매우 비슷하다면, 2차원 시각화에서도 A와 B를 가까이 두려고 한다. 반대로 서로 다른 데이터는 멀리 배치되도록 조정한다. 

다만 중요한 점이 있다. 

t-SNT는 전체 거리의 절대적인 의미보다는 가까운 이웃 관계를 잘 보여주는 데 강하다. 

즉, t-SNE 그림에서 "같은 군집 안에서 가까운 점들"은 의미 있게 볼 수 있지만, "서로 멀리 떨어진 군집 간 거리"를 너무 엄격하게 해석하면 위험할 수 있다. 

 

t-SNE와 PCA 비교

비교 항목 PCA t-SNE
목적 전체 분산을 잘 보존 가까운 이웃 관계를 잘 보존
방식 선형 차원 축소 비선형 차원 축소
속도 빠른 편 상대적으로 느림
해석성 축의 의미 해석 가능 축 자체의 의미는 약함
장점 간단하고 빠름 군집 구조 시각화에 강함
단점 복잡한 비선형 구조 표현 한계 결과가 파라미터와 랜덤성에 민감
대표 용도 전처리, 압축, 빠른 분석 임베딩/feature 시각화

 

 

t-SNE를 사용할 때 주의할 점

t-SNE 결과는 예쁘게 보이지만, 무조건 정확한 데이터 구조라고 믿으면 안된다. 

특히 다음을 주의해야 한다. 

  1. perlexity 값에 따라 결과가 달라질 수 있다. 
  2. random seed에 따라 배치가 달라질 수 있다. 
  3. 군집 사이의 거리나 크기를 과도하게 해석하면 안된다. 
  4. 대용량 데이터에서는 계산 비용이 커질 수 있다. 

그래서 실무에서는 t-SNE를 최종 판단 도구로 쓰기보다는, 데이터와 모델의 상태를 빠르게 살펴보는 탐색적 분석 도구로 사용하는 것이 좋다. 

 

728x90

 

마무리

t-SNE는 고차원 데이터를 사람이 볼 수 있는 2차원 지도처럼 펼쳐주는 강력한 시각화 기법이다. 

특히 이미지, 얼굴인식, 자연처 처리, 임베딩 분석에서 데이터가 잘 군집화되는지 확인할 때 유용한다. 

다만 t-SNE는 시각화 도구이지, 모든 거리를 정확하게 보존하는 도구 아니다. 

따라서 결과를 볼 떄는 "가까운 이웃 관계를 확인한다"는 관점으로 해석하는 것이 좋다. 

 

 

 

제미나이, 챗지피티 등을 이용 하여 작성

728x90
반응형
728x90
반응형
SMALL

차원 축소를 수행하는 방법에는 여러 가지가 있지만, 그 중에서도 가장 유명하고 널리 쓰이는 '데이터 다이어트의 정석'이 있다. 바로 PCA(주성분 분석, Principal Component Analysis)이다. 

이름에 '주성분'이라는 말이 들어가서 왠지 화학이나 영양학 용어 같지만, 사실 머신러닝과 데이터 분석에서 절대 빠질 수 없는 핵심 수학 기법이다. 

 

1. PCA(주성분 분석)란 무엇인가요 ?

PCA(Principal Component Analysis) 는 데이터가 가진 여러 가지 특징(차원)중에서, 데이터의 차이를 가장 잘 설명해 주는 '주요 성분(Principal Component)'을 찾아내어 데이터를 압축하는 기법이다.

데이터 분석에서 가장 중요한 것은 '데이터들이 서로 어떻게 다른가(분산)'를 파악하는 것이다. 모두가 똑같은 값을 가지는 특징은 분석할 가치가 없기 때문이죠. PCA는 데이터가 가장 넓게 퍼져 있는 방향(분산이 가장 큰 방향)을 찾아내어, 그 방향을 새로운 기준축으로 삼아 데이터를 요약한다. 

쉬운 비유로 이해하기 : 피자 사진 찍기

아주 맛있게 생긴 '입체적인 둥근 피자(3차원 데이터)'를 친구에게 자랑하려고 스마트폰으로 사진(2차원 데이터)을 찍는다고 상상해 보세요 . 

  • 잘못된 각도(PCA 실패): 피자를 옆면에서 수평으로 찍으면? 그냥 얇은 선이나 직사각형처럼 보일 것이다. 피자의 토핑이 뭔지, 크기가 얼마나 큰지 전혀 알 수 없죠. 데이터의 특징이 다 뭉개져 버렸다. 
  • 완벽한 각도(PCA성공): 피자를 위에서 수직으로 내려다보고(항공샷)찍으면? 피자의 둥근 모양, 페퍼로니와 치즈의 위치 등 피자의 가장 중요한 특징(분산)이 최대한 넓게 잘 보이게 된다. 

PCA는 바로 이 '항공샷'을 찍는 완벽한 각도(주성분)를 수학적으로 찾아내어, 3차원 피자를 2차원 사진으로 가장 정보 손실 없이 압축해 주는 카마라맨과 같다!

-> 데이터가 가장 넓게 퍼져 있는 방향(분산이 가장 큰 축)을 찾아내어 그쪽으로 데이터를 투영시키는 가장 대표적이고 고전적인 방법이다. 

 

반응형

 

2. PCA는 어떻게 작동할까요 ? (핵심 원리)

PCA가 데이터의 '항공샷'을 찾는 과증은 크게 3단계로 요약할 수 있다. 

  1. 데이터의 중심 맞추기: 흩어져 있는 데이터들의 평균을 구해서, 모든 데이터의 중심을 원점(0,0)으로 이동시킨다. (영점 조절)
  2. 첫 번째 주성분(PC1) 찾기 : 데이터가 가장 길게, 가장 넓게 퍼져 있는 방향( 분산이 최대인 방향)에 선을 긋는다. 이것이 데이터의 특징을 가장 잘 설명하는 제1주성분이다. 
  3. 두 번째 주성분(PC2) 찾기 : 첫 번째 선(PC1)과 직각(직교)을 이루면서, 그다음으로  데이터가 많이 퍼져 있는 방향에 선을 긋는다. 

이렇게 찾은 새로운 선(주성분)들을 기준으로 데이터를 다시 표현하면, 100개의 특징을 단 2~3개의 주성분만으로도 훌륭하게 요약할 수 있게 된다. 

 

728x90

 

3. 자연어 처리 (NLP)에서 PCA 의 역할

자연어 처리에서는 단어 하나하나가 차원이 되기 때문에 데이터가 수만 차원에 달한다. 여기서 PCA는 어떤 역할을 할까요 ?

  • 단어 임베딩 시각화 : Word2Vec 등으로 만든 100차원, 300차원의 밀집 행렬(Dense Matrix)은 사람이 눈으로 볼 수 없다. 이때 PCA를 사용해 2차원이나 3차원으로 압축하면, '왕'과 '여왕', '남자'와 '여자' 같은 단어들이 모니터 화면 위에서 어떻게 군집을 이루고 있는지 그래프로 그려볼 수 있다. 
  • 노이즈 제거 : 문서 데이터에서 중요하지 않은 자잘한 단어들의 영향력(노이즈)을 제거하고, 문서를 관통하는 핵심 주제(주성분)만 남겨 분석의 정확도를 높여준다. 

 

4. 비교; 원본 데이터 vs PCA 압축 데이터

비교 항목 원본 데이터 PCA 압축 데이터
특징(차원)의 수 매우 많음 (예: 100개) 매우 적음(예: 2~3개의 주성분)
정보의 상태 모든 정보가 날것 그대로 섞여 있음 데이터의 차이(분산)
변수의 의미 '키', '몸무게' 등 직관적인 의미를 가짐 여러 변수가 섞인 새로운 축이므로 직관적 해석이 어려움
주요 용도 원본 데이터 저장 및 정밀 분석 데이터 시각화, 노이즈 제거, 머신러닝 학습 속도 향상

 

마무리

PCA(주성분 분석) 는 복잡한 데이터 덩어리에서 가장 정보가 풍부한 완벽한 각도(주성분)를 찾아내어, 정보 손실을 최소화하면서 데이터를 압축하는 최고의 카메라 맨이다. 

최신 AI 모델들은 더 복잡한 딥러닝 기반의 압축 방식을 사용하기도 하지만, 데이터의 본질을 파악하고 시각화하는 데 있어서 PCA는 여전히 데이터 과학자와 AI엔지니어들이 가장 먼저 꺼내 드는 강력한 무기이다. 

 

 

제미나이, 챗지피티 등을 이용 하여 작성

728x90
반응형
728x90
반응형
SMALL

1. 차원(Dimension)이란 무엇이고, 왜 줄여야 할까요?

데이터 분석에서 차원(Dimension)이란 쉽게 말해 데이터가 가진 특징(Feature)의 개수를 의미한다. 

예 : 

사람을 설명할 때 [키, 몸무게, 나이] 3가지 정보만 쓴다면 3차원 데이터가 된다. 

자연어 처리(NLP)에서는 단어 사전의 크기가 곧 차원이 된다. 만약 10만 개의 단어를 안다면, 문장 하나를 처리할 때마다 10만 차춴의 거대한 데이터(희소 행렬)를 다뤄야 한다. 

문제는 차원이 너무 커지면 '차원의 저주(Curse of Dimensionality)'라는 무서운 현상이 발생한다는 것이다. 데이터 공간은 우주처럼 넓어지는데 실제 데이터는 텅텅 비게 되어, 컴퓨터가 패턴을 찾지 못하고 메모리만 엄청나게 낭비하게 된다. 그래서 우리는 차원을 확 줄여야만 한다. 

쉬운 비유로 이해하기 : 손가락 그림자 놀이

차원 축소는 3D 입체 사물에 빚을 비춰 2D 그림자로 보는 것과 완벽히 똑같다. 

우리가 손가락으로 강아지 모양을 만들어 벽에 그림자를 비춘다고 상상해 보세요. 손락의 입체적인 두께나 피부의 질감(불필요한 차원)은 그림자에서 사라진다. 하지만 벽에 비친 2차원 평면 그림자만 보고도 우리는 그것이 '강아지'라는 핵심 특징(본질)을 단번에 알아볼 수 있다. 

이처럼 불필요한 정보(두께, 질감)는 과감히 버리고, 데이터의 본질적인 모양(강아지 형태)만 남기는 것이 바로 차원 축소이다. 

반응형

2. 차원 축소의 3가지 엄청난 장점

데이터를 다이어트 시키면 AI에게 어떤 좋은 점이 생길까요?

① 메모리와 계산 시간 절약 (효울성 극대화)

10만 개의 특징을 100개로 줄이면, 컴퓨터가 계산해야 할 양이 1,000배나 줄어든다. 챗GPT 같은 거대한 모델이 그나마 우리가 쓸 수 있는 속도로 답변을 내놓을 수 있는 것도, 임베딩(Embedding)을 통해 데이터를 저차원으로 꽉꽉 압축해 두었기 때문이다. 

 

② 데이터 시각화 (눈으로 볼 수 있게 됨)

인간의 노는 4차원 이상의 공간을 상상할 수 없다. 10만 차원의 데이터는 그래프로 그릴 수가 없죠 . 하지만 차원 축소 기법을 사용해 데이터를 2차원이나 3차원으로 줄이면, 모니터 화면에 점을 찍어 데이터들이 어떻게 모여 있는지 눈으로 직접 확인할 수 있게 된다. 

③ 노이즈 제거 (쓸데없는 잡음 버리기)

데이터에 섞여 있는 오타, 예외적인 값, 불필요한 패턴 등은 AI 의 학습을 방해하는 '노이즈(Noise); 이다. 차원 축소하는 과정에서 덜 중요한 정보들은 자연스럽게 깎여 나가기 때문에, AI가 진짜 중요한 패턴에만 집중할 수 있게 된다. 

 

3. 대표적인 차원 축소 기법들

  • PCA(주성분 분석): 데이터가 가장 넓게 퍼져 있는 방향 ( 분산이 가장 큰 축 )을 찾아내어 그쪽으로 데이터를 투영시키는 가장 대표적이고 고전적인 방법이다. 
  • SVD(특잇값 분해): 거대한 행렬을 3개로 쪼개어 가장 중요한 특잇값들만 남기고 나머지는 버리는 방식이다. 
  • t-SNE/UMAP: 고차원 데이터를 2차원이나 3차원으로 예쁘게 시각화할 때 아주 강력한 성능을 발휘하는 최신 기법들이다. 
728x90

4. 비교 : 고차원 데이터 vs 차원 축소 데이터

비교 항목 고차원 데이터(축소 전) 차원 축소 데이터(축소 후)
특징(Feature) 개수 수만 ~ 수십만 개 수십 ~ 수백 개
컴퓨터 연산 속도 매우 느림(차원의 저주 발생) 매우 빠름(효율적)
데이터 시각화  불가능(인간이 인지할 수 없음) 가능(2D, 3D 그래프로 표현)
정보의 상태 노이즈(잡음)와 핵심 정보가 섞여 있음 노이즈가 제거되고 핵심(본질)만 남음

 

 

마무리

차원 축소(Dimensionality Reduction)는 무겁고 복잡한 데이터에서 쓸데없는 군살을 빼고 (진짜 중요한 뼈대'만 남기는 데이터 다이어트 기법이다. 

우리가 사용하는 최신 자연어 처리 모델들은 모두 이 차원 축소의 원리를 활용하여, 방대한 인간의 언어를 작고 단단한 밀집 행렬(Dense Matrix)로 압축하여 이해하고 있다. 

 

 

 

제미나이, 챗지피티 등을 이용 하여 작성

728x90
반응형
728x90
반응형
SMALL

SVD는 chatGPT같은 대형 언어 모델(LLM)이나 넷플릭스의 추천 시스템 등 최신 AI 기술의 뼈대가 되는 아주 중요하고 매력적인 개념이다. 

 

1. 특잇값 분해 (SVD)란 무엇인가요 ?

특잇값 분해 (SVD)는 복잡하고 거대한 데이터(행렬)를 가장 중요한 핵심 정보만 남기고 3개의 작은 조각으로 쪼개는 수학적 기법이다. 

자연어 처리에서는 수만 개의 단어와 수만 개의 문서가 얽혀있는 거대한 표(행렬)를 다루게 되는데, 이 표를 그대로 컴퓨터에 넣으면 계산이 어무 오래 걸리고 메모리도 터져버린다. 이때 SVD를 사용하면 데이터의 크기는 확 줄이면서도 원래 데이터가 가지고 있던 '핵심 의미'는 그대로 보존할 수 있다. 

쉬운 비유로 이해하기 : 과일 스무디 레시피

아주 복잡한 맛이 아는 '비밀의 과일 스무디(원본 데이터)'를 마셨다고 상상해 보세요. SVD는 이 스무디를 분석해 다음 3가지로 분리해 내는 과정과 같다. 

  1. 어떤 과일들이 들어갔는가? (딸기, 바나나, 사과 등 = 데이터의 특징)
  2. 각 과일의 맛이 얼마나 강한가? (딸기맛 80%, 바나나맛 15%, 사과맛 5% = 특잇값, 중요도)
  3. 이 스무디를 어떤 비율로 섞어야 원래 맛이 나는가? (조합 비율)

여기서 가장 중요한 것은 2번이다. 사과맛은 겨우 5% 밖에 안나니까, 사과를 빼고 딸기와 바나나만 섞어도 원래 스무디와 거의 비슷한 맛을 낼 수 있겠죠 ? 이것이 바로 SVD가 데이터를 압축하는 핵심 원리이다. 

-> 거대한 행렬을 3개로 쪼개어 가장 중요한 특잇값들만 남기고 나머지는 버리는 방식이다. 

 

반응형

 

2. SVD는 왜 자연어 처리에 필수적일까요?

① 차원 축소 (데이터 다이어트)

앞서 스무디 비유에서 5%짜리 사과맛을 과감히 버린 것처럼, SVD는 데이터에서 중요도가 낮은 정보(노이즈)를 깎아내고 핵심만 남긴다. 이를 ' 차원 축소(Dimensionality Reduction)'라고 부른다. 덕분에 컴퓨터가 계산해야 할 양이 획기적으로 줄어든다. 

② 숨겨진 의미(잠재 의미) 파악

단순히 단어의 개수만 세는(BoW, TF-IDF 등은) '자동차'와 '자동차들'을 완전히 다른 단어로 인식한다. 하지만 SVD를 적용하면, 겉보기엔 달라 보여도 같이 자주 쓰이는 단어들을 하나의 '숨겨진 의미(잠재 의미)' 덩어리로 묶어준다. 이를 잠재 의미 분석(LSA, Latent Semantic Analysis)이라고 부르며, AI가 문맥을 이해하는 첫걸음이 된다. 

 

728x90

SVD는 훌륭한 기술이지만 완벽하지는 않는다. 

  • 계산이 너무 무겁다 : 데이터 크기가 작을 대는 괜찮지만, 네이버나 구글처럼 수십억 개의 문서가 있는 환경에서는 SVD를 계산하는 것 자체가 엄청난 컴퓨터 자원을 소모한다. 
  • 새로운 데이터에 약한다 : 새로운 단어나 문서가 추가되면, 처음부터 SVD 계산을 다시 해야 하는 번거러움이 있다. 

이러한 단점을 극북하기 위해 등장한 것이 Word2Vec 같은 인공신경망 기반의 예측 모델(밀집 행렬)이다. 하지만 Word2Vec 역시 SVD의 '핵심 의미를 압축한다'는 철학을 고스란히 이어받아 발전한 형태이다. 

 

4. 비교 : 원본 데이터 vs SVD 압축 데이터

비교 항목 원본 데이터 (희소 행렬) SVD 적용 후 (밀집 행렬)
데이터 크기 매우 큼(수만 차원) 작고 압축됨(수백 차원)
메모리 효율 낭비가 심함(대부분이 0) 매우 효율적(핵심 숫자로 꽉 참)
단어의 의미 겉모습(글자)만 보고 판단 숨겨진 문맥과 의미(잠재 의미)파악 가능
노이즈(잡음) 오타나 불필요한 정보가 모두 포함됨 중요도가 낮은 노이즈는 자동으로 제거됨

 

마무리

특잇값 분해(SVD)는 거대하고 복잡한 데이터에서 쓸데없는 거품을 걷어내고 '진짜 중요한 알맹이'만 쏙 뽑아내는 강력한 수학적 도구이다. 

 

제미나이, 챗지피티 등을 이용 하여 작성

728x90
반응형

+ Recent posts