3

Nguyen Widrow アルゴリズム (以下) を実装してみましたが、正しく機能しているように見えますが、いくつか質問があります。

  • これは正しい実装のように見えますか?

  • Nguyen Widrow の初期化は、どのようなネットワーク トポロジやサイズにも適用されますか? (つまり、5 層のオートエンコーダー)

  • Nguyen Widrow の初期化はどの入力範囲でも有効ですか? (0/1、-1/+1など)

  • Nguyen Widrow の初期化はどのアクティベーション関数でも有効ですか? (つまり、ロジスティック、タン、リニア)

以下のコードは、ネットワークがすでに -1/+1 にランダム化されていることを前提としています。

        ' Calculate the number of hidden neurons
        Dim HiddenNeuronsCount As Integer = Me.TotalNeuronsCount - (Me.InputsCount - Me.OutputsCount)

        ' Calculate the Beta value for all hidden layers
        Dim Beta As Double = (0.7 * Math.Pow(HiddenNeuronsCount, (1.0 / Me.InputsCount)))

        ' Loop through each layer in neural network, skipping input layer
        For i As Integer = 1 To Layers.GetUpperBound(0)

            ' Loop through each neuron in layer
            For j As Integer = 0 To Layers(i).Neurons.GetUpperBound(0)

                Dim InputsNorm As Double = 0

                ' Loop through each weight in neuron inputs, add weight value to InputsNorm
                For k As Integer = 0 To Layers(i).Neurons(j).ConnectionWeights.GetUpperBound(0)
                    InputsNorm += Layers(i).Neurons(j).ConnectionWeights(k) * Layers(i).Neurons(j).ConnectionWeights(k)
                Next

                ' Add bias value to InputsNorm
                InputsNorm += Layers(i).Neurons(j).Bias * Layers(i).Neurons(j).Bias

                ' Finalize euclidean norm calculation
                InputsNorm = Math.Sqrt(InputsNorm)

                ' Loop through each weight in neuron inputs, scale the weight based on euclidean norm and beta
                For k As Integer = 0 To Layers(i).Neurons(j).ConnectionWeights.GetUpperBound(0)
                    Layers(i).Neurons(j).ConnectionWeights(k) = (Beta * Layers(i).Neurons(j).ConnectionWeights(k)) / InputsNorm
                Next

                ' Scale the bias based on euclidean norm and beta
                Layers(i).Neurons(j).Bias = (Beta * Layers(i).Neurons(j).Bias) / InputsNorm

            Next

        Next
4

1 に答える 1

1

Nguyen と Widrow は論文で、入力が -1 から +1 の間であると仮定しています。Nguyen Widrow の初期化は、長さが有限の活性化関数に対して有効です。繰り返しになりますが、彼らの論文では、2 層の NN についてのみ話しているだけで、5 層の NN についてはわかりません。

S

于 2013-01-14T11:25:41.087 に答える