본문 바로가기

책읽기

[혼자 공부하는 머신러닝+딥러닝, 파이썬](혼공머신: 박해선 著, 혼공파: 윤인성 著, 2021)

혼공족:  "혼자 공부하는 일에 능숙한 사람 혹은 그런 무리를 일컫는 신조어"

- IT 관련 분야에 발을 들인지 얼마 되지 않아 기존에는 어땠는지 잘은 모르겠으나, (비슷했을 것 같다)

- 머신 러닝을 비롯한 인공 지능 관련 분야의 특징으로 독학의 비중이 매우 높다는 것을 꼽을 수 있을 듯 하다.

- 벌써 6년이 지난 2016년의 알파고 쇼크는 우리가 벽이라고 생각했던 곳을 힘차게 발로 차서 열어버렸다.

- 그 앞에 제법 달달해보이는 = 취업, 승진, 창업의 기회가 널린 길이 놓여 있는 것이 많은 이의 눈에 들어왔지만

- 이 길을 먼저 걸어간 이는 극소수. 어떤 길을 어떻게 따라가야 하는지 알려줄 수 있는 이조차 드물다.

- 간혹 학원 등에서 강사가 강의하는 사진이 커뮤니티에 도는데 강사의 코드조차 잘못된 부분이 보인다.

- 엊그제까지 JAVA를 가르치다 갑자기 파이썬, 머신 러닝을 가르치는 강사가 많다는 소문이 믿을 만 하다.

 

● 일부의 불편

- 요새는 조금 덜 하지만 몇년 전에는 혼공족을 보는 곱지 않은 시선이 느껴지기도 했다.

- 컴퓨터공학과, 산업공학과, 통계학과 등에서 수년간 등록금을 부담해가며 배운 이들에게서 느껴진 이 시선은,

- "제대로 배우지도 않은 이들이 몇 달 깔짝거리고 높은 대우를 바란다"는데서 오는 불편함이었을 것이다.

- 혼공족이 등장한지 몇 년 지나고 개발자 몸값도 수직상승과 어느 정도의 조정을 겪는 지금은

- "혼공이건 전공이건 잘 하면, 본인 실력을 증명할 수 있으면 최고"라는 인식이 어느 정도 자리잡힌 듯 하다.

- 초반의 자극적인 언론 보도와 달리 몇 달 학원에서 배워서 억대 연봉은 어림도 없다는 사실이 알려지기도 했다.

 

● 혼공족에게 필요한 것

- 혼공족이 실력을 제대로 갖추기 위해서는 몇 가지가 필요하다.

- 본인의 꾸준함과 체력, 끈기, 아이디어와 커뮤니티 활동 등을 통한 지속적인 기회 창출은 기본이고

- 공들여 쌓은 실력이 사상누각이 되지 않기 위해서는 하나의 학문 분야이면서도 발전 속도가 상식을 벗어난(!) 이 분야에 체계적으로 들어갈 수 있는 안내서가 필요하다.

- "딥러닝 공부하려는데 뭐부터 해야 될까요?" 라는 질문에 대한 정답은 "확률 통계와 선형대수요" 일 수 있지만 

- 멱살을 잡고 끌고 가줘도 어려운 저 가시밭길을 혼자 걸어가라면 피를 흘리며 주저앉거나 왔던 길을 되돌아갈 수 밖에.

- 혼공족에게는 지치지 않고 다음 공부를 하기 위한 적절한 흥미와, 

- 흥미를 유발할 수 있도록 약간씩 더해지는 자기효능감이 절실하다.

- 하나를 공부하면 모르는 것 세 개가 생기는 이 바닥에서 자기비하 소용돌이 연쇄반응에 빠지지 않기 위한 구명조끼다.

 

● 말이 쉽다.

- 머신 러닝 모델 하나를 만들려면 분야별 전문 지식 (도메인 지식)을 제외하고도 최소한 몇 가지가 필요하다

- ① 적당히 어렵고 재밌는 주제

- ② 주제를 구현하는 데 사용할 데이터셋

- ③ 데이터를 읽고, 분할하고, 연산하는 라이브러리 사용법 : pandas, numpy

- ④ 데이터를 그림으로 그려서 확인하는 라이브러리 사용법 : matplotlib

- ⑤ 데이터를 문제 없이 파악하고 확인하기 위한 지식 : 통계학

- ⑥ 머신 러닝 모델을 선정하기 위한 모델 관련 배경 지식 

- ⑦ 학습이 잘 되는지 알려주는 지표(metric)을 이해할 수 있는 수학적 지식 또는 감각

- 여기까지가 최소한의 지식이다.

- 문제를 해결하기 위해 데이터를 선정하고 적용 가능성을 타진하는데 필요한 도메인 지식,

- 데이터가 저장되어있을 데이터베이스, 여기서 가져오기 위한 query나 API 사용법,

- 연산에 활용할 GPU나 코드 작성을 도와주는 IDE 사용법은 언급도 안했다.

- 여기에 데이터 검수와 전처리를 포함하면 인생을 바쳐야 하는 일처럼 느껴진다.

- 혼공족의 입을 벌리고 이것들을 한번에 때려부으면 목이 막히는 것은 당연지사.

- 혼공족을 위한 교재는 이들을 체하지 않고 맛있게 한 숟가락씩 떠먹여줘야 한다. 너무 어려운 일이다.

 

● 한빛미디어의 혼공 시리즈

- 한빛미디어에서 혼공족들을 타겟으로 시리즈를 여러 권 냈다.

- 모두 본 것은 아니고 혼자 공부하는 머신러닝+딥러닝혼자 공부하는 파이썬 두 권을 봤는데 기획을 참 잘했다 싶다.

- 설렘보다 두려움이 더 클 혼공족들의 손을 잡고 길을 안내해주기 위한 장치가 곳곳에 보인다.

- 코딩을 업으로 하는 사람도 종종 하는 실수(ex. "숫자 1과 영소문자 l, 또는 영대문자 I와 혼동하지 않았는지 살펴보세요")와 이들이라면 절대 하지 않을 실수 (ex. "==와 같은 파이썬의 비교 연산자는 중간에 공백이 없어야 합니다")까지 꼼꼼하게 챙겨주고,

- 출판사에서 혼공 학습단을 조직해서 혼자 공부하지만 함께 공부한다는 느낌을 받게 해주기까지 한다.

 

● 정말로 떠먹여준다는 표현이 딱 어울린다.

- 구글 코랩에서 예제 노트북을 만드는 것부터 마크다운 사용법까지, 짧지만 친절한 문장에 꼭 필요한 내용을 담았고

- 데이터셋을 불러오는 것조차 어려워하는 이들을 고려해 직접 입력하는 수치 데이터로 시작한다.

- 중간중간 빠질 수 없는 시각화는 코드 설명을 생략한다.

- 나도 머신 러닝 강의때 이렇게 하는데, 중간에 다른 종류의 코드를 설명하면 주의가 크게 흐트러지기 때문이다.

- 무엇보다 첫 머신러닝 모델이 흔한 선형 회귀도, 뭔지 모르지만 남들이 다 하는 신경망도 아니고 KNN이다.

- 저자와 편집자의 고민이 가장 크게 드러난 부분이었다. 수학적 설명 없이도 가장 직관적 결과를 보여주기 때문이다.

- 2장에 들어서서 비로소 데이터 분할과 numpy array를 설명하고 3장에 들어서서 R2와 MAE 등을 다룬다.

- 한 장을 마칠때면 키워드, 핵심 패키지, 함수를 정리해준다.

- 막판 몇 개의 연습문제는 스스로 알고 있다고 생각하지만 실제로는 모르는 지식을 다시 한번 확인시켜준다.

 

● 혼공머신 데이터셋

- 4장까지 물고기 데이터셋을 가지고 선형 모델을 발전시킨 뒤

- 5장은 와인을 분류하며 트리 모델과 랜덤 포레스트를 포함한 앙상블 모델까지 다룬다.

- 6장은 과일 사진 데이터를 사용해 이미지 처리와 함께 군집 모델, 차원 축소까지 다루고

- 7장부터는 Fashion-MNIST를 가지고 딥러닝까지 경험한다.

- 데이터셋을 자주 바꾸면 학습자 입장에서 내용을 익히기도 정신없는데 데이터까지 익혀야 하는 부담이 생긴다.

- 각 장에서 전달하는 내용에 맞게, 많지 않은 숫자의 데이터를 사용해서 전달력이 높다.

 

● 혼공파 문법

- 내게 파이썬과 머신 러닝 교재를 쓰라고 하면 머신 러닝 교재를 쓸 것이다.

- 문법의 나열이 될 수 밖에 없는 완전 기초 파이썬 교재는 도저히 지루하지 않게 쓸 자신이 없기 때문이다.

- 그래서인지 혼공머신에도 삽화가 적지 않지만 혼공파는 지루함을 덜 느끼게 하려는 노력이 많이 느껴진다.

- 말을 짧게 하고 코드와 결과로 설명을 대신한다.

- "나는 재능이 없는 것인가?" (p.271) 처럼 실제 코딩을 배우는 사람들이 한번쯤은 느끼는 현타를 위로해준다.

- 예제 단계도 예외 처리, 누적 예제, 좀 더 알아보기 등으로 단계를 나누어 순한 맛과 매운 맛을 나눠준다.

- 굳이 당장 알지 못해도 지장이 없는 매운 맛이 매운 맛인줄 모르고 현타를 맞으면 회복이 어렵기 때문이다.

 

● 혼공족을 위한 격려

- 어쩌다 보니 "컴퓨터공학 전공이시죠?" 라는 말을 가끔 듣지만, 나도 박사학위를 마친 다음에야 파이썬을 배웠다.

- 학부 입학하자마자 배운 C언어는 인생에 쓸 일이 없을 것이라는 오판으로 수업조차 안들어갔고

- 일을 하다 보니 필요해서 뒤늦게 C언어부터 Matlab을 거쳐 파이썬을 스스로 익혔다.

- 머신 러닝은 심지어 나이가 마흔이 다 돼서 배우기 시작했는데 처음에는 실무를 모르는 관리자로 시작했다.

- 파이썬은 구글링으로, 머신 러닝은 김성훈 교수님의 유튜브 강의와 앤드류 응 교수님의 코세라 강좌로 배웠다.

- 그 사이 혼자 공부하기 좋은 책도 많이 나왔고 좋은 강좌도, 커뮤니티도 활발하다.

- 물어볼 곳이 많으니 지레 겁을 먹지 않았으면 좋겠다.

- 여러분은 혼자가 아니다.