Search

1D CNN

대분류
인공지능/데이터
소분류
ML/DL 정리 노트
유형
딥 러닝
부유형
NLP Pytorch
최종 편집 일시
2024/10/27 15:22
생성 일시
2024/10/02 06:41
14 more properties

CNN(Convolutional Neural Neetwork)

1D CNN

구성
in_channels : input 의 feature 차원수
out_channels: output 의 feature 차원수
kernel_size : 입력길이를 얼마만큼 볼것인가
stride: kernel 을 얼마만큼씩 이동할 것인가
padding: 양방향으로 얼마만큼 패딩할 것인가
입력 텐서 shape
batch , feature dim , time step(입력 길이)

pooling layer

합성곱 layer의 출력 크기를 줄이거나 특정 출력 부분을 강조하기 위해 사용

Global Pooling layer

pooling layer보다 급격하게 차원을 감소 시킨다.
linear layer 넣기 위해 차원을 변경하는 목적으로 쓴다.

1D 감정 분류 진행 과정

1. 데이터 준비 및 전처리

텍스트 수집: 감정 분류를 위해 리뷰, 소셜 미디어 게시물 등 텍스트 데이터를 수집한다.
라벨링: 각 텍스트에 대해 감정을 라벨링한다. 예를 들어, 긍정, 부정, 중립 등의 레이블을 부여한다.
토큰화 및 시퀀스 변환: 텍스트 데이터를 토큰화하여 단어 또는 토큰의 시퀀스로 변환한다.
패딩 처리: CNN의 입력으로 들어가는 모든 시퀀스는 동일한 길이를 가져야 하므로, 시퀀스를 특정 길이로 패딩하거나 잘라낸다.

2. 임베딩 층 (Embedding Layer)

임베딩 사용: 시퀀스를 임베딩 벡터로 변환한다. 임베딩 레이어는 단어의 의미적 정보를 밀집된 벡터로 표현하는 역할을 한다. 이 단계에서 사전 학습된 임베딩 (예: Word2Vec, GloVe)이나 학습 가능한 임베딩 레이어를 사용할 수 있다.

3. 1D CNN 적용

1D Convolution Layer: 임베딩 벡터 시퀀스를 1D 합성곱 계층에 통과시켜 특징을 추출한다. 1D CNN은 텍스트 내의 국소적인 패턴을 인식하는 데 효과적이며, 특정 단어 조합이 감정과 어떤 관련이 있는지 찾아낸다.
커널: 커널 크기는 일반적으로 텍스트의 특정 수의 단어를 커버하도록 설정한다. 예를 들어, 3-5개의 단어를 묶어 패턴을 분석할 수 있다.
필터: 여러 개의 필터를 사용하여 다양한 특징 맵(feature map)을 생성한다.
활성화 함수: ReLU와 같은 비선형 활성화 함수를 적용하여 모델의 비선형성을 부여한다.

4. 맥스 풀링 층 (Max Pooling Layer)

맥스 풀링: 합성곱의 결과를 다운샘플링하여 중요한 특징을 추출하고, 계산량을 줄인다. 텍스트 데이터에서 맥스 풀링은 각 필터의 가장 중요한 부분을 강조하는 역할을 한다.

5. 완전 연결층 (Fully Connected Layer)

Flattening: 풀링된 출력을 일차원 벡터로 펼친다.
완전 연결층: 펼친 벡터를 하나 이상의 완전 연결층에 입력한다. 감정의 종류(예: 긍정, 부정, 중립)에 따라 마지막 출력 층에서 클래스 개수만큼 뉴런을 사용한다.
출력층: 소프트맥스(Softmax) 함수를 사용하여 각 감정에 대한 확률을 예측한다.

6. 모델 학습

손실 함수: 감정 분류 문제는 일반적으로 다중 클래스 분류이므로 categorical cross-entropy를 사용한다.
옵티마이저: Adam이나 RMSprop과 같은 옵티마이저를 사용하여 모델을 학습시킨다.
에포크와 배치 크기: 일정한 에포크 동안 모델을 학습하고, 배치 크기를 적절히 조절하여 효율적인 학습을 수행한다.

7. 모델 평가 및 테스트

평가 지표: 정확도, 정밀도, 재현율, F1 스코어 등을 사용하여 모델의 성능을 평가한다.
테스트 데이터 평가: 학습되지 않은 테스트 데이터로 모델을 평가하여 감정 분류 성능을 검증한다.

8. 모델 개선

하이퍼파라미터 튜닝: 학습률, 필터 개수, 커널 크기 등을 변경하여 모델 성능을 향상시킨다.
정규화 및 드롭아웃: 과적합을 방지하기 위해 드롭아웃을 사용하거나 L2 정규화를 적용한다.