ml_framework
cnn_delta (last_layer)
명징직조지훈
2023. 5. 22. 00:40
cnn 가중치의 변화량을 구하기 위한 delta 의 계산과 delta 값을 이용한 가중치 업데이트량 계산
먼저 delta 값 계산을 위해 마지막 층의 출력의 변화량에 대한 비용 함수의 변화량을 계산한다.
# 마지막 cnn 층의 delta 값 계산
def cal_last_layer_delta(self, layer, target):
# delta 값을 구하기 위해 layer 딕셔너리 파일에서 필요한 정보 획득
layer_input = layer.get['layer_input']
layer_output = layer.get['layer_output']
activation_function = layer.get['activation_functoin']
error_function = layer.get['error_function']
if(error_function == ""):
delta = self.cost_function.diff_error_squared_sum(layer_output, target)
if(activation_function == ""):
delta = delta * self.activation_function.sigmoid_diff(layer_input)
layer['delta'] = delta
비용 함수와 활성화 함수의 종류에 따라 delta 값의 계산
먼저 마지막 층의 출력과 타깃값을 통한 비용 함수의 미분 함수의 계산,
해당 레이어 내 입력의 변화량에 대한 출력의 변화량인 활성화 함수의 미분 함수의 계산으로 delta 값 갱신
이를 통해 마지막 layer 에 대해 해당 층의 입력의 변화량에 대한 비용 함수의 변화량을 계산할 수 있다.