본문 바로가기
공부자료/Deep Learning

딥러닝 (1) ★★

by mogazi 2022. 9. 25.
  • 딥러닝이란?

 

 

 

입력층, 출력층과 2개 이상의 은닉층으로 구성되어 있다.

 

이때 입력층과 출력층 사이에 은닉층이 여러개 있는 신경망을 심층 신경망 (Deep Neural Network, DNN) 이라고 하며,

심층 신경망을 다른 이름으로 딥러닝이라고 한다.

 

 

 

 

  딥러닝 구성요소 

 

입력층 : 데이터를 받아들이는 층

은닉층 : 모든 입력 노드부터 입력 값을 받아 가중합을 계산하고, 이 값을 활성화함수에 적용하여 출력층에 전달하는 층

출력층 : 신경망의 최종 결과값이 포함된 층

가중치 : 노드와 노드 간 연결 정도

바이어스(bias) : 가중합에 더해 주는 상수로, 하나의 뉴런에서 활성화 함수를 거쳐 최종적으로 출력되는 값을 조절하는 역할

 

손실함수 : 가중치 학습을 위해 출력 함수의 결과와 실제 값 간의 오차를 측정하는 함수

 

 

 

 

  가중합 : 각 노드에서 들어오는 신호에 가중치를 곱해서 다음 노드로 전달되는데, 이 값들을 모두 더한 합계를 가중합이라고 한다.

또한, 노드의 가중합이 계산되면 이 가중합을 활성화 함수로 보내기 때문에 전달 함수(transfer function)라고도 한다.

 

 

 

 

 

활성화함수 (Activation function)

 

딥러닝에서 사용하는 인공신경망들은 일반적으로 이전 레이어로부터 값을 입력받아 “어떠한 함수”를 통과시킨 후 그 결과를 다음 레이어로 출력합니다. 

이때 “어떠한 함수” 즉 인공신경망의 은닉층(hidden layer)에 사용되는 함수를 활성화 함수라고 합니다.

 

활성화 함수의 종류는 다음과 같습니다.

 

  • 이진 활성화 함수 (Binary step activation function)
  • 선형 활성화 함수 (Linear activation function)
  • 비선형 활성화 함수 (Non-linear activation function)

 

 

활성화 함수로 비선형 함수를 사용해야 하는 이유


활성화 함수에는 크게 이진 활성화 함수, 선형 활성화 함수, 비선형 활성화 함수가 있지만, 활성화 함수로 비선형 함수를 사용하는 것이 일반적이다. 

 

왜냐하면, 은닉층에서 이진 활성화 함수를 활성화 함수로 사용할 경우, 다중 출력이 불가능하다는 문제점이 존재하고, 

은닉층에서 선형 활성화 함수를 활성화 함수로 사용할 경우, 역전파가 불가능하고 (layer) 깊게 쌓는 의미가 사라진다는 문제점이 존재합니다. 

따라서 은닉층에서 비선형 활성화 함수를 활성화 함수로 사용하는 것이 바람직하다.

 

전달 함수에서 전달 받은 값을 출력할 때 일정 기준에 따라 출력 값을 변화시키는 비선형 함수이다.

 

* 비선형 함수 : 직선으로 표현할 수 없는 데이터 사이의 관계를 표현하는 함수

 

 

 

1. 시그모이드 함수

 

 

시그모이드 함수는 선형 함수의 결과를 0~1 사이에서 비선형 형태로 변형해 준다. 

주로 로지스틱 회귀와 같은 분류 문제를 확률적으로 표현하는 데 사용한다.

 

딥러닝 모델의 깊이가 깊어지면 기울기가 사라지는 ‘기울기 소멸 문제(vanishing gradient problem)’가 발생하여 딥러닝 모델에서는 잘 사용하지 않는다.

 

 

 

 

2. 하이퍼볼릭 탄젠트함수

 

 

하이퍼볼릭 탄젠트 함수는 선형 함수의 결과를 -1~1 사이에서 비선형 형태로 변형해 준다. 

시그모이드에서 결괏값의 평균이 0이 아닌 양수로 편향된 문제를 해결하는 데 사용했지만, 기울기 소멸 문제는 여전히 발생한다.

 

 

 

 

3. 렐루 함수

 

렐루(ReLU) 함수는 입력(x)이 음수일 때는 0을 출력하고, 양수일 때는 x를 출력한다. 

경사 하강법(gradient descent)에 영향을 주지 않아 학습 속도가 빠르고, 기울기 소멸 문제가 발생하지 않는 장점이 있다. 

렐루 함수는 일반적으로 은닉층에서 사용되며, 하이퍼볼릭 탄젠트 함수 대비 학습 속도가 6배 빠르다. 

문제는 음수 값을 입력받으면 항상 0을 출력하기 때문에 학습 능력이 감소하는 단점이 있다.

 

 

 

 

 

4. 리키 렐루 함수

 

리키 렐루(Leaky ReLU) 함수는 입력 값이 음수이면 0이 아닌 0.001처럼 매우 작은 수를 반환한다. 

이렇게 하면 입력 값이 수렴하는 구간이 제거되어 렐루 함수를 사용할 때 생기는 문제를 해결할 수 있다.

 

 

 

 

 

5. 소프트맥스 함수

 

 

소프트맥스(softmax) 함수는 입력 값을 0~1 사이에 출력되도록 정규화하여 출력 값들의 총합이 항상 1이 되도록 한다. 

소프트맥스 함수는 보통 딥러닝에서 출력 노드의 활성화 함수로 많이 사용된다.

 

exp(x)(앞의 식에서는 exp(ak)와 exp(ai)를 의미)는 지수 함수(exponential function)이다.

n은 출력층의 뉴런 개수, yk는 그중 k번째 출력을 의미한다. 

즉, 이 수식처럼 소프트맥스 함수의 분자는 입력 신호 ak의 지수 함수, 분모는 모든 입력 신호의 지수 함수 합으로 구성된다.

 

'공부자료 > Deep Learning' 카테고리의 다른 글

딥러닝 (3)  (0) 2022.09.26
딥러닝 (2)  (0) 2022.09.25
강화학습  (0) 2022.09.25
학습 과정  (0) 2022.09.25
비지도학습 (2)  (0) 2022.09.25