[AI] 계층형 신경망
Purpose of this Posting
- 계층형 신경망에 대해 알아봅니다.
What is Feed-Forward Neural Network(FNN)?
Feed-Forward Neural Network(FNN)(계층형 신경망)은 신경망의 기본입니다.
계층형 신경망은 일반적으로 입력층, 은닉층(중간층), 출력층으로 구성됩니다.
계층적 신경망의 구조
입력층
신경망에 할당하는 입력 정보를 가져오며, 이 층에 속한 유닛은 입력을 의미하는 화살표 선이 존재하지 않으므로 데이터에서 얻은 값을 그대로 출력합니다.
은닉층(중간층)
신경망에서 실질적으로 정보를 처리하는 부분이며, y = a(w_1x_1+w_2x_2+b)와 같은 식을 처리합니다. 연산된 결과는 화살표 방향에 맞게 유닛에 전달합니다.
출력층
은닉층(중간층)과 동일하게 y = a(w_1x_1+w_2x_2+b)와 같은 식을 처리하면서 연산 결과를 출력합니다. 이때 출력한 결과는 해당 신경망 전체의 출력 결과입니다.
신경망에서 각 층의 역할을 알아보았으니 예를 들어 조금 더 자세히 알아보도록 하겠습니다.
ANN that distinguishes between 0 and 1
아래와 같이 4x3 픽셀로 이루어진 손글씨 데이터가 존재할 때, 이러한 데이터를 이용해 0과 1을 분류하는 신경망을 제작한다고 가정해보겠습니다.
좌 : 0, 우 : 1
앞서 신경망은 입력층, 은닉층, 출력층으로 이루어져있다는 것을 알아보았으니, 이번 예시에서는 각 층을 어떻게 구성해야 할지 차근차근 적용해보도록 하겠습니다.
입력층
입력층은 입력된 데이터를 받고 전달하는 역할을 한다는 점을 앞서 알아보았습니다.
그렇다면 입력층은 몇 개의 유닛으로 구성되어야 할 지 알아보도록 하겠습니다.
입력될 데이터는 총 4x3 픽셀로 이루어진 이미지 데이터입니다.
그렇다면 한 픽셀씩 한 유닛에서 담당하기 위해서 총 12개의 유닛이 필요합니다!
입력층 구성
은닉층(중간층)
은닉층을 구성하기 전, 4x3 픽셀로 구성된 이미지 데이터에서 0의 차별적인 특징과 1의 차별적인 특징을 한 번 찾아보도록 하겠습니다.
손글씨 0은 1이 보유하고 있지 않은 두 가지 특징이 있고, 손글씨 1은 0이 보유하고 있지 않은 특징을 하나 보유하고 있는 것을 확인하였습니다.
그렇다면 특징으로 찾은 픽셀에 해당하는 입력을 전달할 때 가중치를 크게 적용하면 학습이 더욱 효과적으로 진행되겠죠?
특징 세 개가 0과 1을 분류하는데 중요하다는 것을 알았으니 은닉층의 유닛 개수를 세 개로 설정하도록 하겠습니다.
빨간색 화살표선은 가중치가 높은 선을 나타낸 것입니다.
이렇게 해서 입력층, 은닉층까지 구성해보았으니 마지막으로 출력층을 구성해보도록 하겠습니다.
출력층
출력층은 0과 1 둘 중 하나의 값으로 예측하는 것이기 때문에 유닛은 두 개로 구성된다는 것은 의심의 여지가 없습니다.
하지만 예측이 출력층까지 진행되는 과정을 이해하는 것은 생각을 해봐야 할 부분입니다.
예를 들어 손글씨 0이 적힌 이미지 데이터가 입력으로 들어왔다고 가정해보고 그 과정을 나타내 보도록 하겠습니다.
출력층의 유닛은 두 개이고 0이라고 적힌 유닛이 1이라고 적힌 유닛보다 값이 더 큰 경우에는 0으로 예측, 그 역은 1로 예측합니다.
이때, 출력층의 유닛 중 0이라고 적힌 유닛에 입력된 값이 아래 유닛보다 더 크고 출력 값 또한 크기 때문에 최종적으로 0으로 예측하게 됩니다.
Conclusion
이번 포스팅에서는 계층형 신경망에 대해 알아보았습니다.
아무래도 어려운 주제이기 때문에 이해가 한 번에 되시지 않을 수도 있습니다.
현재 댓글 기능을 추가 예정에 있으니 추후에 댓글 기능을 이용하여 질문 주시면 정성껏 답변드릴 수 있도록 하겠습니다!
더욱 더 발전된 포스팅으로 만나 뵙도록 하겠습니다.
감사합니다.
댓글남기기