Keras:가중치 초기화
1 개요편집
놀랍게도, 가중치 초기화 방법에 따라 학습의 정도가 달라지기도 한다. 어떤 초기화값을 갖느냐에 따라 최종적으로 도달할 경사하강의 위치가 달라진다. 가중치들이 학습속도, 인공지능의 성능에 상당한 영향을 미친다.
2 가중치 초기화편집
다음의 방법이 있다.
방법 | 설명 | 코드 |
---|---|---|
문자열 코드 | 문자열 코드로 초기화 방법을 전달하는 가장 간단한 방법.
케라스에서 제공하는 것들만 사용 가능하다. |
layer = layers.Dense(
units=64,
kernel_initializer='random_normal',
bias_initializer='zeros'
|
initializer 불러오기 | 케라스에서 제공하는 initializer를 직접 박아넣는다. | from tensorflow.keras import layers
from tensorflow.keras import initializers
layer = layers.Dense(
units=64,
kernel_initializer=initializers.RandomNormal(stddev=0.01),
bias_initializer=initializers.Zeros()
)
|
초기화 객체 만들기 | 초기화 객체를 만들어 사용한다. | from tensorflow.keras import layers
from tensorflow.keras import initializers
initializer = initializers.RandomNormal(stddev=0.01)
layer = layers.Dense(units=64, kernel_initializer=initializer)
|
제공하는 초기화자는 다음 링크를 참조하자. Layer weight initializers (keras.io)
2.1 커스텀 초기화자편집
케라스에서 제공하지 않더라도 초기화자를 만들어 사용할 수도 있다.