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차 미분식 구하기
- 역전파를 통한 1차 미분값 구하기
- 파라미터 업데이트
- 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에서는 결괏값이 다음 시점으로 넘어갈 때 결괏값을 넘길지 여부를 결정하는 단계 추가
Whh의 절댓값이 1보다 작으면 그래디언트 소실, 1보다 크면 그래디언트 폭주의 가능성이 있음
LSTM 구하는 공식
1️⃣ Cell state 계산을 위한 각 게이트 값구하기
✅ 입력게이트 (input gate)
는 입력층 데이터 에 가중치 를 곱한 값과 은닉 유닛인 에 가중치 를 곱한 값을 더함 - 그 후 편향
를 더한 후 시그모이드 함수 적용하여 구함
는 입력층 데이터 벡터 에 가중치 를 곱한 후 더함 - 이 값에 편향
를 더한 후 하이퍼볼릭 탄젠트 함수를 적용하여 구함
✅ 망각게이트 (forget gate)
는 입력데이터 에 가중치 행렬 를 곱한 값에 은닉 유닛 에는 가중치 행렬 를 곱한 값을 더함 - 이 값에 편향
를 더한 후 시그모이드 함수를 적용하여 구함
✅ 출력게이트 (output gate)
는 입력데이터 벡터 에 가중치 행렬 을 곱한 값에 은닉 유닛 에는 가중치 행렬 를 곱한 값을 더함 - 이 값에 편향
를 더한 후 시그모이드 함수를 적용하여 구함
2️⃣ cell state 계산
입력, 망각, 출력 게이트를 통과한 상황을 t 시점의 Cell State라고 함
- 이전 시점의 셀 상태
과 망각 게이트 출력값 를 원소곱함 - 입력게이트를 통해 생성된
와 를 원소곱함 - 첫 번째와 두번쨰로 구한 벡터를 원소합함
3️⃣ 은닉 유닛 출력
은닉 유닛
GRU
GRU (Gated Recurrent Unit) 은 LSTM에 비해 간소화된 방식으로 계산이 간편
- 이전 시점에서 받는 벡터가
로 1개임 - 하나의 벡터
가 삭제 게이트와 입력 게이트를 모두 제어 - 게이트 제어기가 1을 출력하면 망각 게이트가 열리고, 입력 게이트가 닫힘
- 반대로 게이트 제어기가 0을 출력하면 망각 게이트가 닫히고, 입력 게이트가 열림
- 출력 게이트가 없어서 전체 상태 벡터가 매 시점 출력
- 하지만 이전 상태의 어느 부분이
에 노출될지 제어하는 새로운 값 가 존재
'AI > Books' 카테고리의 다른 글
The Quest for Machine Learning - Chap1 피처 엔지니어링 1 (피처 정규화) (0) | 2024.02.01 |
---|---|
선형대수와 통계학으로 배우는 머신러닝 - Chap12-2 딥러닝 (AutoEncoder - 자연어처리) (1) | 2023.12.25 |
선형대수와 통계학으로 배우는 머신러닝 - Chap11 비지도 학습 (0) | 2023.12.25 |
선형대수와 통계학으로 배우는 머신러닝 - Chap10 차원 축소 (0) | 2023.12.25 |
선형대수와 통계학으로 배우는 머신러닝 - Chap9 앙상블 학습 (0) | 2023.12.25 |