실무로 통하는 ML 문제 해결 with 파이썬 - 전처리부터 딥러닝까지, 216개 실용 예제로 익히는 문제 해결 기법
카일 갤러틴.크리스 알본 지음, 박해선 옮김 / 한빛미디어 / 2024년 4월
평점 :
장바구니담기


책 제목이 <실무로 통하는...>이라서 이 책을 처음 봤을 때는 기대하는 바가 있었다. 패** 같은 강의 사이트에서 실무로 해결한다는 강의를 봐도 뜬구름 잡는 느낌이었다. 엔지니어가 바라보는 문제/문제 해결 방법과 실무자가 바라보는 문제/문제 해결 방법의 간극을 좁혀주지 못한다는 것. 엔지니어는 엔지니어의 틀 안에서 생각한다. 이 차이를 줄여나가는 것이 내 강의의 일차적인 목표이다. 그래서 이 책에서도 어떤 데이터를 어떤 관점에서 다뤘냐를 유심히 보게 되었다.

우선 책의 목차를 보면 정형데이터부터 자연어, 이미지까지 모두 담고 있다. 눈에 띈 것은 다른 책에서는 잘 보이지 않던 다양한 소스에서 데이터를 불러오는 것이었다. CSV, 엑셀, JSON, 파케이(Parquet), 아브로(Avro), SQLite, 원격 SQL 데이터베이스, 구글 시트, S3 버킷, 비구조적인 텍스트 파일. 파케이나 아브로, S3버킷은 전혀 사용해보지 않은 것이다. 아마 앞으로도 쓸 일이 없을 것이지만 알아두면 좋을 내용이다.


목차를 왜 이런 식으로 했는지 좀 낯설다.

데이터 적재 - 데이터 전처리 - 텍스트 다루기(로딩부터 감성분석까지) - 날짜/시간 다루기(데이터 전처리의 영역) - 이미지 다루기(로딩부터 이미지 분류까지) - 차원 축소 - 모델 평가 - 모델 선택 - 머신러닝 모델 소개(선형 회귀, 트리, 랜덤포레스트, kNN, 로지스틱 회귀, SVM, 나이브베이즈)와 군집화(k-Means, 평균이동, DBSCAN, 계층적군집화) - 파이토치로 텐서 다루기 - 신경망 - 모델 저장/로딩/서빙

순서가 다른 책들과 확 달라서 처음 접하는 사람은 혼란스러울 수도 있겠다는 생각이 든다. 첫페이지부터 따라가며 보려고 하지 말고 필요한 부분들을 찾아가면서 보는 것이 오히려 나을 것 같다. 이해가 안 되는 부분이 있으면 일단 넘어가고 뒷부분을 읽은 다음에 다시 돌아오는 방식으로. 다른 책에서 많이 다루는 '시각화' 관련된 내용은 많이 나오지 않는다. 모델 성능 평가할 때 라인차트를 그려본다거나 혼동행렬 그리는 것과 결정트리 모델 그리기, 특성 중요도를 바차트로 그려보는 정도..


161쪽까지 약 1/3 가량을 할애해 데이터를 가져와서 전처리하는 과정을 다룬다.

이어지는 '6장. 텍스트 다루기'에서는 널리 사용되는 전처리 기법과 사전 훈련된 머신러닝 모델을 활용하는 방법을 다룬다. 공백, 구두점, 특수문자, 불용어 등을 제거하거나 HTML 요소를 추출해내는 것 등이다. NLTK를 사용해 토큰화, 어간추출, 품사태깅을 하고 spaCy를 사용해 개체명 인식을 수행한다. 사이킷런의 CountVertorizer를 사용해 BoW로 인코딩하고 TfidfVectorizer를 사용해 단어에 중요도가중치를 부여한 행렬을 만든다. 이어 텍스트 유사도 계산, 감성 분류를 소개한다. 전체적으로는 간단하고 짤막하게만 소개하고 있다. 실제로 텍스트를 처리하는 업무를 한다면 여기에서는 아주 기초적인 내용만 훑고 자연어처리에 관한 다른 책을 봐야한다. '8장. 이미지 다루기'도 마찬가지이다. 감만 익힌다고 생각하고 가볍게 보면 된다. 강의로 치면 8시간 하루 좍 훑어가며 수업할 내용이다. 이어지는 차원축소 부분은 개념을 잘 이해하고 넘어기면 좋겠다. 사실 라이브러리가 너무 잘 되어 있어서 호출해서 사용하면 한두 줄이면 끝나는 부분이라 왜 하고 어떻게 동작하는지, 어떤 때 사용하면 유용한지 등을 알아두면 좋다.


이후는 일반적인 머신러닝 알고리즘과 모델 이야기라서 특별히 인상적인 것은 없었다. 데이터도 바로 만들어서 사용하는 단순한 데이터나 흔하게 사용하는 iris데이터를 불러 쓰는 정도...사실 이 부분에서 살짝 실망했다.


아마 텐서플로를 주로 쓰는 사람들과 파이토치를 쓰는 사람들이 갈릴 텐데, 텐서플로를 쓴다면 파이토치 텐서 부분은 건너 뛰어도 될 것이다. 그런데 이 책에서는 이후에도 파이토치를 사용하기 때문에 책을 끝까지 보고 싶다면 익혀두면 좋겠지. 텐서플로를 하는 사람들은 '21장. 신경망' 부터는 개념만 잘 이해하고 책에 제시된 파이토치 코드에 대응하는 텐서플로 코드를 찾아보거나 직접 만들어 보는 방식으로 학습을 하면 될 것이다.


분량이 많지는 않지만 '22장. 비정형 데이터를 위한 신경망'은 흥미로웠다. 요즘 핫한 생성형인공지능의 핵심기술인 트랜스포머(Transformer)를 살짝이라도 맛볼 수 있기 때문이다. '23장. 훈련 모델의 저장, 로딩, 서빙' 도 웹서버에 간단하게 서빙하는 방법을 알려준다.


전체적으로는 내가 원했던 것을 이루지는 못했다. 아주 간단한 데이터나 널리 알려진 데이터 몇 가지를 사용해 기초부터 찬찬히 설명해줬기 때문에...실무 적용은 또 숙제로 남았다. 하지만 앞에서 언급한 저런 내용들이 필요한 독자라면 책이 눈에 잘 들어오게 구성되어 있기 때문에 찬찬히 읽어봐도 좋겠다. 꼼꼼하게 읽고 코드를 실행했다면 이제 실무로 통하는 문은 연 것이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo