본문 바로가기

머신러닝

(7)
[ML] 당신은 데이터를 올바르게 분할하고 있는가? 앞으로 전개할 내용은 Coursera 딥러닝 강의의 내용을 기반으로 필자가 직접 정리하는 내용이며 해당 컨텐츠 이외의 다른 강의에 관심이 있다면 여기를 참고해 수강해보자. 이번 포스팅에서 다룰 주제는 분류 문제에서의 '데이터 분할'에 대한 내용이다. 머신러닝 모델을 학습시키고 검증하고 테스트 하기 위해서는 내가 갖고 있는 데이터를 적당하게 나누어 주어야 한다. 보통 갖고 있는 데이터 셋이 학습용, 검증용(개발용), 테스트용 총 3가지로 나누는데, 이에 대해 자주 적용되는 데이터 분할 비율, 각각은 어떤 역할을 하는지에 대해서는 이전 포스팅에서 소개했으므로 이에 대한 내용은 생략하고 다른 측면에서 다루어 보려고 한다. 이번 포스팅에서 중점적으로 다루려는 부분은 데이터를 분할하면서 고려해야 할 점과 각 데이..
[NLP] 텍스트를 이용한 머신러닝 프로세스에 대한 이해 새로운 포스팅 카테고리를 추가했다. 주제는 NLP(Natural Language Processing)이라고 불리는 '자연어 처리'이다. 자연어 처리는 텍스트 분류, 감성분석, 텍스트 요약, 텍스트 군집화 또는 유사도 측정과 같이 여러가지 분야에서 널리 사용되고 있다. 필자는 자연어 처리에 대한 기본적인 사전 지식이 없었기 때문에 개인적인 기회를 통해서 공부해야 했다. 그리고 우연히 마주했던 Google Assistant NLP팀의 언어학자로 일하시는 박지호님의 NLP Tutorial을 통해서 자연어처리를 입문했다. 해당 블로그를 꾸준히 구독하고 있고 글을 읽으면서 습득한 내용을 따로 기록하고 있다. 추후에 자연어처리의 기본에 대한 내용을 꼭 내 블로그에도 포스팅할 예정이다. 이번 글에서는 텍스트 형식의 ..
[ML] SVM(Support Vector Machine)서포트 벡터 머신 ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 머신러닝 모델 중 Classification에 활용되며 Supervised Learning의 종류인 SVM(Support Vector Machine)에 대해 알아보려고 한다. 2019년 2학기에 DSC 활동을 하면서 SVM에 대해서 처음 알게되었고 그 때 당시에는 얕은 깊이의 공부를 했던 기억이 난다. 하지만 이번엔 SVM을 머신러닝 전공 수업에서 다루는 만큼 깊이 있게 공부하고 넘어가야 겠다. 목차는 다음과 같다. 1. SVM의 기원은 무엇일까? 2. Margin의 maximum을 구하는 방법 3. 비선형 분류를 하기 위한 Slack Variable 4. ..
[ML] 머신러닝의 종류와 용어개념 이번 학기에 머신러닝이라는 전공수업을 듣게 됬다. 저번학기 부터 관심이 간 분야지만 사실 이전에는 공부하면서 등장하는 개념을 알긴 아는 것 같은데 남에게 확실히 뭐라고 설명할 수 있을 정도로 지식의 깊이가 깊지 않았다. 이번학기 수업을 기반으로 해서 시험공부 뿐만 아니라 머신러닝의 기초를 다잡기 위해서 블로그 포스팅을 이용해보려고 한다. 개인적인 공부습관이 시험공부를 하기 위해서는 따로 연습장에 나만의 필기를 무조건 하는 스타일이라서 중간 중간 애매모호한 개념을 직관적으로 이해하기 위해서 필기 그림을 이용하는 것은 이해해 주길... 요즘 코로나로 인해서 아쉽게도 사이버강의로 진행하지만 최대한 따라가기 위해서 갓 구글링의 도움을 빌려가며 같이 공부하고 있다. 오늘은 첫 포스팅으로 머신러닝의 종류와 용어개념..
[ML] 머신러닝 모델링 시 필요한 데이터 종류 그리고 Epoch란? 이번 포스팅에서는 간단한 개념정의를 하려고 한다. 그동안 배웠던 머신러닝 모델링에 관한 내용은 아니니 쉽게 접근하면 되겠다. 소개할 주제는 다음과 같다. 1. 머신러닝 모델시 Train / Test / Validation 데이터들의 각각의 개념 2. Online Learning이란? 3. Epoch와 Batch의 개념 머신러닝을 모델링 하고 성능을 검증할 때 위 그림과 같이 Raw Data에서 2가지 또는 3가지로 나누어 준다. 학습률(Learning rate)과 Regularization Strength 상수값을 튜닝하기 위해서는 가장 밑의 3가지(훈련/검증/테스팅) 종류로 나눈 방법을 사용한다. 이렇게 3가지 종류로 나누어서 검증하는 이유는 쉽게 예를들면 이렇다. 중,고등학교 시절 우리는 중간고사를 ..
[ML] Learning rate, 데이터 전처리, Overfitting(과적합) 이번 포스팅에서는 머신러닝을 모델링할 때 중요시되는 3가지에 대해서 알아보고 머신러닝 모델링할 때 팁을 알아보려고 한다. 3가지는 다음과 같다. 1. Learning Rate(학습률) 2. Data preprocessing(데이터 전처리) 3. Overfitting(과적합) 학습률이라 함은 우리가 앞서서 같이 봐왔던 여러 회귀분석 모델에서 Cost값을 최소화시키기 위해 Gradient Decent 알고리즘을 사용했고 이 때 최소의 Cost값을 찾아가기 위해서 임의의 정도의 Step을 설정해주어야 한다고 했었다. 그림을 보면 기억이 날 것이다! 위 그림 속 빨간색 알파값이 바로 Learning Rate이다. 그러면 모델링을 하는 사람이 알파값을 크게 또는 작게 줄 때 대체 어떤 일이 발생할까? 한 번 알아..
[ML] Linear Regression(선형회귀분석) 머신러닝에는 기본적으로 Supervised Learning(지도 학습) 과 Unsupervised Learning(비지도 학습)으로 크게 구분된다. 두개의 차이에 대해서 정의하자면, 미리 '정답'을 알려주면서 기계에게 정답을 학습시켜줌으로써 기계가 그 정답을 습득하고 스스로 알아서 정답을 판단해주는 것이 '지도학습'이다. 반면에 '정답'을 미리 알려주지 않고 패턴이 없는 비정형 데이터안에서 일정의 패턴을 찾는 것이 '비지도 학습'이라고 보면 된다. 이번 포스팅에서 작성할 머신러닝 모델은 지도학습 중에서도 가장 기본적인 모델인 Linear Regression(선형회귀분석)에 대해서 작성해보려고 한다. 우선 선형회귀분석이라 함은 연속적인 숫자값을 예측하는 것이다. 쉽게 설명하기 위해서 밑의 예시를 들어보자...