constraints 모듈의 함수는 최적화 과정에서 네트워크 매개변수parameter에 제약(예시. 음수가 되지 않도록 하기)을 설정할 수 있도록 합니다.
페널티는 각 층layer 별로 적용됩니다. API의 구체사항은 층마다 다를 수 있지만, Dense, Conv1D, Conv2D 그리고 Conv3D 층은 통일된 API를 가집니다.
이러한 층들은 2가지 키워드 인수를 노출합니다:
- 주요 가중치 행렬에 대한
kernel_constraint - 편향에 대한
bias_constraint
from keras.constraints import max_norm
model.add(Dense(64, kernel_constraint=max_norm(2.)))keras.constraints.MaxNorm(max_value=2, axis=0)MaxNorm 가중치 제약.
각 은닉층hidden layer에 대응하는 가중치를 제약해서 가중치의 노름이 특정 값 이하가 되도록 합니다.
인수
- max_value: 입력 가중치의 최대 노름
- axis: 정수, 가중치 노름을 계산할 축.
예를 들어, 어느
Dense층의 가중치 행렬이(input_dim, output_dim)의 형태를 취할 때,axis를0으로 설정해서(input_dim,)의 길이를 갖는 각 가중치 벡터를 제약할 수 있습니다.data_format="channels_last"의 데이터 포맷을 갖는Conv2D층의 경우, 가중치 텐서는(rows, cols, input_depth, output_depth)의 형태를 가지며,axis를[0, 1, 2]로 설정하여(rows, cols, input_depth)의 형태를 갖는 각 필터 텐서의 가중치를 제약할 수 있습니다.
참고
keras.constraints.NonNeg()가중치가 음수가 되지 않도록 제약합니다.
keras.constraints.UnitNorm(axis=0)각 은닉 유닛hidden unit에 대응하는 가중치가 단위 노름을 가지도록 제약합니다.
인수
- axis: 정수,가중치 노름을 계산할 축.
예를 들어, 어느
Dense층의 가중치 행렬이(input_dim, output_dim)의 형태를 취할 때,axis를0으로 설정해서(input_dim,)의 길이를 갖는 각 가중치 벡터를 제약할 수 있습니다.data_format='channels_last'의 데이터 포맷을 갖는Conv2D층의 경우, 가중치 텐서는(rows, cols, input_depth, output_depth)의 형태를 가지며,axis를[0, 1, 2]로 설정하여(rows, cols, input_depth)의 형태를 갖는 각 필터 텐서의 가중치를 제약할 수 있습니다.
keras.constraints.MinMaxNorm(min_value=0.0, max_value=1.0, rate=1.0, axis=0)MinMaxNorm 가중치 제약.
각 은닉층에 대응하는 가중치를 제약해서 가중치의 노름이 상한과 하한 사이의 값을 가지도록 합니다.
인수
- min_value: 입력 가중치의 최소 노름.
- max_value: 입력 가중치의 최대 노름.
- rate: 제약을 시행하는 속도:
가중치를 리스케일하여
(1 - rate) * norm + rate * norm.clip(min_value, max_value)의 값을 산출하도록 합니다. 이는 실질적으로 rate=1.0의 경우 제약을 엄격하게 실행함을 의미하고 실행함을 의미하고, 반대로 rate<1.0의 경우 매 단계마다 가중치가 리스케일되어 원하는 간격 사이의 값에 천천히 가까워지도록 함을 말합니다. - axis: 정수, 가중치 노름을 계산할 축.
예를 들어, 어느
Dense층의 가중치 행렬이(input_dim, output_dim)의 형태를 취할 때,axis를0으로 설정해서(input_dim,)의 길이를 갖는 각 가중치 벡터를 제약할 수 있습니다.data_format='channels_last'의 데이터 포맷을 갖는Conv2D층의 경우, 가중치 텐서는(rows, cols, input_depth, output_depth)의 형태를 가지며,axis를[0, 1, 2]로 설정하여(rows, cols, input_depth)의 형태를 갖는 각 필터 텐서의 가중치를 제약할 수 있습니다.