問題タブ [softmax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1160 参照

image - tensorflow で複数の画像ファイルを 2D tensor として取得する

Python でテンソルフローを使用するソフトマックス回帰プログラムの場合、1000 個の jpeg 画像ファイルを [画像インデックス、ピクセル インデックス] の 2D テンソル x として取得したいと考えています。「画像インデックス」は画像であり、ピクセルインデックスはその画像の特定の画像ピクセルです。モデル方程式は次のとおりです。

画像サイズ = 画像の高さ*幅 (すべての画像で一定)。

テンソルフローで画像ファイルをその形式で取得する最良の方法は何ですか?

0 投票する
1 に答える
1115 参照

r - Softmax を使用した出力アクティベーションの変換は、同様の値を生成します

単純な再帰ネットワーク (62 個の入力ユニット、124 個の非表示/コンテキスト ユニット、62 個の出力ユニット) をトレーニングして、文の後続の単語を予測しました。シグモイド活性化関数を使用しました。いくつかの奇妙な理由により、トレーニング中にソフトマックスを適用することはできませんでした。私の教授は、後でネットワーク出力にソフトマックスを適用できると提案しました。行列には 576 行と 62 列があります。そこで、次の方法で R にソフトマックスを実装しました。

softmax_complete() が返す行列の各行の合計は正しく 1 になります。問題は、行ごとに、関数が互いに非常に類似した値を生成することです。値がほぼ「同じ」であるため、ネットワークのパフォーマンスを検証することはできません。

ここにいくつかの小さなサンプルデータがあります。これは、ネットワーク出力の 2 行目からのものです。ソフトマックスはまだ適用されていません。

その行にソフトマックスを適用すると、次の結果が得られます。

行の合計は 1.000703 です。上記のサンプルに示されていない別の行の場合、行の合計は 0.9976472 です。私は何を間違っていますか?

たぶん、あなたたちはその問題を解決するためのアイデアを持っています。あなたの時間と助けを前もってありがとう:-)

よろしく、 マティアス

編集:

これは、RSNNS で Elman Net を作成する方法です。

0 投票する
0 に答える
95 参照

neural-network - 通常のソフトマックスとサンプリングされたソフトマックスの違いは何ですか?

私は seq2seq ニューラル モデルを学習していますが、通常のソフトマックスとサンプリングされたソフトマックスで混乱します。サンプリングされたソフトマックスは主に大きな語彙用であると言われました。では、この 2 つの違いを直感的に説明できる人はいますか?

0 投票する
2 に答える
3310 参照

python - ワンホット エンコードされた配列を返す Tensorflow ソフトマックス関数

convnet からの出力予測でソフトマックス関数を計算するこのコードがあります。

私の予測配列の形状は [batch_size, number_of_classes] = [128,6] この配列の行の例は...

ソフトマックス関数を実行した後、ワンホットでエンコードされた配列である結果が得られます...

これは、非常に大きな値の指数関数を使用しているためだと思います。何か間違ったことをしているのか、それともソフトマックス関数を適用する前に最初に値をスケーリングする必要があるのか​​ 疑問に思っていました. 私の損失関数は

これを Adam Optimizer で最小化しています

私のネットワークは問題なく学習できます。

softmax 関数を適用する理由は、テスト データの各クラスの確率値を取得するためです。

編集

私のsoftmax関数のこれらの非常に大きな値を修正するようです。正規化と正則化を追加する必要があります。convnet の設計コードを追加しました。正則化と正規化をどこに配置するかについてのヘルプは素晴らしいでしょう。

0 投票する
1 に答える
858 参照

matlab - (matlab) relu と softmax を使用した MLP がミニバッチ SGD で機能せず、MNIST データセットで同様の予測を生成する

MNIST データセットに 1 つの隠れ層を持つ多層パーセプトロンを実装しました。隠れ層の活性化関数はleaky(0.01) ReLuで、出力層にはsoftmax活性化関数があります。学習方法はミニバッチ SGD です。ネットワーク構造は 784*30*10 です。問題は、入力サンプルごとにネットワークが行った予測が非常に似ていることを発見したことです。つまり、モデルは常に画像が特定の数であると考えたいと考えています。以前の data_shuffle 関数でラベルデータの不一致の問題を指摘してくれた @Lemm Ras に感謝し、現在は修正されています。しかし、いくつかのバッチ トレーニングの後、予測はまだある種の類似性を持っていることがわかりましたここに画像の説明を入力。これは紛らわしいです。

もう 1 つの問題は、元の重みと比較して更新値が小さすぎることです。MLP コードでは、変数「cc」と「dd」を追加して、weight_update と重みの比率を記録します。

デバッグ中、cc の大きさは 10^-4(0.0001) で、dd も 10^-4 です。これが、精度があまり改善されていないように見える理由かもしれません。

数日間のデバッグの後。なぜそれが起こるのか、それを解決する方法がわかりません.1週間立ち往生しました. 誰か助けてくれませんか?スクリーンショットは、softmax 関数の後の A2 の値です。

これがトレーニング MLP 関数です。現在 0 に設定されている L2 正則化パラメーター lamda は無視してください。

ソフトマックス関数は次のとおりです。

labels_matrix は、A2 の目的の出力マトリックスであり、次のように作成されます。

そしてレル:

データシャッフル

データの読み込み: