問題タブ [loss-function]

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 投票する
1 に答える
6698 参照

tensorflow - 2 つの損失と調整可能な重みを組み合わせた keras

ここに画像の説明を入力

それでは詳細説明です。出力 x1 と x2 を持つ 2 つのレイヤーを持つ keras 機能モデルがあります。

これらのx1とx2を使用し、それらをマージ/追加して、添付の画像のように加重損失関数を作成する必要があります. 「同じ損失」を両方のブランチに伝播します。アルファは反復に応じて変化する柔軟性があります

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

tensorflow - 教師なし学習のためのデータのミニバッチ (ラベルなし) のトレーニング

教師なし学習の問題のためにデータのミニバッチをトレーニングした人はいますか? feed_dict はラベルを使用し、教師なし設定で使用します。それをどのように克服しますか?損失関数に寄与しない偽のラベルを使用できますか?

基本的に、巨大なデータセットを反復処理してから、カスタム損失関数を最適化したいと考えています。ただし、データから明示的に新しいミニバッチを使用するときに、トレーニング パラメーター (重み) を保持する方法がわかりませんでした。

たとえば、データセット全体は 6000 ポイントで、ミニバッチ サイズは 600 です。現在、ミニバッチごとに、このミニバッチのデータ ポイントに基づいて重みが初期化されるため、新しい独立した重みパラメーターしか使用できませんでした。600 データ ポイントの最初のミニバッチで損失を最適化すると、最適化された重みが得られます。これらの重みをどのように使用して、次の 600 データ ポイントのミニバッチを最適化するのでしょうか。問題は、共有グローバル変数を使用できないことです。

stackoverflow フォーラムで調査しましたが、教師なしデータのミニバッチに関連するものは見つかりませんでした。

'f' は私のデータセット全体で、次元 D の N 点のテキスト データを言います U は次元 D の K クラスターを持つクラスター重心です

変数を次のように定義します。

次に、カスタム損失または目的関数を「目的」として定義します

次にオプティマイザを使用します

最後に、変数を次のように評価します

私が行き詰まっているのは、最終的にオプティマイザtrain_Wで使用されるデータ「f」のバッチを反復処理することです。これらのミニバッチに for ループがある場合、これらの反復ごとに新しい変数 train_W を割り当てます。次のミニバッチで使用できるように、この値を渡すにはどうすればよいですか?

この点に関するヘルプやポインタは本当にありがたいです。前もって感謝します!

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

numpy - Outliers treatment in nonlinear Least squares (scipy) for a 5PL curve

I am currently in need of fitting a 5PL curve to some datapoints that I have. 5PL is an asymmetric logistic function often used in bioassays analysis. Its formula is as follow:

F(x) = D+(A-D)/((1+(x/C)^B)^E)

I was able to obtain a fit using scipy in python (duh). In a first time I use knowledge on my data to determine the starting parameters for the function: -

With this I then use res = least_squares(residuals, p0,bounds=bnd args=(x, y)) where residuals is the function that computes the residuals between my data and the 5PL function, p0 contains my initial parameters, bnd the bounds of the problem and args= are the arguments passed to residuals (my data).

Now the result is acceptable but I suspect my measurements to have strong outliers and I would like to get a more robust outcome. I found that you can do that by adding a loss function and modify the nonlin LS (as explained here.

The line for solving this problem becomes res_loss = least_squares(residuals, p0, bounds=bnd,loss='soft_l1', f_scale=1000, args=(x, y)) where loss='soft_l1' determines the type of loss function I use and f_scale the threshold between inliners and outliers.

Now in every example that I could find, people just generate data using the curve that they whant to fit and add noise to that signal. They can then set f_scale value equal to the noise they introduced.

That is nice and all but how should f_scale be chosen if there is no knowledge on what are the values for outliers? Is there a way to automatically determine that for every dataset using the data spread?

If my problem was linear I would just use the SD of the data at each X to create a weight matrix and solve a weighted least squares. Is there a similar method for nonlinear problems?

Thanks in advance