이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
bilstmLayer
RNN(순환 신경망)의 BiLSTM(양방향 장단기 기억) 계층
설명
BiLSTM(양방향 장단기 기억) 계층은 시계열 또는 시퀀스 데이터의 시간 스텝 간의 양방향 장기 종속성을 학습하는 RNN 계층입니다. 이러한 종속성은 RNN이 각 시간 스텝에서 전체 시계열로부터 학습하도록 하려는 경우에 유용할 수 있습니다.
생성
설명
는 양방향 LSTM 계층을 만들고 layer
= bilstmLayer(numHiddenUnits
)NumHiddenUnits
속성을 설정합니다.
는 하나 이상의 이름-값 쌍의 인수를 사용하여 추가로 layer
= bilstmLayer(numHiddenUnits
,Name,Value
)OutputMode
, 활성화, 상태, 파라미터 및 초기화, 학습률 및 정규화, Name
속성을 설정합니다. 여러 개의 이름-값 쌍 인수를 지정할 수 있습니다. 각 속성 이름을 따옴표로 묶습니다.
속성
BiLSTM
NumHiddenUnits
— 은닉 유닛의 개수
양의 정수
은닉 유닛의 개수(은닉 크기라고도 함)로, 양의 정수로 지정됩니다.
은닉 유닛의 개수는 계층이 각 시간 스텝 사이에(은닉 상태) 유지하는 정보의 양에 대응됩니다. 은닉 상태는 시퀀스 길이와 관계없이 모든 이전 시간 스텝의 정보를 포함할 수 있습니다. 은닉 유닛의 길이가 너무 길면 계층이 훈련 데이터에 과적합될 수 있습니다. 은닉 상태는 한 회의 반복에서 계층이 처리하는 시간 스텝의 개수를 제한하지 않습니다.
이 계층은 NumHiddenUnits
개의 채널을 갖는 데이터를 출력합니다.
이 속성을 설정하려면 BiLSTMLayer
객체를 만들 때 numHiddenUnits
인수를 사용하십시오. BiLSTMLayer
객체를 만든 후에는 이 속성은 읽기 전용입니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
OutputMode
— 출력 모드
"sequence"
(디폴트 값) | "last"
출력 모드로, 다음 값 중 하나로 지정됩니다.
"sequence"
— 전체 시퀀스를 출력합니다."last"
— 시퀀스의 마지막 시간 스텝을 출력합니다.
BiLSTMLayer
객체는 이 속성을 문자형 벡터로 저장합니다.
이 속성을 설정하려면 BiLSTMLayer
객체를 만들 때 대응되는 이름-값 인수를 사용하십시오. BiLSTMLayer
객체를 만든 후에는 이 속성은 읽기 전용입니다.
HasStateInputs
— 상태 입력을 계층에 연결하는 플래그
0
(false
) (디폴트 값) | 1
(true
)
읽기 전용 속성입니다.
상태 입력을 계층에 연결하는 플래그로, 0
(false
) 또는 1
(true
)로 지정됩니다.
HasStateInputs
속성이 0
(false
)이면 계층은 이름이 "in"
인 하나의 입력값을 갖습니다. 이 입력값은 입력 데이터에 대응합니다. 이 경우 계층은 계층 연산에 HiddenState
속성과 CellState
속성을 사용합니다.
HasStateInputs
속성이 1
(true
)이면 계층은 이름이 각각 "in"
, "hidden"
, "cell"
인 세 개의 입력값을 갖습니다. 이러한 입력값은 각각 입력 데이터, 은닉 상태, 셀 상태에 대응합니다. 이 경우 계층은 이러한 입력값에 전달된 값을 계층 연산에 사용합니다. HasStateInputs
가 1
(true
)이면 HiddenState
속성과 CellState
속성은 비어 있어야 합니다.
HasStateOutputs
— 상태 출력을 계층에 연결하는 플래그
0
(false
) (디폴트 값) | 1
(true
)
읽기 전용 속성입니다.
상태 출력을 계층에 연결하는 플래그로, 0
(false
) 또는 1
(true
)로 지정됩니다.
HasStateOutputs
속성이 0
(false
)이면 계층은 이름이 "out"
인 하나의 출력값을 갖습니다. 이 값은 출력 데이터에 대응합니다.
HasStateOutputs
속성이 1
(true
)이면 계층은 이름이 각각 "out"
, "hidden"
, "cell"
인 세 개의 출력값을 갖습니다. 이러한 출력값은 각각 출력 데이터, 은닉 상태, 셀 상태에 대응합니다. 이 경우 계층은 계산된 상태 값도 출력합니다.
InputSize
— 입력 크기
"auto"
(디폴트 값) | 양의 정수
읽기 전용 속성입니다.
입력 크기로, 양의 정수 또는 "auto"
로 지정됩니다. InputSize
가 "auto"
이면, 훈련 시점에 자동으로 입력 크기가 할당됩니다.
InputSize
가 "auto"
이면, BiLSTMLayer
객체는 이 속성을 문자형 벡터로 저장합니다.
데이터형: double
| char
| string
활성화
StateActivationFunction
— 셀과 은닉 상태를 업데이트하는 활성화 함수
"tanh"
(디폴트 값) | "softsign"
|
셀과 은닉 상태를 업데이트하는 활성화 함수로, 다음 값 중 하나로 지정됩니다.
"tanh"
— 쌍곡탄젠트 함수(tanh)를 사용합니다."softsign"
— 소프트사인 함수 를 사용합니다.
이 소프트웨어는 셀과 은닉 상태를 업데이트하는 계산에서 이 옵션을 함수 로 사용합니다.
BiLSTMLayer
객체는 이 속성을 문자형 벡터로 저장합니다.
GateActivationFunction
— 게이트에 적용할 활성화 함수
"sigmoid"
(디폴트 값) | "hard-sigmoid"
게이트에 적용할 활성화 함수로, 다음 값 중 하나로 지정됩니다.
"sigmoid"
— 시그모이드 함수 을 사용합니다."hard-sigmoid"
— 다음과 같은 하드 시그모이드 함수를 사용합니다.
이 소프트웨어는 계층 게이트 계산에서 이 옵션을 함수 로 사용합니다.
BiLSTMLayer
객체는 이 속성을 문자형 벡터로 저장합니다.
이 속성을 설정하려면 BiLSTMLayer
객체를 만들 때 대응되는 이름-값 인수를 사용하십시오. BiLSTMLayer
객체를 만든 후에는 이 속성은 읽기 전용입니다.
상태
CellState
— 셀 상태
숫자형 벡터
계층에서 사용할 셀 상태로, 2*NumHiddenUnits
×1 숫자형 벡터로 지정됩니다. 이 값은 데이터가 계층에 전달될 때의 초기 셀 상태에 해당합니다.
이 속성을 수동으로 설정한 후에 resetState
함수를 호출하면 셀 상태가 이 초기값으로 설정됩니다.
HasStateInputs
가 true
이면, CellState
속성은 비어 있어야 합니다.
데이터형: single
| double
HiddenState
— 은닉 상태
숫자형 벡터
계층 연산에 사용할 은닉 상태로, 2*NumHiddenUnits
×1 숫자형 벡터로 지정됩니다. 이 값은 데이터가 계층에 전달될 때의 초기 은닉 상태에 해당합니다.
이 속성을 수동으로 설정한 후에 resetState
함수를 호출하면 은닉 상태가 이 값으로 설정됩니다.
HasStateInputs
가 true
이면, HiddenState
속성은 비어 있어야 합니다.
데이터형: single
| double
파라미터 및 초기화
InputWeightsInitializer
— 입력 가중치를 초기화하는 함수
'glorot'
(디폴트 값) | 'he'
| 'orthogonal'
| 'narrow-normal'
| 'zeros'
| 'ones'
| 함수 핸들
입력 가중치를 초기화하는 함수로, 다음 중 하나로 지정됩니다.
'glorot'
– Glorot 이니셜라이저[1](Xavier 이니셜라이저라고도 함)를 사용하여 입력 가중치를 초기화합니다. Glorot 이니셜라이저는 평균이 0이고 분산이2/(InputSize + numOut)
인 균등분포에서 독립적으로 샘플링합니다. 여기서numOut = 8*NumHiddenUnits
입니다.'he'
– He 이니셜라이저[2]를 사용하여 입력 가중치를 초기화합니다. He 이니셜라이저는 평균이 0이고 분산이2/InputSize
인 정규분포에서 샘플링합니다.'orthogonal'
– 단위 정규분포에서 샘플링된 확률 행렬 Z에 대한 Z = QR의 QR 분해로 주어지는 직교 행렬 Q를 사용하여 입력 가중치를 초기화합니다. [3]'narrow-normal'
– 평균이 0이고 표준편차가 0.01인 정규분포에서 독립적으로 샘플링하여 입력 가중치를 초기화합니다.'zeros'
– 입력 가중치를 0으로 초기화합니다.'ones'
– 입력 가중치를 1로 초기화합니다.함수 핸들 – 사용자 지정 함수를 사용하여 입력 가중치를 초기화합니다. 함수 핸들을 지정할 경우, 함수는
weights = func(sz)
형식이 되어야 합니다. 여기서sz
는 입력 가중치의 크기입니다.
계층은 InputWeights
속성이 비어 있는 경우에만 입력 가중치를 초기화합니다.
데이터형: char
| string
| function_handle
RecurrentWeightsInitializer
— 순환 가중치를 초기화하는 함수
'orthogonal'
(디폴트 값) | 'glorot'
| 'he'
| 'narrow-normal'
| 'zeros'
| 'ones'
| 함수 핸들
순환 가중치를 초기화하는 함수로, 다음 중 하나로 지정됩니다.
'orthogonal'
– 단위 정규분포에서 샘플링된 확률 행렬 Z에 대한 Z = QR의 QR 분해로 주어지는 직교 행렬 Q를 사용하여 입력 가중치를 초기화합니다. [3]'glorot'
– Glorot 이니셜라이저[1](Xavier 이니셜라이저라고도 함)를 사용하여 순환 가중치를 초기화합니다. Glorot 이니셜라이저는 평균이 0이고 분산이2/(numIn + numOut)
인 균등분포에서 독립적으로 샘플링합니다. 여기서numIn = NumHiddenUnits
이고numOut = 8*NumHiddenUnits
입니다.'he'
– He 이니셜라이저[2]를 사용하여 순환 가중치를 초기화합니다. He 이니셜라이저는 평균이 0이고 분산이2/NumHiddenUnits
인 정규분포에서 샘플링합니다.'narrow-normal'
– 평균이 0이고 표준편차가 0.01인 정규분포에서 독립적으로 샘플링하여 순환 가중치를 초기화합니다.'zeros'
– 순환 가중치를 0으로 초기화합니다.'ones'
– 순환 가중치를 1로 초기화합니다.함수 핸들 – 사용자 지정 함수를 사용하여 순환 가중치를 초기화합니다. 함수 핸들을 지정할 경우, 함수는
weights = func(sz)
형식이 되어야 합니다. 여기서sz
는 순환 가중치의 크기입니다.
계층은 RecurrentWeights
속성이 비어 있는 경우에만 순환 가중치를 초기화합니다.
데이터형: char
| string
| function_handle
BiasInitializer
— 편향을 초기화하는 함수
"unit-forget-gate"
(디폴트 값) | "narrow-normal"
| "ones"
| 함수 핸들
편향을 초기화하는 함수로, 다음 값 중 하나로 지정됩니다.
"unit-forget-gate"
— 망각 게이트 편향을 1로, 나머지 편향을 0으로 초기화합니다."narrow-normal"
— 평균이 0이고 표준편차가 0.01인 정규분포에서 독립적으로 샘플링하여 편향을 초기화합니다."ones"
— 편향을 1로 초기화합니다.함수 핸들 — 사용자 지정 함수를 사용하여 편향을 초기화합니다. 함수 핸들을 지정할 경우, 함수는
bias = func(sz)
형식이 되어야 합니다. 여기서sz
는 편향의 크기입니다.
계층은 Bias
속성이 비어 있는 경우에만 편향을 초기화합니다.
BiLSTMLayer
객체는 이 속성을 문자형 벡터 또는 함수 핸들로 저장합니다.
데이터형: char
| string
| function_handle
InputWeights
— 입력 가중치
[]
(디폴트 값) | 행렬
입력 가중치로, 행렬로 지정됩니다.
입력 가중치 행렬은 양방향 LSTM 계층의 컴포넌트(게이트)에 대한 8개의 입력 가중치 행렬을 결합한 것입니다. 8개의 행렬은 다음과 같은 순서로 세로로 결합됩니다.
입력 게이트(순방향)
망각 게이트(순방향)
셀 후보(순방향)
출력 게이트(순방향)
입력 게이트(역방향)
망각 게이트(역방향)
셀 후보(역방향)
출력 게이트(역방향)
입력 가중치는 학습 가능한 파라미터입니다. trainnet
함수를 사용하여 신경망을 훈련시킬 때 InputWeights
가 비어 있지 않으면 InputWeights
속성이 초기값으로 사용됩니다. InputWeights
가 비어 있으면 InputWeightsInitializer
로 지정된 이니셜라이저가 사용됩니다.
훈련 시점에 InputWeights
는 8*NumHiddenUnits
×InputSize
행렬입니다.
데이터형: single
| double
RecurrentWeights
— 순환 가중치
[]
(디폴트 값) | 행렬
순환 가중치로, 행렬로 지정됩니다.
순환 가중치 행렬은 양방향 LSTM 계층의 컴포넌트(게이트)에 대한 8개의 순환 가중치 행렬을 결합한 것입니다. 8개의 행렬은 다음과 같은 순서로 세로로 결합됩니다.
입력 게이트(순방향)
망각 게이트(순방향)
셀 후보(순방향)
출력 게이트(순방향)
입력 게이트(역방향)
망각 게이트(역방향)
셀 후보(역방향)
출력 게이트(역방향)
순환 가중치는 학습 가능한 파라미터입니다. trainnet
함수를 사용하여 RNN을 훈련시킬 때 RecurrentWeights
가 비어 있지 않으면 RecurrentWeights
속성이 초기값으로 사용됩니다. RecurrentWeights
가 비어 있으면 RecurrentWeightsInitializer
로 지정된 이니셜라이저가 사용됩니다.
훈련 시점에 RecurrentWeights
는 8*NumHiddenUnits
×NumHiddenUnits
행렬입니다.
데이터형: single
| double
Bias
— 계층 편향
[]
(디폴트 값) | 숫자형 벡터
계층 편향으로, 숫자형 벡터로 지정됩니다.
편향 벡터는 양방향 LSTM 계층의 컴포넌트(게이트)에 대한 8개의 편향 벡터를 결합한 것입니다. 8개의 벡터는 다음과 같은 순서로 세로로 결합됩니다.
입력 게이트(순방향)
망각 게이트(순방향)
셀 후보(순방향)
출력 게이트(순방향)
입력 게이트(역방향)
망각 게이트(역방향)
셀 후보(역방향)
출력 게이트(역방향)
계층 편향은 학습 가능한 파라미터입니다. 신경망을 훈련시킬 때 Bias
가 비어 있지 않으면 trainnet
및 trainNetwork
함수는 Bias
속성을 초기값으로 사용합니다. Bias
가 비어 있으면 BiasInitializer
로 지정된 이니셜라이저가 사용됩니다.
훈련 시점에 Bias
는 8*NumHiddenUnits
×1 숫자형 벡터입니다.
데이터형: single
| double
학습률 및 정규화
InputWeightsLearnRateFactor
— 입력 가중치에 대한 학습률 인자
1 (디폴트 값) | 숫자형 스칼라 | 1×8 숫자형 벡터
입력 가중치에 대한 학습률 인자로, 숫자형 스칼라 또는 1×8 숫자형 벡터로 지정됩니다.
이 인자에 전역 학습률을 곱하여 계층의 입력 가중치에 대한 학습률 인자가 결정됩니다. 예를 들어, InputWeightsLearnRateFactor
가 2
인 경우, 계층의 입력 가중치에 대한 학습률 인자는 현재 전역 학습률의 2배입니다. trainingOptions
함수를 사용하여 지정한 설정을 기반으로 전역 학습률이 결정됩니다.
InputWeights
에 있는 4개의 개별 행렬에 대한 학습률 인자 값을 제어하려면 1×8 벡터를 할당해야 합니다. 벡터의 각 요소는 다음과 같은 게이트의 학습률 인자에 해당합니다.
입력 게이트(순방향)
망각 게이트(순방향)
셀 후보(순방향)
출력 게이트(순방향)
입력 게이트(역방향)
망각 게이트(역방향)
셀 후보(역방향)
출력 게이트(역방향)
모든 행렬에 동일한 값을 지정하려면 음이 아닌 스칼라를 지정하십시오.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
RecurrentWeightsLearnRateFactor
— 순환 가중치에 대한 학습률 인자
1 (디폴트 값) | 숫자형 스칼라 | 1×8 숫자형 벡터
순환 가중치에 대한 학습률 인자로, 숫자형 스칼라 또는 1×8 숫자형 벡터로 지정됩니다.
이 인자에 전역 학습률을 곱하여 계층의 순환 가중치에 대한 학습률이 결정됩니다. 예를 들어, RecurrentWeightsLearnRateFactor
가 2
인 경우, 계층의 순환 가중치에 대한 학습률은 현재 전역 학습률의 2배입니다. trainingOptions
함수를 사용하여 지정한 설정을 기반으로 전역 학습률이 결정됩니다.
RecurrentWeights
에 있는 4개의 개별 행렬에 대한 학습률 값을 제어하려면 1×8 벡터를 할당해야 합니다. 벡터의 각 요소는 다음과 같은 게이트의 학습률 인자에 해당합니다.
입력 게이트(순방향)
망각 게이트(순방향)
셀 후보(순방향)
출력 게이트(순방향)
입력 게이트(역방향)
망각 게이트(역방향)
셀 후보(역방향)
출력 게이트(역방향)
모든 행렬에 동일한 값을 지정하려면 음이 아닌 스칼라를 지정하십시오.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
BiasLearnRateFactor
— 편향에 대한 학습률 인자
1 (디폴트 값) | 음이 아닌 스칼라 | 1×8 숫자형 벡터
편향에 대한 학습률 인자로, 음이 아닌 스칼라 또는 1×8 숫자형 벡터로 지정됩니다.
이 인자에 전역 학습률을 곱하여 이 계층의 편향에 대한 학습률이 결정됩니다. 예를 들어, BiasLearnRateFactor
가 2
인 경우, 이 계층의 편향에 대한 학습률은 현재 전역 학습률의 2배입니다. trainingOptions
함수를 사용하여 지정한 설정을 기반으로 전역 학습률이 결정됩니다.
Bias
에 있는 4개의 개별 행렬에 대한 학습률 인자 값을 제어하려면 1×8 벡터를 할당해야 합니다. 벡터의 각 요소는 다음과 같은 게이트의 학습률 인자에 해당합니다.
입력 게이트(순방향)
망각 게이트(순방향)
셀 후보(순방향)
출력 게이트(순방향)
입력 게이트(역방향)
망각 게이트(역방향)
셀 후보(역방향)
출력 게이트(역방향)
모든 행렬에 동일한 값을 지정하려면 음이 아닌 스칼라를 지정하십시오.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
InputWeightsL2Factor
— 입력 가중치에 대한 L2 정규화 인자
1 (디폴트 값) | 숫자형 스칼라 | 1×8 숫자형 벡터
입력 가중치에 대한 L2 정규화 인자로, 숫자형 스칼라 또는 1×8 숫자형 벡터로 지정됩니다.
이 인자에 전역 L2 정규화 인자를 곱하여 계층의 입력 가중치에 대한 L2 정규화 인자가 결정됩니다. 예를 들어, InputWeightsL2Factor
가 2
인 경우, 계층의 입력 가중치에 대한 L2 정규화 인자는 현재 전역 L2 정규화 인자의 2배입니다. trainingOptions
함수를 사용하여 지정한 설정을 기반으로 L2 정규화 인자가 결정됩니다.
InputWeights
에 있는 4개의 개별 행렬에 대한 L2 정규화 인자 값을 제어하려면 1×8 벡터를 할당해야 합니다. 벡터의 각 요소는 다음과 같은 게이트의 L2 정규화 인자에 해당합니다.
입력 게이트(순방향)
망각 게이트(순방향)
셀 후보(순방향)
출력 게이트(순방향)
입력 게이트(역방향)
망각 게이트(역방향)
셀 후보(역방향)
출력 게이트(역방향)
모든 행렬에 동일한 값을 지정하려면 음이 아닌 스칼라를 지정하십시오.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
RecurrentWeightsL2Factor
— 순환 가중치에 대한 L2 정규화 인자
1 (디폴트 값) | 숫자형 스칼라 | 1×8 숫자형 벡터
순환 가중치에 대한 L2 정규화 인자로, 숫자형 스칼라 또는 1×8 숫자형 벡터로 지정됩니다.
이 인자에 전역 L2 정규화 인자를 곱하여 계층의 순환 가중치에 대한 L2 정규화 인자가 결정됩니다. 예를 들어, RecurrentWeightsL2Factor
가 2
인 경우, 계층의 순환 가중치에 대한 L2 정규화 인자는 현재 전역 L2 정규화 인자의 2배입니다. trainingOptions
함수를 사용하여 지정한 설정을 기반으로 L2 정규화 인자가 결정됩니다.
RecurrentWeights
에 있는 4개의 개별 행렬에 대한 L2 정규화 인자 값을 제어하려면 1×8 벡터를 할당해야 합니다. 벡터의 각 요소는 다음과 같은 게이트의 L2 정규화 인자에 해당합니다.
입력 게이트(순방향)
망각 게이트(순방향)
셀 후보(순방향)
출력 게이트(순방향)
입력 게이트(역방향)
망각 게이트(역방향)
셀 후보(역방향)
출력 게이트(역방향)
모든 행렬에 동일한 값을 지정하려면 음이 아닌 스칼라를 지정하십시오.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
BiasL2Factor
— 편향에 대한 L2 정규화 인자
0 (디폴트 값) | 음이 아닌 스칼라 | 1×8 숫자형 벡터
편향에 대한 L2 정규화 인자로, 음이 아닌 스칼라로 지정됩니다.
이 인자에 전역 L2 정규화 인자를 곱하여 이 계층의 편향에 대한 L2 정규화가 결정됩니다. 예를 들어, BiasL2Factor
가 2
인 경우, 이 계층의 편향에 대한 L2 정규화는 전역 L2 정규화 인자의 2배입니다. trainingOptions
함수를 사용하여 지정한 설정을 기반으로 전역 L2 정규화 인자가 결정됩니다.
Bias
에 있는 4개의 개별 행렬에 대한 L2 정규화 인자 값을 제어하려면 1×8 벡터를 할당해야 합니다. 벡터의 각 요소는 다음과 같은 게이트의 L2 정규화 인자에 해당합니다.
입력 게이트(순방향)
망각 게이트(순방향)
셀 후보(순방향)
출력 게이트(순방향)
입력 게이트(역방향)
망각 게이트(역방향)
셀 후보(역방향)
출력 게이트(역방향)
모든 행렬에 동일한 값을 지정하려면 음이 아닌 스칼라를 지정하십시오.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
계층
NumInputs
— 입력값의 개수
1
| 3
읽기 전용 속성입니다.
계층에 대한 입력값의 개수입니다.
HasStateInputs
속성이 0
(false
)이면 계층은 이름이 "in"
인 하나의 입력값을 갖습니다. 이 입력값은 입력 데이터에 대응합니다. 이 경우 계층은 계층 연산에 HiddenState
속성과 CellState
속성을 사용합니다.
HasStateInputs
속성이 1
(true
)이면 계층은 이름이 각각 "in"
, "hidden"
, "cell"
인 세 개의 입력값을 갖습니다. 이러한 입력값은 각각 입력 데이터, 은닉 상태, 셀 상태에 대응합니다. 이 경우 계층은 이러한 입력값에 전달된 값을 계층 연산에 사용합니다. HasStateInputs
가 1
(true
)이면 HiddenState
속성과 CellState
속성은 비어 있어야 합니다.
데이터형: double
InputNames
— 입력값 이름
"in"
| ["in" "hidden" "cell"]
읽기 전용 속성입니다.
계층의 입력값 이름.
HasStateInputs
속성이 0
(false
)이면 계층은 이름이 "in"
인 하나의 입력값을 갖습니다. 이 입력값은 입력 데이터에 대응합니다. 이 경우 계층은 계층 연산에 HiddenState
속성과 CellState
속성을 사용합니다.
HasStateInputs
속성이 1
(true
)이면 계층은 이름이 각각 "in"
, "hidden"
, "cell"
인 세 개의 입력값을 갖습니다. 이러한 입력값은 각각 입력 데이터, 은닉 상태, 셀 상태에 대응합니다. 이 경우 계층은 이러한 입력값에 전달된 값을 계층 연산에 사용합니다. HasStateInputs
가 1
(true
)이면 HiddenState
속성과 CellState
속성은 비어 있어야 합니다.
BiLSTMLayer
객체는 이 속성을 문자형 벡터로 구성된 셀형 배열로 저장합니다.
NumOutputs
— 출력값 개수
1
| 3
읽기 전용 속성입니다.
계층에 대한 출력값의 개수입니다.
HasStateOutputs
속성이 0
(false
)이면 계층은 이름이 "out"
인 하나의 출력값을 갖습니다. 이 값은 출력 데이터에 대응합니다.
HasStateOutputs
속성이 1
(true
)이면 계층은 이름이 각각 "out"
, "hidden"
, "cell"
인 세 개의 출력값을 갖습니다. 이러한 출력값은 각각 출력 데이터, 은닉 상태, 셀 상태에 대응합니다. 이 경우 계층은 계산된 상태 값도 출력합니다.
데이터형: double
OutputNames
— 출력값 이름
"out"
| ["out" "hidden" "cell"]
읽기 전용 속성입니다.
계층의 출력값 이름.
HasStateOutputs
속성이 0
(false
)이면 계층은 이름이 "out"
인 하나의 출력값을 갖습니다. 이 값은 출력 데이터에 대응합니다.
HasStateOutputs
속성이 1
(true
)이면 계층은 이름이 각각 "out"
, "hidden"
, "cell"
인 세 개의 출력값을 갖습니다. 이러한 출력값은 각각 출력 데이터, 은닉 상태, 셀 상태에 대응합니다. 이 경우 계층은 계산된 상태 값도 출력합니다.
BiLSTMLayer
객체는 이 속성을 문자형 벡터로 구성된 셀형 배열로 저장합니다.
예제
양방향 LSTM 계층 만들기
이름이 bilstm1
이고 100개의 은닉 유닛을 갖는 양방향 LSTM 계층을 만듭니다.
layer = bilstmLayer(100,Name="bilstm1")
layer = BiLSTMLayer with properties: Name: 'bilstm1' InputNames: {'in'} OutputNames: {'out'} NumInputs: 1 NumOutputs: 1 HasStateInputs: 0 HasStateOutputs: 0 Hyperparameters InputSize: 'auto' NumHiddenUnits: 100 OutputMode: 'sequence' StateActivationFunction: 'tanh' GateActivationFunction: 'sigmoid' Learnable Parameters InputWeights: [] RecurrentWeights: [] Bias: [] State Parameters HiddenState: [] CellState: [] Use properties method to see a list of all properties.
Layer
배열에 양방향 LSTM 계층을 포함시킵니다.
inputSize = 12;
numHiddenUnits = 100;
numClasses = 9;
layers = [ ...
sequenceInputLayer(inputSize)
bilstmLayer(numHiddenUnits)
fullyConnectedLayer(numClasses)
softmaxLayer]
layers = 4x1 Layer array with layers: 1 '' Sequence Input Sequence input with 12 dimensions 2 '' BiLSTM BiLSTM with 100 hidden units 3 '' Fully Connected 9 fully connected layer 4 '' Softmax softmax
알고리즘
계층 입력 형식 및 출력 형식
계층 배열 또는 계층 그래프의 계층은 뒤에 오는 계층에 데이터를 전달할 때 형식이 지정된 dlarray
객체로 전달합니다. dlarray
객체의 형식은 문자들로 구성된 문자열로, 각 문자는 데이터의 대응되는 차원을 설명합니다. 형식은 다음 문자 중 하나 이상으로 구성됩니다.
"S"
— 공간"C"
— 채널"B"
— 배치"T"
— 시간"U"
— 지정되지 않음
4차원 배열로 표현되는 2차원 영상 데이터를 예로 들면 처음 2개 차원은 영상의 공간 차원, 3번째 차원은 영상의 채널, 4번째 차원은 배치 차원에 대응되며, "SSCB"
(공간, 공간, 채널, 배치) 형식으로 설명될 수 있습니다.
functionLayer
객체를 사용하여 사용자 지정 계층을 개발하거나, dlnetwork
객체에 forward
및 predict
함수를 사용하는 경우와 같은 자동 미분 워크플로에서 이러한 dlarray
객체와 상호 작용할 수 있습니다.
이 표는 BiLSTMLayer
객체의 지원되는 입력 형식과 그에 대응되는 출력 형식을 보여줍니다. 계층의 출력이 nnet.layer.Formattable
클래스를 상속하지 않는 사용자 지정 계층에 전달되거나 Formattable
속성을 0
(false
)으로 설정한 FunctionLayer
객체에 전달될 경우 이 계층은 이 표에 나와 있는 형식에 따라 순서가 지정된 차원을 갖는, 형식이 지정되지 않은 dlarray
객체를 수신합니다. 여기에 나와 있는 형식은 일부에 불과합니다. 계층은 다른 형식도 지원할 수 있습니다(예: 추가적인 "S"
(공간) 또는 "U"
(미지정) 차원을 갖는 형식).
입력 형식 | OutputMode | 출력 형식 |
---|---|---|
| "sequence" |
|
"last" | ||
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
dlnetwork
객체에서 BiLSTMLayer
객체는 다음 입력 형식과 출력 형식의 결합도 지원합니다.
입력 형식 | OutputMode | 출력 형식 |
---|---|---|
| "sequence" |
|
"last" | ||
| "sequence" | |
"last" | ||
| "sequence" | |
"last" | ||
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" | ||
| "sequence" | |
"last" | ||
| "sequence" | |
"last" | ||
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" | ||
| "sequence" | |
"last" | ||
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
|
HasStateInputs
속성이 1
(true
)이면, 계층은 이름이 "hidden"
과 "cell"
인 두 개의 추가 입력값을 갖습니다. 이러한 입력값은 각각 은닉 상태와 셀 상태에 대응합니다. 이러한 추가 입력값은 입력 형식이 "CB"
(채널, 배치)여야 합니다.
HasStateOutputs
속성이 1
(true
)이면, 계층은 이름이 "hidden"
과 "cell"
인 두 개의 추가 출력값을 갖습니다. 이러한 출력값은 각각 은닉 상태와 셀 상태에 대응합니다. 이러한 추가 출력값은 출력 형식이 "CB"
(채널, 배치)입니다.
참고 문헌
[1] Glorot, Xavier, and Yoshua Bengio. "Understanding the Difficulty of Training Deep Feedforward Neural Networks." In Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics, 249–356. Sardinia, Italy: AISTATS, 2010. https://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf
[2] He, Kaiming, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. "Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification." In 2015 IEEE International Conference on Computer Vision (ICCV), 1026–34. Santiago, Chile: IEEE, 2015. https://doi.org/10.1109/ICCV.2015.123
[3] Saxe, Andrew M., James L. McClelland, and Surya Ganguli. "Exact Solutions to the Nonlinear Dynamics of Learning in Deep Linear Neural Networks.” Preprint, submitted February 19, 2014. https://arxiv.org/abs/1312.6120.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
일반적으로 코드 생성 시 HasStateInputs
속성과 HasStateOutputs
속성을 0
(false)으로 설정해야 합니다.
Intel® MKL-DNN 또는 ARM® Compute Library로 코드를 생성하는 경우:
StateActivationFunction
속성을'tanh'
로 설정해야 합니다.GateActivationFunction
속성을'sigmoid'
로 설정해야 합니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
GPU 코드를 생성하려면
StateActivationFunction
속성을'tanh'
로 설정해야 합니다.GPU 코드를 생성하려면
GateActivationFunction
속성을'sigmoid'
로 설정해야 합니다.HasStateInputs
속성과HasStateOutputs
속성을0
(false)으로 설정해야 합니다.
버전 내역
R2018a에 개발됨R2019a: 디폴트 입력 가중치 초기화는 Glorot
R2019a부터, 기본적으로 이 계층의 계층 입력 가중치는 Glorot 이니셜라이저를 사용하여 초기화됩니다. 이 동작은 훈련을 안정화하는 데 도움이 되며, 일반적으로 심층 신경망의 훈련 시간을 줄여 줍니다.
이전 릴리스에서는 기본적으로 계층 입력 가중치가 평균이 0이고 분산이 0.01인 정규분포에서 샘플링하여 초기화되었습니다. 이 동작을 재현하려면 계층의 InputWeightsInitializer
옵션을 "narrow-normal"
로 설정하십시오.
R2019a: 디폴트 순환 가중치 초기화는 직교
R2019a부터, 기본적으로 이 계층의 계층 순환 가중치는 단위 정규분포에서 샘플링된 확률 행렬 Z에 대한 Z = QR의 QR 분해로 주어지는 직교 행렬 Q를 사용하여 초기화됩니다. 이 동작은 훈련을 안정화하는 데 도움이 되며, 일반적으로 심층 신경망의 훈련 시간을 줄여 줍니다.
이전 릴리스에서는 기본적으로 계층 순환 가중치가 평균이 0이고 분산이 0.01인 정규분포에서 샘플링하여 초기화되었습니다. 이 동작을 재현하려면 계층의 RecurrentWeightsInitializer
옵션을 "narrow-normal"
로 설정하십시오.
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)