머신러닝/[패스트캠퍼스]머신러닝&AI 첫걸음 시작하기 : 머신러닝 인강

[자기계발챌린지] 패스트캠퍼스 KDC 머신러닝 - 머신러닝&AI 첫걸음 시작하기 : 머신러닝 인강 3주차 : 머신러닝 기본모델

uomnf97 2021. 11. 30. 23:44

안녕하세요~ 

패스트캠퍼스 교육생 제이덥입니다!

오늘은 "머신러닝 개요" 3주 차 강의를 듣고 

배웠던 부분과 더 공부해야 할 부분들을 포스팅을 통해 점검해볼까 합니다. 

.

.

"먼저 포스팅 관련 내용은

[KDC] 패스트캠퍼스 머신러닝& AI 첫걸음 시작하기 강의를 토대로 작성되었음을 알려드리며, 

자세한 공부 하기를 원하시는 분들은 패스트캠퍼스 강의를 수강하시기 바랍니다!"

.

.

.

머신러닝 AI 3주차는 

다양한 머신러닝 모델에 대한 개념, 수학적 접근 방법, 장/단점, 구현 방법, 실습 등을 진행하였습니다. 

특히 총 4가지 

나이브 베이즈 모델, K-nearest neighbor 모델,

SVM( Support Vector Machine) 모델 , 의사 결정 나무

모델에 집중적으로 학습을 하는 시간을 가졌습니다!

나이브 베이즈 모델(Naive Bayes Model)은 조건부 확률을 이용한 모델입니다. 

각 설명변수가 독립임을 가정하고 만든 간단한 모델인데요!

간단하게 만든 모델인데도 불구하고 준수한 퍼포먼스롤 보여주는 게 장점이라고 합니다!

저는 개인적으로 4가지 모델에서 예시가 가장 적고 수학적인 개념이 많아 조금 힘들게 느껴졌었습니다. 

간단하게 원리를 설명해보겠습니다. 

두 가지 설명변수(독립변수), 한 가지 반응 변수(종속변수)가 있는 모델을 예시로 들어보겠습니다. 

우리가 축구의 승/패를 맞춘다고 가정을 하고 여기서

승/패가 반응 변수

응원 관객 수, 부상 선수 수가 설명변수라고 가정해봅시다.

우리가 원하는 건 응원 관객이 많을 때, 부상 선수가 적을 때 승패가 어떤 확률이 될지 맞추는 것입니다. 

이럴 경우, 우리는 나이브 베이즈 모델을 이용하여 응원 관객 수 부상 선수 수를 서로 배반 사건 관계로 두고 

승이 많은지 패가 많은지 파악합니다. 

그리고 해당 경우가 많이 일어나는 경우를 선택해 모델의 최종 선택 값을 내놓게 되는 것이죠. 

즉, 다시 말해 특정한 상황에서 최대가 되는 확률을 찾아내는 것! 

그것이 바로 나이브 정리라고 볼 수 있는 것이죠! ( 다만 설명변수가 서로 배반임을 가정합니다!)

 

다음은 K-nearest neighbor 모델입니다!

K-nn모델이라고 불리는 이 모델은 관측 값들을 여러 클래스로 분류하고,

새롭게 들어오는 관측치들을 주변 k개를 기준으로 하여 해당 클래스로 분류하는 모델입니다. 

예를 들어 빨간색, 파란색 점들이 있다고 가정합시다. 이때 한 점을 찍는다고 가정할 때 k = 3인 모델은

주변 k개의 점들 즉 3개의 점을 고려해서 빨간색으로 색칠할지, 파란색으로 색칠할지 결정하게 되는 것입니다 :)

이 모델의 특징은 주변의 개수를 파악해 직관적으로 결정하는 것뿐만 아니라, 

거리에 따라 가중치를 둠으로서 알고리즘의 성능을 높여줄 수도 있는데요(무조건 높여주는 것은 아니라고 합니다ㅠㅠ)

분류가 범주형 변수이면, 해밍 거리를 연속형 변수에서는 유클리드, 맨해튼 거리를 이용해 줄 수 있다고 합니다. 

< Knn예시 출처: 위키피디아 >

그리고 이 모델의 특징은 쉽게 분류해줄 수 있으나, k에 매우 큰 영향을 받는 다고 합니다. 

k가 작을 경우, 이상치에 민감해지며 모델이 과적합될 가능성이 크고, k가 클 경우 분류를 올바르게 못해줄 수도 있다고 합니다. 

따라서 이를 해결하는 방법으로 1주 차 때 배웠던 cross-validation을 이용해서 올바른 k값을 선택할 수 있도록 도와준다고 하네요!

이 모델은 학습하며 overfitting이 일어나지 않는 선에서 k값을 선택해주는 게 가장 핵심인 모델이라고 느껴졌는데요, 

데이터 특성을 파악할 때 요긴하게 쓰일 것 같다는 생각을 했습니다. 

 

세 번째는 SVM( Support Vector Machine) 모델입니다!

여러 인강에서 해당 머신 러닝에 대해서 배울 수 있었는데요. 지금 신경망 모델 이전에 모델 성능이 매우 좋아 많이 쓰였다고 합니다. 

그리고 다른 강의에서는 딥러닝 강의에서 SVM모델을 다뤄서 그런지, 이 모델에 대해서 많은 부분을 설명하지 않고, 

이 모델에 대해서 설명하고 그 이후에 왜 신경망 모델이 즉 딥러닝 모델이 더 효과적인지 설명해주는 강의가 대부분이었던 것 같습니다. 

다만 이번 강의에서는 SVM모델에 대해서 개념적인 설명을 포함하여 다양한 SVM 모델에 대해서 공부할 수 있었고, 

또 SVM 모델이 어떠한 방식으로 활용될 수 있는지 정말 세세하게 학습했던 것 같습니다!

강의자 님 덕분에 많은 지식이 머리에 쌓인 것 같아 뿌듯한 기분이 들었던 것 같습니다.

 

자, 그럼 모델에 대해서 간략하게 설명을 드린다면 크게 두 가지 모델로 설명을 해드릴 수 있을 것 같습니다. 

점과의 거리 즉 margin을 최대로 하여 분류를 하는 SVM 분류 모델과 

margin의 크기를 최대로 하여 점들을 포함하여 선분을 그리는 SVR 회귀 모델로 구분할 수 있는 것 같습니다. 

그리고 여기서 decision boundary를 구하기 위해 결정계수를 구하는 것이 이 모델의 핵심이라고 보실 수 있습니다.

 

이 모델의 특징은 model cost에 영향을 주는 점들과 점들이 아닌 것을 구분해주는 것인데요. 

이를 알기 위해 라그랑주(Langrange Multiplier Method)에 대해서 배우고 이를 통해

margin 위의 있는 값들이 결정계수를 구할 때 관여한다는 것을 알게 되었네요 ㅎㅎ 

개인 적으로 이번 강의에서 SVM 강의가 제일 유익했던 것 같네요. 

 

마지막으로 의사 결정 나무 모델입니다.

의사 모델은 해석력이 좋다는 게 가장 큰 특징입니다. 

샘플 하나하나에 영향을 크게 받을 수 있고, 과적합의 우려가 있는 모델이지만 

해석력이 좋고 퍼포먼스도 준수한 편의 유용한 모델인데요. 

의사 결정 트리의 예시 

우리가 아는 트리구조로 되어있는 것이 가장 큰 특징입니다.

가장 높이 있는 노드가 루트 노드 가장 아래 하단에 있는 노드가 리프 노드

상대적 관계에 따라 parent - child node관계에 있습니다. 그리고 엣지라는 구분선으로 연결되어있습니다. 

root에서 leaf로 내려갈수록 엔트로피가 작아지는 게 이 모델의 특징입니다. 

 

엔트로피는 여기서 '혼잡도'를 의미하는데요.

output에 불순물이 많이 섞여있으면 혼잡도가 높아지고, 불순물이 적게 섞여있으면 혼잡도가 낮아지겠죠?

즉, 비슷한 특징을 가진 데이터가 리프 노드에 모일 수 있도록 모델이 학습한다는 이야기입니다. 

 

따라서 parent노드에서 child노드로 내려갈 때

엔트로피의 감소량이 제일 큰 방향으로 나누게 되는데, 

엔트로피의 감소량을 information gain(이전 엔트로피 - 이후 엔트로피)를 이용하여 표현하여

information gain이 가장 큰 방향으로 모델을 만든 다고 하네요..!!

 

이렇게 4가지 모델에 대해서 학습하는 시간을 가졌습니다. 사실 이것보다 배운 내용이 훨씬 많고,

강의에서는 매우 세세하게 수학적 개념과 함께 다루기 때문에 간략하게 적어도 매번 포스팅이 길어지네요. 

그만큼 유익한 강의인 듯 합니다~ 

그럼 다음 주에 다시 찾아오도록 하겠습니다!

모두 일주일간 잘 지내세요~

 

P.S 아래는 수업 실습 후 제 맥북으로 실습한 화면입니다. 설명을 들으며 코딩을 진행했습니다.

각 함수의 Output 값을 세세하게 설명해주고, 함수의 용도, 주의할 점 들을 설명해주셔서 이해하면서 

코딩을 할 수 있었네요..! 모두 오늘 하루도 좋은 하루 보내세요!

제 노트북에서 실행한 코드 및 output내용입니다. 강의 저작권을 침해할 수 있기 때문에 적당히 개인 증빙용으로만 첨부합니다 .. ㅎ

 

 

출처 :

1) 패스트 캠퍼스 : https://fastcampus.co.kr

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

2) 강사님 : 김강진 강사님