Main Content

dropoutLayer

드롭아웃 계층

설명

드롭아웃 계층은 주어진 확률에 따라 입력 요소를 무작위로 0으로 설정합니다.

생성

설명

layer = dropoutLayer는 드롭아웃 계층을 만듭니다.

layer = dropoutLayer(probability)는 드롭아웃 계층을 만들고 Probability 속성을 설정합니다.

예제

layer = dropoutLayer(___,'Name',Name)은 위에 열거된 구문에 나와 있는 인수와 함께 이름-값 쌍을 사용하여 선택적 속성인 Name을 설정합니다. 예를 들어, dropoutLayer(0.4,'Name','drop1')은 드롭아웃 확률이 0.4이고 이름이 'drop1'인 드롭아웃 계층을 만듭니다. 속성 이름을 작은따옴표로 묶습니다.

속성

모두 확장

드롭아웃

입력 요소를 제외할 확률로, 1보다 작은 음이 아닌 숫자로 지정됩니다.

이 계층은 훈련 시점에 드롭아웃 마스크 rand(size(X))<Probability로 주어진 확률에 따라(X는 계층 입력) 입력 요소를 무작위로 0으로 설정한 후에 나머지 요소를 1/(1-Probability)만큼 스케일링합니다. 이 연산을 수행하면 실제로 각 반복 사이에 기본 신경망 아키텍처가 변경되고 신경망의 과적합이 방지됩니다[1], [2]. 수치가 높을수록 훈련 중에 제외되는 요소가 많아집니다. 예측 시점에는 계층의 출력값이 입력값과 동일합니다.

영상 입력의 경우, 계층은 각 영상의 각 채널에 대해 서로 다른 마스크를 적용합니다. 시퀀스 입력의 경우, 계층은 각 시퀀스의 각 시간 스텝에 대해 서로 다른 드롭아웃 마스크를 적용합니다.

예: 0.4

계층

계층 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. Layer 배열 입력값에 대해 trainnetdlnetwork 함수는 이름이 ""인 계층에 자동으로 이름을 할당합니다.

DropoutLayer 객체는 이 속성을 문자형 벡터로 저장합니다.

데이터형: char | string

읽기 전용 속성입니다.

계층에 대한 입력값의 개수로, 1로 반환됩니다. 이 계층은 단일 입력값만 받습니다.

데이터형: double

읽기 전용 속성입니다.

입력값 이름으로, {'in'}으로 반환됩니다. 이 계층은 단일 입력값만 받습니다.

데이터형: cell

읽기 전용 속성입니다.

계층의 출력값 개수로, 1로 반환됩니다. 이 계층은 단일 출력값만 가집니다.

데이터형: double

읽기 전용 속성입니다.

출력값 이름으로, {'out'}으로 반환됩니다. 이 계층은 단일 출력값만 가집니다.

데이터형: cell

예제

모두 축소

이름이 'drop1'인 드롭아웃 계층을 만듭니다.

layer = dropoutLayer('Name','drop1')
layer = 
  DropoutLayer with properties:

           Name: 'drop1'

   Hyperparameters
    Probability: 0.5000

Layer 배열에 드롭아웃 계층을 포함시킵니다.

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(5,20)
    reluLayer
    dropoutLayer
    fullyConnectedLayer(10)
    softmaxLayer]
layers = 
  6x1 Layer array with layers:

     1   ''   Image Input       28x28x1 images with 'zerocenter' normalization
     2   ''   2-D Convolution   20 5x5 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU              ReLU
     4   ''   Dropout           50% dropout
     5   ''   Fully Connected   10 fully connected layer
     6   ''   Softmax           softmax

알고리즘

모두 확장

참고 문헌

[1] Srivastava, Nitish, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov. "Dropout: A Simple Way to Prevent Neural Networks from Overfitting." The Journal of Machine Learning Research 15, no. 1 (January 1, 2014): 1929–58

[2] Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks." Communications of the ACM 60, no. 6 (May 24, 2017): 84–90. https://doi.org/10.1145/3065386

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

버전 내역

R2016a에 개발됨

모두 확장