Linear Activation을 사용하면 안되는 이유

dev_ung·2023년 7월 27일

다음과 같은 Fully Connected Layers가 있다고 가정했을때, 우리는 예측값이 어떻게 나올지 수식으로 적을 수 있다.

행렬과 벡터로 MLP 표현

#1
1번째 hidden layer에서 위에서 1번째 노드의 경우를 보면,
입력값: w2x1+w2x2+b1w_2*x_1+w_2*x_2+b_1
출력값: f1(w3x1+w4x2+b2)f_1(w_3*x_1+w_4*x_2+b_2)

#2
1번째 hidden layer에서 위에서 2번째 노드의 경우를 보면,
입력값: w3×x1+w4×x2+b2w_3 \times x_1+w_4 \times x_2+b_2
출력값: f1(w3×x1+w4×x2+b2)f_1(w_3 \times x_1+w_4 \times x_2+b_2)

#3
1번째 hidden layer에서 위에서 3번째 노드의 경우를 보면,
입력값: w5x1+w6x2+b3w_5*x_1+w_6*x_2+b_3
출력값: f1(w5x1+w6x2+b3)f_1(w_5*x_1+w_6*x_2+b_3)

이를 행렬과 벡터로 더 보기좋게 나타낼 수 있다.

f1([x1x2]×[w1w3w5w2w4w6]+[b1b2b3])f_1(\begin{bmatrix}x_1&x_2\end{bmatrix} \times \begin{bmatrix}w_1 & w_3 & w_5 \\ w_2 & w_4 & w_6 \end{bmatrix} + \begin{bmatrix} b_1 & b_2 & b_3 \end{bmatrix})

hidden layer에서 output layer로 가는 과정도 포함시키면 수식은 다음과 같아진다.
f2(f1([x1x2]×[w1w3w5w2w4w6]+[b1b2b3])×[w7w10w8w11w9w12]+[b4b5])f_2(f_1(\begin{bmatrix}x_1&x_2\end{bmatrix} \times \begin{bmatrix}w_1 & w_3 & w_5 \\ w_2 & w_4 & w_6 \end{bmatrix} + \begin{bmatrix} b_1 & b_2 & b_3 \end{bmatrix}) \times \begin{bmatrix} w_7&w_{10} \\ w_8&w_{11} \\ w_9 & w_{12} \end{bmatrix} + \begin{bmatrix} b_4&b_5 \end{bmatrix})

Linear Activation을 사용하면 안되는 이유 설명

여기서 activation function인 f1f_1f2f_2가 Linear Activation이라고 가정해보자.
Linear Activation이 f(x)=xf(x) = x라 가정했을때, 입력값과 출력값은 동일하다. 즉, 수식이 간단해진다.

([x1x2]×[w1w3w5w2w4w6]+[b1b2b3])×[w7w10w8w11w9w12]+[b4b5](\begin{bmatrix}x_1&x_2\end{bmatrix} \times \begin{bmatrix}w_1 & w_3 & w_5 \\ w_2 & w_4 & w_6 \end{bmatrix} + \begin{bmatrix} b_1 & b_2 & b_3 \end{bmatrix}) \times \begin{bmatrix} w_7&w_{10} \\ w_8&w_{11} \\ w_9 & w_{12} \end{bmatrix} + \begin{bmatrix} b_4&b_5 \end{bmatrix}

전개해보면
[x1x2][w1w3w5w2w4w6][w7w10w8w11w9w12]+[b1b2b3][w7w10w8w11w9w12]+[b4b5]\begin{bmatrix}x_1&x_2\end{bmatrix}\begin{bmatrix}w_1 & w_3 & w_5 \\ w_2 & w_4 & w_6 \end{bmatrix}\begin{bmatrix} w_7&w_{10} \\ w_8&w_{11} \\ w_9 & w_{12} \end{bmatrix}+\begin{bmatrix} b_1 & b_2 & b_3 \end{bmatrix}\begin{bmatrix} w_7&w_{10} \\ w_8&w_{11} \\ w_9 & w_{12} \end{bmatrix}+\begin{bmatrix} b_4&b_5 \end{bmatrix}

[w1w3w5w2w4w6][w7w10w8w11w9w12]\begin{bmatrix}w_1 & w_3 & w_5 \\ w_2 & w_4 & w_6 \end{bmatrix}\begin{bmatrix} w_7&w_{10} \\ w_8&w_{11} \\ w_9 & w_{12} \end{bmatrix}[w1w3w2w4]\begin{bmatrix}w_1 & w_3 \\ w_2 & w_4 \end{bmatrix}로 대체할 수 있다.

[b1b2b3][w7w10w8w11w9w12]+[b4b5]\begin{bmatrix} b_1 & b_2 & b_3 \end{bmatrix}\begin{bmatrix} w_7&w_{10} \\ w_8&w_{11} \\ w_9 & w_{12} \end{bmatrix}+\begin{bmatrix} b_4&b_5 \end{bmatrix}[b1b2]\begin{bmatrix} b_1&b_2 \end{bmatrix}로 대체할 수 있다.

그러면 결과적으로
[x1x2][w1w3w2w4]+[b1b2]\begin{bmatrix}x_1&x_2\end{bmatrix}\begin{bmatrix}w_1 & w_3 \\ w_2 & w_4 \end{bmatrix}+\begin{bmatrix} b_1&b_2 \end{bmatrix}로 간소화된다.

즉, hidden layer가 없는 것과 동일해진다. 그렇기에 신경망에 있어서 Linear Activation은 쓸모가 없다.

결론

Linear Activation은 쓸모가 없기 때문에 비선형성 Activation이 중요하다.

1개의 댓글

comment-user-thumbnail
2023년 7월 27일

좋은 정보 얻어갑니다, 감사합니다.

답글 달기