Skip to main content

YBIGTA

2026

YBIGTA NLP

·471 words·3 mins
📝 상세 정리 # Classical NLP # ML로 텍스트를 이해하려는 시도 자연어 처리는 텍스트의 패턴을 컴퓨터에게 어떻게 먹이고 / 처리를 할것이냐? NLP의 역사 규칙 기반 NLP Rule Base: 사전에 만들어둔 규칙에 기반해 처리하자 nltk/wordnet: 유의어 사전(시소러스) 기반으로 단어의 의미를 인식 비싸고 정적이고 모든 상황 표현이 부족하다 통계 기반 NLP Corpus(말뭉치)에서 텍스트의 규칙을 찾자 단어의 벡터표현 분포 가설 단어의 의미는 주변 단어에 의해 형성된다 Cosine 유사도… 하지만 단어 벡터가 너무 고차원이다 SVD로 차원축소를 하기엔, 계산량이 너무 많다 결국 큰 Corpus 안에서 다양한 단어들의 의미를 벡터화해야하는데 Corpus가 커지면 힘들다 NN Based NLP # Word2vec Neural Network를 사용해서 단어를 임베딩하자 Cbow Continuous Bag of words 주위 단어로 가운데 단어 예측 you say goodbye and I say hello you, goodbye -> say say, and -> goodbye goodbye, I -> and …를 맞추도록… 단어들을 id로 바꾼 후, 원핫벡터를 정답으로해서 순전파, softmax, 출력, 역전파.. Skipgram 중간단어 한개로 주변 n개단어의 context 예측 아무튼 그 결과 각 단어별 Embedding을 구할 수 있다 (벡터화 된다) Sequential & Contextual NLP # Language Model Word2vec까지는 순서, 장기 문맥 고려 없이 단어들을 embedding한다. 문맥의 자연스러움을 평가하고 자연스러운 다음 단어를 예측하는 모델을 만들자! RNN one to many: 첫 단어 입력에 대해 문장 예측 many to one: 감정 label 예측 many to many: 기계번역 등등 여러가지 모델을 만들 수 있다! 문제: 기울기 소실 / 폭발 시퀀스가 너무 길면 뒷쪽 단어를 예측해서 나온 오차의 역전파가 앞쪽에 거의 반영되지 못한다. LSTM 옛날 Weight가 사라지는것같아서, Gate를 달아서 가져오게 하겠다! GRU LSTM이 너무 복잡하니까 조금 간소화하자 Transformer Attention # Seq2Seq 셀이 아닌 아키텍쳐 위의 아키텍쳐 두개를 결합 (인코더 / 디코더) 모든 문장을 끝까지 들은 후 하나의 완전한 문장 생성 입력과 출력 시퀀스의 길이가 달라도 된다! 번역에 가장 많이 쓴다 문제 단계적 연산이 너무 느리다 긴시퀀스에서 정보가 충분히 전달되지 않는다 Transformer 개선점 RNN계열 셀 배제 -> Transformer block 사용 포지셔널 인코딩 - 시퀀스 비순차적 입력 -> 병렬처리 Self attention - 긴 문장의 장기맥락 Encoder + Decoder 구조는 그대로 구현하였음! Attention seq2seq에서의 Attention 번역할 때 단어 “정보"와 “imformation"의 관계가 크지 않을까? 이 점수가 Attention Score 문맥 상 한 토큰과 관련이 높은 다른 토큰의 임베딩과의 관련도를 구하겠다! 맥락과 포지셔닝으로 해결하자 Self Attention 다른 토큰에서 필요한 정보를 선택적으로 집계해 현재 토큰 표현을 갱신 Multi Head Attention 여러 종류의 관계를 병렬적으로 포착해 집계 신호의 다양성 증가 Transformer 변형 Encoder & Decoder 인코더만 잘라쓰면 BERT 디코더만 잘라쓰면 GPT LLM은 보통 디코더 베이스 BERT 계열 Representation Model GPT 계열 Generative Pretrained Transformer LLM Pretrain 지식 + 문법적으로 맞게 글쓰기 습득 데이터셋 corpus같은것을 토크나이제이션 해서 임베딩 + 포지셔널 인코딩을 하고 Masked 멀티헤드 어텐션을 먹여서 Loss를 계산하고 역전파를 하겠다! Post Train Pretrain 후에는 글은 잘쓰는데 질문 -> 대답이나, 할루시네이션 방지등이 안된다. 이걸 잡자. 도메인 특화 지식 + 선호 및 지식에 맞게 튜닝 Supervised Fine Tuning ex) instruction Tuning 지시를 보면 이런 형태로 답하도록 학습 Reinforcement Learning ex) RLHF, GRPO… 지시를 따르되, 사람 취햐에 더 맞게 다듬기 Agent LLM 언어모델에게 Tool을 부여 ❔질문 사항 # 🔗 참고 자료 #

YBIGTA CV

·543 words·3 mins
📝 상세 정리 # 딥러닝 이전의 CV # 컴퓨터는 단순히 픽셀 값만을 알고 있는데 컴퓨터 비전 태스크를 위해선 이를 의미있는 정보로 이해해야 한다. 좋은 Visual feature이란 무엇일까? 조명이 달라지더라도 같은 인물로 인식할 수 있어야 하고 시점이 다르더라도 같은 건물로 인식할 수 있어야 하고 사람이 특징을 직접 설계! 중요한 특징을 수학적으로 잡아서 파노라마로 만들던가, 키포인트로 매핑해서 3D 복원을 한다던가… 결국 목표는 좋은 Visual Feature을 찾는 것 edge, corner Harris corner detector 평평한 부분은 x, y 변화가 크지 않지만, 코너는 x, y 변화가 크다 미분을 이용해서 변화가 큰 지점을 잡아내자 filter 여러가지 필터를 통해서 x방향, y방향의 변화를 찾을 수 있다 방법 (중요한건 아닌뎅) 이미지 기울기 계산 공분산 행렬 생성 고윳값이 임계점 이상인 부번을 코너로 같은 이미지여도 크기에 따라 corner / edge 가 달라질 수 있다. 여러 크기에서 진행하면 되기야 하겠다만…. 번거롭다 SIFT Scale Invariant Feature Transform 벡터로 이케저케 한다는디 조금 더 강건한 피쳐까진 됐는데, 각자가 왜 그런지 이유는 말을 못했다는듯? CNN # 특징 추출 (Convolution) -> 요약 (Pooling) -> 판단 (FC) 1차로 간단한 필터를 씌우고, 점점 고도화시킨다. inductive bias 모델이 학습을 시작하기도 전에 미리 가지고 있는 가정 모델이 더 빠르게 학습되고, 더 강건하도록 Locality 서로 가까이 있는 픽셀들은 더 강한 연관성을 갖는다. Translation invariance 이미지 속 객체의 위치가 변하더라도 본질은 변하지 않는다 convolution 아까부터 계속 곱하고있는 필터! padding feature map이 점점 작아지지 않게 가장자리에 0같은걸 두르기 stride 필터가 한번에 몇칸씩 이동하는지 pooling 압축하듯이, 영역에서 가장 큰 값을 남기거나 (max pooling) 평균값을 남기거나 (aver pooling) 작은 변화 무시 receptive field 확대 연산량 감소 hierarchial structure (계층적 구조) 점점 receptive field와 채널 수를 늘려 복잡한 feature VIT # Transformer 기반 이미지 인식 모델 이미지를 필터로 보는게 아니라, 잘라서 각 patch로 보고, 이를 벡터로 임베딩시키는 것 학습에 훨씬더 많은 데이터를 필요로 함 Step 1: 이미지 분할 $H*W*C$를 $P*P$ 크기의 격자로 분할하여 $\frac{HW}{P^2}$개의 패치 생성 Step 2: 이후 각 패치를 평탄화 후 선형 임베딩 $E \in R^{(P^2 \cdot C)*D}$ Step 3: Transformer Encoder (핵심 연산) Cls 토큰을 포함한 시퀀스를 인코더에 넣어서 연산하기 Downstream tasks # 층이 깊어질수록 정확도가 떨어지는 문제가 있었다 ResNet Skip connection $H(x) = F(x) + x$로 정의하여, $H(x) - x$ (잔차)를 학습 깊은 네트워크를 학습해도 되게 되었다 basic block vs bottleneck block basick block 3x3 convolution과 relu bottleneck block 여러가지 크기의 convolution들 압축하고.. 큰걸 먹이고.. 등등… ResNet34 구조 해상도는 줄이면서 점점 두꺼워지는 구조 YOLO Object Detection을 하는 모델 출력은 위치 / 객체가 무엇인지 / 있을 확률 세가지를 나타냄 과거에는 후보지역을 찾아낸 후, CNN으로 뭐가 있는지 후처리를 하였는데 YOLO는 한번에 된다! You Only Live Once 24개의 convolutional layer에서 이미지의 특징을 추출하고, 이를 2개의 FC 레이어에 넣어서 클래스와 위치를 예측 Unet Segmentation을 하는 모델 고양이가 있는 픽셀은 여기다! 라고 하며 mask를 출력하는 모델 U자처럼 생겨서 Unet Decoder / Encoder / Skip connection등으로 이루어진 모델 encoder의 Feature를 Decoder에 전달해주는 Skip connection 해상도를 줄이다보면 위치 정보가 소실된다. (작아지니까) 이때 이 값을 그대로 줘서 위치정보가 소실되지 않도록 CLIP 이미지와 텍스트를 한 공간에서 정렬 기존 방식은 확장성도 부족하고, 라벨링도 어렵다 인터넷에서 얻은 데이터셋과 캡션으로 사전 학습을 하자! 고양이를 검색해서 나온 사진과 텍스트를 임베딩하자 라벨이 아니라 이미지와 텍스트 쌍으로 학습된다 정답 쌍 끼리는 유사도가 높게, 아니면 낮게 이후 “A photo of plane”, “A photo of dog”…을 넣어서 비교하면? 예측이 가능해진다! 기존 라벨링이 비싸다는 문제를 캡션을 이용해서 해결했다 DINO # ML의 대표적인 학습 방식 지도 학습 비지도 학습 자기지도 학습 데이터 안에서 라벨을 직접 만들어서 학습하는 것 ❔질문 사항 # 🔗 참고 자료 #