이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

학부 수업/머신러닝

  • 컴퓨터와 수학, 몽상 조금
15. 앙상블 (Ensemble)

15. 앙상블 (Ensemble)

2020.12.16
여러 분류기를 하나로 연결하여 개별 분류기보다 더 좋은 일반화 성능을 달성하는 방법을 앙상블이라 한다. 여러 분류 알고리즘을 사용하는 투표Voting 기반 방법과 하나의 분류 알고리즘을 여러 번 사용하는 배깅Bagging, 부스팅Boosting 방법이 있다. 투표 방법: 동일한 학습 데이터를 사용한다. 배깅: 각 모델마다 서로 다른 학습 데이터를 추출하여, 여러 개의 모델을 생성 (Random Forest 등) 부스팅: 샘플링에서 잘못 분류된 데이터 50%를 재학습에 사용 또는 가중치를 사용 다수결 투표Majority Voting 동일한 데이터로 여러 개의 모델을 구축한다. (선형 회귀, 결정 트리 등) 이후 각 결과값의 다수결 투표를 진행하여 최종 예측값을 낸다. 배깅Bagging 알고리즘마다 별도의 ..
14. 교차 검증 (Cross Validation)

14. 교차 검증 (Cross Validation)

2020.12.16
사이킷런 파이프라인 사이킷런의 pipeline 클래스는 연속된 변환을 순차적으로 처리할 수 있는 기능을 제공하는 유용한 래퍼 도구이다. 전처리와 모델 등을 설정하고, 학습 데이터와 테스트 데이터를 넣어 편리하게 성능을 측정할 수 있다. pipe_lr = make_pipeline(StandardScaler(), PCA(n_components=2), LogisticRegression(solver='liblinear', random_state=1)) pipe_lr.fit(x_train, y_train) y_pred = pipe_lr.predict(x_test) print('테스트 정확도: %.3f' % pipe_lr.score(x_test, y_test)) 교차 검증 교차 검증이란, 머신러닝 모델의 성능을 검..
13. 주성분 분석 (Principal Component Analysis: PCA)

13. 주성분 분석 (Principal Component Analysis: PCA)

2020.12.16
주성분 분석은 비지도 학습 기반 차원 축소 방법 중 하나로, 사영 후 원 데이터의 분산을 최대한 보존할 수 있는 기저인 Principal Axis/Principal Component를 찾아 차원을 줄이는 방법이다. 데이터를 사영시켰을 때, 손실되는 정보의 양이 적은 기저(축)을 찾아서 선택한다. PCA의 배경 데이터 $X$의 사영 변환된 변수(주성분) $Z$에서 분산이 보존되도록 하는 기저 $a$를 찾는 것. $$ Z_1 = a^T_1X = a_{11}X_1 + a_{12}X_2 + \cdots + a_{1p}X_p \\ Z_2 = a^T_2X = a_{21}X_1 + a_{22}X_2 + \cdots + a_{2p}X_p $$ 공분산Covariance 공분산은 변수의 상관 정도로, $n$개의 데이터와 ..
12. 차원 축소 (Dimension Reduction)

12. 차원 축소 (Dimension Reduction)

2020.12.16
차원 축소는 데이터 전처리의 일종으로, 말 그대로 데이터의 차원을 줄이는 과정이다. 고차원 데이터를 머신러닝에 적합한 저차원의 데이터로 축소한다. 차원의 저주Curse of Dimension 차원이 증가할 수록 동일 정보량을 표현하기 위해 필요한 데이터의 수가 지수적으로 증가한다. 차원이 증가하면서, 학습 데이터 수가 차원 수보다 적어져 모델 성능이 저하된다. 데이터 차원이 증가할 수록, 데이터들의 밀도가 희박sparse해져서 학습이 어려워진다. 데이터의 수에 비해 특성의 수가 많아지면 발생한다. 차원 축소 배경 이론적으로, 차원의 증가는 모델의 성능을 향상시킨다. (각 변수가 독립일 경우) 그러나 실제로는 차원의 증가가 모델 성능 저하를 야기한다. 각 변수들이 상관관계가 있고, 노이즈가 존재하기 때문 ..
11. 군집화 (Clustering)

11. 군집화 (Clustering)

2020.12.15
군집화란, 유사한 속성을 갖는 데이터를 $n$개의 군집으로 나누는 것이다. 좋은 군집화는 동일한 군집에 소속된 데이터는 서로 유사하게(inter-class similarity), 상이한 군집에 소속된 데이터는 서로 다르게(intra-class dissimilarity) 군집화하는 것이다. 분류와 군집화 분류는 사전 정의된 범주가 있는 데이터로부터 예측 모델을 학습하는, 지도 학습 문제이다. 반면 군집화는 사전 정의된 범주가 없는 데이터로부터 최적의 그룹을 찾아가는 비지도 학습 문제이다. 군집화 수행 시 주요 고려사항 어떤 거리 측도를 사용하여 유사도를 측정할 것인가? (Similarity Metric 선정) 어떤 군집화 알고리즘을 사용할 것인가? 어떻게 최적의 군집 수(K)를 결정할 것인가? 어떻게 군집..
10. 비선형 서포트 벡터 머신 (Non-linear SVM)

10. 비선형 서포트 벡터 머신 (Non-linear SVM)

2020.11.25
지난 글에서 선형 SVM인 하드 마진 SVM과 소프트 마진 SVM을 다뤘다. 이번에는 선형으로 분류할 수 없는 문제를 해결하는 비선형 SVM인 커널 SVM을 알아보자. 커널 SVM은 커널 함수Kernel Function$(\phi)$를 통해 데이터의 차원을 올려서 분류를 수행한다. 즉, 커널 SVM도 결정 경계는 선형이다. 다만 데이터 $X$를 Feature Map의 내적을 통해 차원 증가 시켜서, 데이터의 Original Space가 아닌 분류가 쉬운 고차원의 Feature Space에서 분류를 수행하는 것이다. 커널 함수 데이터의 차원을 증가시키는 커널 함수는 효율적인 방법이 있다. $$ \phi(x_1, x_2) = (x_1, x_2, x_1^2, x_2^2, x_1x_2) $$ 2D 데이터를 5D..
9. 서포트 벡터 머신 (Support Vector Machine: SVM)

9. 서포트 벡터 머신 (Support Vector Machine: SVM)

2020.11.25
서포트 벡터 머신은 딥러닝 이전에 가장 일반적이고 뛰어난 성능을 보였던 지도학습 모델이다. 주로 분류 문제에 많이 사용되지만, 회귀 문제에도 사용할 수 있다. SVM은 두 데이터 집합을 나누는 결정 경계의 마진이 최대화 되도록 학습한다. 마진이란, 결정 경계와 데이터의 거리를 의미한다. 용어 결정 경계: 결정 경계는 두 클래스의 데이터를 분류하는 기준이 되는 경계로, Linear SVM의 결정 경계는 데이터의 feature $n$차원의 초평면Hyperplane이 된다. 서포트 벡터Support Vector: 결정 경계에 가장 가까이 있는 각 클래스의 데이터를 의미한다. 마진Margin: 어떤 데이터도 포함하지 않는 영역. 서포트 벡터와 결정 경계의 거리. Linear SVM 결정 경계를 이루는 초평면 $..
8. 의사 결정 트리 (Decision Tree)

8. 의사 결정 트리 (Decision Tree)

2020.10.23
의사 결정 트리는 학습 데이터에 내재되어 있는 데이터의 패턴을 통해 데이터를 예측, 분류하는 모델이다. 개념적으로, 우리가 흔히 하는 스무 고개 놀이와 비슷하다. If ~ Then 규칙으로 모델이 구현되기 때문에 모델의 판단에 대한 설명이 용이하며(Explainable), 데이터의 통계적 가정이 필요하지 않다. 그러나 의사 결정 트리를 생성하기 위해 많은 데이터가 필요하고, 시간이 많이 소요된다는 단점이 있다. 또한, 모델이 데이터에 민감하여, 학습 데이터와 테스트 데이터 간의 차이가 적어야 좋은 결과를 얻을 수 있다. 의사 결정 트리의 학습과 추론 모델의 학습은 다음 과정의 반복으로 이루어진다. 설명 변수의 데이터를 2개 이상의 부분 집합으로 분리한다. 분리된 집합을 다른 변수를 활용해 또 다시 분리한..
7. 판별 분석 (Discriminant Analysis)

7. 판별 분석 (Discriminant Analysis)

2020.10.21
판별 분석이란 분류에 사용되는 머신러닝 방법 중 하나로, 두 개 이상의 모집단에서 추출된 표본들의 정보를 활용하여, 이 표본들이 어떤 집단에서 추출된 것인지를 결정할 수 있는 기준을 찾는 분석법이다. 구글에 LDA를 치면 나오는 Latent Dirichlet Allocation과는 다른 것이니 주의하자. 판별분석은 투영을 이용한 차원 축소 방법이다. 예를들어, 아래는 2개의 변수를 갖는 데이터에 대한 LDA이다. 오른쪽 그림에서 찾아낸 축에서, 두 집단의 투영된 분포가 확연히 분리되어 있는 것을 확인할 수 있다. LDA를 위한 표본은 통상적으로, 전체가 독립변수의 갯수보다 3배 이상 커야하고, 종속 변수의 집단 각각의 표본 크기 중 최소 크기가 독립변수의 갯수보다 커야 한다. (데이터의 전체 갯수보다, ..
6. 규제, 정규화 (Regularization)

6. 규제, 정규화 (Regularization)

2020.10.21
Regularization은 정규화, 규제 등으로 불리는 방법으로, 머신러닝에서 모델이 가질 수 있는 파라메터의 값에 제약을 부여하여 오버피팅을 방지하고, 모델의 강건함을 높이는 방법론이다. Regularization의 직역은 정규화가 맞지만, Normalization과 혼동하기도 쉽고 실제로 머신러닝에서의 역할을 규제라는 뜻이 더 부합하기에 본 블로그에서는 규제라는 한글 표기를 사용한다. 하지만 헷갈리지 않기 위한 가장 좋은 방법은 그냥 영문 용어를 외우는 것이다. 규제의 필요성 모델이 가질 수 있는 오차의 기댓값은 크게 편향bias과 분산variance이 있다. 규제는 이 중 분산을 줄여 머신러닝의 정확도 향상에 기여한다. (다만, 이 과정에서 편향이 증가할 수 있기 때문에 적절한 조절이 필요하다.)..
5. 선형 회귀 (Linear Regression)

5. 선형 회귀 (Linear Regression)

2020.10.21
선형 회귀는 실수형 입력 데이터 $X$와 연속형 종속 변수 $Y$가 선형 관계를 가질 것이라 보고, 이 관계를 가장 잘 설명하는 회귀 계수Regression Coefficient를 데이터로부터 찾아내는 모델이다. 특히, 입력 데이터가 벡터 형태로 여러 값이 주어질 경우 다중 선형 회귀Multiple Linear Regression라 한다. 다중 선형 회귀 모델 $$ y = \beta X + \varepsilon$$ $\beta$는 회귀 계수, $\varepsilon$은 오차항이라고 하는데, 최근 딥러닝에서는 아래와 같은 노테이션을 사용하기도 한다. $$ y = WX+b $$ $W$는 가중치weight, $b$는 편향bias이라고 하는데, 역할은 위의 식과 똑같다. 필자는 이 노테이션이 익숙한 관계로, 앞..
4.5. 머신러닝의 정확도, 정밀도, 재현율 (Accuracy, Precision, Recall)

4.5. 머신러닝의 정확도, 정밀도, 재현율 (Accuracy, Precision, Recall)

2020.09.23
머신러닝의 결과 분석에는 다양한 지표를 사용한다. 이때, 주로 흔히 사용되는 지표인 정확도, 정밀도, 재현율을 살펴보자. 암 진단 모델을 예시로 들어보자. 암 진단 결과에는 양성Positive과 음성Negative이 있을 수 있고, 모델은 정답을 맞추거나 실패할 수 있다. 즉, 가능한 결과는 True Positive, True Negative, False Positive, False Negative의 4가지 이다. 먼저, 가장 흔히 사용되는 정확도Accuracy는 말 그대로 전체 샘플 중 맞게 예측한 샘플 수의 비율이다. $$ \text{accuracy} = \frac{\text{TP}+\text{TN}}{\text{TP}+\text{TN}+\text{FP}+\text{FN}} $$ 정밀도Precisio..
  • 최신
    • 1
    • 2
  • 다음

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (276)
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (42)
      • 회고 & 계획 (16)
      • 내 이야기 (8)
      • 리뷰 (3)
      • 군대에 간 공돌이 (9)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
반응형

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바