11주 차 학습
자연어 딥러닝
GRU(Gated Recurrent Unit)
- Gate 메커니즘
- Update Gate
- 과거의 정보를 얼마나 유지할지 결정
- LSTM의 Forget Gate + Input Gate
- Reset Gate
- 과거의 정보를 얼마나 무시할지 결정
- Update Gate
- GRU 동작 과정
- Reset Gate 계산
- 현재 입력과 이전 Hidden State를 활용하여 Reset Gate 값 계산
- Update Gate 계산
- 현재 입력과 이전 Hidden State를 활용하여 Update Gate 값 계산
- 후보 Hidden State 계산
- Reset Gate를 통해 과거 정보를 일부 잊음
- 새로운 후보 Hidden State 계산
- 최종 Hidden State 계산
- Update Gate를 통해 이전 Hidden State와 새로운 후보 Hidden State로 최종 Hidden State 계산
- Reset Gate 계산
- 텍스트 생성
- 탐욕적 샘플링(Greedy Sampling)
- 텍스트를 생성할 때, 가장 높은 확률을 가진 글자를 선택하여 생성
- 확률적 샘플링(Stochastic Sampling)
- 텍스트를 생성할 때, 글자의 확률 분포에서 샘플링하여 생성
- 탐욕적 샘플링(Greedy Sampling)
Seq2Seq
- Seq2Seq 구조
- Encoder
- 입력 시퀀스를 고정된 길이의 벡터로 인코딩
- 여러 개의 RNN 계열 셀(LSTM, GRU 등)로 구성
- 마지막 Hidden State를 Context Vector로 출력
- Decoder
- Context Vector를 입력으로 받아 출력 시퀀스 생성
- 여러 개의 RNN 계열 셀(LSTM, GRU 등)로 구성
- Encoder
- Seq2Seq 활용
- 번역(Translation)
- Q&A 시스템
- 문장 요약(Summarization)
- 챗봇(Chatbot)
- Attention 동작 과정
- Attention Score(유사도) 계산
- Decoder의 Hidden State(Query)와 Encoder의 각 Hidden State(Keys) 간의 유사도를 Dot Product로 계산하여 Attention Score를 구함
- Attention Distribution 계산
- Attention Score에 Softmax 함수를 적용하여 Attention Distribution을 구함
- Attention Value 계산
- Attention Distribution을 Encoder의 각 Hidden State(Keys 또는 Values)에 곱한 뒤, 이를 가중합하여 Attention Value를 구함
- 출력 생성
- Attention Value와 Decoder의 Hidden State(Query)를 연결(Concatenate)
- 연결된 벡터를 Dense Layer에 통과한 후, Softmax를 적용하여 최종 출력 확률 분포 계산
- Attention Score(유사도) 계산
Transformer
- Transformer 구조
- Encoder
- 입력 시퀀스를 처리하여 Decoder가 사용할 Context Vector 생성
- Multi-Head Self-Attention + Feed Forward Network로 구성
- Decoder
- Encoder의 Context Vector를 받아 출력 시퀀스 생성
- Masked Multi-Head Self-Attention + Encoder-Decoder Attention + Feed Forward Network로 구성
- Encoder
- Transformer의 구성 요소
- Self-Attention
- 시퀀스 내 모든 토큰이 서로를 참조할 수 있게 함
- 각 단어가 다른 단어들과의 관계를 고려하여 정보를 처리
- Multi-Head Self-Attention
- Self-Attention을 여러 번 병렬로 수행하여 다양한 관계 학습
- 각 Head가 서로 다른 관계를 독립적으로 학습하고, 마지막에 이를 통합
- Position Encoding
- 순환 구조가 없기 때문에 입력의 순서 정보를 추가로 부여
- $\sin$, $\cos$ 함수를 이용하여 각 위치마다 고유한 값 부여
- Feed Forward Network
- 각 토큰마다 독립적으로 적용되는 Fully Connected Layer
- Self-Attention
- Transformer 기반 모델
- GPT
- Transformer의 Decoder 부분만 사용
- 앞에서부터 순차적으로 문장을 생성하는 데 특화
- 주로 텍스트 생성, 요약, 대화형 모델 등에 사용
- BERT
- Transformer의 Encoder 부분만 사용
- 입력 문장 전체를 한꺼번에 보고, 문장 내 모든 토큰의 관계를 학습하는 데 최적화
- 주로 문장 분류, 문장 간 관계 파악, 질의응답, 문장 임베딩 등에 사용
- GPT
자연어 - Image Multi-Modal
OCR(Optical Character Recognition)
- OCR
- 이미지, 스캔 문서, 사진 등에서 글자를 인식하여 텍스트로 변환하는 기술
- OCR 동작 과정
- 이미지 전처리
- 노이즈 제거, 이진화(흑백 처리), 크기 조정 등으로 이미지 품질 향상
- 일반적으로 OpenCV와 같은 라이브러리로 수행
- 텍스트 영역 검출(Text Detection)
- 이미지에서 텍스트가 포함된 영역 검출
- 딥러닝 기반 모델(EAST, CTPN 등) 사용
- 문자 인식(Text Recognition)
- 검출된 텍스트 영역에서 실제 문자 인식
- Tesseract OCR 또는 딥러닝 기반 CRNN 모델 사용
- 후처리
- 인식된 문자에서 오류 수정 및 문장 구조 보정
- 이미지 전처리
- CRNN(Convolutional Recurrent Neural Network)
- CRNN 구조
- Convoluytional Layers
- 입력 이미지에서 특징 추출
- CNN을 통해 Feature Sequence 추출
- Recurrent Layers
- 추출된 Feature Sequence를 RNN에 입력하여 각 프레임마다 라벨 예측
- Transcription Layers
- RNN의 출력을 최종 텍스트 라벨 시퀀스로 변환
- Convoluytional Layers
- CRNN 구조
Image2Text
- Image Captioning
- 이미지를 분석하고, 그 이미지를 설명하는 문장을 자동으로 생성하는 기술
- 이미지에서 중요한 정보나 문맥을 추출하고 이를 자연어 텍스트로 변환하는 과정
- 순차적인 모델(CNN, RNN, LSTM, GRU 등)을 사용하여 이미지를 분석하고 텍스트로 변환
- Image2Text 구성 요소
- 이미지 분석(Feature Extraction)
- 이미지를 분석하여 중요한 특성을 추출하는 과정
- CNN은 이미지 내의 객체, 장면, 색상, 텍스처 등의 정보를 효과적으로 추출
- 추출된 특성은 모델이 이해할 수 있는 벡터 형태로 변환
- 텍스트 생성(Text Generation)
- 순차적인 모델(RNN, LSTM, GRU 등)을 사용하여 텍스트 생성
- 단어의 순서와 단어들 간의 관계를 이해하고, 자연스러운 문장 생성
- 텍스트는 이미지의 주요 내용을 설명하는 문장으로 변환
- Attention Mechanism
- Attention은 이미지에서 중요한 부분을 집중적으로 분석하고, 그에 맞는 텍스트를 생성하는 데 사용
- 이미지의 세부 사항을 더 잘 이해하고, 생성되는 문장이 더 정확하고 구체적이도록 함
- 이미지 분석(Feature Extraction)
Vision
Generative Model
- Vanilla Gan
- GAN(Generative Adversarial Networks)
- 두 개의 신경망, Generator와 Discriminator가 적대적인 방식으로 훈련되는 모델
- Generator는 가짜 데이터를 생성하고, Discriminator는 가짜와 진짜 데이터를 구별
- 훈련 과정에서 Generator는 점점 더 실제 데이터와 유사한 데이터를 생성하게 되고, Discriminator는 점점 더 가짜 데이터를 잘 구별하려고 함
- GAN 동작 과정
- Generator
- 랜덤 노이즈나 입력을 받아 가짜 데이터 생성
- 목표: Discriminator를 속여서 생성된 데이터가 실제 데이터처럼 보이게 만듦
- Discriminator
- 실제 데이터를 받으면 '진짜'라고 판단하고, Generator가 만든 가짜 데이터를 받으면 '가짜'라고 판단
- 목표: Generator가 만든 가짜 데이터를 잘 구별함
- Generator
- GAN(Generative Adversarial Networks)
- CGAN(Conditional GAN)
- 기본 GAN을 확장하여, 조건부 정보를 추가하는 모델
- 라벨 정보나 조건 변수를 Generator와 Discriminator에 입력하여, 특정 클래스나 조건에 맞는 데이터 생성
- DCGAN(Deep Convolutional GAN)
- GAN의 Generator와 Discriminator에 CNN 구조를 도입하여, 이미지 생성에 더 적합하도록 개선된 모델
- Generator와 Discriminator 모두 CNN을 사용하여 이미지의 공간적 특징을 잘 학습할 수 있음
- InfoGAN(Information Maximizing GAN)
- 기존 GAN에 조건부 정보를 추가하여, 이미지 생성의 다양성과 해석력을 높이는 모델
- Latent Code를 활용하여 더 구조적이고 다양한 이미지 생성
LLM(Large Language Model)
LLM(Large Language Model)
- 딥러닝 알고리즘과 통계 모델링을 활용하여 자연어 처리(NLP) 작업 수행
- 대규모 언어 데이터를 사전에 학습하여 문장 구조, 문법, 의미 등을 이해하고 생성
11주 차 회고
Keep
ADsP 합격
저번에 본 ADsP 최종 결과가 나와서 합격을 했다. 그래서 내가 뭔가 하고는 있구나 생각이 들어서 계속 열심히 할 수 있을 것 같다.
Problem
체력 문제
체력이 부족해서 운동을 하려고 했는데 운동을 할 시간에 너무 졸려서 운동을 하지 못하고 잠을 잤다. 요즘 들어 버티기만 반복하는 것 같아서 이래도 되는 건가 싶다.
Try
빅데이터분석기사 공부
이번 주말에는 휴식에 더 집중을 해서 공부를 미처 하지 못했다. 아직 공부해야 할 분량이 많이 남아 있어서 푹 쉬었으니까 남은 시간 동안 열심히 공부해야겠다.
간단한 운동
목표는 체력을 조금씩 키우는 걸로 자기 전에 조금 시간을 내서 귀찮더라도 몸을 움직여야 할 것 같다. 계속 먹기만 하고 앉아있기만 하는 데도 체력이 필요하다는 것을 많이 느끼고 있다.
'SK네트웍스 Family AI캠프 10기 > Weekly 회고' 카테고리의 다른 글
| [플레이데이터 SK네트웍스 Family AI 캠프 10기] 13주차 회고 (0) | 2025.04.06 |
|---|---|
| [플레이데이터 SK네트웍스 Family AI 캠프 10기] 12주차 회고 (0) | 2025.03.31 |
| [플레이데이터 SK네트웍스 Family AI 캠프 10기] 10주차 회고 (0) | 2025.03.16 |
| [플레이데이터 SK네트웍스 Family AI 캠프 10기] 9주차 회고 (1) | 2025.03.09 |
| [플레이데이터 SK네트웍스 Family AI 캠프 10기] 8주차 회고 (0) | 2025.03.03 |