본문 바로가기

COMPUTING/AI

혼공 머신러닝 + 딥러닝 4주차 공부 인증

여러 가지

안녕하세요
3주 차 과제까지 화요일쯤에 올린 후, 그다음주가 명절이었죠? 저는 오랜만에 온 가족이 모여서 즐거운 시간을 보냈습니다. 새로운 학교에 입학하는 사촌 동생들도 보고, 벌써 말을 또박또박하는 조카도 보고 굉장히 기분이 오묘했습니다. 벌써 시간이 이렇게 훌쩍 지났다니...! 제20대가 마저 증발해 버리기 전에 하나라도 더 보고 경험하며 살아야겠다는 생각이 문뜩 들었네요.

족장님께서 2주 차 보상으로 기프티콘도 보내주셨더라고요?! 제가 메가 커피를 자주 다니는 건 어떻게 아시고 참 ㅎㅎ 그렇게 받은 기프티콘을 어머니께 자랑했는데, 은근히 어머니께서 좋아하시길래 그냥 드렸습니다. 매주 주말마다 삼촌들이 오시는데 그때 잘 썼다고 하셨습니다 :) 고마워요!

 

3주 차 과제를 올리고서는 쭉 가족들과 시간을 보냈습니다. 가끔 고등학교 동창들 만난 것 빼고는 말이죠. 제가 30일부터 학교로 내려가서 학교 사람들과 지내야 하기 때문에, 남은 방학시간엔 가족들과 함께 보내려고 했습니다. 많이 행복했어요. 이렇게 즐거워도 될 정도로 좋은 시간을 보냈습니다. 산책도 하고 쇼핑도 하고 영화도 보고.. 그동안 울적하게 지내왔던 시간들이 무색하게 잘 놀았습니다.

 

물론 제 자신을 위한 노력도 멈추지 않습니다. 시간 나면 책을 읽으려 했습니다. 독서하라는 여러 군데의 압박(?)이 있었기도 했지만, 읽기 쉬웠던 책들도 많았으니까요. 열심히 읽고 기록하고 책방에서 책사고 또 읽고 그랬네요.

무엇보다도 혼공책도 계속 들여다봤습니다. 이게 늘 해오던 관성이 있어서 저도 모르게 설 명절 주에도 노트북을 켜게 되더라고요 ㅋㅋ 열심히 자판 두들기면서 계속 배워나갔네요.

그럼 이번 주 혼공 포스팅 시작합니다!

 

CHAPTER 5 트리 알고리즘

일단 시작하기 전에 진실 하나를 고하고 갑니다. 제가 전적대에 머물었을 때, 이 트리 모델이 분명 책에 있었음에도 불구하고 교수님께서는 빠르게 건너뛰셨었습니다. 그래서 이 트리 모델이 뭐고 어떻게 해서 머신러닝 기법으로 사용되는지 어떠한 배경지식도 없던 상황입니다. 그래서... 이번기회에 공부를 하긴 했는데... 여전히 어려운 부분은 많습니다. 제가 틀릴 수 있는 부분이 존재하는 것을 감안하시고 봐주셨으면 좋겠습니다. 

 

이번 챕터는 결정 트리에 대해 다룹니다. 결정 트리라는 녀석을 공부할 때 개인적으로는 부조화가 조금 일어났어요. 트리 모델의 메커니즘은 수많은 케이스들을 가지를 쳐 나가면서 클래스를 나눠가겠다는 것이죠. 이게 겉에서 트리 모형으로 보면 자식 노드로 갈수록 점점 폭이 넓어지는 확장되는 모습을 띠는데, 실제로는 계속 범주를 겹쳐가면서 해당하는 대상을 좁혀나가고 있는 것이죠. 직관적으로 와닿는 부분이 아닌지라 조금 힘들었습니다. 그렇지만 마치 flow chat처럼 계속 질문을 던지고 분기하는 모습은 익숙했기 때문에 그나마 괜찮았었습니다.

또한, 검증도 이번에 처음 알게 된 기법입니다. 검증은 별것 없습니다. 조금 '결이 다른' 테스트 세트라고 보면 좋을 것 같더군요. 교차 검증 역시 별것 없습니다. 훈련세트에서 원하는 개수로 부분을 나누고,  그중 하나를 검증 세트로 둡니다. 검증 세트가 나머지 훈련 세트로 훈련한 모델을 평가하고 검증 점수를 산출합니다. 이제, 다른 부분을 검증 세트로 두고 다시 이과정을 반복합니다. 전체 세트가 한 번씩 검증 세트를 거쳤을 때, 해당 교차 검증을 멈추고 그동안 얻은 검증 점수를 평균 냅니다. 이것이 최종 검증 점수가 될 것입니다.

K-fold cross validation 기법 그림(5겹일때) - 출처:http://ethen8181.github.io/machine-learning/model_selection/model_selection.html

교차검증은 책에도 서술되었다시피 검증 세트의 크기가 작아 검증 점수가 불안정할 경우에 사용되는 기법입니다. 교차 검증을 하면 아무래도 모든 훈련세트를 활용하는 것이니, 일반화된, 안정적인 점수를 얻을 수 있을 것입니다. 재미난 점은 3절에서 다루는 앙상블 모델과 이 교차검증이 유사합니다. 조금 모자란 단일 모델의 성능을 보완하고자 모델들을 조합해 일반화된 성능을 이끌어내는 점이 말이죠.

 

앙상블이라는 용어는 딥러닝 배울 때, 얼핏 지나쳤던 기억이 있어서 오랜만에 전공책을 꺼내서 찾아봤었습니다. 대략 3~5% 정도의 성능향상이 있다고 한 페이지 분량정도로 적혀있더군요. 드라마틱한 향상은 아니지만 필요하니까 배우지 않을까 하는 심정으로 찬찬히 그 페이지를 읽었습니다.

 

트리 모델은 분류와 회귀 모두 활용할 수 있는 만능 기법이기도 합니다. 그러나 하이퍼 파라미터 조절도 해줘야 하고, 많은 모델들이 나와있어 완벽하게 알기엔 어려운 파트였던 것 같습니다. 이 책에서 지도 학습 중 가장 괜찮고도 어려운 기법으로 취급할만한 이유가 있어 보였습니다.

 

5-1

데이터를 다양한 방식으로 표현하는 중. 데이터베이스 공부를 하면 따라할 수 있을까.
처음보고 신기했던 트리 모형도. 축 쳐진 잎파리같다.
깊이가 1인 결정트리
깊이가 3인 결정트리. 꽤 크다고 생각하고 있었는데, 이게 위의 트리의 일부라니!
.확인문제3. 좌우가 불균형한 트리 생성.

5-2

교차 검증해보기
파라미터 튜닝하기
확인문제3. 성능은 내려간다.

5-3

앙상블 학습 - 랜덤 포레스트 & 엑스트라 트리
그레디언트 부스팅이라는 이름의 요상한 기법들이 마구 등장
마소가 개발했다는 라이브러리.
혼공 머신러닝 + 딥러닝 4주차.pdf
19.80MB

기본미션과 선택미션

기본 미션 - 교차 검증 그림으로 설명하기 (위에서 언급했으니 생략)

선택 미션 - 앙상블 모델 손코딩 코랩 화면 인증하기(5-3 참고)

마무리 및 소감

기존의 지도 학습들은 추상적으로 메커니즘을 이해하고 그래프의 도움을 받으면서 성능을 확인했었습니다. 그에 비해 이번 챕터의 결정 트리는 눈으로 모형을 보면서 이해할 수 있으니 흥미로웠습니다. 물론 제가 직관적으로 확 와닿진 않았지만 말이죠. 개인적으로는 드디어 트리 모델에 대해 어느 정도로 알았다!라는 점이 기분이 좋네요. 모르는 것을 드디어 알게 된 그런 기분, 이게 공부하는 맛이죠.

 

그동안 너무 공부 인증보다는 근황을 푸는 데 집중한 감이 없잖아 있어서 이제 좀 줄이려고 합니다. 뭐 이제 학교에서 연주회 준비가 한창일 거라 매력적인 일상은 딱히 없을 것이기도 했습니다. (ㅠㅠ) 그리고 만약을 위해 진도계획보다 한 템포 빠르게 AI공부를 진행할 것 같습니다. (그래서 이 포스팅이 올라가는 건 30일 즉시입니다.) 저는 학교 일정에 따라 생활하면서 코딩할 여유가 있는지 체크하면서 남은 기간에 템포를 조절해갈 것 같습니다.

 

날이 갑자기 추워졌습니다. 늘 몸을 따뜻하게 하면서 건강하시길 바라겠습니다. 그럼 다음 주차 인증으로 뵙겠습니다 안녕~

 

출처

혼자 공부하는 머신러닝 + 딥러닝 p.220~283