본문 바로가기
인공지능∙모델링/딥러닝

3. 인공 신경망(Artificial Neural Network, ANN)

by -옌 2023. 10. 8.

 

 

 

앞에서 배운 퍼셉트론의 장점은 복잡한 함수를 표현할 수 있다는 점이다.

하지만 가중치를 설정하는 작업(원하는 결과를 출력하도록 가중치 값을 적절히 정하는 작업)은 사람이 수동으로 해야한다는 단점이 있다. 

1장과 2장에서도 AND, OR 게이트의 진리표를 보면서 직접 가중치 값을 정해야 했다.

하지만 적절한 가중치 값을 데이터로부터 자동으로 학습하는 능력이 있는 "신경망"을 이용하면 이 문제점을 해결할 수 있다. 

 

※딥러닝에서 사용하는 신경망은 실제 생물의 몸에 있는 신경망에 영감받아 만든 것이다. 

인공신경망(artificial neural network, ANN)은 기계학습과 인지과학에서 생물학의 신경망(동물의 중추신경계중 특히 뇌)에서 영감을 얻은 알고리즘이다. 인공신경망은 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 가리킨다. (출처: 위키백과 <인공 신경망>)

 

 

 

 

1. 신경망과 퍼셉트론의 공통점

퍼셉트론과 신경망은 구조적인 공통점이 많다. 

 

신경망을 그림으로 나타내면 아래와 같다.

가장 왼쪽에 있는 층을 입력층(input layer), 오른쪽에 있는 층을 출력층(output layer), 중간에 있는 층을 은닉층(hidden layer)라고 한다. (은닉층의 뉴런은 실제로 입력층이나 출력층과 달리 사람 눈에는 보이지 않는다. )

 

 

신경망의 구조는 앞에서 본 퍼셉트론과 특별히 다르지 않다. 

 

 

 

 

2. 신경망과 퍼셉트론의 차이점

페셉트론과 신경망의 가장 큰 차이점은, 퍼셉트론에서는 활성화 함수로 계단 함수를 사용하고 신경망에서는 활성화 함수를 계단 함수에서 다른 함수로 변경해 사용한다는 점이다. 

즉, 활성화 함수를 계단 함수에서 다른 함수로 변경하면 신경망이 되는 것이다.

이 차이점을 이해하기 위해 활성화 함수가 무엇인지 알아보자. 

 

 

 

<활성화 함수(activation function)>

x1과 x2라는 두 신호를 입력받아 y를 출력하는 퍼셉트론을 예시로 살펴보자.

 

위 퍼셉트론을 수식으로 나타내면 다음과 같다.

b는 편향을 나타내는 매개변수이고, w1과 w2는 각 신호의 가중치를 나타내는 매개변수로 각 신호의 영향력을 제어한다. 

 

 

편향을 나타내면 퍼셉트론은 다음과 같다. (편향의 입력 신호는 항상 1이다.)

이 퍼셉트론의 동작은 x1,x2,1이라는 3개의 신호가 뉴런에 입력되어, 각 신호에 가중치를 곱한 후, 다음 뉴런에 전달한다.

다음 뉴런에서는 이 신호들의 값을 더하여, 그 합이 0을 넘으면 1을 출력하고 그렇지 않으면 0을 출력한다.

 

 

위에서 퍼셉트론을 표현한 수식을 다시 작성해보자.

조건에 따라 동작하는 것(0을 넘으면 1을 출력하고 그렇지 않으면 0을 출력)을 하나의 함수로 나타내자.

이 함수를 h(x)라 하면 다음과 같이 표현할 수 있다.

입력 신호의 총합이 h(x)라는 함수를 거쳐 변환되고, 변환된 값이 y의 출력이 된다.

h(x)라는 함수를 도입했을 뿐, 위에서 이미 등장했던 수식과 동일한 방식으로 작동함을 알 수 있다. 

 

 

여기서 등장한 h(x) 함수처럼, 입력 신호의 총합을 출력 신호로 변환하는 함수를 활성화 함수(activation function)이라 한다.

활성화 함수는 입력 신호의 총합이 활성화를 일으키는지 정하는 역할을 한다. 

 

 

즉, 이 한 번의 계산 과정을

 

아래와 같은 두 번의 계산 과정으로 나누어 생각하는 것이다. 

가중치와 곱해진 입력 신호와 편향의 총합을 계산하고, 이를 a라 한다.

그리고 a를 함수 h()에 넣어 y를 출력한다. 

이때 h(x)를 활성화 함수라 한다.

 

 

 

<정리>

 

 

 

 

728x90

댓글