
뇌세포를 모방한 기계, 퍼셉트론
뉴런의 구조
- 인간의 뇌와 척수는 뉴런(신경세포)으로 구성되어 있다.
- 뉴런은 입력부와 출력부로 구분할 수 있다.
- 입력부가 외부로부터 받은 자극이 역치 이상이면 전기적 신호를 만들어 출력부로 전달한다.
- 전기적 신호를 활동 전위라고 부르는데 이때 입력받은 자극이 지나치게 작다면 뉴런은 그 신호를 무시한다.

퍼셉트론의 구조
- 외부에서 들어오는 입력값에 가중치(weight)를 곱한 값을 모두 더하여 하나의 입력값으로 정돈한다.
- 가중치가 큰 입력값은 퍼셉트론에 크게 영향을 미치고, 가중치가 작은 입력값은 퍼셉트론에 작은 영향을 미친다.

활성화 함수
- 뉴런은 0 or 1 두 가지 값만 출력할 수 있는 기계이다.
- 퍼세트론의 출력값을 뉴런의 출력값과 유사하게 다듬어주려는 도구가 활성화 함수이다.
- 작은 숫자를 입력받으면 0에 가까운 숫자를 출력하고, 어느 정도 큰 숫자를 입력받으면 1에 가까운 숫자를 출력한다.
시그모이드 함수(Sigmoid function)
- 입력값을 0부터 1사이의 값으로 만들어 주는 함수
- 입력값이 작으면 작을수록 0에 가까운 값이 출력되고 클수록 1에 가까운 값이 출력된다.
- 출력값의 범위를 0과 1사잇값으로 한정할 수 있다는 점에서 널리 활용된다.

하이퍼볼릭 탄젠트 함수(tanh)
- 입력값을 -1부터 1사잇값으로 다듬어주는 함수
- 입력값이 작으면 작을수록 -1에 가까운 값이 출력되고 클수록 1에 가까운 값이 출력된다.
- 뉴런의 on-off 작동을 모사한다는 점에서 애용되지만, 최근 음수 값을 사용하지 않으려는 추세가 등장하면서 선호도가 낮아진 함수

렐루(ReLU, Rectified Linear Unit)
- 입력값이 0보다 작은 값은 0으로 만들고 0보다 큰 값은 그대로 출력하는 함수
- 단일 뉴런보다는 여러 개의 뉴런으로 구성된 신경 다발의 정보전달 형상에 가깝다.
- 딥러닝의 고질적인 문제를 해결하기 위한 방법으로 조명받으며, 딥러닝 모델을 만들때 어떤 활성화 함수를 적용하면 좋을지 모르겟으면 렐루를 사용하면 대부분의 경우 높은 성능을 보인다.

리키 렐루(Leaky ReLU)
- 리키 렐루는 렐루 함수와 달리 0보다 작은 값도 버리지 않는다.
- 원본 그대로 출력이 아닌 약간 더 작은 값을 출력한다.
- 몇몇 적용사례에서 렐루에 비해 월등한 성능을 보인다.

가중치는 어떻게 결정되는가?
- 뉴런에서 가중치는 자주 정보를 주고받는 부위일수록 더더욱 가중치가 커지고, 자주 사용하지 않는 영역일수록 자중치가 감소하는 경향이 있다.
- 일반적으로 딥러닝에서는 맨 처음에 가중치를 랜덤으로 결정한다. 이후 역전파(backpropagation)라는 알고리즘을 적용하여 퍼셉트론이 입력값을 목푯값과 잘 매칭시킬 수 있도록 조금씩 가중치를 수정해 나간다.
- 데이터를 분석해 가중치를 수정해 나가는 과정을 '학습'이라고 부른다.
인공신경망과 딥러닝
인공신경망
- 인공신명망(Artificial Neural Network)은 인공적인 신경을 그물(network)처럼 연결됨.
- 한 번에 한 층씩 쌓아 올리는 경우가 많아 한 층의 신경망은 하나의 행렬로 표현할 수 있어 계산이 더 쉽다.
- 퍼셉트론들이 모여 한 층의 신경망이 된다.
딥러닝
- 인공신경망을 여러 층으로 쌓아 올리는 것을 다층 퍼셉트론(multilayer perceptron)이라고 부르며 퍼셉트론을 사용한 머신러닝 알고리즘을 딥러닝이라고 부른다.
- 입력값들로 구성된 맨 왼쪽 노드들은 입력층(input layer), 가운데 있는 층은 은닉층(hidden layer), 출력값과 연결된 마지막 층을 출력층(output layer)라고 부른다.
- 은닉층에 속한 퍼셉트론의 출력값은 오차를 측정할 기준이 없기에 은닉층 퍼셉트론의 가중치를 수정할 방법이 없었지만 역전파(backpropagation)라는 기법을 이용해 2창 이상 쌓는 딥러닝 연구가 시작되었다.
