이 글은 기존 Tistory 블로그에서 옮겨온 글입니다. 원문: https://jms3084.tistory.com/36
1. 퍼셉트론
1-1. 퍼셉트론이란?
다수의 신호를 입력으로 받아 하나의 신호를 출력한다.
퍼셉트론 신호는 0/1의 두가지 값을 가질 수 있다.

그림의 원을 노드 혹은 뉴런이라고 부른다.
입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치(w1, w2)가 곱해진다.
뉴런에서 보내온 신호의 총합이 한계값을 넘어설 때만 1을 출력하고 한계를 임계값(θ)이라고 한다.

단층 퍼셉트론은 직선 하나로 나눈 영역만 표현이 가능하다.
비선형, 곡선 영역은 표현할 수 없다.
1-2. 다층 퍼셉트론
단층 퍼셉트론에 층을 추가해서 다층 퍼셉트론을 만들 수 있다.
기존 단층 퍼셉트론에서 표현하지 못했던 곡선, 비선형 영역의 표현이 가능해진다.
2. 신경망
2-1. 신경망의 구조

가장 왼쪽 줄을 입력층, 맨 오른쪽 줄을 출력층, 중간 줄을 은닉층이라고 한다.
은닉층의 뉴런은 사람의 눈에는 보이지 않는다.
2-2. 편향을 가진 퍼셉트론

b는 편향을 나타내는 매개변수로, 뉴런이 얼마나 쉽게 활성화되는지를 제어한다.
w1, w2는 각 신호의 가중치를 나타내는 매개변수로, 각 신호의 영향력을 제어한다.
2-3. 활성화 함수

위에서 h(x)인 입력 신호의 총합을 출력 신호로 변환하는 함수를 활성화 함수라고 한다.
이름과 같이 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 한다.

입력 신호와 편향의 총합을 계산한 결과를 활성화 함수에 넣어서 출력하는 과정을 거친다.
활성화 함수의 종류에 따라서 출력 결과가 달라진다.
2-4. 활성화 함수
2-4-a. 계단 함수

임계값을 경계로 출력이 바뀌는 함수를 계단 함수라고 한다.
퍼셉트론에서는 활성화 함수로 계단 함수를 이용한다.
계단함수는 0을 경계로 출력이 0에서 1로 바뀌는 비선형 함수이다.
2-4-b. 시그모이드 함수

신경망에서 자주 사용하는 활성화 함수인 시그모이드(sigmoid function)이다.
시그모이드함수는 입력을 0과 1 사이의 값으로 반환하는 비선형 함수이다.
시그모이드 함수와 계단함수는 ‘매끄러움’의 차이가 존재한다.
→ 이 ‘매끈함’이 신경망 학습에서 아주 중요한 역할을 한다.
2-4-c. 비선형 함수
계단 함수와 시그모이드 함수는 공통적으로 비선형 함수이다.
시그모이드 함수는 곡선, 계단 함수는 구부러진 직선으로 나타나며, 비선형 함수로 분류된다.
신경망 학습에서는 활성화 함수로 비선형 함수를 사용해야 한다.
선형 함수를 사용하면 안되는 이유는 선형 함수를 이용하면 신경망의 층을 깊게 하는 의미가 없어진다. → 선형 함수로 층을 쌓으면 그냥 층의 상수배 효과가 나타나기 때문이다.
선형 함수의 문제는 층을 아무리 깊게 해도 ‘은닉층이 없는 네트워크’로도 같은 기능을 할 수 있다.
층을 쌓는 혜택을 얻고 싶다면 활성화 함수로는 비선형 함수를 사용해야 한다.
2-4-d. ReLu함수

시그모이드 함수는 오래전부터 이용해왔으나, 최근에는 ReLu(Rectified Linear unit)함수를 주로 이용한다.
ReLu는 입력이 0을 넘으면 입력을 그대로 출력하고, 0 이하이면 0을 출력한다.
2-4-e. 다양한 활성화 함수

2-5. 출력층
신경망은 분류와 회귀 모두에 이용할 수 있다.
둘 중 어떤 문제냐에 따라 출력층에서 사용하는 활성화 함수가 달라진다.
일반적으로 회귀에 항등 함수, 분류에는 소프트맥스 함수를 사용한다.

항등함수는 입력을 그대로 출력한다.
입력과 출력이 같다는 뜻의 항등함수이다.
출력층에서의 활성화 함수로 항등함수를 사용하면 입력 신호가 그대로 출력 신호가 된다.

소프트맥스함수의 분자는 입력신호 a의 지수함수, 분모는 모든 입력 신호의 지수 함수의 합으로 구성된다.
소프트맥스의 출력은 0과 1사이의 실수이다. 또 소프트맥스 함수 출력의 총합은 1이다.
출력 총합이 1이 된다는 점은 소프트맥스 함수의 중요한 성질이다.
이 성질로 인해 소프트맥스 함수의 출력을 확률로 해석할 수 있다.
현업에서는 지수 함수 계산에 드는 자원 낭비를 줄이고자 출력층의 소프트맥스 함수는 생략하는 것이 일반적이다. (학습 단계에서는 사용하고, 추론 단계에서는 생략한다는 의미이다.)
2-6. 순전파(forward propagation)

입력 데이터를 기반으로 신경망을 따라 입력층부터 출력층까지 차례대로 변수들을 계산하고 추론한 결과를 의미한다.
모델에 입력값(x)를 입력하여 순전파 연산을 진행한다.
이 과정에서 계층마다 가중치와 편향으로 계산된 값이 활성화 함수에 전달된다.
최종 활성화 함수에서 출력값이 계산되고 이 값을 손실함수에 label과 연산하여 cost를 계산한다.