Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

CODENAVY

Deep Learning 간단 정리 노트 본문

Deep Learning

Deep Learning 간단 정리 노트

codenavy 2022. 5. 18. 23:26

< References >

https://wikidocs.net/book/2155

 

* 퍼셉트론(Perceptron)

다수의 입력을 받아 하나의 출력을 내보내는 초기 형태의 인공 신경망

 

* 단층 퍼셉트론(Single-Layer Perceptron)

입력층(input layer), 출력층(output layer)으로만 이루어져 있는 인공 신경망. XOR 게이트 문제를 해결할 수 없다는 문제를 가지고 있었고, 이에 대한 문제를 해결하기 위해 다층 퍼셉트론 개념이 탄생했다.

 

* 다층 퍼셉트론(Multi-Layer Perceptron, MLP)

입력층과 출력층 사이에 은닉층(hidden layer)을 1개 이상 포함하는 인공 신경망. 은닉층이 2개 이상이면 심층 신경망(DNN: Deep Neural Network)이라고 칭한다.

 

* 피드 포워드 신경망(Feed-Forward Neural Network, FFNN)

다층 퍼셉트론과 같이 오직 입력층에서 출력층 방향으로 연산이 전개되는 신경망

 

* 순환 신경망(Recurrent Neural Network, RNN)

은닉층의 출력값을 출력층으로도 보내지만, 동시에 다시 은닉층의 입력값으로도 사용하는 신경망 구조

 

* 전결합층(Fully-Connected Layer, FC, Dense Layer)

어떤 layer의 모든 뉴런이 이전 layer의 모든 뉴런과 연결되어 있는 layer. 완전연결층이라고도 한다. 다층 퍼셉트론의 모든 은닉층과 출력층은 전결합층이며, 밀집층(Dense Layer)이라고도 부른다.

 

* 활성화 함수(Activation Function)

은닉층과 출력층의 뉴런에서 최종 출력값을 결정하는 함수. 인공 신경망에서 활성화 함수로는 비선형 함수를 사용하며, 따라서 비선형 활성화 함수를 사용하는 은닉층을 비선형층(nonlinear layer)이라고도 표현한다. 그러나 임베딩 층(embedding layer)처럼 활성화 함수를 사용하지 않는 선형층(linear layer)/투사층(projection layer)도 있다.

 

* 시그모이드 함수(Sigmoid Function)

출처:&nbsp;https://medium.com/@ionutlang31/how-to-play-around-with-sigmoid-function-to-increase-its-y-max-and-shift-to-the-right-for-positive-ede40daf1fa2

최솟값은 0, 최댓값은 1인 비선형 함수. 신경망에서는 가중치와 편향을 업데이트하기 위해(즉, 학습하기 위해), 미분을 통해서 기울기(gradient)를 구하는 역전파(back propagation)를 수행하게 되는데, 시그모이드 함수의 diminishing gradient zone에서의 미분값은 0에 가까우며, active gradient zone에서도 미분의 최대값은 0.25를 넘지 못한다. 따라서, 은닉층에서 활성화 함수로 시그모이드 함수를 사용하게 되면 역전파 과정에서 0에 가까운 값들이 계속해서 곱해지면서 기울기가 소실되는 현상, Vanishing Gradient 문제가 나타나게 되고 가중치가 학습되지 않는 현상이 발생한다. 따라서, 은닉층에서는 시그모이드 함수를 잘 사용하지 않으며, 시그모이드 함수는 주로 출력층에서 이진 분류를 위해 사용된다.

 

* 하이퍼볼릭탄젠트 함수(Hyperbolic Tangent Function)

출처:&nbsp;https://www.sciencedirect.com/topics/mathematics/hyperbolic-tangent-function

최솟값은 -1, 최댓값은 1인 비선형 함수. 시그모이드 함수와 같이 미분값이 0에 가까워지는 지점이 존재하지만, 시그모이드와 달리 미분의 최댓값이 1이므로 기울기 소실이 일어날 확률이 적으며, 따라서 은닉층에서 시그모이드보다 선호된다.

 

* 렐루 함수(ReLU Function)

출처:&nbsp;https://yeowool0217.tistory.com/502

출력값이 특정 양수값에 수렴하지 않는 함수로, 0 이상의 입력값에 대해서는 미분값이 항상 1이다. DNN의 은닉층에서 잘 작동하며, 시그모이드/하이퍼볼릭탄젠트와 달리 연산을 필요로 하지 않으므로 연산 속도가 빠르다. 하지만 여전히 입력값이 음수인 경우 미분값이 0이 된다는 문제점을 가지고 있으며, 이를 '죽은 렐루(dying ReLU)' 문제라고 한다.

 

* 리키 렐루(Leaky ReLU)

출처: https://blog.naver.com/PostView.nhn?blogId=intelliz&logNo=221698099218

Dying ReLU를 보완하기 위한 렐루의 변형 함수. 입력값이 음수일 때 0이 아닌 매우 작은 수를 반환하도록 되어 있다. 기울기 a의 값으로는 일반적으로 0.01을 사용한다.

 

* 소프트맥스 함수(Softmax Function)

출처:&nbsp;https://limitsinx.tistory.com/36

입력받은 값에 대해 출력값들을 모두 0과 1 사이의 값으로 정규화하여 돌려주고, 모든 출력 값의 총합이 항상 1인 함수. 딥러닝으로 이진 분류(binary classification) task를 수행할 때에는 출력층의 활성화 함수로 시그모이드 함수를 사용하며, 다중 클래스 분류(Multi-Class Classification)를 수행할 때에는 소프트맥스 함수를 사용한다.

 

* 손실함수(Loss Function)

* MSE(Mean Squared Loss)

* Binary Cross-Entropy Loss

* Categorical Cross-Entropy Loss

 

* 배치 경사 하강법(Batch Gradient Descent)

한 번의 epoch에 전체 데이터를 고려하여 학습하는 경사 하강법. 매개 변수 업데이트에 시간이 오래 걸리며, 메모리를 크게 요구한다는 단점이 있다.

 

* 확률적 경사 하강법(Stochastic Gradient Descent)

한 번의 epoch에서 랜덤으로 선택한 1개의 데이터만 고려하여 학습하는 경사 하강법. 매개변수의 변경폭이 불안정하고, 때로는 배치 경사 하강법보다 정확도가 낮을 수 있으나 자원이 적은 컴퓨터에서도 쉽게 사용가능하다는 장점이 있다.

 

* 미니 배치 경사 하강법(Mini-Batch Gradient Descent)

배치 크기(batch size)를 미리 지정하고, 해당 데이터 개수만큼에 대해 계산하여 매개 변수를 업데이트하는 경사 하강법. 전체 데이터를 계산하는 것보다 빠르고, SGD보다 안정적이라는 장점이 있다. 배치 크기는 일반적으로 2의 n제곱에 해당하는 숫자로 설정한다.

 

* 옵티마이저(Optimizer)

* 모멘텀(Momentum)

* Adagrad

* RMSprop

* Adam

* AdamW

* 에폭(Epoch)

학습시키는 전체 데이터에 대해 순전파와 역전파가 끝난 상태. Epoch이 50이라면, 전체 데이터에 대해 50번의 학습과정을 수행하였다는 뜻이다. Epoch의 수가 지나치게 많거나 적으면 과적합/과소적합의 문제가 발생할 수 있다.

 

* 배치 크기(Batch Size)

몇 개의 데이터 단위로 매개변수를 업데이트할 것인지를 의미한다. 전체 데이터의 개수가 2,000개이고, batch_size를 100으로 설정했다면, 총 20번의 iteration(즉, batch의 수는 20)을 거쳐 1번의 epoch이 끝나게 된다.

 

* 이터레이션(Iteration) 또는 스텝(Step)

1번의 epoch을 끝내기 위해서 필요한 배치의 수, 또는 1번의 epoch 내에서 이루어지는 매개변수의 업데이트 횟수. Iteration의 수는 (전체 데이터 개수) / (batch_size) 이다. (나눠지지 않는다면 +1)

 

* 역전파(Back Propagation)

 

'Deep Learning' 카테고리의 다른 글

Hadamard Product(Hadamard 곱)란?  (0) 2022.04.27
ML, DL Workflow  (0) 2021.09.24