초기화는 Keras 계층의 초기 무작위 가중치를 설정하는 방식을 정의합니다.
계층에 초기화기를 넘기는 데에 쓰이는 키워드 인수는 각 계층에 의존합니다. 일반적으로는 다음과 같이 단순히 kernel_initializer
와 bias_initializer
입니다:
model.add(Dense(64,
kernel_initializer='random_uniform',
bias_initializer='zeros'))
다음의 내장 초기화기는 keras.initializers
모듈의 부분으로서 사용 가능합니다:
keras.initializers.Initializer()
기본 초기화기 클래스입니다: 모든 초기화기는 이 클래스를 상속합니다.
keras.initializers.Zeros()
0으로 초기화된 텐서를 생성하는 초기화기입니다.
keras.initializers.Ones()
1로 초기화된 텐서를 생성하는 초기화기입니다.
keras.initializers.Constant(value=0)
하나의 상수로 초기화된 텐서를 생성하는 초기화기입니다.
인수
keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=None)
정규 분포로 초기화된 텐서를 생성하는 초기화기입니다.
인수
keras.initializers.RandomUniform(minval=-0.05, maxval=0.05, seed=None)
균일 분포로 초기화된 텐서를 생성하는 초기화기입니다.
인수
keras.initializers.TruncatedNormal(mean=0.0, stddev=0.05, seed=None)
잘린(Truncated) 정규 분포로 초기화된 텐서를 생성하는 초기화기입니다.
평균으로부터 표준 편차의 두 배 이상 큰 값은 없애고 다시 생성한다는 점을 제외하고는 RandomNormal
과 유사한 값을 생성합니다. 신경망 가중치와 필터에 추천되는 초기화기입니다.
인수
keras.initializers.VarianceScaling(scale=1.0, mode='fan_in', distribution='normal', seed=None)
범위를 가중치의 형태에 맞춰 조정할 수 있는 초기화기입니다.
distribution="normal"
이면 0을 중심으로 한 잘린 정규 분포를 생성하며, 이 때 stddev = sqrt(scale / n)
이고 n은 다음과 같습니다:
distribution="uniform"
이면 [-limit, limit]을 범위로 하는 균일 분포를 생성하며, 이 때 limit = sqrt(3 * scale / n)
입니다.
인수
예외 발생
keras.initializers.Orthogonal(gain=1.0, seed=None)
무작위 직교 행렬(orthogonal matrix)을 생성하는 초기화기입니다.
인수
참고
Saxe et al., http://arxiv.org/abs/1312.6120