implement_ml_models (94) 썸네일형 리스트형 implement_delta(weight_update) 2022.11.30 - [implement_ml_models] - implement_delta implement_delta MLP 에서 노드 내의 변화량을 계산해야 하고, 이는 delta 라고 명한다. 델타는 각 층의 각 유닛 마다 정의된다. 유닛의 변화량에 대한 오차 함수의 변화량으로 여기에 가중치에 대한 유닛의 변화량 teach-meaning.tistory.com 델타를 통해 가중치 변화에 따른 노드 입력의 변화량을 통해 가중치 파라미터 업데이트 량을 계산할 수 있다. 가중치 변화량에 따른 노드 입력의 변화량의 값은 해당 가중치가 연결된 이전 층 노드의 출력값이다. hidden_output >>> array([[1.00000000000000], [1.00000000000000], [1.00000000.. DNN_error(RMSE) 오차 함수는 입력된 예측값과 실제 목표 값과의 차이를 측정하는 함수 class Error: """ 오차 함수와 오차 함수의 미분 함수를 얻을 수 있다. """ # 오차 함수 fx = 0 # 오차 함수의 미분값 d_fx = 0 # 오차 제곱 평균값 result = 0 def RMSE(self, target, predict): """ 일반적인 제곱 오차 함수 args: target : 목표 변수 predict : 예측 변수 return: 제곱 오차 평균 값 """ result = (predict - target)**2 self.result = np.mean(result) t = sympy.Symbol('t') y = sympy.Symbol('y') self.fx = 1/2*((y-t)**2) self.d_f.. implement_activation(sigmoid) 활성화 함수는 입력을 받아 활성화 함수 연산을 수행한 결과를 출력한다. class Activation: """ 데이터의 활성화 함수 연산 결과를 얻기 위함 추가로 역전파 계산에 필요한 활성화 함수의 미분 함수 """ # 활성화 함수 fx = 0 # 활성화 함수의 미분 함수 d_fx = 0 def sigmoid_fun(self, input): """ 시그모이드 함수 자연 상수의 지수 함수를 사용한 0~1 사이의 값 출력 Args: input : 입력값 Return: 0~1 사이의 값 """ x = sympy.Symbol('x') e = sympy.Symbol('e') result = [] self.fx = 1/(1+e**(-x)) self.d_fx = sympy.diff(self.fx, x) for i i.. implement_dense(2) 이전에는 입력값에 편향값의 계산을 위한 열 값을 추가했지만, 고정된 편향값의 경우 따로 더해주는 과정을 통해 연산을 수행할 수 있다. class Dense: """ 완전 연결층의 계산 """ # 가중치 w w = [] # 편향 값 bais bias = [] def cal_dense(self, input, unit, w = [], bias = []): """ args input : 입력 데이터 unit : 은닉층 노드의 개수 return 각 가중치 별 입력 데이터와의 연산 결과 """ # 가중치 w의 생성 if not w: w = np.random.rand(input.shape[0], unit) if not bias: bias = np.random.rand() self.w.append(w) self.bia.. implement_delta MLP 에서 노드 내의 변화량을 계산해야 하고, 이는 delta 라고 명한다. 델타는 각 층의 각 유닛 마다 정의된다. 유닛의 변화량에 대한 오차 함수의 변화량으로 여기에 가중치에 대한 유닛의 변화량이나 이전 출력에 대한 유닛의 변화량두 값을 구할 수 있다. 가중치 변화량에 대한 유닛의 변화량 연산을 더해 가중치 변화량에 대한 오차 함수의 변화량을 알아낼 수 있다. 2022.12.01 - [implement_ml_models] - implement_dense(2) implement_dense(2) 이전에는 입력값에 편향값의 계산을 위한 열 값을 추가했지만, 고정된 편향값의 경우 따로 더해주는 과정을 통해 연산을 수행할 수 있다. class Dense: """ 완전 연결층의 계산 """ # 가중치 w w .. implement_MLP_수정(2) 2022.11.27 - [분류 전체보기] - implement_MLP_수정 implement_MLP_수정 2022.11.25 - [implement_ml_models] - implement_foward propagation 2022.11.26 - [implement_ml_models] - forward propagation problem forward propagation problem 2022.11.25 - [implement_ml_models] - implement_foward propagation teach-meaning.tistory.com thres teach-meaning.tistory.com Mlp 클래스에는 각 층에 대한 정보가 저장되어야 한다. 이는 역전파에 사용될 정보로, 각 가중치 값.. implement_MLP_수정 2022.11.25 - [implement_ml_models] - implement_foward propagation 2022.11.26 - [implement_ml_models] - forward propagation problem forward propagation problem 2022.11.25 - [implement_ml_models] - implement_foward propagation teach-meaning.tistory.com threshold): result.append(1) else: result.append(0) return np.array(result).reshape(1, -1) def sign_fun(self, input, threshold = 0): """ 부호 함수 입력이 .. forward propagation problem 2022.11.25 - [implement_ml_models] - implement_foward propagation 이전 1 ··· 6 7 8 9 10 11 12 다음