목록AI 공부/Machine Learning (22)
머신러닝/딥러닝 공부
1) 다중 분류 모델 코드 이전 포스팅에서 수정했던 다중 분류 코드를 가져오겠습니다. https://yhyun225.tistory.com/15?category=964332 분류 (4) - 다중 분류 (Multiclass Classification) 코드 구현 다중 분류 모델을 구현하기 위해 이번에는 Multiclass라는 클래스를 만들었습니다. 다른 모델들의 클래스와 코드가 거의 비슷하지만 가중치가 행렬 형태이기 때문에 행렬 연산이 들어갑니다. 저는 yhyun225.tistory.com 이 다중 분류 클래스에 predict(), score(), val_loss() 함수를 추가하겠습니다. 각 함수에 대한 설명은 아래 포스팅에 있습니다. https://yhyun225.tistory.com/16 데이터 세트(..
1) 규제(Regularization) 규제(Regularization)는 모델이 과대 적합을 피하여 일반화 성능을 잃지 않도록 가중치를 제한하는 방법으로, 과대 적합을 완화하기 위한 대표적인 방법입니다. 규제는 손실함수에 가중치의 노름(norm)을 더한 함수를 목적 함수(Objective function)로 설정하여 가중치를 제한합니다. - 가중치의 노름(norm)이란 가중치 벡터(혹은 행렬)의 길이(length) 또는 크기(magnitude)를 측정하는 방법입니다. - 목적 함수(Objective function)는 여러 분야에서 사용되는 단어이지만 머신러닝에서는 보통 '모델이 학습을 통해 최적화하고자 하는 함수'라고 해석합니다. 앞에서 제가 정리한 내용에서 대부분의 모델은 손실 함수(Loss fun..
머신러닝에서 과대 적합과 과소 적합은 모델의 성능을 낮추는 주된 원인입니다. 1 ) 과대 적합(over fitting) 과대 적합(over fitting)이란 모델이 훈련 세트에 과하게 적합한 상태가 되어 일반성이 떨어지는 현상입니다. 모델이 훈련 세트에 집착하여 학습을 하게 되는 것입니다. 위의 그림은 훈련 세트 내 데이터에 대해 적절한 모델을 빨간색, 과대 적합된 모델을 주황색으로 표현한 그림입니다. 과대 적합이 일어난 모델은 훈련 세트 내 모든 데이터를 섭렵하여 오차를 줄이려 하므로 주어진 훈련 세트 내 데이터에 대해서는 높은 정확도를 보여주지만 훈련 세트 외의 데이터에 대해서는 낮은 정확도를 보입니다. 즉, 기존 데이터의 규칙에 과하게 적응하여 새로운 데이터의 규칙을 잘 예측하지 못하는 것입니다...
1 ) 훈련 세트(training set)와 테스트 세트(test set) 여태까지의 포스팅에서 저는 모델을 구축한 뒤, 주어진 전체 데이터 세트로 학습을 시켰습니다. 이제 이 모델을 실전에 투입한다고 했을 때, 얼마만큼의 정확도를 갖는지를 먼저 판단해야 합니다. 만약 모델의 정확도를 판단하기 위해 만약 학습을 시켰던 데이터 세트로 다시 테스트를 하면 당연히 높은 정확도가 나올 것입니다. 이렇게 나온 높은 정확도는 당연히 낙관적으로 평가된 정확도이고, 올바르다고 할 수 없습니다. 따라서 모델의 실전에서의 성능을 평가하고자 한다면 학습을 시켰던 데이터 세트와 별개의(공통된 데이터가 없는) 데이터셋을 이용하여 평가해야 합니다. 물론 주어진 데이터셋 전체로 학습을 따로 하고, 테스트에 사용할 데이터셋을 따로 ..
다중 분류 모델을 구현하기 위해 이번에는 Multiclass라는 클래스를 만들었습니다. 다른 모델들의 클래스와 코드가 거의 비슷하지만 가중치가 행렬 형태이기 때문에 행렬 연산이 들어갑니다. 저는 행렬의 연산을 계산하기 위해 np.dot() 함수를 사용하였습니다. np.dot() 함수는 인자로 들어온 두 행렬이 모두 1차원이라면 np.sum처럼 점곱(inner product)를 계산해서 리턴해주고, 2차원 행렬이 섞여있을 경우 행렬의 곱을 계산하여 리턴해줍니다. import numpy as np a=np.array([1,2,3]) b=np.array([2,4,6]) c=np.dot(a,b) print(c) import numpy as np a=np.array([[1,2],[3,4]]) b=np.array(..