본문 바로가기

Learning/Vision AI

02. 딥러닝과 신경망

목차

 

2.1 퍼셉트론

2.1.1 퍼셉트론이란?

: 뉴런이 하나뿐인 가장 간단한 형태의 신경망

 

인공 뉴런은 두 가지 함수를 이용해서 생물학적 뉴런에서 일어나는 현상을 모형화

    - 가중합 : 전체 입력 신호 세기의 합

    - 스텝 함수 : 입력 신호 세기의 합이 임곗값을 초과할 때만 출력 신호를 내보내는 함수

결합 가중치
: 입력 특징은 해당 특징이 출력에 미치는 중요도를 나타내는 가중치를 각각 부여받는다.
결합 가중치를 어떻게 부여하느냐와 어떻게 학습이 이루어지느냐가 신경망 학습의 핵심.

 

가중합 함수

: 선형 결합이라고도 하며, 각 가중치를 곱한 입력값의 합에 편향을 더한 값으로 정의

 

스텝 활성화 함수

: 신경 세포의 뉴런과 신경망의 뉴런 모두 입력받은 신호의 합을 그대로 출력하는 대신 활성화 함수를 거침

-> 입력 신호의 가중합을 입력받아 이 가중합이 미리 정해진 임곗값보다 크면 뉴런을 활성화

 

2.1.2 퍼셉트론은 어떻게 학습을 할까?

1. 뉴런이 입력의 가중합을 계산한 뒤 활성화 함수에 입력해서 예측값을 결정 (순방향 계산)

2. 예측값과 실제 레이블값을 비교해서 오차를 계산

3. 오차에 따라 가중치를 조정

4. 반복 (오차가 0에 가깝도록)

 

2.2 다층 퍼셉트론

비선형 데이터셋을 제대로 분류하려면 2개 이상의 직선이 필요함

 

2.2.1 다층 퍼셉트론의 구조

 

[신경망 구성 요소]

  • 입력층 : 이 층에 특징 벡터가 담긴다.
  • 은닉층 : 층 모양으로 쌓은 뉴런으로 구성된다. 입력층과 출력층 사이에 위치하며 학습 과정에서 이 층으 ㅣ입력을 제어하거나 출력을 볼 수 없기 때문에 은닉층이라는 이름이 붙었다.
  • 결합 가중치 : 노드 간의 연결에는 출력에 해당하는 입력의 영향력을 나타내는 가중치가 부여된다. (다이어그램에서 노드를 연결하는 그래프의 에지에 해당)
  • 출력층 : 모델의 예측결과가 출력되는 층. 출력값의 종류는 뉴런에서 사용하는 활성화 함수의 종류에 따라 결정

2.2.2 은닉층이란?

: 특징이 실제로 학습되는 곳

 

2.2.3 층수와 층을 이루는 노드 수

은닉층과 뉴런의 수를 결정해야한다. 무작정 수를 늘린다면 과적합이 일어날 수 있고 계산 비용이 커진다. 

감을 익히기 위해서는 다른 사람이 구현에 성공한 신경망 설계를 참고하여 3~5층으로 설계한 후 가감.(CPU 기준)

 

[신경망의 하이퍼파라미터에 대한 중요 사항]

  • 은닉층 수 : 일반적으로 뉴런 수가 많을수록 학습 데이터를 더 잘 학습하나 과적합 발생 가능성이 커진다.
  • 활성화 함수 : 가장 널리 쓰이는 함수는 은닉층에 ReLU 출력층에 SoftMax
  • 오차 함수 : 회귀 문제 : MSE, 분류 문제 : Cross Entropy
  • 최적화 기법 : 오차가 최소가 되게 하는 가중치를 찾는 역할(배치/확률적/미니배티 경사 하강법, Adam, RMSprop 등)
  • 배치 크기 : 파라미터를 한 번 업데이트할 때마다 신경망에 입력되는 횟수. 배치 크기가 클수록 학습 시간은 빨라지지만 메모리 용량이 많이 필요해짐. 기본값 32로 시작 후 64, 128,, 256으로 늘리는 것을 추천
  • 에포크 수 : 학습 중 전체 학습 데이터가 신경망에 입력되는 횟수. 테스트 데이터에 대한 정확도가 하락하기 시작할 때까지 에포크 수를 차츰 늘려가는 것이 좋음
  • 학습률 : 최적화 알고리즘의 파라미타다. 이론적으로는 학습률이 충분히 작아야 최적 파라미터에 도달할 수 있지만 학습률이 클수록 학습 속도가 빨라지며 최적 파라미터에 도달하지 못할 가능성이 높아짐.

 

2.3 활성화 함수

: 전이 함수, 비선형성이라고도 하며, 각 퍼셉트론 내 계산의 마지막 단계에 배치되어 뉴런의 발화 여부를 결정

 

2.3.1 선형 전달 함수

: 입력을 그대로 출력하는 함수(활성화 함수가 없는 효과)

 

2.3.2 헤비사이드 스텝 함수(이진 분류)

: 스텝 함수는 0과 1 두가지 값만 출력. 입력이 x > 0 이면 발화(1 출력), 그렇지 않으면 발화 x (0 출력)

ex. 스팸 메일, 합불 등

 

2.3.3 시그모이드/로지스틱 함수

: 이진 분류에서 두 클래스의 확률을 구할 때 자주 사용 [0, 1]  S-형 커브

ex. 합불할 확률

 

2.3.4 소프트맥스 함수

: 시그모이드 함수의 일반형 -> 3개 이상의 클래스를 대상으로 한 분류에서 각 클래스의 확률을 구할 때 사용.

 

2.3.5 tanh 함수

: 시그모이드 함수를 이동시킨 버전. / 시그모이드 함수는 데이터의 평균이 0.5에 가까워지는 반면 tanh는 -1~1의 범위를 가지기 때문에 평균이 0에 가까워지므로 데이터를 중앙에 모으는 효과가 있어 은닉층에서 더 좋은 성능을 낸다.

 

2.3.6  ReLU 함수

: 0보다 큰 입력에 대해서는 출력값이 입력값에 비례해서 커짐 / 입력이 0보다 크면 노드를 발화, 작으면 발화 X

  다양한 상황에서 잘 작동하며 은닉층에서 tanh 함수나 시그모이드 함수보다 더 높은 성능을 보임

 

2.3.7 Leaky ReLU

x가 음수일 때 기울기가 0이라는 ReLU의 단점을 해결하기 위한 함수

 

2.4 순방향 계산

: 특징의 선형 결합을 활성화 함수에 통과시키는 계산 과정

입력값에 가중치를 적용하고 그 오차가 최소한으로 작아질 때까지 이 과정을 반복

 

2.5 오차 함수

2.5.1 오차 함수란? (비용 함수, 손실 함수)

: 신경망의 예측 결과가 바람직한 출력과 비교해서 얼마나 "동떨어졌는지" 측정하는 수단

 

2.5.2 오차 함수가 왜 필요한가?

: 오차를 줄이고 예측결과가 얼마나 정답과 동떨어졌는지, 원하는 성능보다 얼마나 부족한지 알기 위해서

 

2.5.3 오차의 값은 언제나 양수다!

: 오차는 방향이 중요한것이 아닌 크기가 중요한 것이기 때문에 양수 값만 중요

 

2.5.4 평균제곱오차(Mean Squared Error, MSE)

: 출력값이 실수인 회귀 문제에서 널리 사용하는 오차 함수.

장점 : 오차를 제곱하기 때문에 오차가 항상 양의 값이며 오착값이 그대로 결과에 대한 평가가 되므로 계산이 간편

단점 : 이상치에 민감하다. 

- 이상치로 인해 모델의 대칭성이 깨지면 안될 경우 평균보다는 중윗수가 중요하기 때문에 절대제곱오차(MAE) 사용

 

2.5.5 교차 엔트로피(Cross-Entropy)

: 구 확률 분포 간의 차이를 측정할 수 있다는 특성 덕분에 주로 분류 문제에서 많이 사용

 

2.6. 최적화 알고리즘

2.6.1 최적화란?

: 어떤 값이 최소(혹은 최대)가 되도록 파라미터를 수정하는 것

 

2.6.2 배치 경사 하강법(BGD)

경사 하강이란?

: 가중치를 반복적으로 수정하며 오차 함수의 최저점에 도달할 때까지 오차 함수의 언덕을 내려가는 과정

  • 걸음의 방향 (경사)
  • 보폭 (학습률) -> 0.1 또는 0.01을 초깃값으로 설정한 다음 학습이 진행되는 양상을 관찰하며 추루 조정

배치 경사 하강법의 문제점

1. 손실 함수 중에는 사발 모양이 아닌 함수도 있기 때문에 전역 최소점(global minima)에 도달하지 못할 수도 있다.

2. 경사를 계산하기 위해 매번 훈련 데이터 전체를 사용한다는 것.

 

2.6.3 확률적 경사 하강법(SGD)

: 무작위로 데이터 점을 골라 데이터 점 하나를 이용해 가중치를 수정

    - 다양한 시작점을 만들 수 있다.

    - 여러 지역 극소점(local minima)을 발견할 수 있다.

 

2.6.4 미니배치 경사 하강법(MB-GD)

: 배치 경사 하강법과 확률적 경사 하강법의 절충안.

    - 경사를 계산할 때 모든 훈련 데이터나 하나의 훈련 데이터만 사용하는 대신 훈련 데이터를 몇 개의 미니배치로 분할한 

      다음 이 미니배치로부터 경사를 계산 (미니배치의 크기는 k =256이 흔함)

 

2.7 역전파 알고리즘

2.7.1 역전파란?

가중치 수정을 위해 가중치에 대한 오차의 미분을 출력층부터 첫 번째 층까지 전달하는 것.

 

2.7.2 역전파 알고리즘에서 기억해야 할 점

  • 역전파는 뉴런의 학습이 일어나는 과정이다.
  • 역전파 과정 중 신경망에 포함된 뉴런 간의 연결(가중치)이 손실함수가 최소가 되도록 조정된다.
  • 가중치가 조정된 결과로 은닉층에서 입력층보다 중요한 특징이 나타나게 된다.
  • 각 층은 자신의 입력 벡터로부터 바람직한 출력 벡터 또는 그와 유사한 벡터를 생성할 수 있는 가중치를 갖는 것을 목표로 한다. 
  • 역방향 계산은 신경망의 끝부분에서 시작해서 오차를 역방향으로 전달하고, 연쇄 법칙을 이용해서 지나는 길에 있는 모든 경사를 계산해 각 가중치를 수정한다.

참고 : 비전 시스템을 위한 딥러닝 (모하메드 엘겐디)

 

 

'Learning > Vision AI' 카테고리의 다른 글

06. 전이학습  (0) 2023.02.18
05. 고급 합성곱 신경망 구조  (0) 2023.02.17
04. 딥러닝 프로젝트 시동 걸기와 하이퍼파라미터 튜닝  (0) 2023.02.05
03. 합성곱 신경망  (0) 2023.02.05
01. 컴퓨터 비전 입문  (2) 2023.01.22