기간 : 9/15 ~ 9/19

컴퓨터한테 기계학습만 시키다가 정작 내 학습은 제대로 못한 한 주


📕 5주차 리뷰

배우는 과정도 심화되고 EDA 미니 프로젝트까지 챙기면서 정말 정신 없이 보낸 한 주였다. '미니' 프로젝트인데다 그냥 데이터 전처리만 잘하면 되겠거니 가볍게 생각했지만, 이제껏 전처리가 쉬웠던 건 학습용 데이터가 우리에게 너무나 친절한 형태로 되어 있었기 때문이었다.

 

정돈되지 않고 컬럼 설명도 없이 방대한 숫자들만 가득한 진짜 데이터는, 각 컬럼이 뭐고 각 숫자가 뭘 의미하는지 파악하는 데에만 일 단위의 시간을 뺏어갔다.


Keep

아직까지는 아는 내용의 파트라서 복습이 까다롭진 않지만, 기존에 잘못 알고 있던 내용이나 세세하게 헷갈리는 내용들은 지속적으로 수업정리 노션을 들여다보며 되새김질을 해야겠다.

 

국비과정 특성상 압축적이고 스피디하게 달려가는 수업 진도에서 생략되는 내용(명칭의 의미, 수식 유도, 용어 설명 등)이 매우 많은데, 이 부분은 내 나름의 방법과 전공지식으로 메우면서 이해도를 쌓아가고 있다.


💥 Problem

1. 경사 하강법

매 점마다 기울기를 검사하여 이 기울기가 0이 되는, 정확히는 손실 함수의 최소점이 되는 지점을 찾는 과정.

 

머신러닝에 적용되면서 어려운 말들로 포장되어 있지만, 사실 고등학교에서 배우는 도함수 판정법과 똑같고, 실제로 그것을 그대로 컴퓨터로 옮긴 기법이라 직관적이다.

 

경사 하강법의 한계

  • 적절한 학습률 선정의 어려움
  • 로컬 미니멈
  • Plateau 현상
  • 안장점(Saddle Point) : 기울기가 0에 가까워지지만 극값이 아닌 점
    = 이계도함수의 부호가 바뀌지 않는 변곡점

2. 회귀 모델 평가 지표

  • 평균 제곱 오차(MSE)
  • 평균 제곱근 오차(RMSE) : MSE의 절대수치를 완화하기 위해 루트를 추가한 것
  • 평균 절대 오차(MAE)
  • 결정 계수(R2 Score) : 예측var / 실제var

3. 로지스틱 회귀

이름이 회귀지만 분류 알고리즘

출력값이 특정 클래스에 속할 확률을 예측하여 Soft하게 결과값을 냄

 

시그모이드 vs 소프트맥스

= 단일 출력값 vs 다중 출력값

+) 소프트맥스가 반환하는 출력값들의 총합은 1

 

오차 행렬

모델이 예측에 대해 얼마나 헷갈리고 있는지를 보여주는 행렬

정답 여부(T/F)와 모델이 예측한 값(P/N)을 통해 취약점과 강점을 구분

4. 결정 트리

조건에 따라 노드 분할 후, 각 Leaf의 최종값 중 비율이 높은 쪽으로 결정 트리의 출력값 결정

 

지니 불순도(GI)

분류해야 할 데이터 내에 얼마나 다양한 클래스가 존재하는지

 

엔트로피(H)

데이터의 혼잡도

엔트로피가 낮을수록 트리의 순수도가 높음

 

정보 이득(IG)

특정 노드를 분할했을 때 불순도가 더 크게 줄어드는 분기조건을 찾아 분할

5. SVM

데이터를 분리하는 최적의 초평면을 찾는 분류 알고리즘

margin이 최댓값이 되도록 결정경계를 형성

margin: 양측 서포트 벡터를 지나고 결정경계에 평행한 두 초평면 사이의 거리

 

margin 공식이 이렇게 생긴 이유

딱 봤을 때 너무 간결하게 생겨서 저게 어떤 의미일지 생각해봤다.

초평면에 수직인 단위 법선벡터 u를 상정하고, 서포트 벡터와 u의 내적으로 거리를 구하면 분자가 2가 될 수밖에 없다.

결정경계 판별식이 [-1, 1] 구간에 있기 때문에.

6. SVM 회귀

margin 내 오차를 허용하면서 결정경계를 회귀선처럼 사용하여 예측

margin 내에 최대한 많은 데이터 포인트를 포함하는 것이 목표

7. Boosting

그냥 경사 하강법을 여러 모델로 돌리는 것

 

경사 하강법: 각 점마다의 미분값으로 기울기가 0이 되는 점 탐색

부스팅: 각 모델마다의 잔차로 최종 오차가 최소화되는 점 탐색


🚩 Try

요즘 코테 문제풀이가 거의 안되고 있다. 문제를 볼 시간도 없고, 복습과 프로젝트만으로도 하루하루가 타이트하다. 프로그래머스 데일리 문제풀이도 사실상 멈췄다. 하지만 취업하려면 코테를 놓을 수는 없다. 하긴 해야 한다...

 

일단 ML 미니 프로젝트와 매일매일 수업 따라가는 것부터 잘 챙겨야겠다.

+ Recent posts