アプリ版:「スタンプのみでお礼する」機能のリリースについて

機械学習(最適化問題)のプログラムで、以下の2つの関数がどんな関数なのかご存知の方はおりますか?
def alpine(x): -10〜10
val=0
for i in range(len(x)):
val+=abs((x[i]*np.sin(x[i])+0.1*x[i]))
return val

def minima(x): -5〜5
val=0
for i in range(len(x)):
val+=x[i]**4 - 16*x[i]**2 + 5*x[i]
return val+len(x)+78.3327

A 回答 (5件)

2変数であれば「最適化 ベンチマーク関数」でググれば各関数の名称が分かりますが、それはご存じなんですよねぇ。


バナナ関数とかが有名ですよね。

2変数のベンチマーク関数に対して、1変数のベンチマーク関数ってあまり見かけないので・・・。

それで、一応図にしてみたけど、結局捜し出せていません。

図も載せておきますので、もし、他の方が見かけられて、ご存じなら回答を頂けるかもしれません。

注)2番目の関数の定数項を加えている部分はコメントアウトしました。

# ベンチマーク関数(Rスクリプト)
(このサイトって、行頭の半角空白を強制的に削除するので、Pythonをアップするときは全角に変えた方が良いですよ)

par(mfrow = c(2, 1))

x <- seq(-10, 10, by = 0.1)
val <- abs(x * sin(x) + 0.1 * x)

plot(x, val)

x <- seq(-5, 5, by = 0.1)
val <- x^4 - 16 * x^2 + 5 * x
# val <- val + length(x) + 78.3327 # 定数を足しているだけ、無視

plot(x, val)
「機械学習(最適化問題)のプログラムで、以」の回答画像1
    • good
    • 1

ところで・・・、



最初の関数のabsって、sin()関数までしか掛からないんじゃ?

でないと不定解になってしまいベンチマークにならない気がします。

これって、シミュレーティッド・アニーリングで、左に行けるかっていうベンチマークですよね。
    • good
    • 0

#1です。

何度もすみませんが・・・。

まあ、ここは、このスクリプトを書いた人の気持ちを汲んで、

①アルパイン(アスプス)関数
②ミニマ(ミニマム)関数

でいいんじゃないかしら。(たぶん一般には通用しないと思うけど)
    • good
    • 0

もしかして、「どんな関数」というのは、この関数で最適化アルゴリズムのどんな性能を測るか、ということをお知りになりたいのですか。

であれば、

①局所最適から抜け出せるか
②収束性(真の最適値がほとんど周りと差がない場合に、真値にたどり着けるか)

①は前に指摘した通り、今のままでは全ての最小値が0になっているから、式を修正しないといけません。

②はバナナ関数と同じ目的です。


ほんと、お節介ですみません。
    • good
    • 1

#3のタイプミスを修正させて下さい。



誤)①アルパイン(アスプス)関数

正)①アルパイン(アルプス)関数
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!