-
#3. 신경망의 구성요소인공지능/케라스 창시자에게 배우는 딥러닝 2021. 2. 7. 18:04반응형
신경망 훈련은 크게 4가지의 요소로 구분된다. 네트워크를 구성하는 층, 학습에 활용될 입력 데이터, 학습의 정확성을 판단하는 손실 함수, 학습 진행 방식을 결정하는 옵티마이저가 모두 서로 연관되어 딥러닝 신경망의 구조를 이룬다.
층(Layer)는 하나 이상의 텐서를 입력 받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈이다. 층은 입력 텐서의 크기와 모양에 따라 적절한 방식을 갖고 데이터를 처리한다. (samples, features)를 가지는 가장 기본적인 2D 텐서가 저장된 벡터 데이터는 보통 완전 연결 층(fully connected layer), 밀집 연결 층(densely connected layer)에 의해 처리가 된다. (samples, timestamps, features)와 같이 흔히 시계열 데이터라 불리는 3D 텐서로 저장된 데이터는 LSTM과 같은 순환 층(recurrent layer)으로 처리되는 경우가 많다. 이미지 데이터와 같은 4D 텐서는 일반적으로 2D 합성곱 층 (convolution layer)에 의해 처리된다. 이와 같은 특정 모델은 이후 포스팅에서 자세히 다뤄보려한다.
딥러닝 모델은 이러한 층을 쌓아서 만든 비순환 유향 그래프(Directed Acyclic Graph)이다. 굉장히 어려운 단어로 보이지만 쉽게 풀어서 설명하면 다음과 같다.
시작점에서 끝점으로 다시 돌아갈 수 없는(비순환) 방향이 있는(유향) 그래프
위와 같이 일정한 방향은 존재하지만 특정한 순서가 없고, 무작위로 뻗어나가는 모양이라고 생각하면 된다. 최근 블록체인 3.0을 열어갈 새로운 블록체인의 모델이라고도 유명하다. 이 구조를 염두해두고 밑의 네트워크 모델을 보면 이해가 빠르다.
이 사진은 머신러닝에서 일반적으로 사용되는 다양한 모델을 보여준다. 각각의 모델이 어떤 구조를 지니고 있는지는 지금 중요하지 않다. 우리가 살펴볼 것은 모델의 대략적인 형태다. 모든 모델은 결국 input이 존재하고 이 input이 몇번의 레이어를 거쳐 output으로 변환된다. 순환하지 않는 방향이 존재하는 그래프인 것이다.
이러한 네트워크 구조가 정의되면 우리는 시험 성적과도 같은 손실 함수를 선택하고, 이 성적을 좀 더 향상시켜줄 학습방법인 최적화 모델을 선택하게 된다. 각 출력은 각각의 손실 함수를 가질 수 있으나 최적화는 하나의 값을 기준으로 진행된다. 따라서 손실이 여러개인 네트워크의 경우 모든 손실이 하나의 스칼라의 값에 포함되어 이를 기준으로 업데이트를 진행하게된다. 컴퓨터는 오직 손실함수를 기준으로 업데이트를 진행하기에 손실함수가 명확하지 않을 경우 기댓값과는 전혀 다른 예측값이 발생할 수 있다.
반응형'인공지능 > 케라스 창시자에게 배우는 딥러닝' 카테고리의 다른 글
#6. 데이터 전처리 (0) 2021.02.14 #5. 일반화된 모델을 위한 데이터 분할 (0) 2021.02.14 #4. 머신러닝의 분류 (0) 2021.02.14 #2. 텐서(Tensor) 이해하기 (0) 2021.01.22 #1. 딥러닝이란 무엇인가? (1) 2021.01.21