인공지능/공부

딥러닝개론 중간고사 예측

이게될까 2024. 4. 24. 21:02
728x90
728x90

이번엔 역순으로 Convolution부터 진행하겠씁니다... 첫 단원부터 보려니까 너무 지겨웟

Convolution
Correlation

Convolution만해도 나올게 너무 많아보이는데....

max 위치만 살려서 보내고 아니었던 곳에는 0을 보냅니다. 그럼 그쪽은 다 업데이트가 안되겠지만 뭐 결과에 영향도 못 줬으니까요,...

이 그림은 컨볼루션 신경망에서의 역전파(backpropagation) 단계를 시각화한 것입니다. 컨볼루션 신경망의 학습 과정에서 가중치(weights)를 업데이트하기 위해, 그라디언트(오차 신호)를 사용하는 방법을 보여주고 있습니다. 각 단계를 상세하게 설명해보겠습니다.

순전파 (Forward Pass)

  1. 컨볼루션 레이어: 입력 (a)에 컨볼루션 커널(필터)를 적용하여 활성화 맵(Activation map)을 생성합니다. 이 예에서는 2x2 커널이 3x3 입력 데이터에 적용되어 2x2 활성화 맵을 생성합니다.

역전파 (Backward Pass)

  1. 그라디언트 계산:
    • 활성화 맵에 대한 손실 함수의 그라디언트((\delta))를 계산합니다. 이는 네트워크 출력에서 발생한 오차를 기반으로 하며, 이 그라디언트는 가중치를 어떻게 조정해야 하는지를 알려주기 위해 역방향으로 전파됩니다.
  2. 커널 회전:
    • 컨볼루션 연산에서, 실제 연산은 커널을 뒤집어서(회전하여) 입력 데이터에 적용합니다. 이 때문에 그라디언트를 계산할 때, 커널을 180도 회전시킨 뒤 역방향으로 "상관관계"(correlation) 연산을 수행합니다.
  3. 가중치에 대한 그라디언트 계산:
  4. 가중치 업데이트:
    • 계산된 그라디언트를 사용하여 커널의 가중치를 업데이트합니다. 이 업데이트는 일반적으로 경사하강법(Gradient Descent)이나 그 변형을 사용하여 수행됩니다.

이해를 돕기 위한 추가 설명

  • 순전파에서의 'correlation': 순전파에서의 컨볼루션은 수학적으로는 상관관계 연산과 같습니다. 커널을 회전하지 않고 직접 적용합니다.
  • 역전파에서의 'correlation': 역전파에서 그라디언트를 계산하기 위해 커널을 180도 회전시키고, 이를 'correlation'이라고 표기한 부분으로 상관관계 연산을 수행합니다. 실제 컨볼루션과 달리 커널을 회전시킨 상태로 사용합니다.

이 그래픽은 딥러닝에서의 학습 과정 중 가장 중요한 부분 중 하나인 그라디언트 계산 및 가중치 업데이트 메커니즘을 시각적으로 잘 설명하고 있습니다.

그럼 여기서 gradient는 loss함수를 각각 s11,s12,s21,s22로 미분한거야? 전부 체인룰로 구하면 되는거고?

컨볼루션 레이어에서 역전파를 수행할 때, 손실 함수에 대한 각 가중치의 그라디언트를 계산하는 과정은 다음과 같습니다:

  1. 체인 룰 적용:
    • 각 활성화 맵 원소에 대한 손실 함수의 그라디언트는, 해당 활성화 맵 원소가 최종 손실에 어떻게 영향을 미치는지를 나타냅니다. 이는 손실 함수를 활성화 맵 원소에 대해 편미분함으로써 구할 수 있습니다.
  2. 편미분 계산:
  3. 그라디언트 전파:
    • 이 그라디언트는 다시 컨볼루션 커널로 전파되어, 커널의 각 가중치 (w_{ij})에 대한 그라디언트를 계산하는 데 사용됩니다. 컨볼루션 연산에 의해, 각 가중치는 여러 활성화 맵 원소에 영향을 미치므로, 모든 관련 그라디언트를 합하여 가중치에 대한 총 그라디언트를 계산합니다.
  4. 가중치 그라디언트 계산:

체인 룰은 딥러닝에서 그라디언트를 계산하는 데 핵심적인 규칙으로, 복잡한 신경망 구조에서 각 파라미터의 업데이트에 필요한 그라디언트를 효과적으로 계산할 수 있게 합니다.

ROI 풀링(Region of Interest Pooling)과 공간 피라미드 풀링(Spatial Pyramid Pooling, SPP)은 비슷한 문제를 해결하기 위해 만들어진 기법이지만, 그 목적과 적용 방법에서 차이가 있습니다.

ROI 풀링 (Region of Interest Pooling)

ROI 풀링은 주로 객체 검출(Object Detection) 태스크에서 사용됩니다. 이 방법은 입력 이미지 내의 특정 관심 영역(Region of Interest)에 대한 특성을 추출할 때 사용됩니다.

  1. 목적: 각 객체 후보(Proposal) 영역에 대해 고정된 크기의 특성 벡터를 추출하기 위해 사용됩니다.
  2. 작동 원리: 먼저 입력 이미지에서 여러 객체 후보 영역을 식별합니다. 그런 다음 각각의 후보 영역에 대해 컨볼루션 특성 맵에서 해당하는 영역을 찾아낸 뒤, 해당 영역을 고정된 크기로 풀링(보통 최대 풀링)하여 특성을 추출합니다.
  3. 적용: 이 기법은 Fast R-CNN과 같은 모델에서 사용되며, 각각의 객체 후보에 대해 분류 및 바운딩 박스 회귀를 수행하는 데 필요한 특성을 제공합니다.

공간 피라미드 풀링 (Spatial Pyramid Pooling)

공간 피라미드 풀링은 이미지를 고정된 크기의 특성으로 변환하는 데 사용되는 기법으로, 다양한 크기의 입력 이미지에 대해 사용할 수 있습니다.

  1. 목적: 입력 이미지의 크기와 관계없이 고정된 길이의 특성 벡터를 추출하기 위해 사용됩니다.
  2. 작동 원리: 이미지에 여러 크기의 풀링 윈도우(빈)를 적용하여 각각의 빈에 대해 풀링(최대 풀링 또는 평균 풀링)을 수행하고, 이를 연결하여 단일 긴 특성 벡터를 생성합니다.
  3. 적용: 이 기법은 각 이미지에서 멀티스케일의 특성을 추출하고, 네트워크에 입력하는 데 유용하며, 주로 SPP-net과 같은 모델에서 볼 수 있습니다.

차이점

  • 목적의 차이: ROI 풀링은 객체 검출에 사용되어 각 객체 후보 영역에 대한 특성을 추출하는 반면, SPP는 이미지의 크기에 관계없이 고정된 길이의 특성 벡터를 추출하기 위해 사용됩니다.
  • 추출되는 특성의 차이: ROI 풀링은 특정 후보 영역에 초점을 맞추어 특성을 추출하는 반면, SPP는 전체 이미지에서 멀티스케일 특성을 추출합니다.
  • 적용 분야의 차이: ROI 풀링은 객체 검출이 주 목적인 곳에, SPP는 다양한 크기의 입력 이미지를 처리해야 하는 상황에 적합합니다.

두 방법 모두 딥러닝 모델이 다양한 크기의 입력에 대응할 수 있도록 돕는 풀링 전략입니다.

"Atrous 합성곱"과 "팽창 필터(dilated filter)"는 같은 개념을 지칭하는 용어로 사용되며, 실제로는 동일한 것을 말합니다. Atrous 합성곱은 프랑스어에서 '구멍이 있는(hole)'이라는 의미의 "à trous"에서 유래했으며, 이는 팽창된 커널을 사용하는 합성곱 연산을 뜻합니다.

Atrous 합성곱 / 팽창 필터

Atrous 합성곱(또는 팽창 합성곱, dilated convolution)은 표준 합성곱 연산을 확장한 것으로, 입력 데이터에서 필터의 각 요소 사이에 공간(즉, '구멍')을 두어 더 넓은 영역의 입력 데이터를 커버할 수 있도록 합니다. 이 방법은 입력 이미지의 해상도를 감소시키지 않으면서도 커널이 더 넓은 컨텍스트를 포착할 수 있게 해줍니다.

작동 원리

  1. 팽창율(dilation rate): 팽창 필터는 팽창율이라는 하이퍼파라미터를 가집니다. 팽창율이 1이면, 이는 표준 합성곱과 동일합니다. 팽창율이 2 이상일 경우, 필터의 각 요소 사이에 공간(즉, 하나 이상의 '구멍')이 생겨 필터가 더 넓은 영역에 걸쳐 있게 됩니다.
  2. 커널 크기: 팽창율에 따라 실제 커널의 크기는 증가하지 않지만, 필터가 커버하는 입력 데이터의 영역은 증가합니다.
  3. 리셉티브 필드(receptive field): 이를 통해 네트워크의 각 레이어에서 각 뉴런의 리셉티브 필드가 증가하게 되며, 이미지의 더 넓은 컨텍스트를 고려할 수 있게 됩니다.

사용되는 분야

  • 이미지 분할: 이미지에서 더 넓은 컨텍스트 정보를 유지하는 것이 중요한 이미지 분할과 같은 작업에서 유용합니다.
  • 객체 감지: 큰 객체 또는 멀리 떨어진 객체를 감지하는 데 도움이 됩니다.
  • 시퀀스 모델링: 자연어 처리와 같은 분야에서 긴 의존성을 모델링하는 데 도움이 됩니다.

결론

따라서, atrous 합성곱이나 팽창 필터는 컨볼루션 신경망의 레이어가 더 넓은 영역의 정보를 효율적으로 학습할 수 있도록 하면서도, 파라미터의 수를 늘리지 않고 입력 데이터의 해상도를 유지할 수 있는 방법을 제공합니다. 이러한 기법은 딥러닝 모델의 성능을 향상시키는 데 큰 기여를 합니다.

이제야 Convolution 끝

XOR

AND(NAND,OR) = XOR

 

728x90