Keras:가중치 초기화

Pywiki
Sam (토론 | 기여)님의 2022년 2월 15일 (화) 11:23 판 (→‎개요)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 가기 검색하러 가기

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 커스텀 초기화자[편집 | 원본 편집]

케라스에서 제공하지 않더라도 초기화자를 만들어 사용할 수도 있다.