본문 바로가기

Machine Learning

[Deep Learning from Scratch] 3장. 신경망 - 이론

신경망은 퍼셉트론과 별반 다를 것이 없습니다.

이미 설정된 가중치와 편향 값만 있다면 입력 값을 받아 결과에 맞는 출력을 얻을 수 있습니다.
가중치와 편향 값은 아래의 식을 계산할 때 이용됩니다.

위 식은 다음과 같이 나타낼 수도 있습니다.

이 때 h(x)는 활성화 함수(activation function)라 합니다.
활성화 함수는 뉴런의 입력신호의 총합을 통해 해당 뉴런을 활성화 시킬지 말지를 결정하는 함수입니다.
뉴런이 활성화 되었다는 것은 출력신호가 1이라는 뜻으로 해석할 수 있습니다.

활성화 함수

본 포스팅에서는 세가지의 활성화 함수에 대해 소개합니다.
바로 시그모이드 함수(sigmoid function), 계단 함수, ReLU(Rectified Linear Unit)입니다.

  1. 시그모이드 함수

시그모이드 함수는 식으로 다음과 같이 나타낼 수 있습니다.

그래프의 형태는 다음과 같습니다.

  1. 계단 함수

계단 함수는 단층 퍼셉트론에서 사용하는 활성화 함수로 그래프의 형태는 다음과 같습니다.

시그모이드와 계단 함수의 공통점은 비선형 함수라는 것입니다.
이렇듯 활성화 함수로 비선형 함수를 사용하는 것이 중요한 이유는 선형 함수를 사용하면 신경망을 여러 층으로 구성하는 의미가 없어지기 때문입니다.
아무리 많은 층으로 구성된 신경망이라 하더라도 활성화 함수로 선형 함수를 사용하면 결과적으로는 단층 퍼셉트론, 즉 은닉층이 없이도 똑같은 결과를 내는 신경망을 구성할 수 있게됩니다.

  1. ReLU 함수

ReLU 함수는 입력이 0을 넘으면 그 값을 그대로 출력하고 그렇지 않을 경우 0을 출력하는 함수로 다음과 같이 나타낼 수 있습니다.

그래프의 형태는 다음과 같습니다.

ReLU는 구현이 매우 간단하기 때문에 실제 신경망을 구성할 때 널리 쓰이고 있습니다.

출력층의 활성화 함수

신경망을 통해 우리는 분류(classification)와 회귀(regression) 문제를 해결할 수 있습니다.

신경망이 풀어야 하는 문제의 유형에 따라 출력층에서 사용하는 활성화 함수의 종류가 달라집니다.
주로 분류 문제의 경우 소프트맥스 함수(softmax function)를, 회귀 문제의 경우 항등 함수를 사용합니다.

항등 함수는 입력을 그대로 출력하는 함수입니다.

소프트맥스 함수는 다음과 같은 식으로 표현됩니다.

소프트맥스 함수는 모든 뉴런의 출력 값을 모두 더하면 1이 된다는 특성이 있습니다.
따라서 소프트맥스 함수의 결과값은 확률의 한 형태로 해석할 수도 있습니다.