ニューラルネットワークから実数値の連続出力を取得する方法


13

これまでにニューラルネットワークで見たほとんどの例では、ネットワークは分類に使用され、ノードはシグモイド関数で変換されます。ただし、ニューラルネットワークを使用して連続的な実数値を出力したいと思います(現実的には、出力は通常-5〜+5の範囲になります)。

私の質問は:

1. Should I still scale the input features using feature scaling? What range?
2. What transformation function should I use in place of the sigmoid?

私は最初にこれらのレイヤータイプを記述するPyBrainを実装したいと考えています

だから私は、すべての線形レイヤーである3つのレイヤー(入力、非表示、および出力レイヤー)を開始する必要があると考えていますか?それは合理的な方法ですか?または、シグモイド関数を-5〜5の範囲で「ストレッチ」できますか?


1
確かにあなたはシグモイドを使用することができ 。たとえば、ロジスティック関数から始まり、10を掛け、5を引く...[][55]
cbeleitesはMonicaをサポートしています

2つの非表示レイヤーの使用を避けている特別な理由はありますか?これは、ニューラルネットワークから実際の値の連続出力を取得する最も簡単な方法のようです。:ミッチェルの機械学習テキストスライド26からノートに記載された(「任意の関数は、二つの隠れ層を有するネットワークによって任意の精度で近似することができる」cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/ www / mlbook / ch4.pdf
クリスシモカット

@ChrisSimokat:いいえ、しかし、私がこれまで読んだことのほとんどは、合理的な出発点として単一の隠されたレイヤーを示唆しています。単一の隠れ層ネットワークは機能を近似できませんか?
ユーザー

1
@ChrisSimokat:何かが足りないかもしれませんが、単一の隠れ層が「単一層パーセプトロン」に等しくないと思いましたか?
ユーザー

1
いいえ、あなたは何も見逃していません。私はちょうどそれを読んでいないようです。
クリスシモカット

回答:


11

1。フィーチャスケーリングを使用して入力フィーチャをスケーリングする必要がありますか?範囲は?

スケーリングは何も悪化させません。SarleのニューラルネットワークFAQからこの回答を読んでください:件名:データを正規化/標準化/再スケーリングする必要がありますか?

2。シグモイドの代わりにどの変換関数を使用する必要がありますか?

[01][11][55]


ニューラルネットワークの出力を範囲[-5,5]にスケーリングする正しい方法は何ですか?
ユーザー

3
e[ab][cd]eabadc+c

2
しかし、シグモイドは非線形であるため、均一分布ではシグモイドの値をサンプリングするため、おそらく1に近い値または0に近い値が得られます。つまり、ネットワークを学習して、真ん中の値を慎重に選択する必要があります。シグモイド+スケーリングは本当に良い選択ですか?
Smarty77
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.