딥러닝은 머신러닝의 일종으로써, 생물의 뇌 신경망의 뉴런과 시냅스가 동작하는 원리를 본따 만든 인공신경망 기법이다.
인공 신경망인 퍼셉트론이 다층으로 연결되어 비선형적 문제를 다중의 선형적 계산으로 해결한다.

퍼셉트론은 인공 신경망으로, 다수의 입력값을 받아 가중치를 부여한 후, 출력값을 도출하는 알고리즘이다.
가중치는 노드에 대한 중요도를 표현하는 것으로, 가중치가 클수록 해당 신호가 중요하다.
입력값에 가중치가 부여되어 그에 해당되는 값이 임계값을 넘어가면 활성함수가 1을 출력, 넘지 못하면 0을 출력한다.
가중치만으로는 세밀한 조정이 되지 않는 부분이 있을 수 있기에, bias는 임계값을 조정하여 인공 뉴런이 더 쉽거나 어렵게 활성화되게 만든다.
출력값이 1 혹은 0 이기 때문에, 퍼셉트론은 선형 분류 모형이라고 볼 수 있다.

단층 퍼셉트론은 말 그대로 층이 하나만 존재하는 퍼셉트론으로, 입력층(모델의 층 개수는 입력층은 생략한다.)과 출력층으로만 구성되어 있다.

단층 퍼셉트론을 출력은 𝑦=𝑓(𝑤⋅𝑥+𝑏)로 나타낼 수 있다. 입력벡터: 𝑥=(𝑥1,𝑥2,…,𝑥𝑛), 가중치 벡터 𝑤=(𝑤1,𝑤2,…,𝑤𝑛), 편향 𝑏, 활성화 함수 𝑓(⋅)
이는 선형 방정식 𝑤⋅𝑥+𝑏=0 으로 정의된다.
ㅤ
단층 퍼셉트론이 해결하지 못 하는 문제를 예로 XOR 문제가 있다.

해당 진리표에 대한 단층 퍼셉트론을 시각화해보면 다음과 같다.

파란색 점 (Class 0): 출력이 0인 입력 조합, 빨간색 점 (Class 1): 출력이 1인 입력 조합
AND 게이트와 OR 게이트는 직선 하나로 분류할 수 있지만, XOR 게이트는 단 하나의 직선으로 분류할 수 없는 구조를 가진다.
따라서 단층 퍼셉트론으로는 XOR 문제를 해결할 수 없다.
다층 퍼셉트론은 선형 분류 모형으로, 위 예시와 같은 비선형적으로 분포하는 데이터를 학습할 수 없기에 다층 퍼셉트론이 등장했다.
다층 퍼셉트론은 입력층과 출력층 사이에 다수의 은닉층이 존재한다.

은닉층이 1개만 있는 다층 퍼셉트론은 얕은 신경망(shallow neural network), 은닉층이 2개 이상인 경우 깊은 신경망(deep neural network)라고 한다.
• 입력 데이터를 첫 번째 층으로 전달
• 각 뉴런에서 가중치와 편향을 적용한 후, 활성화 함수를 통해 값을 변환
• 다음 층으로 전달하여 최종 출력값을 계산
이를 수식으로 표현하면 𝑧=𝑊𝑥+𝑏 𝑎=𝑓(𝑧)로 나타낼 수 있다.
가중치 행렬 𝑊, 입력 벡터 𝑥, 편향 𝑏, 활성화 함수 𝑓(⋅) , 활성화 함수 적용 후 출력값 𝑎
• 출력층에서 나온 값과 실제 값 사이의 차이를 평가하기 위해 손실 함수를 계산한다.
• 손실을 최소화 하기 위해 오차를 출력층에서 입력층 방향으로 거꾸로 전파
• 기울기를 계산하여 가중치와 편향을 조정
• 최적화 알고리즘을 사용하여 학습
이를 수식으로 표현하면, 𝑊 𝑛𝑒𝑤=𝑊 𝑜𝑙𝑑−𝜂 ⋅ ∂𝐿/∂𝑊 𝑏 𝑛𝑒𝑤=𝑏 𝑜𝑙𝑑−𝜂 ⋅ ∂𝐿/∂𝑏 로 나타낼 수 있다.
손실 함수 𝐿, 학습률 𝜂, 편향 𝑏, 가중치에 대한 손실 함수의 변화율(기울기) ∂𝐿/∂𝑊, 편향에 대한 손실 함수의 변화율(기울기) ∂𝐿/∂𝑏
숨은 층에서는 비선형 활성화 함수를 사용해야 신경망이 복잡한 패턴을 학습할 수 있다. 대표적인 활성화 함수는 다음과 같다.
• 시그모이드 함수 (Sigmoid function) 𝑓(𝑥)=1/(1+𝑒^(−𝑥))
ㅤ৹ 출력을 0~1로 압축하여 확률 값으로 해석 가능
ㅤ৹ 시그모이드 함수는 아무리 큰 값이 들어오더라도 0~1 사이의 값만 반환하기에 값이 줄어들어 기울기 소실 문제가 발생할 수 있음
ㅤ৹ 출력값의 평균이 0.5로 중심이 되는 특징을 가지고 있어 신경망의 학습이 늦어질 수 있음
ㅤ৹ 이진 분류 문제에 적합

• 렐루 함수 (ReLU funtion) 𝑓(𝑥)=max(0,𝑥)
ㅤ৹ 0보다 작으면 0, 크면 그대로 출력
ㅤ৹ 계산의 효율성
ㅤ৹ 양수 입력값에 일정한 기울기를 가지고 있어 기울기 소실 문제를 완화
ㅤ৹ 시그모이드 함수에서의 출력이 1 또는 0에 매우 가까워지는 포화 문제를 방지

• 하이퍼볼릭 탄젠트 함수 (Tanh function) 𝑓(𝑥)=(𝑒^(𝑥)−𝑒^(−𝑥))/(𝑒^(𝑥)+𝑒^(−𝑥))
ㅤ৹ 출력을 -1에서 1 사이로 변환하여 평균을 0으로 맞춤
ㅤ৹ 함수의 중심점을 0으로 옮겨 시그모이드의 느려지는 문제를 해결
ㅤ৹ 기울기 소실 문제
ㅤ
