7. [딥러닝] Neural Network

김범수·2022년 6월 2일
0

신경망 (Neural Network)

이미지 출처 : http://study.zum.com/book/11779

앞서 Linear Regression과 Classification을 이용한 Logistic Regression을 통해 XOR 테이블을 구현을 하려했으나 불가능 했기에 NAND, OR, AND의 Logistic Regression의 조합을 통해서 XOR을 구현했었습니다.

이 과정은 인간의 신경망의 동작원리와 비슷하게 동작합니다.

  • 신경망 (Neural Network)

  • 신경 세포 뉴런(neuron)은 이전 뉴런으로부터 입력 신호를 받아 또 다른 신호를 발생시킵니다.
  • 그러나 입력에 비례해서 출력을 내는 형태가 아니라, 입력 값들의 모든 합이 threshold(임계점)에 도달해야만 출력 신호를 발생시킵니다.
  • 이처럼 입력 신호를 받아 threshold를 넘을 경우 출력을 생성하는 함수를 활성화 함수라고 하며, 앞에서 사용했던 sigmoid 함수가 대표적인 활성화 함수 입니다.

※ 활성화 함수 : sigmoid, ReLU, Leaky ReLU...

입력 신호에 가중치를 곱하고 적당한 바이어스를 더하는 Linear Regression 과정과 그 값을 활성화 함수로 통해 다음으로 전달하는 Classification의 Multi-Variable Logistic Regression을 통해 뉴런의 동작원리를 머신러닝에 적용하여 인간의 신경망 (Neural Network)을 머신러닝으로 인공신경망 (Artificial Nerual Network)의 구현이 가능합니다.

  • 딥러닝 (Deep Learning)

딥러닝이란 Logistic Regression을 나타내는 노드가 서로 연결되는 신경망 구조를 바탕으로 입력층(Input Layer), 1개 이상의 은닉층(Hidden Layer), 출력층(Output Layer)을 구축하고, 출력층에서의 오차를 기반으로 각 노드의 가중치를 학습하는 머신러닝의 한 분야입니다.

  • 은닉층을 깊게(Deep)g할수록 정확도가 높아진다고 해서 딥(Deep)러닝이라는 용어가 사용되고 있습니다.

  • 각 가중치 값들은 층과 층사이의 모든 노드에 초기화되어 있으며, 다음 층으로 전파(Propagation)될 때마다 가중치를 업데이트하여 최종적으로 오차가 최소인 최적의 값을 갖게 됩니다.

  • 피드포워드 (Feed Forward)

피드포워드(Feed Foward)란 입력 층으로 데이터가 입력되고, 1개 이상으로 구성되는 은닉층을 거쳐, 마지막인 출력층으로 출력 값을 내보내는 과정입니다.

※ 딥러닝 입력층에서는 활성화 함수를 적용하지 않고, 입력 값 그대로 출력하는 것이 관례화 되어 있습니다.

(a1 = x1,  a2 = x2)

은닉층의 선형회귀 값은 위의 식처럼 이전층의 출력 값과 은닉충의 가중치와의 곱과 바이어스와의 합을 통해서 나타내게됩니다. 또한, 모든 출력 값들은 sigmoid를 거치기 때문에 0과 1사이의 값을 나타내게 됩니다.

  • 딥러닝 프로세스

딥러닝을 이용하여 오차함수 값이 최소가 되도록 가중치와 바이어스를 업데이트하는 Training 과정입니다.

입력층, 은닉층, 출력층을 가정한 후에, training data를 입력하여 feed forward를 진행하여 출력 값 y를 얻어냅니다.

training data의 정답값(t)와 y를 비교하여 손실함수 값을 계산하고 손실함수 값이 최소가 아니라면 가중치 W와 바이어스 b를 업데이트하여 손실함수의 최솟값을 찾을 때까지 해당 과정의 반복을 수행합니다.

출처 : 유튜브 NeoWizard 채널 머신러닝/딥러닝 강의

profile
iOS Developer

0개의 댓글