역전파(Back propagation) 역전파(Back propagation)는 다층 퍼셉트론 모델을 이루는 가중치들을 개선하기 위해 개발된 여러 알고리즘들 중 가장 유명하고 널리 쓰이는 방법입니다. 이번 실습에서는 역전파를 간단하게 실습해보기 위해, 퍼셉트론 한 개의 가중치들을 개선시키는 역전파를 구현해 보도록 합니다. 다음 그림은 이번 실습에서 사용되는 퍼셉트론을 나타냅니다. 입력은 x_1, x_2, x_3x1,x2,x3 세 개의 정수로 주어지고, 각각 w_1, w_2, w_3w1,w2,w3의 계수가 곱해져 sigmoid 함수를 통과할 값은 x_1w_1 + x_2w_2 + x_3w_3x1w1+x2w2+x3w3가 됩니다. 여기서 w_1, w_2, w_3w1,w2,w3가 바로 ..
회귀 알고리즘 평가 어떤 모델이 좋은 모델인지, 목표를 얼마나 잘 달성했는지 정도를 평가하는 지표 평가 지표 선정 방법 절대적인 평가 지표는 존재하지 않음 다양한 평가 지표를 적용해보고, 결과값을 비교하며 모델의 성능을 다양한 측면에서 확인해봐야 함 목표 달성 평가 방법 실제 값과 모델이 예측하는 값의 차이에 기반한 평가 방법 사용 - RSS, MSE, MAE, MAPE, R^2 RSS(Residual Sum of Squares) - 단순 오차 : 실제값과 예측값의 단순 오차 제곱 합, 값이 작을수록 모델의 성능이 높음. 가장 간단한 평가 방법으로 직관적인 해석이 가능함 전체 데이터에 대한 실제 값과 예측하는 값의 오차 제곱의 총합 오차를 그대로 이용하기 때문에 입력값의 크기에 의존적임 MSE(Mean ..
다항 회귀란? Y를 X에 대한 임의의 다항 함수로 모델링하는 선형 회귀를 의미합니다. 다항 회귀는 먼저 입력 데이터 X에 대한 전처리를 진행해준 후 다중 선형 회귀를 적용함으로써 구현됩니다. 사이킷런을 이용하면 입력 데이터에 대한 전처리를 편리하게 진행할 수 있습니다. 다항 회귀를 위한 사이킷런 함수/라이브러리 PolynomialFeatures(degree, include_bias) : Polynomial 객체를 생성합니다. degree : 만들어줄 다항식의 차수를 의미합니다. include_bias : 편향 변수의 추가 여부를 설정합니다. (True/False) True로 설정하게 되면, 해당 다항식의 모든 거듭제곱이 0일 경우 편향 변수를 추가합니다. 이는 회귀식에서 베타0와 같은 역할을 합니다. [..
사이킷런 라이브러리 : 머신러닝 모델 구현 뿐만 아니라 예시 데이터 셋, 데이터 전처리, 세부 조정, 모델 평가등과 같은 유용한 기능들을 제공 데이터 준비를 위한 사이킷런 함수/라이브러리 from sklearn.model_selection import train_test_split : 학습용 데이터와 테스트용 데이터를 나누어주는 기능을 불러옵니다. train_test_split(X, y, test_size=0.3, random_state=0) : 데이터의 70%를 학습에 사용하고, 나머지 30%의 데이터를 테스트용 데이터로 나눈 결과 데이터를 반환합니다. 단순 선형 회귀를 위한 사이킷런 함수/라이브러리 from sklearn.linear_model import LinearRegression : 단순 선형..
회귀 분석의 절차 X라는 값이 입력되면 Y = 베타0 + 베타1*X라는 계산식을 통해 값을 산출하는 예측 함수를 정의한다. 실제 값 y와 예측 함수를 통해 도출된 예측값 pred_y간의 차이를 계산한다. 계산한 차이에 기반하여 베타0와 베타1를 업데이트하는 규칙을 정의하고 이를 바탕으로 베타0와 베타1의 값을 조정한다. 위의 과정을 특정 반복 횟수(iteration) 만큼 반복한다. 반복적으로 수정된 베타0와 베타1를 바탕으로 Y = 베타0 + 베타1*X라는 회귀식을 정의한다. import numpy as np import matplotlib.pyplot as plt # 데이터를 생성하고 반환하는 함수 def load_data(): X = np.array([[8.70153760], [3.90825773]..