본문 바로가기

책읽기

[딥러닝을 이용한 정형 데이터 분석](마크 라이언 著, 박찬성 譯, 2022)

● 입문은 대개 딥러닝

- 나처럼 통계나 산업공학을 전공하지 않았는데 필요에 의해 AI라는 분야에 발을 들인 사람의 입문은 대개 딥러닝이다.

- 뭔지 몰라도 AI를 하려면 딥러닝을 해야 할 것 같고,

- 공부를 하려고 해도 딥러닝 강좌와 책이 먼저 눈에 띈다.

- 도입 부분에 scikit-learn 머신러닝을 배우기도 하지만 딥러닝으로 가기 위한 중간 다리로 여겨진다.

- TensorFlow로 손글씨 숫자 그림 맞추기인 MNIST 코딩을 따라 쳤을 때 돌아가면 매우 뿌듯하다.

 

● 현실은 정형 데이터

- 분야에 따라 다르겠지만 이미지 데이터로 딥러닝을 하는 분이 가장 많이 보인다.

- 설비 부품에 발생한 결함을 찾거나 기상 사진을 가지고 날씨 예측을 하거나 등등.

- 하지만 내가 몸담은 곳에서 내게 보내오는 데이터는 입사 5년째인 아직까지 100% 정형 데이터.

- 정형 데이터라고 부르면 뭔가 있어 보이지만, 그냥 행과 열로 이루어진 엑셀 파일이다.

- 분량도 적다. 빅데이터(!)라는 말은 많이 들어도 본 적은 없다. 오죽하면 이런 말이 있을까 (https://bit.ly/3QGfl7y)

 

● 딥러닝의 장점

- 지난 몇년간 딥러닝은 매우 쉬워졌다. 

- 고전 통계와 머신러닝처럼 이게 맞네 틀리네 하며 검증에 열을 올리지 않는 분위기가 느껴지기도 하지만,

- github에 공개된 수많은 모델과 코드로 인해 딥러닝이 머신러닝보다 더 쉽게 느껴진다.

- Google Cloud나 Microsoft의 Azure, Amazon의 AWS 등을 사용하면 앱이나 웹 어플리케이션으로 만들기도 쉽다.

- 내 데이터가 적다는 이유로 이 장점들을 버리기엔 너무 아쉽지만,

- 딥러닝이 잘나간다고 무작정 적용하자니 small data와 deep learning의 형용모순이 너무 불편하다.

- 궁리 끝에 나름의 방법(pipeline 구축, scikit-learn과 pytorch 혼용)을 찾았지만 최선인지 불안하다.

 

● 전문가의 식견

- 불안할 때는 전문가의 의견을 묻는게 안전하다.

- 때마침 적절한 책이 나온 듯 해서 예약구매를 했고, 받자마자 실습이 필요한 코드만 빼고 읽어버렸다.

- 수학과 컴퓨터과학을 전공하고 보험사에서 정형 데이터를 다루는 저자의 경험과

- MLOps에서 맹활약중인 역자의 번역은 책의 내용에 대한 의심은 접어두게 만든다.

- 저자들은 엑셀 파일처럼 생긴 정형 데이터를 딥러닝에 넣는 과정을 보여주며 의심섞인 질문에 답한다.

- "저도 딥러닝해도 될까요?"

 

● 1. 절반의 실망(?)

- 이 책에서 저자가 정형 데이터를 말하고는 있지만 작아도 된다고 말하지는 않는다.

 

"(이 책의 예시로 사용된 데이터처럼) 수만 개로 구성된 데이터셋이라면, 딥러닝이 불가능할 정도로 작지도 않지만 전혀 문제가 없다고 보장할 정도로 큰 것도 아닙니다. 여러분의 문제에 딥러닝의 적용 가능성을 확실히 알 수 있는 유일한 방법은 일단 시도를 하고 성능을 살펴보는 것입니다."

 

- 딥러닝이건 머신러닝이건 통계건, 문제와 목적에 맞는 데이터가 마련되어야 한다.

- 결국 풀고자 하는 문제를 정확히 정의해야 하고, 여기에 맞는 모델이 어떤 것들이 있는지 알아야 한다.

- "(통계, 선형회귀, 트리, 딥러닝) 이 모델들을 다 배워야 하나요?"라는 질문을 종종 받는데, 답은 당연히 "네"다.

- 딥러닝밖에 할 줄 몰라서 딥러닝만 쓰는 사람은 어두운 골목에서 열쇠를 잃어버리고 등불 아래만 찾는 사람과 같다.

- "밝은 데가 여기밖에 없잖아요" 라면서.

 

● 2. 절반의 안도

- 정형 데이터에 있는 범주형 데이터를 변환하기 위해서,

- 데이터 누출을 방지하고 일관성 있는 흐름을 유지하기 위해서 저자는 scikit-learn의 Pipeline을 가져온다.

- 처음 접했을 때 이거 필요도 없어보이는데 왜 이렇게 복잡하지? 라는 생각을 했지만

- 경험이 조금씩 쌓이면서 Pipeline을 쓰지 않았을 때 겪는 수많은 오류들.

- 그나마도 혹시나 싶어 점검해보지 않았다면 오류가 난 줄도 몰랐던 오류들을 겪으면서 Pipeline을 반드시 만든다.

- "내가 좀 매니악한걸까" 싶은 생각이 없지도 않았지만 내가 맞다는 생각에 안도감이 든다.

 

● 3. 검수는 확실히

- 이미지 데이터를 다룰 때는 그다지 중요하게 언급되지 않지만 정형 데이터엔 필수적인 요소가 있다.

- 바로 데이터 검수.

- 내 손에 들어온 데이터가 앞뒤가 맞는지 상당히 자세하게 살펴볼 수 있고, 이 과정을 소홀히 하면 성능이 크게 저하된다.

- 저자도 처음에 데이터를 샅샅이 훑으며 잘못된 것을 모두 바로잡은 뒤에 모델을 만든다.

- 여기서 진이 빠진다면 정상이다. 여기서 체력이 남는다면 둘 중 하나다. 운이 좋거나 대충 했거나.

 

● 갈증이 채워졌다.

- 스스로의 생각이 전문가와 일치할 때 안도감과 뿌듯함을 얻는다.

- 마침 400개밖에 안되는 데이터에 부득이하게 딥러닝을 적용하던 터라 불안감이 많았다.

- 그래서 이리저리 체크하는 한편, 예약까지 해가며 책을 구매했는데 의구심이 상당 부분 해소되었다.

- 충전한 자신감을 내 데이터와 모델에 쏟으러 가야겠다.