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 에 대해 해당 층의 입력의 변화량에 대한 비용 함수의 변화량을 계산할 수 있다.