タグ付けされた質問 「gradient-descent」


4
Pytorch、勾配の引数は何ですか
私はPyTorchのドキュメントを読んでいて、彼らが書く例を見つけました gradients = torch.FloatTensor([0.1, 1.0, 0.0001]) y.backward(gradients) print(x.grad) ここで、xは初期変数であり、そこからyが作成されました(3ベクトル)。問題は、勾配テンソルの0.1、1.0、0.0001引数は何ですか?ドキュメントについては、あまり明確ではありません。

9
ニューラルネットワークの重みを乱数に初期化する必要があるのはなぜですか?
私はニューラルネットワークをゼロから構築しようとしています。すべてのAI文献全体で、ネットワークの収束を速くするために、重みを乱数に初期化する必要があるというコンセンサスがあります。 しかし、なぜニューラルネットワークの初期の重みが乱数として初期化されるのでしょうか。 これは「対称性を壊す」ために行われ、これによりニューラルネットワークの学習が速くなることをどこかで読んだことがあります。対称性を壊すことで、学習がどのように速くなりますか? 重みを0に初期化した方がいいでしょうか?そのようにして、重みはそれらの値(正または負にかかわらず)をより速く見つけることができますか? 初期化時に重みが最適値に近いことを期待することとは別に、重みをランダム化する背後にある他の基本的な哲学はありますか?

5
トレーニング中のnansの一般的な原因
トレーニング中に頻繁に発生することNANが導入されていることに気づきました。 多くの場合、内積/完全に接続された層または畳み込み層の重みが爆発することによって導入されるようです。 これは、勾配計算が爆発しているために発生していますか?それとも、重みの初期化が原因ですか(もしそうなら、なぜ重みの初期化がこの効果をもたらすのですか)?それとも、入力データの性質が原因である可能性がありますか? ここでの最も重要な質問は単純です。トレーニング中にNANが発生する最も一般的な理由は何ですか。そして第二に、これと戦うためのいくつかの方法は何ですか(そしてなぜそれらは機能しますか)?

1
R:独自の勾配ブースティングアルゴリズムを実装する
独自の勾配ブースティングアルゴリズムを記述しようとしています。私はそこのような既存のパッケージがあり理解gbmし、xgboost,しかし、私はしているアルゴリズムは、独自に書き込むことによって、どのように動作するかを理解したかったです。 irisデータセットを使用していますが、結果はSepal.Length(継続的)です。私の損失関数はmean(1/2*(y-yhat)^2)(基本的には前に1/2の平均二乗誤差)であるため、対応する勾配はただの残差y - yhatです。予測を0に初期化しています。 library(rpart) data(iris) #Define gradient grad.fun <- function(y, yhat) {return(y - yhat)} mod <- list() grad_boost <- function(data, learning.rate, M, grad.fun) { # Initialize fit to be 0 fit <- rep(0, nrow(data)) grad <- grad.fun(y = data$Sepal.Length, yhat = fit) # Initialize model mod[[1]] <- fit # …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.