Main Content

regressionLayer

(권장되지 않음) 회귀 출력 계층

regressionLayer는 권장되지 않습니다. 대신 trainnet 함수를 사용하고 손실 함수를 "mse"로 설정하십시오. 자세한 내용은 버전 내역을 참조하십시오.

설명

회귀 계층은 회귀 작업의 손실을 평균제곱오차의 절반을 취한 값으로 계산합니다.

layer = regressionLayer는 신경망의 출력 계층을 RegressionOutputLayer 객체로 반환합니다.

예제

layer = regressionLayer(Name,Value)는 이름-값 쌍을 사용하여 선택적 NameResponseNames 속성을 설정합니다. 예를 들어, regressionLayer('Name','output')은 이름이 'output'인 회귀 계층을 만듭니다. 각 속성 이름을 작은따옴표로 묶습니다.

예제

모두 축소

회귀 출력 계층을 만듭니다.

이름이 'routput'인 회귀 출력 계층을 만듭니다.

layer = regressionLayer('Name','routput')
layer = 
  RegressionOutputLayer with properties:

             Name: 'routput'
    ResponseNames: {}

   Hyperparameters
     LossFunction: 'mean-squared-error'

회귀의 디폴트 손실 함수는 평균제곱오차입니다.

Layer 배열에 회귀 출력 계층을 삽입합니다.

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(12,25)
    reluLayer
    fullyConnectedLayer(1)
    regressionLayer]
layers = 
  5x1 Layer array with layers:

     1   ''   Image Input         28x28x1 images with 'zerocenter' normalization
     2   ''   2-D Convolution     25 12x12 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU                ReLU
     4   ''   Fully Connected     1 fully connected layer
     5   ''   Regression Output   mean-squared-error

입력 인수

모두 축소

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: regressionLayer('Name','output')은 이름이 'output'인 회귀 계층을 만듭니다.

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

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

데이터형: char | string

응답 변수의 이름으로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. 소프트웨어는 훈련 시점에 훈련 데이터에 따라 자동으로 응답 변수의 이름을 설정합니다. 디폴트 값은 {}입니다.

데이터형: cell

출력 인수

모두 축소

회귀 출력 계층으로, RegressionOutputLayer 객체로 반환됩니다.

세부 정보

모두 축소

회귀 출력 계층

회귀 계층은 회귀 작업의 손실을 평균제곱오차의 절반을 취한 값으로 계산합니다. 일반적인 회귀 문제에서 회귀 계층은 마지막 완전 연결 계층 뒤에 와야 합니다.

단일 관측값에 대해 평균제곱오차는 다음과 같이 표현됩니다.

MSE=i=1R(tiyi)2R,

여기서 R은 응답 변수의 개수이고, ti는 목표 출력값이고, yi는 i번째 응답 변수에 대한 신경망의 예측값입니다.

영상 및 sequence-to-one 회귀 신경망의 경우, 회귀 계층의 손실 함수는 R에 의해 정규화되지 않은, 예측된 응답의 평균제곱오차의 절반입니다.

loss=12i=1R(tiyi)2.

image-to-image 회귀 신경망의 경우, 회귀 계층의 손실 함수는 R에 의해 정규화되지 않은, 각 픽셀에 대해 예측된 응답의 평균제곱오차의 절반입니다.

loss=12p=1HWC(tpyp)2,

여기서 H, W, C는 각각 출력값의 높이, 너비, 채널 개수를 나타내고, p는 t와 y의 각 요소(픽셀)를 선형적으로 참조합니다.

sequence-to-sequence 회귀 신경망의 경우, 회귀 계층의 손실 함수는 R에 의해 정규화되지 않은, 각 시간 스텝에 대해 예측된 응답의 평균제곱오차의 절반입니다.

loss=12Si=1Sj=1R(tijyij)2,

여기서 S는 시퀀스 길이입니다.

훈련 시에 소프트웨어는 미니 배치에 있는 관측값에 대해 손실 평균을 계산합니다.

확장 기능

버전 내역

R2017a에 개발됨

모두 축소

R2024a: 권장되지 않음

R2024a부터 RegressionOutputLayer 객체는 권장되지 않습니다. 대신 trainnet을 사용하고 손실 함수를 "mse"로 설정하십시오.

RegressionOutputLayer 객체에 대한 지원을 제거할 계획은 없습니다. 하지만 다음과 같은 이점이 있는 trainnet 함수가 대신 권장됩니다.

  • trainnet은 외부 플랫폼에서 만들거나 가져올 수 있는 더 넓은 범위의 신경망 아키텍처를 지원하는 dlnetwork 객체를 지원합니다.

  • trainnet을 사용하면 손실 함수를 쉽게 지정할 수 있습니다. 내장 손실 함수 중에서 선택하거나 사용자 지정 손실 함수를 지정할 수 있습니다.

  • trainnet은 신경망 구축, 예측, 기본 제공 훈련, 시각화, 압축, 검증, 사용자 지정 훈련 루프를 지원하는 통합 데이터형인 dlnetwork 객체를 출력합니다.

  • trainnettrainNetwork보다 일반적으로 더 빠릅니다.

다음 표에서는 trainNetwork 함수를 RegressionOutputLayer 객체와 함께 사용하는 몇 가지 방법과 trainnet 함수를 대신 사용하도록 코드를 업데이트하는 방법을 보여줍니다.

권장되지 않음권장됨
net = trainNetwork(X,T,layers,options). 여기서 layersRegressionOutputLayer 객체를 포함합니다.

net = trainnet(X,T,layers,"mse",options);
이 예제에서 layersRegressionOutputLayer 객체 없이 동일한 신경망을 지정합니다.

net = trainNetwork(data,layers,options). 여기서 layersRegressionOutputLayer 객체를 포함합니다.

net = trainnet(data,layers,"mse",options);
이 예제에서 layersRegressionOutputLayer 객체 없이 동일한 신경망을 지정합니다.