순차
함수 배열을 이러한 함수를 하나씩 호출하는 새 함수로 구성합니다("정방향 함수 컴퍼지션").
Sequential (arrayOfFunctions)
매개 변수
arrayOfFunctions
: 함수의 BrainScript 배열입니다(예: 연산자로 :
생성). (LinearLayer{1024} : Sigmoid)
반환 값
이 함수는 다른 함수를 반환합니다. 반환된 함수는 하나의 인수를 사용하고 지정된 모든 함수를 입력에 순서대로 적용한 결과를 반환합니다.
Description
Sequential()
는 계층의 진행을 통해 전파하여 입력이 처리되는 신경망에서 매우 일반적인 상황을 압축적으로 표현할 수 있는 강력한 작업입니다.
다른 신경망 도구 키트에서 잘 알고 있을 수 있습니다.
Sequential()
는 함수 배열을 인수로 사용하고 이러한 함수를 순서대로 호출하는 새 함수를 반환하며, 한 함수의 출력을 다음으로 전달할 때마다 반환합니다.
다음 예제를 고려해 보세요.
FGH = Sequential (F:G:H)
y = FGH (x)
여기서 콜론(:
)은 BrainScript의 배열 표현 구문입니다. 예를 들어, (F:G:H)
세 개의 요소가 F
G
있는 배열, 및 H
.
예를 들어 Python에서는 다음과 같이 [ F, G, H ]
작성됩니다.
위에서 정의한 함수는 FGH
y = H(G(F(x)))
이를 "함수 컴퍼지션"으로 알려져 있으며, 다음과 같은 형식의 신경망을 표현하는 데 특히 편리합니다.
+-------+ +-------+ +-------+
x -->| F |-->| G |-->| H |--> y
+-------+ +-------+ +-------+
완벽하게 표현되는 Sequential (F:G:H)
.
마지막으로 다음 식에 유의하세요.
layer1 = DenseLayer{1024}
layer2 = DenseLayer{1024}
z = Sequential (layer1 : layer2) (x)
는 다음과 다른 것을 의미합니다.
layer = DenseLayer{1024}
z = Sequential (layer : layer) (x)
후자의 형식에서는 동일한 공유 매개 변수 집합이 있는 동일한 함수가 두 번 적용되고, 전자에서는 두 계층에 별도의 매개 변수 집합이 있습니다.
예제
음성 인식에 대한 이전 심층 신경망 작업에서 사용된 표준 4 숨겨진 계층 피드 전달 네트워크:
myModel = Sequential (
DenseLayer{2048, activation=Sigmoid} : # four hidden layers
DenseLayer{2048, activation=Sigmoid} :
DenseLayer{2048, activation=Sigmoid} :
DenseLayer{2048, activation=Sigmoid} :
DenseLayer{9000, activation=Softmax} # note: last layer is a Softmax
)
features = Input{40}
p = myModel (features)