Main Content

사용자 지정 딥러닝 계층 정의하기

이 항목에서는 문제에 맞게 사용자 지정 딥러닝 계층을 정의하는 방법을 설명합니다. Deep Learning Toolbox™에 내장된 계층 목록은 딥러닝 계층 목록 항목을 참조하십시오.

작업에 대해 자신만의 고유한 사용자 지정 딥러닝 계층을 정의할 수 있습니다. 사용자 지정 출력 계층을 사용하여 사용자 지정 손실 함수를 지정하고 학습 가능한 파라미터와 상태 파라미터를 포함하거나 포함하지 않는 사용자 지정 계층을 정의할 수 있습니다. 사용자 지정 계층을 정의한 후에는 이 계층이 유효하고, GPU와 호환되며, 올바르게 정의된 기울기를 출력하는지 확인할 수 있습니다.

이 항목에서는 딥러닝 계층의 아키텍처를 설명하고 작업에 맞게 사용자 지정 계층을 정의하는 방법을 설명합니다.

유형설명
중간 계층

사용자 지정 딥러닝 계층을 정의하고 학습 가능한 파라미터와 상태 파라미터를 선택적으로 지정합니다.

자세한 내용은 Define Custom Deep Learning Intermediate Layers 항목을 참조하십시오.

학습 가능한 파라미터가 있는 사용자 지정 계층을 정의하는 방법을 보여주는 예제는 학습 가능한 파라미터를 갖는 사용자 지정 딥러닝 계층 정의하기 항목을 참조하십시오. 입력값이 여러 개인 사용자 지정 계층을 정의하는 방법을 보여주는 예제는 Define Custom Deep Learning Layer with Multiple Inputs 항목을 참조하십시오.

분류 출력 계층

사용자 지정 분류 출력 계층을 정의하고 손실 함수를 지정합니다.

자세한 내용은 Define Custom Deep Learning Output Layers 항목을 참조하십시오.

사용자 지정 분류 출력 계층을 정의하고 손실 함수를 지정하는 방법을 보여주는 예제는 Define Custom Classification Output Layer 항목을 참조하십시오.

회귀 출력 계층

사용자 지정 회귀 출력 계층을 정의하고 손실 함수를 지정합니다.

자세한 내용은 Define Custom Deep Learning Output Layers 항목을 참조하십시오.

사용자 지정 회귀 출력 계층을 정의하고 손실 함수를 지정하는 방법을 보여주는 예제는 사용자 지정 회귀 출력 계층 정의하기 항목을 참조하십시오.

계층 템플릿

다음 템플릿을 사용하여 새로운 계층을 정의할 수 있습니다.

 중간 계층 템플릿

 분류 출력 계층 템플릿

 회귀 출력 계층 템플릿

중간 계층 아키텍처

훈련 중에 반복적으로 신경망이 순방향으로 통과되고 역방향으로 통과됩니다.

신경망을 순방향으로 통과하는 동안 각 계층이 이전 계층의 출력값을 받아서 함수를 적용한 다음 결과를 다음 계층으로 출력(순방향 전파)합니다. 상태 유지 계층(예: LSTM 계층)은 계층 상태도 업데이트합니다.

계층은 여러 개의 입력값과 출력값을 가질 수 있습니다. 예를 들어, 하나의 계층은 여러 개의 이전 계층에서 X1, …, XN을 받아서 출력값 Z1, …, ZM을 다음 계층으로 순방향 전파할 수 있습니다.

신경망의 순방향 통과 끝에서 출력 계층은 예측값 Y와 목표값 T 사이의 손실 L을 계산합니다.

신경망을 역방향으로 통과하는 중에는 각 계층이 해당 계층의 출력값에 대한 손실의 도함수를 받아서 입력값에 대한 손실 L의 도함수를 계산한 다음 결과를 역방향 전파합니다. 계층에 학습 가능한 파라미터가 있는 경우 계층 가중치(학습 가능한 파라미터)의 도함수도 계산합니다. 계층은 가중치의 도함수를 사용하여 학습 가능한 파라미터를 업데이트합니다.

심층 신경망을 통과하는 데이터의 흐름을 보여주는 다음 그림은 단일 입력값 X, 단일 출력값 Z, 그리고 학습 가능한 파라미터 W가 있는 계층을 통과하여 흐르는 데이터를 보여 줍니다.

사용자 지정 중간 계층에 대한 자세한 내용은 Define Custom Deep Learning Intermediate Layers 항목을 참조하십시오.

출력 계층 아키텍처

훈련 시점에 순방향 통과 끝에서, 출력 계층은 이전 계층(신경망 예측값)의 출력값 Y를 받아서 이들 예측값과 훈련 목표값 사이의 손실 L을 계산합니다. 출력 계층은 예측값 Y에 대한 손실 L의 도함수를 계산한 다음 이전 계층으로 결과를 출력(역방향 전파)합니다.

다음 그림은 신경망과 출력 계층을 통과하는 데이터의 흐름을 보여줍니다.

자세한 내용은 Define Custom Deep Learning Output Layers 항목을 참조하십시오.

사용자 지정 계층의 유효성 검사하기

사용자 지정 딥러닝 계층을 만들 때 checkLayer 함수를 사용하여 계층이 유효한지 검사할 수 있습니다. 이 함수는 계층에서 유효성, GPU 호환성, 올바르게 정의된 기울기 및 코드 생성 호환성을 검사합니다. 계층이 유효한지 검사하려면 다음 명령을 실행하십시오.

checkLayer(layer,validInputSize)
layer는 계층의 인스턴스이고 validInputSize는 계층에 대한 유효한 입력 크기를 지정하는 벡터 또는 셀형 배열입니다. 여러 개의 관측값을 검사하려면 ObservationDimension 옵션을 설정하십시오. 코드 생성 호환성 검사를 실행하려면 CheckCodegenCompatibility 옵션을 1(true)로 설정하십시오. 입력 크기가 크면 기울기 검사를 실행하는 데 더 오랜 시간이 소요됩니다. 검사 속도를 늘리려면 유효한 입력 크기를 작게 지정하십시오.

자세한 내용은 Check Custom Layer Validity 항목을 참조하십시오.

참고 항목

| | | | | | | | | |

관련 항목