
딥 러닝의 용어 및 개념
첫번째 퍼셉트론(Perceptron)은 인공 신경망의 기본 단위입니다. 딥 러닝은 신경망을 사용해서 알고리즘을 구축합니다.
먼저 사람의 신경은 어떻게 동작하는지 살펴보겠습니다.
신경 세포의 가장 기본 단위는 뉴런(Neuron)으로써 앞쪽에는 수상돌기(Dendrite)로 구성됩니다.
수상돌기(Dendrite)는 이전 뉴런(Neuron)의 신호들을 전달받는 역할을 합니다.
신호가 어느정도 임계점을 돌파하면, 축삭 돌기(Axon Terminal)를 통해 다음 뉴런으로 전달됩니다.
이런 뉴런들의 다발이 모이고 모여서 인체를 구성하는 네트워크 역할을 합니다.

몇가지 변수가 있는데 앞쪽에서 오는 신호들이 똑같은 강도 및 세기로 오지 않습니다.
그래서 신호에 어떤 가중치(W)가 곱해져서 옵니다. 이 가중치는 각 신호마다 다릅니다.
이걸 모방해서 만든 회로가 퍼셉트론(perceptron) 입니다.

각각의 이전 퍼셉트론으로부터 받은 입력값에 가중치(W)를 곱해서 그것을 합합니다. (가중치의 합)
이 합해진 값을 다음 퍼셉트론으로 전달시켜야 하는데 이 때 활성화 함수 통해 전달시킵니다.

퍼셉트론의 예시로 어떤 상품을 판매하는 회사에서, Youtube / TV / 신문 광고비를 통한 판매량 데이터를 통해
신경망을 학습하면 앞으로 Youtube 및 TV, 신문 광고비를 입력 받았을 때 예측할 수 있는 것입니다.
신경망에서 학습되는 대상은 실질적으로 적절한 가중치 값(W) 입니다.
두번째, 인공 신경망(ANN)으로써, 퍼셉트론을 여러 개 연결한 것이 됩니다.
여기서는 목표를 달성하기 위한 가중치를 찾아냅니다.
세번째, 딥 러닝(Deep Learning) 학습 과정에서 나오는 SLP와 MLP 개념입니다.
먼저 SLP(Single-Layer Perceptron)은 단일 레이어 퍼셉트론으로써 퍼셉트론을 2개만 가지고 모델을 만듭니다.

그리고, MLP(Multi-Layer Perception)은 출력층과 입력층 사이에 숨겨진 뉴런 층(은닉층)을 추가한 것입니다.
그래서 더 복잡한 문제를 해결할 수 있도록 하는 것입니다.

그래서 딥 러닝(Deep Learning)은 Deep Neural Network을 이용한 머신 러닝 방법인데
Deep Neural Network는 은닉층의 수가 2개 이상인 네트워크입니다.

네번째, 경사 하강법(Gradient Descent) 입니다.
머신 러닝에서 배웠듯이 Loss 값이 낮아지는 방향으로 서서히 학습이 진행되는 과정입니다.
여기서 초기의 가중치(W)는 랜덤하게 시작합니다. 목표는 Loss Function의 값이 줄어들도록 W값을 조금씩 바꿉니다.
이 때 사용하는 것이 미분입니다. Loss 값을 W로 미분하고, 방향의 반대 방향으로 조금씩 W값을 바꿔 나갑니다.
다섯 번째, Mini-Batch 학습법입니다.
기존 방법에서는 W값을 아주 조금씩 바꾸기 위해 많은 데이터에 대해 Loss를 다 계산해야 합니다.
하지만, Mini-Batch 방법에서는 일정 크기만큼 데이터를 묶어서 전체 훈련 데이터를 대표한다고 가정한 후
이 데이터들로만 Loss를 계산하고, W값을 업데이트하는 것입니다.
여섯 번째, 역전파(Back Propagation)입니다.
원래는 최종 출력값과 정답값의 오차인 Loss 값을 가지고, 그전 퍼셉트론에 있는 W값을 업데이트해야 합니다.
역전파를 통해 Loss 값부터 한단계씩 거꾸로 미분을 하는 것입니다. 그러면 우리가 구하려는 미분값이 도출됩니다.