Neural Network 반죽하기


Artificial Neural Network(인공신경망)이란?

인공신경망(연결주의 시스템이라고도 불린다.)은 인간의 뇌가 문제를 푸는 방법에 빗대어 서로 연결된 수 많은 인공 뉴런(퍼셉트론)들로 군집을 이뤄 문제를 해결하고자 하는 컴퓨터적 접근이다. 각각의 유닛(퍼셉트론)이 이루는 형태는 행렬과 비슷하게 해석할 수 있다.
먼저 입력되는 데이터의 계층을 Input Layer라고 부른다면, Input Layer의 ‘너비’는 입력 데이터의 양이며, 이 데이터가 어떤 활성화 함수를 거쳐 변형되어 다음 계층으로 전달된다. 계층은 크게 입력 계층, 은닉 계층, 출력 계층으로 나뉘며 입력과 출력이 아닌 중간의 모든 계층은 은닉 계층이 된다. 이 계층의 숫자가 많으면 많을수록 네트워크를 ‘깊다’고 말하며, Deep Learning이라는 말은 여기서 착안되었다.
‘너비’와 ‘깊이’를 제외하고도 다양한 변수들을 통해 데이터와 문제에 적합한 다양한 모델을 만들어 낼 수 있다.

Feedforward(Fully connected) Neural Network

신경망을 층층이 어떤 너비로 쌓은 신경망을 뜻한다.

Fast Forward

\[X - L1 - L2 - L3 - L4 - \hat{y}\]

위와 같은 FeedForward 신경망에서,

\[X - L1 - L3 - L4 - \hat{y}\]

와 같은 방법으로 중간의 레이어를 뛰어 넘는 것을 Fast Forward 라고 한다.

Split & Merge

\[x->\begin{cases} L1_a -> L2_a -> L3_a\\ L2_b -> L2_b -> L3_b \end{cases} -> L4 -> L5 -> \hat{y}\]

Convolutional Neural Network의 개념

\[\begin{cases} x_1 -> L1_a -> L2_a -> L3_a\\ x_2 -> L1_b -> L2_b -> L3_b\\ x_3 -> L1_c -> L2_c -> L3_c\\ \end{cases} -> \hat{y}\]

Recurrent Network(순환신경망)

하나의 입력으로 출발한 네트워크를 서로 입출력을 주고받는 2차원 네트워크로 만든다.

한계란 상상력 뿐이다.

그 밖에도 원래 알고 있었던 것처럼 네트워크의 깊이와 너비 또한 중요한 척도가 될 수 있다.