問題タブ [objective-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.
python - Keras: カスタム目的関数、導関数を配置する場所
修道院の損失関数を少し変更しようとしていますが、実装側からいくつか質問があります。
Keras でカスタム損失関数を作成する方法と、それを呼び出す方法は既に知っています。しかし、関数の導関数をどこに含めるかはまだ明確ではありません。
私の新しい損失関数は次のとおりです。
損失 = 交差エントロピー + f(x)
ここで、f(x) = x**2 です。
back-prop ステップで使用されるように、どこに f'(x)=2x を含める必要がありますか? Keras は自動的にそれを行いますか? または、これを明示的に定義する必要がありますか?
やり方がわからないので、どなたか教えていただけるとありがたいです。
チュアン。
python - PuLP: 目的関数: 複数の lpSum をループに追加する
さまざまな要素 (鉄、水銀など) とのブレンドの問題に PuLp を使用しようとしています。しかし、最大/最小の利益/コストの代わりに、制約の使用率を最大化する必要があります。したがって、Excelでは次のようなものがありました(疑似コードで):
このような目的関数を使用したことはありませんが、Excel では機能するようです。
今度は、PuLP で同じ問題をモデル化したいと考えています。私が必要とするのは、次のようなものだと思います:
ここで、ELEMENTS はすべての要素を含むリスト、CONCENTRATES は 0 から 100 までの値のリスト、dic[Element][Concentrate] は各要素とそのすべての濃縮物からの値を格納します。
上記のコードでは、ループごとに目的関数が上書きされます。古い目的関数を上書きする代わりに、append() などのようなものが必要で、それぞれの loops=lpSums を prob variable?class? に追加します。
私は一般的にプログラミングにかなり慣れていません。私の問題は、私の(:Dも不足している)PuLPスキルよりも、Pythonプログラミングスキルの欠如に関連していると思います。しかし、PuLP のドキュメントには何も見つかりませんでした。少なくとも、接続できるものは何もありませんでした。
編集:問題を紹介するための小さなテーブルが含まれています:
「要素 2」および「要素 3」の列には、「要素 1」の列と同じ情報、つまり濃縮物 1/2/3 におけるそれぞれの要素の % シェアが保存されます。
目的関数は、すべての使用率 (u1+u2+u3) の合計を最大化することです。そのため、各要素に与えられた制約をできるだけ多く利用するために、各濃縮物の使用量を決定しようとしています. 私の PuLp コードに戻ると、「u1」に相当するものを PuLp の「LpProblem クラス」に追加できると思いますが、これらの LpSum の複数を「LpProblem クラス」に追加する方法がわかりません。ループ。
algorithm - 地理空間データのクラスタリングがどの程度うまく機能したかを知るにはどうすればよいですか?
私はいくつかの座標点を持っています。それぞれが特定のランドマークに関連付けられていますが、精度はさまざまで不明です。これらのランドマークのそれぞれについて、訪問者が「ランドマークにいる」と言ったときの座標を持っています。
「ランドマーク」座標を使用して、将来の訪問者のためにランドマークの精度を向上させたいと考えています。ただし、クラスタリング アルゴリズムのパラメーターを変更すると、平均して、既存の場所を実際に改善した可能性が改善されているかどうかを知る方法がありません。
これのプロキシとして使用できる目的関数を作成したいと思います-何か考えはありますか?
ランドマークの住所が不完全なため、Google Maps API 呼び出しは信頼できない可能性があることに注意してください。