본문 바로가기
Programming/Deep Learning Training

Artificial Neural Networks ( 인공 신경망 )

by Happy Inception 2020. 3. 5.

 

Neural Networks 란 무엇인가? 

 

 Neural Networks 은 인간의 중추 신경계에서 뉴런들이 시냅스를 통해 복잡하게 연결되어 구성된 네트워크이며, 신호를 전달하고, 조합, 변형하고 때로는 저장하는 기능을 한다. 

Neural Networks

 

 

왜 많은 분야에서 Neural Networks를 이용하는가? 

 

 이 구조에서는 뉴런들이 서로 연결되어 있는 다른 뉴런들에서 전기적 신호를 받고, 전기 결합을 일으켜 다음 뉴런에 새로운 신호를 전달하게 되며 이는 우리 신체에서 실제로 어떠한 행동 혹은 결정에 영향을 미치게 된다. 

 Artificial Neural Networks는 생물학적 신경망에서 영감을 받아 전기적 신호를 변형, 전달 그리고 저장하는 방법과 행위를 인공적 구현을 통해 통계학 모델을 만들어낸다. 학습을 통해 입력 데이터들이 원하는 결과를 도출할 수 있는 신경망을 구성하고 ( supervised learning 시에 ), 새로운 입력 데이터에 대해 예측을 수행한다.

 신경망 구조는 많은 입력데이터와 복잡한 구조를 구성하는데 매우 효과적이며 다른 머신러닝 알고리즘들에 비해 입력 데이터가 충분할 시에 정확도가 비교적 높은 편이다. 

 

 

 

기본단위 - 노드

 

 Neural Networks의 기본 단위를 이루는 element이며, 여러 입력을 받고 고유의 함수에 적용시키고 결과값을 출력한다. 

예로 가장 기본적인 Logistic Regression 을 표현하는 노드, y =x∙w + b, 를 하나 그려보면 아래와 같다. 

y = x∙w  + b

 

 

위의 경우 x는 입력값 벡터가 되고, w는 입력에 곱해지는 weight 벡터, 그리고 b는 바이어스이고 y는 결과, 출력값이다. 결론적으로는 어떠한 입력 x 가 들어왔을때 w는 학습에 의해 정해져있고, b는 주어지는 값이므로 y라는 결과가 나오고 이 y는 하나의 Neuron 이 만들어낸 초소형 Neural Network의 예측값이 된다. 

 

 실생활 예에서는 예측값이 Yes or No 로 표현되어야 하는 경우가 많으므로 특정 결과값을 On / Off 즉, 1 혹은 0으로 표현해주어야 할 필요가 있다. 이때 사용하는것이 Activation function 이며, 아래에서는 간단하게 sigmoid를 결과값 y에 적용시켜 준다. 그리고 입력값은 보통 여러개이므로 그림을 명확하게 변경해보면

y =sigmoid(x∙w + b)

 

위와 같이 y =sigmoid(x∙w + b) 의 식을 노드로 표현할 수 있게 된다. 이런 여러가지 노드를 어떤 순서/ 갯수/ 연결 방법으로 구성했을때 예측 결과가 더 정확하고 계산이 효율적인지에 대해 현재 많은 연구가 이루어지고 있다.  

댓글