728x90

Deep Learning 구성요소

OR, AND, XOR

or: 1개라도 1이면 1
and: 2개다 1이면 1
xor: 1개만 1이면 1

퍼셉트론

가중합: 입력 데이터에 가중치를 곱한후 더한 합
활성화함수: 출력값을 결정하는 함수 (relu, leaky relu 등)

최종 출력값은 하나의 노드 안에서 가중합과 활성화 함수를 거친 값

편향(bias): 가중값에 더해지는 상수. 기존 가중합에 편향을 더해서 최종 출력값에 영향을 줄 수 있음

신경망

다중 퍼셉트론: 퍼셉트론 층이 여러개
다수의 뉴런을 사용해 만든 것을 인공 신경망이라고 부름

신경망 함수는 위와 같은 여러 겹의 합성함수로 표현 가능
딥러닝의 함수는 vector-to-scalar 함수

오차역전파

입력층 - 은닉층 - 출력층 순서로 흘러가는 것은 순전파
출력층 - 은닉층 - 입력층 으로 역순으로 흘러가는 것은 역전파
오차 역전파를 통해 오차를 기반으로 가중치를 수정

동작 원리

  1. 가중치 초기화
  2. 순전파를 통한 출력값 계산
  3. 비용함수 정의 및 1차 미분식 구하기
  4. 역전파를 통한 1차 미분값 구하기
  5. 파라미터 업데이트
  6. 2-6 과정 반복

활성화 함수: 인풋값과 가중치, 편향을 계산해 해당 노드를 활성화할지를 결정하는 함수
계단 함수, 부호 함수, 시그모이드 함수(그라디언트 소실 문제 0~1), 하이퍼볼릭 탄젠트 함수(-1~1), 렐루 함수(0~x), 리키 렐루(ax~x), 항등 함수, 소프트맥스 함수

배치 정규화

해당 층 값의 분포를 변경하는 방법으로, 평균과 분산을 고정
그래디언트 소실 문제를 줄여 신경망의 학습 속도를 향상시킬 수 있음

드롭 아웃

신경망에서 노드를 일시적으로 신경망에서 무작위로 선택해 제거
연산량이 줄어들고, 오버피팅(과적합)을 방지할 수 있음


Deep Learning Models

CNN

합성곱 신경망(Convolution Neural Network): 합성곱 연산을 사용하는 신경망

패딩: 입력 데이터 주변을 특정 값으로 채우는 것
4x4 에 1겹을 채우면 6x6 형태로 변환됨

스트라이드: 합성곱 연산 후 다음 계산 영역을 얼마나 이동할지 간격을 정하는 값

풀링: max 풀링은 stride x stride 내부의 영역에서 가장 큰 값을 선택

고차원 데이터 합성곱: 동일한 채널의 입력 데이터와 커널을 합성곱 연산한 후 연산 결괏값 행렬을 모두 더한 값

5x5x3 * 2x2x3 = 3x3x3

고차원 데이터는 2차원 행렬로, 커널은 벡터로 변환하여 연산하면 속도 증가

RNN

RNN (Recurrent Neural Network): sequence 데이터에 주로 사용되며 이전 시점의 데이터를 현재 시점에 반영하여 연산하는 신경망

LSTM

LSTM (Long Short Term Memory): RNN의 vanishing gradient problem 이나 exploding gardient problem을 보완하기위한 방법
LSTM에서는 결괏값이 다음 시점으로 넘어갈 때 결괏값을 넘길지 여부를 결정하는 단계 추가

: 이전 시점(t-1)의 은닉상태 과 현재시점 t의 은닉상태 간의 관계를 나타내는 가중치 행렬
Whh의 절댓값이 1보다 작으면 그래디언트 소실, 1보다 크면 그래디언트 폭주의 가능성이 있음

LSTM 구하는 공식

1️⃣ Cell state 계산을 위한 각 게이트 값구하기

✅ 입력게이트 (input gate)

  1. 는 입력층 데이터 에 가중치 를 곱한 값과 은닉 유닛인 에 가중치 를 곱한 값을 더함
  2. 그 후 편향 를 더한 후 시그모이드 함수 적용하여 구함
  1. 는 입력층 데이터 벡터 에 가중치 를 곱한 후 더함
  2. 이 값에 편향 를 더한 후 하이퍼볼릭 탄젠트 함수를 적용하여 구함

✅ 망각게이트 (forget gate)

  1. 는 입력데이터 에 가중치 행렬 를 곱한 값에 은닉 유닛 에는 가중치 행렬 를 곱한 값을 더함
  2. 이 값에 편향 를 더한 후 시그모이드 함수를 적용하여 구함

✅ 출력게이트 (output gate)

  1. 는 입력데이터 벡터 에 가중치 행렬 을 곱한 값에 은닉 유닛 에는 가중치 행렬 를 곱한 값을 더함
  2. 이 값에 편향 를 더한 후 시그모이드 함수를 적용하여 구함

2️⃣ cell state 계산

입력, 망각, 출력 게이트를 통과한 상황을 t 시점의 Cell State라고 함

  1. 이전 시점의 셀 상태 과 망각 게이트 출력값 를 원소곱함
  2. 입력게이트를 통해 생성된 를 원소곱함
  3. 첫 번째와 두번쨰로 구한 벡터를 원소합함

3️⃣ 은닉 유닛 출력

은닉 유닛 는 출력게이트의 값 와 현재 시점의 셀 상태 의 하이퍼볼릭 탄젠트 값을 원소곱한 값

GRU

GRU (Gated Recurrent Unit) 은 LSTM에 비해 간소화된 방식으로 계산이 간편

  • 이전 시점에서 받는 벡터가 로 1개임
  • 하나의 벡터 가 삭제 게이트와 입력 게이트를 모두 제어
  • 게이트 제어기가 1을 출력하면 망각 게이트가 열리고, 입력 게이트가 닫힘
  • 반대로 게이트 제어기가 0을 출력하면 망각 게이트가 닫히고, 입력 게이트가 열림
  • 출력 게이트가 없어서 전체 상태 벡터가 매 시점 출력
  • 하지만 이전 상태의 어느 부분이 에 노출될지 제어하는 새로운 값 가 존재
반응형