영넌 개발로그

인공 신경망의 개념 / 활성화 함수 본문

코딩/ML , Deep

인공 신경망의 개념 / 활성화 함수

영넌 2021. 1. 18. 00:52

기계 학습이란 ?

컴퓨터가 경험, 유추를 통해 학습할 수 있게 하는 적응 매커니즘이다. 기계의 학습 능력은 시간이 흐르면서 지능형 시스템의 성능을 개선한다. 인공 신경망(artificial neural network)으로 만들으며 이는 유전 알고리즘(genetic algorithm)에 기반한다.

 

인공 신경망이란?

인간의 뇌를 기반으로 한 추론 모델이다.  

 

아래 그림은 생물학적인 신경망이다. 뉴런(neuron)이라고 불리는 기본적인 정보처리 단위이다. 신경 세포라고도 불린다.신경세포는 이온 통로(Na,K)를 발현하여 다른 세포와는 달리 전기적인 방법으로 신호를 전달할 수 있다. 또한 인접한 다른 신경세포와는 시냅스라는 구조를 통해 화학적 신호를 주고 받음으로써 다양한 정보를 받아들이고, 저장하는 기능을 한다. 

인간의 뇌는 이러한 100억 개의 뉴런과 각 뉴런을 연결하는 6조 개의 시냅스의 결합체이다. 

생물학적인 신경망

따라서, 인간의 뇌는 매우 복잡하고, 비선형적이며, 병렬적인 정보 처리 시스템이라고 할 수 있다.

정보는 신경망 전체게 동시에 저장되고 처리되는데 적응성에 따라 뉴런들 사이의 연결이 각각 약화되고 강화된다.

 

이를 이용하여 인공 신경망을 만들 수 있다. 뇌의 적응성을 활용하여 '학습 능력'을 구현한다. 하지만 인공 신경망은 아직 인간의 뇌를 흉내내기에 미흡하다. 

 

 


 

생물학적 뉴런 → 인공적으로 모델화

생물학적인 신경망과 인공 신경망 사이의 유사점

 

1. 뉴런을 여러 계층(layer)에 걸쳐 위치시킨다.

 - 각각의 인공 뉴런은 노드(node)라고 부른다.

 - 계층이 많아질수록 신경망은 깊어지게된다.

 - 각 노드는 직전 계층과 직후 계층에 존재하는 다른 모든 노드와 연결되어 있다.

  why? 구현이 편리하고, 필요 없는 연결은 학습 도중, 자동적으로 가중치가 낮아지기 때문에 신경쓰지 않아도 된다.

 

2. 각각의 연결에 적용할 가중치(weight)를 함께 표기한다.

3. 노드 내에서 입력 값에 가중치를 곱하고 편향을 더한 뒤 활성화 함수를 거쳐 결과 값을 만드는 것

4. 이후, 가중치와 편향의 값을 변경해가면서 적절한 값을 찾아내는 최적화 과정을 학습 or 훈련이라 한다.

 

아래 사진은 생물학적인 뇌의 뉴련과 비슷하게 모델링한 그림이며,  전형적인 인공 신경망의 구조이다.

뉴런이라는 아주 단순하지만 내부적으로 매우 복잡하게 연결된 프로세스들로 이우러져 있다. 이를 노드라고 칭한다.

노드는 가중치를 가지는 링크(link)들로 연결되어 있다. 가중치는 장기 기억을 위한 기본적인 수단으로, 각 노드의 중요도를 표현하는 수치이다. 신경망은 이 가중치를 반복적으로 조정하여 학습한다.

- 처음 신경망의 가중치를 초기화하고 train set에서 해당 가중치를 갱신한 후, 그 가중치를 test set에 사용한다.

 

전형적인 인공 신경망의 구조

 

각각의 노드는 연결을 통해 여러 입력 신호를 받지만 출력 신호는 오직 하나만 만든다.

하나의 뉴런(노드)를 그림으로 본다면 아래와 같다.

입력 신호는 미가공 데이터 일 수도 있고 다른 노드의 출력 신호 일 수도 있다.

출력 신호는 문제의 최종적인 solution일 수도 있고, 다른 노드의 입력 신호가 될 수도 있다.

뉴런의 도식

 

활성화 함수 (Activation Function)

앞서 말했듯이 뉴런은 상호 연결되어 있다. 이들은 전기 입력을 받아 또 다른 전기 신호를 발생시킨다. 그러나 입력을 받았을 때 즉시 반응하는 것이 아니라 입력 값이 어떤 분계점(threshold)에 도달해야 출력을 발생한다.

아래와 같은 수식으로 나타낼 수 있다.

뉴런의 신호발생 수식

수식에서 sign와 같은 함수를 뉴런에서 활성화 함수(activation function)이라 칭한다.

활성화 함수는 입력 신호를 받아 특정 분계점을 넘어서는 경우에 출력 신호를 생성해주는 함수이다.

활성화 함수에 종류는 다양하다. 그 중, 가장 일반적인 활성화 함수로는 계단, 부호, 선형, 시그모이드 함수가 있다. 

 

  • 계단(step), 부호(sign) 활성화 함수는 hard limit function 이라고 하며, 분류와 패턴인식 작업에서 결정을 내리는 뉴런에 주로 쓰인다. 
  • 시그모이드 함수(sigmoid)는 양과 음의 무한대 사이의 있는 입력 값을 0~1 사이에 있는 실수 값으로 바꾼다. 역전파 신경망에 쓰인다. 계단함수를 개선한 형태이고 단순하면서도 전통적인 함수이다. 그러나 현업에서는 몇 가지 문제가 있어 더이상 사용을 권장하지 않는다. 현 시점에서는 ReLU함수를 가장 많이 사용한다. 
  • 선형 활성화 함수(linear)는 뉴런의 입력에 가중치가 적용된 것과 같은 값을 출력으로 내놓는다. 선형 근사에 주로 쓰인다.

 

활성화 함수 수식

 

 

활성화함수 도식

 

 

다시 정리하자면, 인공 뉴런은 가중치와 활성화 함수의 연결로 이루어진 매우 간단한 구조이다. 이렇게 간단한 개념의 인공 뉴런을 충분히 많이 연결해놓는 것만으로 인간이 인지하기 어려운 매우 복잡한 패턴까지도 스스로 학습할 수 있게 된다.

 

1958년, 프랭크 로젠블랫이 간단한 인공 신경망을 훈련시키기 위한 알고리즘인 퍼셉트론을 소개했다. 

퍼셉트론은 신경망의 가장 간단한 형태로서 조정 가능한 시냅스 가중치와 hard limiter를 포함한 단일 뉴런으로 구성된다. 다음 포스팅에서는 퍼셉트론에 대해 알아보도록 한다.

Comments