ANN(Artificial Neural Network)

현주·2024년 12월 14일
0
post-thumbnail

ANN이란?

인공 신경망은 뉴런 사이에서 자극을 전달하는 과정에서 착안한 머신러닝 방법 중 하나인 알고리즘이다. 이 글에서는 인공신경망에 대해 알아본다.

퍼셉트론(Perceptron)


최초의 인공신경망으로 평가받는 퍼셉트론에 대해 알아본다. 뉴런은 입력 신호가 일정 자극 이상의 경우에만 출력 신호를 다음 뉴런에게 전달한다. 이런 방식은 계단 함수 방식이다. 뉴런의 입력 신호와 출력 신호는 각각 퍼셉트론의 입력값과 출력값이라고 할 수 있다.


계단 함수를 수식으로 나타내면 아래와 같다.
여기서 θ\theta는 일정 자극 이상의 값, 즉 임계치이고 wiw_i는 가중치, xix_i는 입력값이다.

ifinwixiθy=1if \sum_{i}^{n} w_i x_i \geq \theta \rightarrow y = 1
ifinwixi<θy=0if \sum_{i}^{n} w_i x_i \lt \theta \rightarrow y = 0

여러 가중치와 입력값의 곱의 총 합이 임계치(θ\theta)를 넘으면 출력 신호가 1이 되고 넘지 않으면 0이 된다. 이런 함수를 계단 함수라고 한다.

이렇게 뉴런에서 출력 값을 변경시키는 함수를 활성화 함수(Activation Function)이라고 한다. 활성화 함수 공부 글 바로가기

퍼셉트론 이후 발전된 신경망들은 계단 함수가 아닌 많은 활성화 함수를 사용한다.


단층 퍼셉트론(Single-Layer Perceptron)

퍼셉트론은 단층과 다층으로 나뉜다. 위에서 알아본게 바로 단층 퍼셉트론이다. 단층 퍼셉트론은 XOR 게이트는 구현하지 못하고 AND, OR, NAND 게이트만 구현 가능하다.

즉 단층 퍼셉트론은 직선 하나로 두 영역을 나눌 수 있는 문제에만 구현이 가능하다. 아래 게이트들의 시각화 이미지를 보면 XOR 게이트는 선 하나만으로 영역을 나눌 수 없다.

하지만 다층 퍼셉트론에서는 가능하다.


다층 퍼셉트론(MultiLayer Perceptron, MLP)

XOR 게이트는 AND,OR,NAND 게이트를 조합해서 만들수 있다. 즉 층을 더 쌓으면 구현이 가능하다는 것이다. 다층 퍼셉트론은 단층에서 중간에 층을 더 추가한 것이다. 입력층과 출력층 사이에 추가한 층을 은닉층(hidden layer)이라고 한다.

우리는 더 복잡한 문제를 해결하기 위해 은닉층을 여러겹 추가할 수 있다.


이렇게 은닉층이 2개 이상인 신경망을 심층 신경망, 즉 DNN(Deep Neural Network)이라고 한다.

그리고 이 심층신경망을 학습시키는 것을 딥 러닝(Deep Learning)이라고 한다.


피드 포워드 신경망(Feed-Forward Neural Network, FFNN)


위 사진처럼 입력층에서 출력층 방향으로 연산이 전개되는 신경망을 피드 포워드 신경망(Feed-Forward Neural Network, FFNN)이라고 한다.

그리고 아래 사진처럼 은닉층의 출력값으로도 사용되지만 다시 은닉층의 입력으로도 사용되는 신경망을 순환 신경망(Recurrent Neural Network, RNN)이라고 한다.


전결합층(Fully-connected layer, FC, Dense layer)

다층 퍼셉트론은 은닉층과 출력층의 뉴런들이 바로 전 뉴런과 연결되어 있다. 이때 어떤 층의 모든 뉴런이 이전 층의 모든 뉴런과 연결되어 있는 층을 전결합층 또는 완전 연결층이라고 한다. 또는 밀집층(Dense layer)이라고도 한다(케라스에서는 Dense()를 사용).


마무리

지금까지 인공 신경망의 기본 개념인 퍼셉트론과 피드 포워드 신경망, 전결합층까지 살펴보았다.
활성화 함수 때문에 이번 글을 정리하면서 인공 신경망의 구조와 원리를 체계적으로 이해할 수 있었다. 공부는 꼬리에 꼬리를 무는 것 같다.

아무튼 화이팅😺


레퍼런스

profile
공부하는 블로그😎

0개의 댓글