장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
-
기계 학습 개요1017분기계학습(저자 오일석)을 참고했습니다.기계학습이란기계학습이란 기계를 학습시킨다는 맥락에서 여러 정의를 가진다. 기계가 주어진 데이터에 대해 올바른 분류, 예측이 가능하게끔 학습시키는 과정이다. 기계학습이란 훈련집합을 이용해 데이터 생성 과정을 역으로 추청하는 문제다.데이터 생성 과정이란, 샘플 x가 발생할 확률과 target y(결과)를 모두 알고 있는 상황을 말한다. 우리는 보통 샘플에 대해 결과값만 알거나 샘플만 가지고 결과값이 없다. 샘플이 어떠한 과정으로 데이터를 생성하는지 알면 모델은 정확한 데이터 예측 또는 가상 데이터 생성이 가능해진다.기계학습이란 훈련집합에 없는 새로운 데이터, 테스트 집합에 대해 높은 성능을 보장하는 프로그램을 만드는 것이다. 즉, 일반화하는 작업이다. 테스트 집합에 대해..
-
Linear/Polynomial Regression1013분기계학습 선형, 다항 회귀 모델 실습하기 # Linear Regression Model 2차원 평면 상 데이터에 대해 해당 데이터를 잘 표현할 수 있는 선형 회귀 모델1. Loading the dataset# Generate 2-dimensionalX = [rand() * i * 0.5 - 20 for i in range(0, 100)]y = [x ** 3 * 0.002 - x ** 2 * 0.005 + x * 0.003 + rand() * 5 for x in X] 2. 데이터셋을 trainset & testset로 나누고 분포 시각화# Data random shuffleidx = list(range(length(x)))random.shuffle(idx)# Split data for train/test ..
-
[금융전략을 위한 머신러닝] NLP1010분# 자연어 처리: 파이썬 패키지1. NLTK가장 유명한 nlp 파이썬 라이브러리. 학습된 영어용 토크나이저 punkt 를 다운해 사용한다. 2. TextBlobNLTK 위에 빌드되는 테스트 처리 단순화 라이브러리3. spaCy단일 목적에 하나의 알고리즘만 제시하여 선택할 필요 없이 생산성에 집중할 수 있다. # 이론 및 개념텍스트 데이터를 전처리하고 텍스트를 통계적 추론 알고리즘에 입력하기 전에 예측 특성으로 표현 # 전처리1. 토큰화텍스트를 토큰이라고 하는 의미 있는 세그먼트로 분할하는 작업.> 세그먼트: 문장의 구성요소 (단어, 구두점, 숫자 등)- NLTK Punkt 2. 불용어 제거모델링에 값을 거의 제공하지 않는 매우 일반적인 단어를 어휘에서 제외''' from nltk.corpus impor..
-
지도 학습: 회귀(시계열 모델)0924분학습 목표: 시계열 모델 개념, 금융 데이터에서 시계열 모델로 미래 가치 예측하는 방법, 시계열 모델과 지도 회귀 모델의 비교, 시계열 예측에 사용할 수 있는 딥러닝 모델(LSTM) - 다양한 시계열 및 머신러닝 모델의 적용과 비교 - 모델 및 결과 해석, 선형 대 비선형 모델의 잠재적 과적합과 과소적합의 직관적 이해 - 머신러닝 모델에 사용할 데이터 준비와 변환 - 모델 성능 향상을 위한 특성 선택과 엔지니어링 - 모델 성능 향상을 위한 알고리즘 튜닝, 예측을 위한 ARIMA (시계열 모델) 이해, 구현, 튜닝 - LSTM 같은 딥러닝 기반 모델이 시계열 예측에 어떻게 사용되는 지 이해 목표와 예측 변수 간의 관계를 모델링한다예측 변수란 금융에서 회귀 기반 지도 학습의 활용 사례- 투자 기회 예측: 자..
-
[머신러닝] 오렌지3로 분류모델 학습하기0716분데이터 셋 - 캐글 Bank Customer Churn무엇이 고객 이탈에 영향을 미치는 지 살펴보고 고객 이탈 유무 판단하기 분류에는 이진 분류와 다중 분류가 있다. 이진 분류다중 분류레이블 두 개레이블 세 개 이상스팸 메일 분류손글씨(0~9)로 분류주요 알고리즘Logistic RegressionkNN분류모델 성능평가지표AUC(Area Under ROC Curve)CA(Classification Accuracy)F1-scoreMCC알고리즘Logistic Regression : 데이터가 어느 범주에 속하는지 [0,1]로 예측Regularization ridge regression , Lasso regressionLogistic vs. LinearLinear regression 의 결과 y에 Sigmoid ..
-
[머신러닝] 오렌지3로 회귀모델 실습하기0705분프로그래머스 강좌(오선영 강사님)를 이용해 머신러닝 감을 잡아보고자 한다. 우리는 우리가 말할 수 있는 것보다 더 많이 알고 있다. by M.Polanyi기계를 가르치기 위해서 기계가 스스로 깨달아야 하는 포인트가 있다. 그걸 위해 많은 학습 데이터로 공부시켜서 모델을 평가한다. (인간과 별반 다르지 않다는 사실이 놀랍다.) 기계학습지도학습 Supervised Learning회귀(Regression)분류(Classification)비지도학습 Unsupervised Learning군집(Clustering)연관분석(Association)강화학습 Reinforcement Learning지도 vs비지도학습 데이터에 정답지가 있느냐 없느냐의 차이Classification과 Clustering의 차이는 Superv..
기계학습(저자 오일석)을 참고했습니다.
기계학습이란
기계학습이란 기계를 학습시킨다는 맥락에서 여러 정의를 가진다. 기계가 주어진 데이터에 대해 올바른 분류, 예측이 가능하게끔 학습시키는 과정이다.
기계학습이란 훈련집합을 이용해 데이터 생성 과정을 역으로 추청하는 문제다.
데이터 생성 과정이란, 샘플 x가 발생할 확률과 target y(결과)를 모두 알고 있는 상황을 말한다. 우리는 보통 샘플에 대해 결과값만 알거나 샘플만 가지고 결과값이 없다. 샘플이 어떠한 과정으로 데이터를 생성하는지 알면 모델은 정확한 데이터 예측 또는 가상 데이터 생성이 가능해진다.
기계학습이란 훈련집합에 없는 새로운 데이터, 테스트 집합에 대해 높은 성능을 보장하는 프로그램을 만드는 것이다.
즉, 일반화하는 작업이다.
테스트 집합에 대해 높은 성능을 가지는 것을 일반화 능력이라고 한다.
훈련집합 + 테스트 집합 = 데이터베이스
프로그램을 모델이라고 볼 수 있다. 모델은 선형, 비선형으로 크게 나뉘며 여러 개가 존재한다. 가장 단순한 모델은 직선 모델이다.

(a)는 선 하나로 ㅁ 와 ㅇ 가 분리된다. (b)는 선으로 ㅁ 와 ㅇ 를 분리할 수 없다.
특징 공간을 분류한 직선 y = wx + b 가 모델이다!
여기서 x : feature, y : target , w : weigth, b : bias 으로 w, b가 매개변수다. 우리가 찾아야 할 값이란 뜻이다.
기계학습이란 가장 정확하게 예측할 수 있는, 최적의 매개변숫값을 찾는 작업이다.
매개변수는 업데이트를 거쳐 최적의 상태에 도달하게 되는데 이 작업을 학습, 훈련이라고 부른다.
기계학습의 목표
높은 일반화 능력: 낮은 바이어스와 낮은 분산을 가진 예측기를 가지는 것이다.
- 바이어스란, 데이터 생성 과정과 모델 사이의 차이를 의미한다. 즉, 학습한 데이터와 학습 결과 간 차이이다. 차이가 클수록 성능이 안좋다.
- 분산이란, 학습 결과들에 대해 유사한 값을 지속해서 생성할 수 있느냐를 의미한다.

보통 bias와 variance는 tradeoff 성질을 가지므로 바이어스의 희생을 최소로 유지하면서 분산을 최대로 낮추는 전략을 쓴다.
Feature space
기계가 패턴을 학습할 입력값을 넣어줘야 하는데 이를 feature라고 한다.
이 책에서는 feature을 가로축으로 표현하고, (열 벡터)T로 표현한다. 출력값은 세로축으로 나타난다.
feature 하나당 하나의 축으로 나타나며 하나의 차원을 가진다. 예를 들어, 웹사이트 문서에서 단어의 발생 빈도를 조사한 데이터베이스가 있다. 여기에 총 54,877개에 대한 단어에 대한 빈도를 조사했다면 54877차원의 특징 공간이 된다.
d차원의 데이터 x = (x1, x2, x3 .. xd)T는 모델 y = w1x1 + w2x2 + ... + wdxd + b 로 표현할 수 있고, 여기서 매개변수는 (w1, w2, ..., wd) 와 b 로 총 d+1 개를 가진다.
모델이 2차 곡선인 경우에는 d^2 + d + 1 개의 매개변수를 가진다.
매개변수가 많으면 추정해야 할 값이 많은 것이기 때문에 모델이 복잡하고 계산량이 많이 필요해진다.
특징 공간의 변환
앞서서 우리는 XOR gate를 분류하지 못하는 선형 모델을 보았다. 모델을 복잡하게 해서 정확도를 높일 수도 있지만 특징 공간 자체를 변환하면 간단한 모델로도 정확도를 높일 수 있다. 다시 말하면, XOR gate는 특징 공간 변환을 이용해 직선 모델로 100% 정확도를 이룰 수 있다. 이처럼 학습에 유리한 특징 공간을 찾는 작업을 중요하게 취급하는데 이를 표현 학습이라고 한다.
- 비지도 학습의 과업으로 특징 변환 알고리즘 뿐만 아니라 깊은 신경망의 은닉층 변환까지 포괄하여 표현학습이라고 부른다.

고차원 데이터에서는 표현 학습 알고리즘을 사용해야 하는데 여러 은닉층을 거쳐 저급 -> 고급 특징을 추출하는 과정이다.
ㅁ - ㅁ - ㅁ - ㅁ 네모 하나 당 층이라고 생각하면 왼쪽 은닉층에서 저급 특징(흔한, 공통 특징)을 추출하고 오른쪽으로 갈수록 고급 특징(저급 특징이 결합한 얼굴 등)을 추출하는 계층적인 특징 추출 기능을 이용한다.
각 차원에서는 동일한 알고리즘, 수식을 이용하므로 저차원에서 고안한 식은 고차원에서 그대로 적용할 수 있다.
데이터 발생은 작은 부분 공간에서 일어나고, 발생하는 데이터 변화에 일정한 규칙이 있다는 가정에서,
데이터 분포를 잘 표현하는 새로운 특징 공간으로 변환할 수 있다면 간단한 모델로도 높은 성능을 얻을 수 있다고 말한다.
데이터 가시화
가시화하려면 차원이 작아야 한다. 이를 위해 주성분 분석을 진행합니다. (나중일)
데이터 가시화로 데이터 분포 확인 -> 모델 선택 -> 학습 알고리즘 선택 등 중요한 의사결정에 도움을 받을 수 있다.
목적 함수, 비용 함수
objective function, cost function
앞서서 우린 w, b를 매개변수로 가지고, 최적의 매개변숫값을 찾기 위한 과정이 기계학습이라고 했다.
매개변수를 Θ = (w, b)T 로 표현하고, 이를 입력값으로 갖는 함수를 J(Θ) : cost function 이라고 한다. 가중치와 바이어스는 크면 분산이 커지거나, 학습 데이터와 차이가 많이 난다는 뜻이기 때문에 목적 함수를 최소화하는 최적의 해를 찾아야 한다.
보통은 찾을 때까지 대입하며 업데이트하고(수치적), 데이터 시각화 등을 통해 최적의 해를 유도하는 분석적 방법을 이용할 수도 있다.
수치적 방법 Numerical method
목적함숫값이 작아지는 방향을 찾아 매개변숫값을 조정하는 일을 반복한다. 조정은 보통 미분으로 한다. 이처럼 작은 개선을 반복해 최적의 해를 찾아간다.
난수를 생성해 초기해 o 설정
t = 1
while (j(o) 가 0 이랑 거리가 있을 동안 )
j 가 작아지는 방향 gradient 을 구함 // 미분
매개변수 업데이트
t = t + 1
o = ot
분석적 방법 Analytical method
목적함수를 미분해 나온 도함수 = 0 을 전개해 최적해 구하는 식을 유도한다. 유도한 식에 훈련 집합 샘플을 대입해 한꺼번에 최적해를 구한다.
Overfitting, Underfitting
과잉적합은 주어진 데이터 분포와 비교해 모델 용량이 너무 크다보다 아주 작은 잡음까지 수용해, 새로운 점에 대해 적절한 대처가 되지 않는 것을 말한다.
과잉, 과소 적합은 모두 훈련 집합과 테스트 집합 성능 차이가 커서 나타나는 문제로 일반화 능력이 낮다고 볼 수 있다.
이를 bias, variance 측면에서 바라보면 높은 바이어스를 가지거나 큰 분산을 가진 상황이라고 표현할 수 있다.
Validation set & Cross-Validation -> 모델 선택
일반화 성능을 높이는 방법은 많은 데이터다. 데이터 수집은 비용이 많이 들기 때문에 우리는 있는 훈련 집합을 잘 쪼개서 활용할 것이다.
ㅁ ㅇ 를 분리하기 위해 직선을 쓸지, 2차 곡선을 쓸 지 모델 선택이 필요하다. 이를 위해서 테스트 집합이 아닌 모델 성능 평가용 데이터 집합이 필요하다. 이를 검증 집합이라고 한다. 훈련 집합에서 일정 비율로 분리해서 사용하며 모델을 비교하는 데 사용된다. 학습 시킨 모델에 대해 검증 집합으로 성능을 측정한다.
앞서서 데이터 학습시킬 양도 부족한데 검증할 데이터랍시고 훈련 데이터 양이 더 줄어들면 곤란하다. 해서 교차검증 방법을 이용한다.
k-fold cross validation
훈련 집합을 n 개로 등분한다.
for ( each model in a model set )
for ( i = 1 to n )
train n-1 model expect for ith train set
validate performance with ith train set
model's performance = average of the performance
select a model with the best performance
evaluate the performance of a selected model
부트스트랩을 이용한 모델 선택
- 부트스트랩은 훈련 집합 x에서 pn개 샘플을 뽑아 새로운 훈련 집합 x'를 구성한다. 이때 샘플은 중복을 허용한다.
- x'로 모델을 학습시킨다.
- x-x' 를 검증 집합으로, 학습된 모델의 성능을 측정한다.
- 일정 횟수(T)만큼 성능을 측정하면 이를 평균내서 모델의 성능으로 취한다.
- 가장 높은 성능을 보인 모델을 선택한다.
- 테스트 집합으로 선택된 모델의 성능을 측정한다.
위 과정에서 중요한 것은 처음 모델 집합이다. 가능한 모델은 수없이 많다. (신경망, 강화 학습, SVM, 등등 ,,, 신경망 중에는 피드백 없는 MLP 가 있고 피드백이 있는 순환 신경망도 있다.) 실제로는 경험 지식을 통해 큰 틀 안에서 세부 모델을 선택하는 전략을 취한다. 이는 우리가 선택한 모델에 데이터 생성 과정을 끼워 맞추는 과정이라고도 묘사된다.
현대 기계 학습은 용량이 충분히 큰 모델을 선택한 후, 선택한 모델이 정상을 벗어나지 않도록 여러 규제 기법을 적용해 일반화 성능을 끌어올린다.
규제
높은 일반화 성능을 가지기 위해 용량이 큰 모델에 여러 규제를 적용한다고 했다. 규제의 방법에는 데이터 확대, 가중치 감쇠, 앙상블 등 여러 기법이 있다.
데이터 확대
데이터가 많으면 일반화 능력이 좋다. 근데 데이터 수집이 비용이 들다보니 훈련 집합에 있는 샘플을 변형해 인위적으로 데이터의 양을 늘려 사용한다.
가중치 감쇠 weight decay

Overfit 그래프를 보면 굴곡이 엄청나다. 이를 곡률(curvature)이 크다고 한다. 이는 매개변수 값이 너무 커서 정상을 벗어난 상황이다.
이처럼 가중치가 너무 크면 일반화 능력이 떨어진다. 이를 막기 위해 기존 목적함수에 새로운 항을 추가한 꼴이다.

새로운 항(사진에선 첫 번째 항)은 가중치 크기를 나타내는데, 가중치가 클수록 큰 값을 가진다. 최적화 알고리즘은 두 항의 합을 최소화하는 방향으로 학습을 진행하므로 결국 오류가 적으면서 계수가 작은 해를 찾아준다.
'Data Science > Machine Learning' 카테고리의 다른 글
Linear/Polynomial Regression (2) | 2024.10.13 |
---|---|
[금융전략을 위한 머신러닝] NLP (9) | 2024.10.10 |
지도 학습: 회귀(시계열 모델) (7) | 2024.09.24 |
[머신러닝] 오렌지3로 분류모델 학습하기 (0) | 2024.07.16 |
[머신러닝] 오렌지3로 회귀모델 실습하기 (2) | 2024.07.05 |