Questions tagged «gradient-descent»



9
为什么将神经网络的权重初始化为随机数?
我正在尝试从头开始构建神经网络。在所有AI文献中都达成共识,即权重应初始化为随机数,以使网络收敛更快。 但是为什么神经网络的初始权重被初始化为随机数呢? 我在某处读过,这样做是为了“打破对称性”,这使神经网络学习得更快。如何打破对称性使其学习更快? 将权重初始化为0会不是一个更好的主意?这样,权重就能更快地找到其值(正负)。 除了希望权重在初始化时会接近最佳值之外,还有其他一些潜在的基本原理吗?

5
训练期间难治的常见原因
我注意到在培训期间经常发生这种情况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 # …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.