인공지능/딥러닝

[딥러닝] 이론(1)

노트북 산 김에 공부 2023. 3. 16. 21:20

딥러닝이란 

여러 층을 가진 인공 신경망을 사용하여 학습을 수행하는 것

여기서 '층' 이란 무엇이고, 그의 역활은 무엇인지 그리고 '학습' 이란 무엇인지를 최대한 쉽게 알아보겠습니다.


층 (layer)

층이란 간단하게 말해서 데이터를 처리하는 공간이라 생각하시면 편합니다.

딥러닝에는 기본적으로

데이터를 받아들이는 입력층(input layer)

데이터를 처리하는 은닉층(hidden layer)

최종 결괏값이 포함된 출력층(output layer) 이 있습니다.

 

이제 이 층을 이루는 페셉트론(perceptron)을 자세히 살펴보겠습니다.

 


퍼셉트론 (Perceptron)

퍼셉트론이란 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘입니다.

 

  1. 입력 값에 가중치를 곱한다 (값들을 모두 더한 것을 '가중합'이라 합니다)
  2. 가중합을 활성화 함수로 보낸다.
  3. 활성화 함수를 이용해 출력값을 변화시킨다.

가중치

 

가중치는 입력 값이 연산 결과에 미치는 영향력을 조절하는 요소입니다. 

예를 들어 가중치(w1)가 0.00001 이라면 입력값(x1)이 아무리 큰 값이어도 x1 * w1 값은 매우 작은 값이 됩니다.

학습이란 가중치의 최적값을 찾는 것입니다.
가중합 (전달함수)

 

가중합은 각 노드에서 가중치가 곱해진 값들을 모두 더한 값입니다.

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

 

여기서 ∑ w x + b 의 뜻은 입력값(w)과 가중치(x)를 곱한 값에,  바이어스(b)를 더합니다.  

그리고 그걸 값의 개수만큼 반복합니다(시그마 ∑) 

(바이어스는 그냥 값을 더 정교하게 만든다 생각하시면 됩니다)


활성화 함수 (Activation Fucntion)

활성화 함수는 가중합을 다음 퍼셉트론에 넘길 때 일정 기준에 따라 출력 값을 변화시키는 비선형 함수 입니다.

비선형 형태로 값을 변환시키기 때문에 복잡한 예측이 가능합니다.

 

시그모이드 (sigmoid)

 

  • 선형 함수의 결과를 0 ~ 1 사이에서 비선형 형태로 변형해 줍니다.
  • 주로 분류 문제를 확률적으로 표현하는데 사용됩니다. 
  • 딥러닝 모델의 깊이가 깊어지면 기울기가 사라지는 '기울기 소멸 문제'가 발생합니다.

 

하이퍼볼릭 탄젠트 (hyperbolic tangent)

 

  • 선형 함수의 결과를 -1 ~ 1 사이에서 비선형 형태로 변형해 줍니다.
  • 시그모이드 함수에서 결괏값 평균이 0이 아닌 양수로 편향되는 문제를 해결했습니다.
  • 기울기 소멸 문제는 여전합니다.

 

렐루 (ReLU)

 

  • 입력(x)이 음수일 때는 0을 출력하고, 양수일 때는 입력(x)을 출력합니다.
  • 경사 하강법에 영향을 주지 않아 학습 속도가 빠르고, 기울기 소멸 문제가 발생하지 않습니다.
  • 은닉층에서 사용됩니다.

 

리키 렐루 (Leaky ReLU)

 

  • 입력(x)이 음수일 때는 0.001 처럼 매우 작은 수를 반환합니다
  • 입력 값이 수렴한는 구간이 제거되어 렐루 함수 문제점을 해결합니다.

 

소프트맥스 (softmax)

 

  • 입력 값을 0 ~ 1 사이에 출력되도록 정규화합니다.
  • 출력 값들의 총합이 항상 1이 되도록 합니다.
  • 마지막 노드(출력 노드)의 활성화 함수로 사용됩니다.

손실 함수

손실 함수는 학습을 통해 얻은 데이터의 추정치가 실제 데이터와 얼마나 차이가 나는지 평가하는 지표입니다.

값이 클수록 많이 틀렸다는 의미이고, 이 값이 0에 가까우면 완벽하게 추정할 수 있다는 의미입니다

 

  • 평균 제곱 오차(MSE) : 실제 값과 예측 값의 차이를 제곱하여 평균을 낸 것. 실제 값과 예측 값의 차이가 클수록 평균 제곱 오차의 값도 커진다 → 이 값이 작을수록 예측력이 좋다 - 회귀에서 손실 함수로 주로 사용
  • 크로스 엔트로피 오차(Cross entropy) : 경사 하강법 과정에서 학습이 지역 최소점에서 멈추는 것을 방지한다

이러한 손실함수의 값이 최소가 되는 지점을 찾을 때까지 찾는 과정인 경사 하강법을 보겠습니다.

경사 하강법

경사 하강법은 학습률과 손실 함수의 순간 기울기를 이용하여 가중치를 업데이트하는 방법입니다.

즉 미분의 기울기를 이용하여 오차를 비교하고 최소화하는 방향으로 이동시키는 방법입니다.

 

J(w)는 손실크기 이고, w는 당연히 가중치 입니다.

가중치 위치에서 해당 기울기가 0일 때 까지 기울기를 빼줍니다(가중치 업데이트).

그렇게 기울기가 0이 되면 손실 크기는 최소값이 될겁니다. 

지역 최소점과 전역 최소점 

손실 함수의 값은 0에 근접할 수록 가장 이상적입니다. 

하지만 현실적으로 0값을 찾는 것은 쉽지 않기 때문에 최대한 가장 작은 값을 찾는 것이 중요합니다.

이때 가장 작은 값을 찾았다고 생각되는 지점이 지역 최소점입니다.

 

그러나 위의 그림과 같이 그래프 전체의 최소점이 존재하기 마련입니다.

지역 최소점 중 가장 작은 값을 갖는 지점을 정답으로 간주여하여 전역 최소점이라고 합니다.