Study/AI

[AI] 딥러닝 기초

motti 2023. 3. 12. 16:16
반응형

1. 신경망

  • 신경망은 선형모델과 활성함수를 합성한 함수이다.
  • 선형함수로 출력된 값을 활성함수로 씌운 값이 잠재벡터(뉴런)이라고 한다.
  • 이를 이용한 뉴런 네트워크를 perceptron이라고 한다.
  • 다층 퍼셉트론은 된 함수이다.

2. 소프트맥스

  • 소프트맥스 함수는 모델의 출력을 확률로 해석할 수 있게 변환해 주는 연산이다.
  • 분류 문제를 풀 때 선형모델과 소프트맥수 함수를 결합하여 예측한다.

3. 활성함수

  • 활성함수는 비선형함수로서 선형모델로 나오는 출력물 원소에 적용하는 것
  • 소프트맥스는 출력물 모든 것을 고려한다면, 활성함수는 특정 주소에 있는 값만으로 출력하기에 실수값만 받음
  • 이렇게 딥러닝에서는 활성함수를 통해 선형모델의 결과를 비선형으로 바꿀 수 있고 변경시킨 벡터를 잠재벡터라고 부르고 “뉴런”이라고 부르고 이런 네트워크를 뉴런네트워크라고 한다.
  • 활성함수는 R위에 정의된 비선형(nonlinear)함수로서 딥러닝에서 매우 중요한 개념이다.
  • 활성함수를 쓰지 않으면 딥러닝은 선형모형과 차이가 없다.
  • 시그모이드 함수나 tanh 함수는 전통적으로 많이 쓰이던 활성함수지만 딥러닝에선 ReLU 함수를 많이 쓰고 있다.

4. 역전파 알고리즘

  • 역전파 알고리즘은 합성함수 미분법인 연쇄법칙 기반 자동미분을 사용한다.
  • 각 층 파라미터의 그레디언트 벡터는 윗층부터 역순으로 계산하게 된다.

5. CNN

  • Convolution 연산은 커널을 입력벡터상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조
  • 수학적 의미는 신호를 커널을 이용해 국소적으로 증폭 또는 감소시켜 정보를 추출 또는 필터링하는 것
  • 1차원 뿐만 아니라 다양한 차원에서 계산 가능하다.
  • 2차원 연산에서는 성분곱을 통해 자리수마다 곱해주고 더해준다.
  • 커널은 바뀌지 않고 입력에 대한 값만 패드만큼 움직여가면서 바뀐다.
  • 채널이 여러개인 2차원 입력의 경우 2차원 Convolution을 채널 개수만큼 적용한다고 생각해야한다.
  • 3차원부터는 행렬이 아닌 텐서라고 부른다
  • 채널이 여러개인 경우 커널의 채널 수와 입력의 채널수가 같아야한다.(채널개수 = 커널개수)
  • 텐서를 직육면체 블록으로 이해하면 좀 더 이해하기 쉽다.
  • 커널과 입력개수가 같다면 출력은 C-C+1로 1이 나온다
  • 그렇다면 출력이 여러개의 채널이 나오게 하고싶다면? 커널을 여러개 만들면 된다!
  • 출력을 O_C개 만들고 싶다면 커널도 O_c개를 만들면 된다

6. RNN

  • 소리,문자열, 주가 등의 데이터를 시퀀스(sequence) 데이터로 분류한다.
  • 시퀀스 데이터는 독립동등분포 가정을 잘 위배하기 때문에 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터의 확률분포도 바뀌게 된다.
  • 함부로 위치를 바꿀 수 없다! , 순차적으로 들어오는 정보에 대한 처리가 필요
  • 과거의 모든 정보를 이용할 필요는 없다
  • 시퀀스 데이터를 다루기 위해서는 길이가 가변적인 데이터를 다룰 수 있는 모델이 필요하다.
  • 직전 정보랑 그걸 제외한 나머지정보를 잠재변수로 인코딩해서 활용하는것이 잠재 AR모델
  • 직전 정보랑 잠재정보 2가지만으로 예측이 가능해 길이가 가변적이지 않고 고정되어서 모델링을 할 수 있다.
  • 잠재변수H를 어떻게 인코딩하나요? 이게 바로 RNN!
  • 가장 기본적인 RNN모형은 MLP와 유사한 모양이다
  • 하지만, 이 모델은 과거의 정보를 다룰 수 없어 현재의 정보만으로 예측해야한다. 따라서, 과거의 정보를 잠재변수로 담을 수 없다
  • 그렇다면? RNN은 이전 순서의 잠재변수와 현재의 입력을 활용하여 모델링한다
  • t에 따라서 변하는 것은 잠재변수와 입력데이터!
  • RNN의 역전파는 끝에서 처음까지 순서대로 타고타고 들어간다.
  • 다음시점에 잠재변수에 들어오는 그레디언트 벡터와 출력에서 들어오는 그레디언트 벡터
  • 시퀀스 길이가 길어지는 경우 BPTT를 통하 역전파 알고리즘의 계산이 불안정해지므로 길이를 끊는 것이 필요하다.
  • 이런 문제들 때문에 Vanilla RNN은 길이가 긴 시퀀스를 처리하는데 문제가 있다.
반응형

'Study > AI' 카테고리의 다른 글

[Pytorch] 모듈과 데이터셋 + 데이터로더  (0) 2023.03.19
[Pytorch] 파이토치 기초  (0) 2023.03.19
[Math] 경사하강법  (0) 2023.03.12
[Math] 벡터와 행렬  (0) 2023.03.12
[AI] 넘파이와 판다스  (1) 2023.03.12