본문 바로가기
IT 와 Social 이야기/NLP 자연어처리

[딥러닝을이용한 자연어 처리 입문] 0802 인공 신경망(Artificial Neural Network) 훑어보기

by manga0713 2021. 5. 18.

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

 

- 입력층에서 출력층 방향으로 연산이 전개되는 신경망

 

[ 이미지 출처 : medium..com - Deep Learning: FFNNs ]

 

2. 전결합층(Fully-connected layer, FC, Dense layer)

 

- 위 이미지와 같이 어떤 층의 모든 뉴런이 이전 층의 모든 뉴런과 연결돼 있는 층

 

3. 활성화 함수(Activation Function)

 

- 은닉층과 출력층의 뉴런에서 출력값을 결정하는 함수

 

[ 이미지 출처 : towarsdatascience.com - Activation Functions in Neural Networks ]

 

- 활성화 함수의 특징 - 비선형 함수(Nonlinear function: 직선 1개로는 그릴 수 없는 함수)

  • 만약 활성화 함수로 선형 함수를 사용하게 되면 은닉층을 쌓을 수가 없음(선형 함수로는 은닉층을 여러번 추가하더라도 1회 추가한 것과 차이를 줄 수 없음)

- 계단 함수(Step function)

 

 

- 시그모이드 함수(Sigmoid function)와 기울기 소실

  • 시그모이드 함수의 문제점은 미분을 해서 기울기(gradient)를 구할 때 발생

  • 시그모이드 함수를 사용하는 은닉층의 개수가 다수가 될 경우에는 0에 가까운 기울기가 계속 곱해지면 앞단에서는 거의 기울기를 전파받을 수 없게 됨 --> 기울기 소실(Vanishing Gradient) 문제

  • 위의 그림은 은닉층이 깊은 신경망에서 기울기 소실 문제로 인해 출력층과 가까운 은닉층에서는 기울기가 잘 전파되지만, 앞단으로 갈수록 기울기가 제대로 전파되지 않는 모습을 보여 줌. 결론적으로 시그모이드 함수를 은닉층에서 사용하는 것은 지양 함

- 하이퍼볼릭탄젠트 함수(Hyperbolic tangent function) : 입력값을 -1과 1사이의 값으로 변환

  • 시그모이드 함수와 비교하면 반환값의 변화폭이 더 큼(기울기 소실 증상이 적은 편)
  • 은닉층에서 시그모이드 함수보다는 많이 사용됨

 

- 렐루 함수(ReLU) : 음수를 입력하면 0을 출력하고, 양수를 입력하면 입력값을 그대로 반환

  • 단순 임계값이므로 연산 속도가 빠름
  • 죽은 렐루(dying ReLU) : 입력값이 음수면 기울기도 0. 이 뉴런은 다시 회생하는 것이 매우 어려움

- 리키 렐루(Leaky ReLU) : 입력값이 음수일 경우에 0이 아니라 0.001과 같은 매우 작은 수를 반환

 

 

- 소프트맥스 함수(Softmax function) 

 

 

4. 행렬의 곱셈을 이용한 순전파(Foward Propagation)

 

- 인공 신경망에서 입력층에서 출력층 방향으로 연산을 진행하는 과정

 

[ 이미지 출처 : vitalflux.com - FFNN Python Example ]

 

nlp_0802_artificial neural network 인공 신경망.ipynb
0.06MB

 

- 출처 : [딥러닝을이용한 자연어 처리 입문] 0802 인공 신경망(Artificial Neural Network) 훑어보기