☞ 문서의 이미지와 내용은 가장 하단 참고문헌 및 사이트를 참고했습니다.
☞ 틀린 내용 및 저작권 관련 문의가 있는 경우 문의하시면 수정 및 삭제 조치하겠습니다.
신경망은 인간 두뇌의 구조와 기능을 모델로 한 일종의 기계 학습 알고리즘입니다. 데이터의 패턴과 관계를 인식하고 해당 데이터를 기반으로 예측 또는 결정을 내리도록 설계되었습니다. 딥러닝은 정식 이름이라기 보다는 심층 신경망(Deep Neural Network, DNN)의 별칭에 가깝습니다.
신겨망은 이미지 처럼 레이어로 구성된 여러 개의 상호 연결된 노드로 구성됩니다. 동그라미는 노드이고, 노드들이 존재하는 네모박스를 레이어(layer)라고 부릅니다.
Input layer(입력층) : 입력값(Raw data : 가공되지 않은 측정 자료)을 받습니다.
Hidden layer(은닉층) : 데이터를 처리하고 신경망이 수행하도록 설계된 작업을 합니다.
Output layer(출력층) : 처리된 데이터를 기반으로 예측 또는 결정을 내립니다.
신경망의 각 노드는 이전 계층의 노드에게 입력을 받아 다음 계층의 노드에게 전달해줄 출력을 생성하는 작은 계산기로 생각할 수 있습니다. 노드 간의 연결은 한 노드에서 다른 노드로 전달하는 파이프와 같습니다. 각 연결에는 한 노드의 출력이 다른 노드의 입력에 미치는 영향을 결정하는 값이 있습니다. 이를 가중치라고 합니다. 가중치가 높으면 한 노드의 출력이 다른 노드의 입력에 큰 영향을 미치고 가중치가 낮으면 영향이 적습니다. 학습 과정에서 가중치는 신경망이 입력을 기반으로 출력을 정확하게 예측 할 수 있도록 조정됩니다.
다양한 모양을 인식하도록 신경망을 학습하고 싶다고 가정해 보겠습니다. 사각형, 삼각형 및 원 등 많은 예를 보여주고 각 예에 대해 올바른 모양이 무엇인지 알려주는 것으로 시작합니다. 신경망은 노드 사이의 가중치를 사용하여 입력을 처리하고 예측합니다. 만약 예측이 틀리면 신경망이 다음에 더 나은 예측을 할 수 있도록 가중치를 조정합니다. 이 프로세스는 신경망이 모양을 올바르게 인식할 수 있을 때까지 여러 번 반복됩니다.
간단한 예시를 통해 신경망이 어떤 프로세스로 돌아가는지 보도록 하겠습니다. 아래 이미지는 MNIST- 손글씨 데이터 셋의 일부분입니다. MNIST 손글씨 데이터를 학습하고 입력된 손글씨가 어떤 숫자에 해당하는지를 검출하는 신경망을 만든다고 가정해 보겠습니다.
MNIST(Modified National Institute of Standards and Technology) 데이터 세트는 기계 학습 및 컴퓨터 비전분야에서 이미지 분류 작업에 널리 사용되는 데이터 셋입니다. MNIST 데이터 셋은 간단하게 다운로드 할 수 있으며 이미지 분류 알고리즘을 개발하고 테스트하기 위한 데이터 셋으로 자주 사용됩니다.
신경망의 입력층은 각 이미지의 raw-data를 가져옵니다. 이 경우 입력층은 각 이미지의 픽셀 값이 됩니다. 그렇기 때문에 입력 층의 노드 개수는 784개 입니다. (MNIST의 테스트 이미지는 28x28픽셀입니다.) 노드는 이미지의 단일 픽셀을 나타내며 노드의 값은 픽셀의 그레이스케일 값을 가지게 됩니다. (MNIST 데이터 셋은 흑백 이미지 즉 1차원 이미지입니다.)
은닉층은 올바른 숫자를 식별하는 데 도움이 될 수 있는 이미지의 선이나 모양의 두께와 같은 입력 데이터에서 중요한 특징을 학습하고 추출하는 역할을 합니다. 은닉층의 노드 사이의 가중치는 서로 다른 특징의 중요성을 결정하고 이 정보는 예측을 만드는데 사용됩니다.
마지막으로 출력층은 처리된 데이터를 기반으로 예측 또는 결정을 내립니다. 이 경우 출력층에는 각 숫자(0~9)에 대해 하나씩 10개의 노드가 있습니다. 각 노드는 이미지가 특정 숫자를 나타내는 신뢰도를 나타내는 값을 생성합니다. 이중 가장 높은 값을 가진 노드가 신경망의 최종 예측이 됩니다.