2016년 11월 15일 화요일

Activation Function in Artificial Neural Network

ANN을 간략히 소개한 전 게시물에서, 출력 값이 Threshold 이상인 경우 1, 이하인 경우 -1로 되어 있는 것을 볼 수 있다. 사실 출력 값은 Activation Function이라 불리는 함수 종류 중 어떤 것을 쓰냐에 따라 결정된다. 활성 함수는 뉴런이 연결된 입력과 가중치의 곱들의 합을 인자로 하며, 예를 들어 다음 종류의 것들이 있다.



초기에는 활성 함수로 Step Function을 사용했다. 이는 입력에 따라서 출력이 0과 1처럼 극단적인 결과만을 도출하기 때문에 Multi Layer ANN인 경우 좋은 결과를 얻기가 어렵다.
따라서 활성 함수로 Step Function을 사용하는 대신에, Sigmoid Function을 사용하면 입력을 조금 변화 시켰을 때 출력이 조금씩 변화하도록 만들 수 있다. 이는 Sigmoid Function이 0에서 1까지 연속적으로 변하는 출력값을 갖기 때문이다.

Artificial Neural Network Intro

Artificial Neural Network은 생물학적 신경망 구조에 착안하여, 인간이 학습하는 과정과 유사하게 기계를 학습 시키는 방법이다.


위 그림은 인공 신경망을 구성하는 뉴런을 묘사한 것이다. 뉴런은 여러 입력 x들로 연결되어 있고, 각 입력은 고유의 W(weight)를 갖는다. 출력은 각 입력과 가중치를 곱한 값을 모두 더하여, 특정 Threshold보다 큰 경우 1, 작은 경우 -1 값을 가지게 된다.

인공 신경망은 뉴런들을 멀티 레이어로 구성하여, 역전파(Back propagation) 알고리즘을 통해 신경망의 학습 결과가 기대치와 비슷한 결과를 낼 수 있도록 가중치를 계속 조절해가는 훈련을 거친다.

Machine Learning 분야

Machine Learning은 기계가 프로그래머로부터 데이터의 처리 방법을 배우지 않고, 학습 데이터를 활용하여 처리 방식을 학습하는 것에 그 목적이 있다.

Machine Learning은 크게 다음 3가지로 분류가 된다 : Supervised Learning, Unsupervised Learning, Reinforcement Learning. 각 분류의 이름을 통해서 어떤 방식으로 학습을 할 것인지 유추할 수 있다.

Supervised Learning은 학습 데이터인 Input에 대한 Output을 실제 값과 비교하여 학습을 시키는 방식이다. 예를 들어 Support Vector Machine, Hidden Markov Model, Regression, Neural Network, Naive Bayes Classification과 같은 알고리즘들이 있다.

Unsupervised Learning은 학습 데이터가 어떻게 구성되어 있는 지 학습하여, 군집화를 하거나 중요 성분들을 추출하기 위한 학습이다. 예를 들어 Clustering, Independent Component Analysis, Principal Component Analysis와 같은 알고리즘들이 있다.

Reinforcement Learning은 상태에 대해서 특정 행동에 대해, 새로운 상태와 포상을 주는 방식을 통해서 현재의 상태에 대해 선택 가능한 행동들 중에 보상을 최대화하는 행동 혹은 행동 순서를 선택하기 위한 학습이다.