Reference
https://iai.postech.ac.kr/teaching/machine-learning
https://iai.postech.ac.kr/teaching/deep-learning
위 링크의 강의 내용에 기반하여 중요하거나 이해가 어려웠던 부분들을 정리하여 작성하였고,
모든 강의 슬라이드의 인용은 저작권자의 허가를 받았습니다.
또한, 모든 내용은 아래 Notion에서 더 편하게 확인하실 수 있습니다.
>>노션 링크<<
Keywords
- Activation Function (tanh, ReLU)
- ANN (Multi-layer)
- ANN as Kernel Learning
- Deep Learning
- Looking at Parameters
Activation Function
앞 장에서 Activate Function을 step function에서 sigmoid function으로 대체하였다.
Sigmoid function 이외에도, Activate Function으로써 Hyperbolic Tangent(tanh), ReLU와 같은 함수들을 사용할 수 있다.
(각각의 특징이 있고, 사용하는 용도가 다르다. 여기서는 각각의 특성에 대해서 보다는, sigmoid가 아닌 다른 함수도 activate function으로 이용할 수 있다는 것만 인지하고 넘어가자. 뒷 장에서 다룰 것이다.)
ANN
Single Layer(하나의 weighted sum을 계산하고 - Activation Function을 적용하여 output을 내는 형태의 Layer)로는, data의 input과 output 사이의 복잡한 관계를 표현하기에는 무리가 있다.
이러한 문제를 해결하기 위해, multi-layer를 도입한다.
하나의 layer의 output을 다시 input으로 간주하여, 또 다른 layer의 input으로 사용하여 layer를 이어붙이는 것이다. 그림을 통해 어떻게 확장되는 지는 쉽게 이해할 수 있을 것이다.
위와 같은 frame을 확정하고 나면, 최종적으로 맨 왼쪽의 input과 맨 오른쪽의 output 사이(주어진 data에서의 input-output이다)에서의 layer마다 input-output을 연결하는 weight가 존재할 것이고, 이러한 weight $\omega$ 들을 찾는 작업을 수행하게 되는 것이 핵심이다.
앞까지는 Micro한 관점에서, Perceptron부터 ANN까지 어떻게 확장되는 지 보았고,
아래부터는 또 다른 관점에서, ANN을 Kernel Learning으로써 바라보는 방식을 소개한다.
ANN as Kernel Learning
이전에 다룬 것과 같이, XOR Problem과 같은 non-linear separable problem은 Kernel을 이용한 Mapping을 통해 data를 전처리하여 해결할 수 있다.
Kernel(mapping)을 통해 nonlinear pattern을 가진 data를 linear model에서 동작할 수 있도록 하는 것!
이를 도식화하면, 위의 그림과 같이 input data를 Kernel을 통해 전처리하고, (더 높은 차원으로 mapping, 새로운 feature space로 변경.)
그러한 data를 다시 neuron(perceptron, - 여기서는 Linear하게 작동하는 하나의 Model이라고 간주하면 될 듯)에 적용하는 형태로 쉽게 이해할 수 있다.
(위에서 설명한 Kernel의 역할을 도식화했을 뿐.)
결국, Kernel Learning의 관점에서 바라보는 ANN이란,
이러한 Nonlinear mapping(Kernel)을 또 다른 neuron으로 바라볼 수 있다는 것이 핵심이다.
최종적으로, 이를 일반화하면 MLP로 바라볼 수 있다는 것이다.
(내부적으로는, 앞의 layer는 kernel과 같이 동작하고, 뒤의 layer는 linear classifier와 같이 동작하는 것이지만, 넓게 바라보면 MLP와 다를 것이 없다는 것.)
→ 또한, 이러한 kernel 역할을 하는 layer가 하나로 부족하다면 앞에 추가적으로 여러 layer를 붙여 나가면 되는 것이고, 이로써 첫 input feature에 대한 feature representation이 더 크게 변형될 것(classify가 더 잘 될 수 있는 feature represent 방식을 학습하게 됨)이고, 마지막에 classify 성능이 높아짐을 기대할 수 있다는 것.
결국 ANN이란.. parameterize된 Universal function approximator.
학습 이전에 이러한 layer의 structure를 지정해 놓고, parameter들을 학습해 나가는 과정.
초기의 input을 classify하기 위한, weight/bias로 parameterize된 function을 approximate해 나가는 과정.
→ Optimization을 통해, 이러한 parameter(weight, bias)를 찾아 나갈 것.
→ Gradient Descent, Back Propagation.
Parameter
parameter (weight, bias)가 무슨 역할을 하는 지, Micro한 관점에서 ANN을 확인해보자.
우선 전에 다뤘던 것과 같이, Perceptron으로는 이러한 data들을 2개의 class로 Linearly Separate할 수 없다.
그래서 ANN에서는, 가운데의 hidden layer를 통해 data가 linearly separable하게 mapping되도록 represent하려면 어떻게 weight, bias를 설정해야 하는 지 학습하게 된다.