일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- word2vec
- fairness
- 인공지능
- Bert
- nlp
- 설명가능성
- 머신러닝
- 챗지피티
- Ai
- trustworthiness
- ChatGPT
- DevOps
- XAI
- Tokenization
- GPT-3
- Transformer
- 자연어
- AI Fairness
- GPT
- 딥러닝
- MLOps
- gpt2
- 신뢰성
- ML
- cnn
- 인공지능 신뢰성
- 케라스
- 지피티
- 챗GPT
- 트랜스포머
- Today
- Total
목록머신러닝/ML basic (9)
research notes
데이터 세트의 각 feature 값 범위가 크게 다를 경우 학습시에 손실함수가(loss function) 제대로 동작하지 않을 수 있으며, 경사하강법이(gradient descent) 피쳐 스케일링을 사용하지 않을 때보다 훨씬 빠르게 수렴하기 때문에 피쳐 스케일링 사용이 권고된다. e.g.) x1 = size (0-2000 feet), x2 = number of bedrooms (1-5) 해당 feature 값의 범위에서 생성된 손실함수의 등고선을 분석해보면 큰 범위 차이로 인해 세로로 크고 얇은 모양을 나타낸다. 이런 종류의 손실함수에서 경사하강법을 실행하면 전역 최소값을(global minimum) 찾는 데 오랜 시간이 걸릴 수 있다. *** 표준화 및 정규화 *** 표준화(Standardizatio..
1. 결정트리 개요 if-else(규칙조건)를 자동으로 찾아내 예측을 위한 규칙을 만드는 알고리즘으로 이해하면 된다. 결정트리는 정보의 ‘균일도’라는 룰을 기반으로 트리를 분할하며, 알고리즘이 쉽고 직관적이다. ‘균일도’를 측정하는 대표적인 방법은 엔트로피를 이용한 정보이득(Information Gain)지수와 지니 계수가 있다. 트리의 깊이(Depth)가 깊어질수록 결정 트리의 예측 성능이 저하될 가능성이 높다. 결정 트리 장점 결정 트리 단점 쉽다. 직관적이다 피처의 스케일링이나 정규화 등의 사전 가공 영향도가 크지 않음 과적합으로 알고리즘 성능이 떨어진다. 이를 극복하기 위해 트리의 크기를 사전에 제한하는 튜닝 필요 2. 균일도 결정트리를 분할할 때 최대한 균일한 데이터 셋을 구성할 수 있도록 분할..
1. 차원의 저주 차원이 커질수록 데이터 포인트들간 거리가 크게 늘어나고 데이터가 희소화(Sparse)됨 수백~수천개 이상의 피처로 구성된 데이터 포인트들간의 거리에 기반한 ML 알고리즘이 무력화 됨 또한 피처가 많을 경우에 개별 피처간에 상관관계가 높아 선형회귀와 같은 모델에서는 다중 공선성 문제로 모델의 예측 성능이 저하될 가능성이 높음 다중공선성 문제: 독립변수간의 상관관계가 매우 높아 하나의 독립변수의 변화가 다른 독립변수에 영향을 미쳐 결과적으로 모델이 불안정하게 되는 것을 의미한다. 2. 차원축소의 장점 만약 수십~수백개의 피처들을 작은 수의 피처들로 축소한다면? 학습 데이터 크기를 줄여서 학습시간 절약 불필요한 피처들을 줄여서 모델 성능 향상에 기여 (주로 이미지 관련 데이터) 다차원의 데이..
1. K-Means Clustering 군집 중심점(Centroid)이라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트들을 선택하는 군집화 기법 먼저 군집화의 기준이 되는 중심을 구성하려는 군집화 개수만큼 임의의 위치에 가져다 놓는다. 전체 데이터를 2개로 군집화하려면 2개의 중심을 임의의 위치에 가져다 놓는 것이다. 임의의 위치에 군집 중심점을 가져다 놓으면 반복적인 이동 수행을 너무 많이 해서 수행 시간이 오래 걸리기 때문에 초기화 알고리즘으로 적합한 위치에 중심점을 가져다 놓지만, 여기서는 설명을 위해 임의의 위치로 가정한다. 각 데이터는 가장 가까운 곳에 위치한 중심점에 소속된다. 이렇게 소속이 결정되면 군집 중심점을 소속된 데이터의 평균 중심으로 이동한다. 중심점이 이동했기 때문..
If you want to build a solid model you have to follow that specific protocol of splitting your data into three sets: One for training, one for validation and one for final evaluation, which is the test set. The idea is that you train on your training data and tune your model with the results of metrics (accuracy, loss etc) that you get from your validation set. Your model doesn't "see" your vali..
위 예는 과소적합과(Underfitting) 과적합의(Overfitting) 문제를 보여줌과 동시에 비선형(non-linear) 함수를 근사화하기 위해 어떻게 다항 선형 회귀를 사용할 수 있는지 방법을 보여준다. 플롯은 근사화하려는 코사인 함수의 일부, 실제 함수의 샘플 및 다른 근사하려는 모델을 표시하고 있다. 먼저 선형함수(차수가 1인 다항식)가 훈련 샘플에 적합하지 않음을 알 수 있는데 이것을 과소적합이라고 한다. 차수가 4인 다항식은 실제 함수에 거의 완벽하게 근사하지만, 더 높은 차수의 모델은 훈련 데이터에 과적합된다. 즉, 훈련 데이터의 노이즈를 학습한다. 교차검증을(cross-validation) 이용하여 과적합/과소적합을 정량적으로 평가할 수 있다. 검증세트에서 평균 제곱 오차(MSE)를 ..
- 일반적으로 모델이 분류냐 회귀냐에 따라 성능평가지표는 여러 종류로 나뉜다. - 회귀의 경우 대부분 실제값과 예측값의 오차평균에 기반 ex) MAE, MSE 등 - 분류의 경우 회귀와는 다른 성능평가지표가 사용된다. - ex) 정확도(Accuracy), 오차행렬(Confusion Matrix), 정밀도(Precision), 재현율(Recall), F1-Score, ROC-AUC 1. 정확도 - 정확도(Accuracy) = 실제 데이터와 예측결과가 동일한 데이터 건수 / 전체 예측 데이터 건수 = (TN+TP) / (TN+FP+FN+TP) - 정확도 평가 지표는 불균형한 레이블 데이터 세트에서는 성능 수치로 사용돼서는 안 된다. 즉, 정확도는 불균형한(imblanced) 레이블 값 분포에서 ML 모델의 ..
1. Estimator 이해 및 fit(), predict() 메서드 사이킷런은 매우 많은 유형의 Classifier와 Regressor 클래스를 제공한다. 이들 Classifier와 Regressor를 합쳐서 Estimator 클래스라고 부른다. 즉, 지도학습의 모든 알고리즘을 구현한 클래스를 통칭해서 Estimator라고 부른다. 2. 교차검증 ① 홀드아웃 교차검증(holdout cross-validation) 데이터를 학습 데이터 세트와 테스트 데이터 세트 두 개로 나누는 것이며, 보통 데이터의 2/3을 학습 데이터 세트로 사용하고 1/3을 테스트 세트로 사용한다. ② k-겹 교차검증(k-fold cross-validation) 가장 보편적으로 사용되는 교차검증 기법으로 먼저 k개의 데이터 폴드 세..
1. type() and .shape array1 = np.array([1, 2, 3]) array2 = np.array([[1, 2, 3]]) print('array1 type: ', type(array1)) print('array1 shape: ', array1.shape) print('array2 shape: ', array2.shape) array1 type: array1 shape: (3,) array2 shape: (1, 3) 2. ndarray data type - ndarray 내의 데이터 타입은 같은 데이터 타입만 가능 - ndarray 데이터 값의 타입변경은 astype() 메서드를 사용 array_int = np.array([1, 2, 3]) array_float = array_int..