r - xlab - 깊은 학습 가중치 및 정규화



xlab size in r (1)

신경망은 모든 입력 특징이 평균 0 과 표준 편차 1 경우 가장 잘 수행됩니다. 피쳐들의 표준 편차가 매우 다른 경우, 신경망은 매우 열악합니다. 이 때문에 h20 이 정상화됩니다. 다른 말로하면, 심지어 그물을 훈련하기 전에 가지고있는 모든 피처의 평균 및 표준 편차를 계산하고 원래 값을 (x - mean) / stddev . 두 번째 기능의 stddev 는 첫 번째 기능보다 10 배 작습니다. 따라서 표준화 후에 값이 합계에 기여하는 정도가 10 배 더 중요 해지고 숨겨진 뉴런으로 향하는 가중치가 그것을 취소하십시오. 그래서 두 번째 기능의 가중치가 10 배 더 작습니다.

나는 R 인터페이스를 통해 h2o를 탐색 중이며 이상한 무게 매트릭스를 얻고 있습니다. 내 작업은 주어진만큼 간단합니다 : 주어진 x, y는 x + y를 계산합니다.
나는 3 개의 열이있는 214 개의 행을 가지고있다. 첫 번째 열 (x)은 (-1000, 1000)에서 균일하게 그리고 두 번째 열 (y)는 (-100,100)에서 균일하게 그려집니다. 나는 그것들을 결합하여 하나의 뉴런을 가진 하나의 숨겨진 레이어를 가지고 싶습니다. 이것은 내 코드입니다.

library(h2o)
localH2O = h2o.init(ip = "localhost", port = 54321, startH2O = TRUE)
train <- h2o.importFile(path = "/home/martin/projects/R NN Addition/addition.csv")
model <- h2o.deeplearning(1:2,3,train, hidden = c(1), epochs=200, export_weights_and_biases=T, nfolds=5)
print(h2o.weights(model,1))
print(h2o.weights(model,2))

그 결과는 다음과 같다.

> print(h2o.weights(model,1))
          x          y
1 0.5586579 0.05518193

[1 row x 2 columns] 
> print(h2o.weights(model,2))
        C1
1 1.802469

어떤 이유에서 y의 가중치는 x보다 0.055 - 10 배 낮습니다. 결국, 신경망은 x + y / 10을 계산할 것입니다. 그러나 h2o.predict는 실제로 올바른 값을 반환합니다 (테스트 세트에서도).
어떻게 든 데이터를 확장하는 전처리 단계가 있다고 생각합니다. 모델에 의해 생성 된 실제 가중치를 재현 할 수있는 방법이 있습니까? 꽤 간단한 신경망을 시각화하고 싶습니다.





h2o