regressionLayer
(권장되지 않음) 회귀 출력 계층
설명
회귀 계층은 회귀 작업의 손실을 평균제곱오차의 절반을 취한 값으로 계산합니다.
는 신경망의 출력 계층을 layer
= regressionLayerRegressionOutputLayer
객체로 반환합니다.
는 이름-값 쌍을 사용하여 선택적 layer
= regressionLayer(Name,Value
)Name
과 ResponseNames
속성을 설정합니다. 예를 들어, 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'
인 회귀 계층을 만듭니다.
Name
— 계층 이름
""
(디폴트 값) | 문자형 벡터 | string형 스칼라
계층 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. Layer
배열 입력값에 대해 trainNetwork
함수는 이름이 ""
인 계층에 자동으로 이름을 할당합니다.
RegressionOutputLayer
객체는 이 속성을 문자형 벡터로 저장합니다.
데이터형: char
| string
ResponseNames
— 응답 변수의 이름
{}
(디폴트 값) | 문자형 벡터로 구성된 셀형 배열 | string형 배열
응답 변수의 이름으로, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. 소프트웨어는 훈련 시점에 훈련 데이터에 따라 자동으로 응답 변수의 이름을 설정합니다. 디폴트 값은 {}
입니다.
데이터형: cell
출력 인수
layer
— 회귀 출력 계층
RegressionOutputLayer
객체
회귀 출력 계층으로, RegressionOutputLayer
객체로 반환됩니다.
세부 정보
회귀 출력 계층
회귀 계층은 회귀 작업의 손실을 평균제곱오차의 절반을 취한 값으로 계산합니다. 일반적인 회귀 문제에서 회귀 계층은 마지막 완전 연결 계층 뒤에 와야 합니다.
단일 관측값에 대해 평균제곱오차는 다음과 같이 표현됩니다.
여기서 R은 응답 변수의 개수이고, ti는 목표 출력값이고, yi는 i번째 응답 변수에 대한 신경망의 예측값입니다.
영상 및 sequence-to-one 회귀 신경망의 경우, 회귀 계층의 손실 함수는 R에 의해 정규화되지 않은, 예측된 응답의 평균제곱오차의 절반입니다.
image-to-image 회귀 신경망의 경우, 회귀 계층의 손실 함수는 R에 의해 정규화되지 않은, 각 픽셀에 대해 예측된 응답의 평균제곱오차의 절반입니다.
여기서 H, W, C는 각각 출력값의 높이, 너비, 채널 개수를 나타내고, p는 t와 y의 각 요소(픽셀)를 선형적으로 참조합니다.
sequence-to-sequence 회귀 신경망의 경우, 회귀 계층의 손실 함수는 R에 의해 정규화되지 않은, 각 시간 스텝에 대해 예측된 응답의 평균제곱오차의 절반입니다.
여기서 S는 시퀀스 길이입니다.
훈련 시에 소프트웨어는 미니 배치에 있는 관측값에 대해 손실 평균을 계산합니다.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성기는 문자를 로캘 설정에 따라 결정되는 8비트 ASCII 코드 집합으로 표현합니다. 따라서 클래스 이름, 계층 이름, 계층 설명 또는 신경망 이름에 비ASCII 문자를 사용하면 오류가 발생할 수 있습니다. 자세한 내용은 Encoding of Characters in Code Generation (MATLAB Coder) 항목을 참조하십시오.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
GPU Coder™를 사용하여 CUDA® 또는 C++ 코드를 생성하려면 먼저 심층 신경망을 생성하고 훈련시켜야 합니다. 신경망이 훈련되고 평가된 후에는 코드를 생성하고 NVIDIA® 또는 ARM® GPU 프로세서를 사용하는 플랫폼에 컨벌루션 신경망을 배포하도록 코드 생성기를 구성할 수 있습니다. 자세한 내용은 Deep Learning with GPU Coder (GPU Coder) 항목을 참조하십시오.
이 계층의 경우 NVIDIA CUDA 심층 신경망 라이브러리(cuDNN), NVIDIA TensorRT™ 고성능 추론 라이브러리 또는 Mali GPU용 ARM
Compute Library
를 사용하는 코드를 생성할 수 있습니다.코드 생성기는 문자를 로캘 설정에 따라 결정되는 8비트 ASCII 코드 집합으로 표현합니다. 따라서 클래스 이름, 계층 이름, 계층 설명 또는 신경망 이름에 비ASCII 문자를 사용하면 오류가 발생할 수 있습니다. 자세한 내용은 Encoding of Characters in Code Generation (MATLAB Coder) 항목을 참조하십시오.
버전 내역
R2017a에 개발됨R2024a: 권장되지 않음
R2024a부터 RegressionOutputLayer
객체는 권장되지 않습니다. 대신 trainnet
을 사용하고 손실 함수를 "mse"
로 설정하십시오.
RegressionOutputLayer
객체에 대한 지원을 제거할 계획은 없습니다. 하지만 다음과 같은 이점이 있는 trainnet
함수가 대신 권장됩니다.
trainnet
은 외부 플랫폼에서 만들거나 가져올 수 있는 더 넓은 범위의 신경망 아키텍처를 지원하는dlnetwork
객체를 지원합니다.trainnet
을 사용하면 손실 함수를 쉽게 지정할 수 있습니다. 내장 손실 함수 중에서 선택하거나 사용자 지정 손실 함수를 지정할 수 있습니다.trainnet
은 신경망 구축, 예측, 기본 제공 훈련, 시각화, 압축, 검증, 사용자 지정 훈련 루프를 지원하는 통합 데이터형인dlnetwork
객체를 출력합니다.trainnet
이trainNetwork
보다 일반적으로 더 빠릅니다.
다음 표에서는 trainNetwork
함수를 RegressionOutputLayer
객체와 함께 사용하는 몇 가지 방법과 trainnet
함수를 대신 사용하도록 코드를 업데이트하는 방법을 보여줍니다.
권장되지 않음 | 권장됨 |
---|---|
net = trainNetwork(X,T,layers,options) . 여기서 layers 는 RegressionOutputLayer 객체를 포함합니다. | net = trainnet(X,T,layers,"mse",options); layers 는 RegressionOutputLayer 객체 없이 동일한 신경망을 지정합니다. |
net = trainNetwork(data,layers,options) . 여기서 layers 는 RegressionOutputLayer 객체를 포함합니다. | net = trainnet(data,layers,"mse",options); layers 는 RegressionOutputLayer 객체 없이 동일한 신경망을 지정합니다. |
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)