Machine Learning

들어가며

지난 한달간 DSschool에서 머신러닝에 대해 배운 내용을 정리해본다.

세번의 시도

이번 머신러닝 수강이외에도 두번 정도 머신러닝/딥러닝에 좋은 멘토를 만날 수 있는 기회가 있었다.

첫번째 수업은 원론적인 내용 부터 시작해서 세세한 부분까지 다 톺아보는 시간이어서 나같은 개발자(?)성향에는 맞지 않았다. 시도해 보고 아웃풋을 통해 왜 안되는지 고민해보고 시행착오를 겪으며 완성해 나가는 쾌감이 없었다고 할까.. 원론적인 부분은 다룰때는 그나마 신비감에 집중할 수 있었지만 수학적 이해와 이론을 병행하는 과정에서는 거의 멘붕이었다. 두번째도 첫번째와 크게 다르지 않았다.

새로운 기술에 대한 호기심이 아직 덜 풀려서 인지 아니면 그간 투자한 시간이 아쉬운지 또 다른 멘토를 찾아보고 싶었다. 머신러닝, 딥러닝에서 보여주는 결과물이 너무 매력적이어서 포기하기가 아쉬웠다.

학습과정

모든 첫 수업이 그렇듯이 강사 약력, 한달 간 진행할 내용 대한 소개가 있었다. 인상적인 부분은 소개 이후 수강생끼리 아이스브레이킹이 있었는 데 팀웤이나 협업을 통한 시너지를 일으킬 수 있다는 점에서 아주 괜찮은 방법이었다고 생각한다. 개인적으로 특출난 소수보다 공감대가 있는 다수가 서로를 돕는 과정에서 좋은 시너지를 낼 수 있다는 데 많은 공감을 하고 있다.

수업 내용의 큰 축은 직접해 보는 것이다. 이게 핵심이다. 듣기만 하는 수업은 큰 의미가 없다는 것을 경험과 사례로 알기에 직접 해보고 습득하는 것이 올바른 학습 방법이라고 생각한다.

kaggle 에서 Titanic:Machine Learning from Disaster로 시작했다.

kaggle 은 다양한 주제의 데이터 셋이 등록되어 있고 누구나 참여하여 경쟁할 수 있다. Titanic 과 Bike Sharing Demand 에 참여하면서 다양한 노하우를 배울 수 있었다. 실제로 각 프로젝트의 Kernels에서 많은 사람의 노하우를 확인할 수 있었고 다양한 접근 방법을 배울 수 있다. 이 분야의 Github 과 같다고 할 수 있겠다.

Titanic 과제를 프로그래밍 언어가 아닌 구글 스프레드 시트로 도전하는 과정은 참신했다. 과정이 그렇게 복잡하지 않았고 생각보다 꽤 신뢰할 수 있을만한 예측치를 구할 수 있었다. 그 과정에서 데이터를 분석하는 방법을 스스로 고민할 수 있었고 이런 방법으로도 아주 간단한 예측 모델을 만들 수 있다는 게 신선했다.

이 계기로 스스로 동기부여가 가능했고 몰입할 수 있었다. 모든 일에 동기부여는 아주 중요한 준비 작업이다.

한달 남짓 머신러닝을 위한 도구들 python, pandas, seaborn에 대해 학습하고 Big Data 를 다루고 다양한 방법으로 분석할 수 있는 시간을 가질 수 있었다. 이 시간을 통해 배운 경험을 바탕으로 실무에서 필요한 간단한 데이터 분석을 진행하여 데이터를 통한 인사이트를 제공할 수 있었고 간단한 워크샵을 진행하여 새로운 기술 도입을 위한 팀내 공감대를 넓힐 수 있었다.