NLP-CNN

강병민·2024년 5월 4일

NLP study

목록 보기
6/6

CNN

Convolutional Neural Network(합성곱신경망)의 줄임말
이미지 처리 분야에서 활발히 사용
합성곱 신경망은 크게 합성곱층과 (Convolution layer) 와 풀링층 (Pooling layer) 으로 구성됨

다층퍼셉트론의 한계

원래 어떤 이미지였는지 알아보기가 어렵다

->공간적인 구조정보

  • 거리가 가까운 어떤 픽셀들끼리는 어떤 연관 이 있고, 어떤 픽셀들끼리는 값이 비슷하거나 등의 정보

Channel

컴퓨터는 텐서(숫자)로 처리
이미지 - 3차원 텐서 (높이,너비,채널)

  • 높이는 이미지의 세로방향픽셀수, 너비는 이미지의 가로방향픽셀수
  • 채널은색성분을의미, 흑백 이면 채널 수 1

Convolution layer

합성곱 층에서는 합성곱을 이용해 이미지의 특징을 추출하는 역할을 한다.

  • 커널 (kernel) 또는 필터 (filter): 𝑛 × 𝑚 크기의 행렬, 커널(필터)가 여러개일수도 있다
  • 커널은 이미지를 처음부터 끝까지 겹치며 훑는다
  • 훑을때 마다 합성곱 연산하여 출력 행렬 (특성맵)에 저장
  • 특성 맵 (feature map): 합성곱 연산을 통해 나온 결과
  • 커널의 이동범위를 스트라이드 (stride) 라고 함

    필터가 여러개일수도 있다, 나중에는 채널이 r,g,b를 나타내지 않는다
  • 스트라이드가 2일때, 한칸 건너뛴다;
  • stride=1 일때보다 feature map의 크기(2X2)가 작아진 것을 볼 수 있다

다수의 차원을 가질 때

각 채널에서 합성곱 연산하고 feature map값들 더함

padding

합성곱 연산후 작아진 사이즈를 다시 키우고 싶을때 사용

최종 특성 맵의 크기

Pooling layer

일반적으로 합성곱 층 다음에 온다;
특성 맵을 다운샘플링하여 특성 맵의 크기를 줄이는 역할 (각 영역을 대표하는 값 추출)
합성곱층과 비슷하게 커널이 존재하여 순회한다

  • 맥스풀링(max pooling) 커널에 포함된 값들중 제일 큰 값 반환
  • 평균 풀링 (average pooling) 평균값 반환

특징

  • 가중치 없음
  • 연산 후 채널 수 동일
  • 결과 크기 축소

자연어 처리를 위한 1D CNN

앞에서 언급한 CNN

합성곱 연산이란 커널(kernel) 또는 필터(filter) 라는 n × m 크기의 행렬로 높이(height) × 너비(width) 크기의 이미지를 처음부터 끝까지 겹치며 훑으면서 n × m 크기의 겹쳐지는 부분의 각 이미지와 커널의 원소의 값을 곱해서 모두 더한 값을 출력으로 하는 것을 말합니다. 이때, 이미지의 가장 왼쪽 위부터 가장 오른쪽 아래까지 순차적으로 훑습니다.

이걸 2D합성곱 연산이라고 한다

1D 합성곱 (1D Convolutions)

임베딩 된 단어 표현; 임베딩 벡터 차원 = k

커널의 너비 = 임베딩 벡터 차원(k)으로 고정
따라서 1D 합성곱에서는 커널의 크기는 높이만으로 표현
커널은 옆으로 못움직이게 되므로 아래로만 움직인다!

풀링층

대부분 맥스풀링 사용

커널크기가 2일때와 3일때 표현


여러 커널을 이용하고 전결합까지 한 모습

문자 임베딩

단어간의 관계를 파악, 이해하려고 노력 (‘understand’ , ’misunderstand’ )

1DCNN을이용한문자임베딩

1D CNN은 전체 시퀀스 입력 안의 더 작은 시퀀스에 집중하여 정보를 얻어내는 동작
기본적으로 단어를 문자 단위로 쪼개고나서 입력으로 사용하는 것 외에는 달라진 것이 없다

BiLSTM 을 이용한 문자 임베딩

profile
이것저것 해보는 중

0개의 댓글