신경망 1) 개론
Data Analyticsㅤ/ㅤDeep Learning

신경망 1) 개론

신경망이란?

- 신경망(Neural network)은 머신러닝의 모델로 많이 사용된다

- '모델'이 '신경망'으로, '머신러닝'이 '학습규칙'으로 바뀐 것 뿐이다

- 신경망에서는 학습 데이터에서 모델(신경망)을 찾아내는 기법을 '학습 규칙'이라고 부른다

 

노드

- 뇌의 신경세포 역할을 수행한다

- 신경세포들의 연결을 신경망의 '연결 가중치'로 흉내 낸다

  • ●: 노드
  • x: 외부의 신호
  • w: 해당 신호의 연결 가중치 (변수)
  • b: 바이어스 (변수)

- 신경망에서 정보는 가중치와 바이어스의 형태로 바뀌어 저장된다 (보통 가중치라고 통칭한다)

- 외부에서 노드로 들어오는 신호는 각 가중치가 곱해져 노드에 전달되며, 노드에서 이 값들은 모두 더해진다

- 노드는 가중합을 활성함수에 입력해 얻은 값을 외부로 출력한다

- 활성함수에 의해 노드의 동작 특성이 결정된다

 

신경망의 계층 구조

- 신경망은 노드들을 연결해 만든 네트워크다

- 어떻게 연결하느냐에 따라 다양한 형태의 신경망을 만들 수 있으며, 대표적으로는 계층적으로 배치해 만든 형태이다

-입력층

  • 들어온 신호를 그대로 다음 노드에 전달하는 창구 역할을 한다
  • 입력층 노드에서는 가중합이나 활성함수 계산을 하지 않는다

-은닉층

  • 신경망 외부에서 이 계층의 노드들에 직접 접근할 수 없다

-출력층

  • 신경망의 최종 결과값을 뱉어낸다

- 단층 신경망: '입력층 - 출력층' 으로만 구성된 신경망

- 다층 신경망

  • 얕은 신경망: '입력층 - 은닉층 - 출력층'으로 구성된 신경망
  • 심층 신경망: '입력층 - 은닉층들 - 출력층'으로 구성된 신경망

- 같은 층의 노드들은 신호를 동시에 입력받고, 처리한 결과를 다음 층으로 내보내는 작업도 동시에 처리한다

- 활성함수로 선형함수를 사용하면 은닉층을 추가한 효과가 없어진다. 출력 노드의 활성함수로 선형함수를 사용하는 것은 괜찮다

 

신경망의 지도학습 절차

  1. 신경망의 가중치를 적당한 값으로 초기화한다
  2. 지도학습의 학습 데이터인 {입력, 정답}에서 '입력'을 신경망에 입력해 출력값을 얻는다. 이 출력값과 해당 입력의 '정답'을 비교해 오차를 계산한다
  3. 이 오차가 줄어들도록 신경망의 가중치를 조절한다
  4. 전체 학습 데이터에 관해 단계 2~3를 반복한다

- 지도학습에서 학습이란 모델의 출력과 해당 정답의 차이를 줄이도록 모델을 수정하는 과정이다

- 신경망에서는 주어진 정보에 맞춰 가중치를 체계적으로 변경하는 방법을 '학습 규칙'이라고 한다

 

델타 규칙

- 대표적인 신경망의 학습 규칙이다

- 단층 신경망은 해당되지 않는다

- 어떤 입력 노드가 출력 노드의 오차에 기여했다면, 두 노드의 연결 가중치는 해당 입력 노드의 출력(x)과 출력 노드의 오차(e)에 비례해 조절한다

$$w_{ij} = w_{ij}+\alpha e_{i} x_{j}$$

  • $x_{j}$ : 입력 노드 $j$의 출력 $(j=1,2,3)$
  • $e_{i}$ : 출력 노드 $i$의 오차
  • $w_{ij}$ : 출력 노드 $i$와 입력 노드 $j$의 연결 가중치
  • $\alpha$ : 학습률 $(0<\alpha\le1)$로 가중치를 얼마나 바꿀지 조절하는 역할
    • 크게 잡으면 정답 근처에서 왔다갔다 하며 수렴하지 못하고, 작게 잡으면 정답에 접근하는 속도가 매우 느려진다