순차

함수 배열을 이러한 함수를 하나씩 호출하는 새 함수로 구성합니다("정방향 함수 컴퍼지션").

Sequential (arrayOfFunctions)

매개 변수

arrayOfFunctions: 함수의 BrainScript 배열입니다(예: 연산자로 : 생성). (LinearLayer{1024} : Sigmoid)

반환 값

이 함수는 다른 함수를 반환합니다. 반환된 함수는 하나의 인수를 사용하고 지정된 모든 함수를 입력에 순서대로 적용한 결과를 반환합니다.

Description

Sequential() 는 계층의 진행을 통해 전파하여 입력이 처리되는 신경망에서 매우 일반적인 상황을 압축적으로 표현할 수 있는 강력한 작업입니다. 다른 신경망 도구 키트에서 잘 알고 있을 수 있습니다.

Sequential() 는 함수 배열을 인수로 사용하고 이러한 함수를 순서대로 호출하는 함수를 반환하며, 한 함수의 출력을 다음으로 전달할 때마다 반환합니다. 다음 예제를 고려해 보세요.

FGH = Sequential (F:G:H)
y = FGH (x)

여기서 콜론(:)은 BrainScript의 배열 표현 구문입니다. 예를 들어, (F:G:H) 세 개의 요소가 FG있는 배열, 및 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)