여기까지는 기존의 알고리즘을 직접 작성하는 형태와 같습니다. 등수와 시험점수를 주고, 그에 따른 중요도로 점수화한 뒤, 합산하여 일정 숫자 이상인 경우 합격이라 판단하는 것은 쉽습니다. 문제는 중요도와 편차를 모른다는 것에 있습니다.
앞서 말한 중요도는 신경망에선 가중치라고 표현됩니다. 사용자는 가중치와 편차를 모르므로, 신경망이 알아서 두 값을 계산해내야 합니다. 이를 계산하기 위해서, 이미 알고있는 데이터에 대하여 방정식을 세운 뒤, 예측값과 실제값을 대조하여 가중치와 편차를 다시 계산합니다. 이를 학습이라고 합니다.
실제값과 예측값이 다르면, 신경망은 이전의 가중치와 편차를 조금씩 수정합니다. 이때, 이전의 가중치와 편차를 올바르게 수정하기 위해, 확률을 사용합니다.
기존의 경우 양수는 합격(1), 음수는 불합격(0)이였습니다. 이를 예측하기 위해 신경망이 선형방정식 모델을 세우고, 예측값과 실제값을 대조한 후, 가중치와 편차를 다시 계산하였습니다. 그런데 다시 계산한 선형방정식 모델에서도 이전 모델과 같은 결과가 나온다면, 신경망이 정확한 학습을 하고 있는지 모르게 됩니다. 이를 해결하기 위해서 확률과 오류값을 도입합니다.
기존의 에는 양수는 합격(1), 음수는 불합격(0)이라고 하였습니다. 이젠 신경망이 정확한 학습을 하고있는지 알아보기 위해 합격, 불합격을 확률로 나타내도록 합니다. 합격할 확률이 높을수록 1에 가까워지고, 불합격할 확률이 높을수록 0에 가까워집니다. 어중간한 경우(신경망 입장에선 선형 방정식에 가까운 경우)는 0.5가 됩니다. 이를 시그모이드 함수라고 표현합니다.
이제 신경망의 정확한 학습을 확인하기 이전에, 데이터 전처리 과정이 필요합니다. 확률을 통해 현재 선형 모델이 얼마나 떨어져 있는지 확인합니다. 예를 들어, 일어날 확률이 0.7, 0.8인 두 상황이 있다고 한다면, 두 상황 모두 일어날 확률은 0.56이 됩니다. 이 값이 크면 클수록 선형모델은 더 정확하다고 판단할 수 있습니다.
이방법은 데이터가 적을땐 간단하지만, 데이터의 수가 많아지면 데이터값의 변화에 민감해 집니다. 그러니 로그를 취해 덧셈의 형식으로 나타내도록 합니다. 그후 음수를 취하도록 합니다. 이와 같은 과정을 통해 나온 수식은 다음과 같습니다.
위의 식을 크로스 엔트로피라고 하며, 이 크로스 엔트로피가 작으면 작을수록 선형 모델의 신뢰도가 올라가게 됩니다.
이제 선형 모델에서의 신경망형태를 알아보았습니다. 그러나 대부분의 경우는 비선형모델의 분류가 필요하게 됩니다. 이러한 비선형모델을 다음과 같이 나타낼 수 있습니다.
선형 모델의 신경망은 단층형태로 되어있다면, 비선형 모델은 다층형태로 되어있습니다. 신경망에서 한 층을 레이어라고 부르게 되는데, 이러한 레이어들이 다량으로 쌓이게 되고, 추정해야하는 가중치가 많아지는 경우를 딥러닝이라고 부르게 됩니다.