개발자를 위한 머신러닝 & 딥러닝 - 인공지능 개발자로 레벨 업하기! 신경망 기초부터 컴퓨터 비전, 자연어 처리, 시계열 예측까지
로런스 모로니 지음, 박해선 옮김 / 한빛미디어 / 2022년 8월
평점 :
장바구니담기


개발자를 위한 머신러닝 & 딥러닝

한빛미디어 “나는 리뷰어다” 활동을 위해서 책을 제공받아 작성된 서평입니다.

TL;DR

  • 머신러닝 관련 교재 중에서 개발자에게 가장 적합한 책
    • 머신러닝/딥러닝 교재 개발에 필요한 내용을 주로 담고 있음
    • 이론적인 교재가 필요하다면 핸즈온 머신러닝 2판을 참고하면 됨
  • 실행 가능한 예제가 Android, iOS 그리고 Web으로 제공
    • 컴퓨터 비전, 자연어 처리 등 카테고리가 나눠져 있어서 부분을 읽을 수 있음
    • 다양한 기술(TF, TF.js)을 활용하고 있음
  • 예제 종류가 다양하기 때문에 사람마다 난이도가 다를 수 있음

책표지

개발자에게 적합한 책!

머신러닝에 관심이 많아서 다양한 책을 읽었지만, 대부분의 교재가 수학적인 내용을 과도하게 담고있다. 머신러닝 혹은 딥러닝의 기본적인 내용에 수학적인 부분이 중요하기 때문에 관련 내용을 충실하게 기술하고 있다. 대부분의 개발자가 서비스를 구현하기 위해서 수학적인 부분을 알면 좋지만, 관련 분야가 수학이다 보니 과도한 측면이 있다.

대부분의 개발자가 Tensorflow(TF)나 PyTorch(torch)를 활용해서 서비스를 구현하고, 관련 서비스를 최적화 하기 위해서 또다른 측면에서 혹은 전혀 다른 관점으로 접근해야 한다. 이 때, 수학적인 본질이 가진 어떤 점은 사라지고 프레임워크, 라이브러리 그리고 알고리즘의 특성이 더 중요해진다.

Android 예제

실행 가능한 예제

이 책의 가장 큰 장점이자 해당 교재를 개발자에게 적극 권장하는 이유는 예제를 실행 가능한 수준으로 제공하고 있기 때문이다. 원서가 2020년에 출간되었기 때문에 예제가 실행되지 않을 수 있다. 이런 측면은 TF와 torch의 코드 개선이 빠르게 이루어졌기 때문이다. 예를 들어서, 2020년 1월에 TF v2.0.1이 발표되었던 것을 고려해보면 원서에서 제공한 코드를 실행하는데 난항을 겪을 수 밖에 없다. 관련 책을 읽는 독자가 딥러닝 개발과 관련해서 처음 읽는다면 더더욱 예제 실행에 어려움을 겪을 수 있다.

책을 번역한 분이 ‘박해선’님이고, 박해선님이 관련 코드를 실행 가능한 수준으로 개선해서 github에 공개하고 계시기 때문에 책을 읽으면서 예제를 적극적으로 활용할 수 있게 되었다. 역자분이 관련 코드를 이렇게 신경써주고 계시는 것 만큼, 번역도 신경써주고 계셔서 책을 읽을 때 전혀 어려움 없이 읽을 수 있었다. 역자 각주 뿐만 아니라 도서 맵(아래 이미지)까지 제공하고 있기 때문에 책을 읽기 전에 참고해보면 좋을 듯 싶다. 참고로 역자분께서 오타 및 관련 정보를 홈페이지에 제공하고 계시니 참고하면 좋을 듯 싶다.

도서 Map

난이도가 다를 수 있음

대부분의 예제가 TF로 진행되고 있으며, TF나 TF.js와 관련된 예제가 한 권에서 제공되기 때문에 실습의 방향성이 조금 광범위하게 제공되는 경향이 있다. 그래서 처음 해당 책을 읽을 분들은 관련 예제를 접할 때 해당 기술에 대한 전문성 보다는 방향성을 위주로 실습하기를 권한다.

TF.js

Written on September 20, 2022



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
Must Have 데싸노트의 실전에서 통하는 머신러닝 - 피처 엔지니어링 + TOP 10 알고리즘 + 실무 노하우로 익히는 실무형 문제풀이 해법서 Must Have
권시현(데싸노트) 지음 / 골든래빗(주) / 2022년 7월
평점 :
장바구니담기


골든래빗 출판사로부터 전자책을 제공받아 작성했습니다.

TL;DR

  • 다채로운 예제를 활용한 분석 방법 제공
    • 모델에 따른 다양한 예제를 제공하기 때문에 데이터 전처리 등을 연습할 수 있음
    • 하나의 예제를 활용해서 2~3가지 모델을 적용하는 연습을 통해서 책에서 소개된 내용을 적용해 볼 수 있음
  • 주요 모델을 활용한 일관성 학습 과정을 소개
    • 문제 풀이 과정을 일관성 있게 제공하기 때문에 문제 해결 방식을 학습할 수 있음
    • 모델에 따른 특이점 및 차별점도 충실하게 소개하고 있기 때문에 문제 해결 기법에 따른 특성도 파악할 수 있음

책표지

다양한 예제

이 책은 데이터 분석 및 머신러닝에서 많이 활용되는 10가지 모델을 선정해서 학습하는 책이다. 많은 튜토리얼에서 scikit-learn에 포함된 몇가지 예제를 활용하는 경우가 많지만, 이 책은 예제를 다양하게 제시하고 있다.

책에 소개된 모델은 문제 해결 과정과 특징을 잘 엿볼 수 있는 예제와 함께 학습할 수 있다. 모델 학습과 동시에 제시된 예제의 데이터 구조나 특징도 함께 파악할 수 있다. 데이터 구조나 특징의 경우 머신러닝으로 문제를 해결 할 때 사용 하고자 하는 모델을 선택할 때 도움을 받을 수 있다.

데이터 전처리 부분이 좀 더 충실했으면 좋겠지만, 분량을 생각한다면 해당 책에서 소개하는 전처리 정도만 충실하게 배워두어도 좋을 듯 싶다.

모델 선택과 일관성

머신러닝을 공부하면서 모델에 대해서 설명하는 경우가 많다. 많은 책이 모델의 수학적 원리와 이론에 대해서 많은 지면을 할애하는데 반해서, 이 책은 모델을 활용해서 문제를 해결하는 과정을 잘 설명한다. 개별 모델의 특징과 차이점도 충실하게 설명하지만, 대부분의 문제 해결 방식이나 모델 적용이 큰 틀에서 ‘일관성’있게 제시하고 있다.

이런점은 다른 교재에 비해서 문제 해결 과정을 충실하게 학습 및 연습을 할 수 있기 때문에 이 책의 가장 큰 장점 중 하나라 할 수 있다. 모델에 대한 수학적이고 이론적인 부분은 다른 책이나 코세라 등을 참고해도 좋을 듯 싶다.

만약 해당 교재로 다양한 모델을 적용하고 싶다면, 책에서 제시하는 예제에 2~3가지 모델을 적용해보면 재미있는 공부를 할 수 있다.

이런 구성의 데이터 분석 책을 기대!

이 책으로 공부하면서 느끼는 거지만 역시나 전처리 과정만 잘 넘어가면 모델 적용은 어렵지 않다. 그래서 향후 데이터 전처리 책을 이 책과 유사한 구성으로 출간해주면 너무 좋을 것 같다.

모델의 특성상 난이도가 좀 어렵다고 느껴지는 부분도 있지만, 전반적으로 무난한 난이도라 할 수 있다. 만약 특별히 어렵게 느껴지는 부분이 있다면 해당 부분 건너띄고 읽어도 좋을 듯 싶다.

P.S 전자책 덕분에 예제 코드를 한결 수월하게 작성할 수 있었다. 전자책이 어색하신 분들은 종이책을 구매하셔도 좋을 듯 싶다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
SQL로 시작하는 데이터 분석 - 실무에 꼭 필요한 분석 기법 총정리! 실전 데이터셋으로 배우는 시계열, 코호트, 텍스트 분석
캐시 타니무라 지음, 박상근 옮김 / 한빛미디어 / 2022년 8월
평점 :
장바구니담기


한빛미디어 “나는 리뷰어다” 활동을 위해서 책을 제공받아 작성된 서평입니다.

TL;DR

  • 다양한 데이터 분석 기법을 SQL을 활용해서 학습 가능
    • 초급 개발자/데이터 분석가의 경우 SQL을 사용해서 다양한 분석 방법을 활용하는 방법을 학습할 수 있음
    • SQL 실습 분량이 많기 때문에 SQL 연습이 필요하다면 이 책을 추천함
  • 과정과 결과를 확인할 수 있음
    • 데이터 분석에 활용되는 SQL 기법을 작성하는 과정을 배울 수 있음
    • 최종 결과를 시각화로 제시하기 때문에 SQL에 익숙하지 않은 분들에게 추천
    • Pandas를 사용해서 교재와 같은 구성으로 학습을 같이 진행하고 싶으시면 저의 저장소를 참고하셔서 나름의 개발 환경을 구성해보세요!
  • 초급자에게 난이도가 있음
    • 기본적인 SQL에 대한 설명이나 RDBMS를 설치하는 방법등을 모른다면 책의 난이도가 생각보다 높을 수 있음

책표지

실습이 많음

책 제목에 걸맞게 실습 분량이 상당하다. SQL을 다양한 형태로 활용할 수 있도록 각 챕터마다 데이터를 다양하게 사용하고 있기 때문에 실습할 때 지루하진 않다. 단순한 SQL 구문을 시작해서 복잡한 SQL 문장을 작성하는 형태로 진행한다. SQL에 익숙하지 않다고 하더라도 이 책을 활용해서 공부한다 고급 SQL 구문을 작성해 볼 수 있다.

SQL

단순한 SQL을 연습하는 과정도 필요하지만, 다양한 구조나 방법을 연습하는 방법이 필요하다. 이 책은 다양한 SQL을 연습할 수 있기 때문에 ORM을 주로 활용하는 현업 개발자나 SQL/엑셀을 기반으로 데이터를 분석하는 분들에겐 추천할 수 있는 책이다.

과정과 시각적 결과

이 책은 프로파일링/피벗 등을 사용해서 데이터를 분석하는 방법을 설명하고 있다. ‘쿼리문을 작성하는 순서’, ‘쿼리를 어떻게 구성해야 하는 방법’ 등 SQL을 활용해서 데이터를 다루는 방법과 과정을 설명하고 있다. 문제 해결을 위한 다채로운 기법을 연습할 수 있다.

시각적 표현

SQL 구문의 결과물을 시각화(그래프)로 표현해서 SQL 구문의 결과와 상호 비교해서 알려준다. 단순히 행과 열로 나타내는 데이터를 교재에서 시각적으로 제시하고 있기 때문에 SQL의 표현에 익숙하지 않은 분들에게 좋은 참고가 될 것이다.

파이썬을 활용하고 계시다면 Pandas와 Seaborn을 활용하실 수 있으시면, Jupyterlab을 활용하실 수 있습니다. 관련 자료는 제 저장소를 참고하세요!

Pandas 활용

초급자가 보기엔 쉽지 않음

이 책을 통해서 학습을 진행하다 보니, 데이터 분석을 처음 배우는 학습자 보다는 초급 개발자/현업 분석가에게 적합한 교재다. 기본적인 SQL이나 RDBMS 사용법이 익숙하지 않다면, 이 모든 과정이 쉽지 않을 것으로 예상된다.

데이터베이스 설치 등과 같은 것도 초급자에게 쉽지 않을 듯 하니, 이 책으로 SQL을 학습하고자 한다면 PostgreSQL이나 pgAdmin 사용법을 충분히 학습할 것을 권한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬을 활용한 베이지안 통계 - 동전 던지기부터 월드컵까지 다양하게 배우는 데이터분석, 2판
앨런 B. 다우니 지음, 권정민 옮김 / 한빛미디어 / 2022년 6월
평점 :
장바구니담기


한빛미디어 “나는 리뷰어다” 활동을 위해서 책을 제공받아 작성된 서평입니다.

TL;DR

  • 베이지안 이론(bayesian theory)과 실습을 병행해서 진행할 수 있음
    • 개별 장마다 제시된 문제를 베이지안 이론을 활용해서 해결하는 과정을 소개
    • 책에서 소개하는 거의 모든 내용을 파이썬(python)을 활용하여 구현
  • 베이지안을 처음 접한다면, 전체 지도를 그리는데 도움이 됨
    • 개별 장마다 소개된 내용이 다른 장과 적당히 분리되어 있어서 하나의 주제로 다룰 수 있음
    • 문제에 대한 해결책을 제시하기 때문에 학습에 큰 어려움이 없음
    • 개별 장에 대한 해결방식을 프로그래밍을 활용하기 때문에 이론에 대한 부담감이 적음
  • 선행 지식이 필요
    • 고등학교 수준의 통계(평규, 분산, 확률)에 대한 이해가 필요
    • 파이썬과 Numpy를 사용할 수 있어야 함

MCMC를 공부하기로 했던 그 때

알파고 출시 이후에 MCMC(Markov Chain Monte Carlo Method)에 관심을 가지고, 스터디를 진행할 때 이책의 1판을 가지고 진행했다. 당시에는 MCMC를 배우고 싶었는데, 통계 지식이 전혀 없었고 통계 이론을 코드를 기반으로 다루고 싶다는 요청이 많아서 교재를 선정했다. 사실 당시에 이 책을 제외하고 파이썬으로 코드를 구현하면서 진행할 수 있는 책도 없었던 것 같다.

당시도 그렇고 지금도 그렇지만 통계를 체계적으로 교육받지 않아서 완벽하게 이론을 흡수하는게 어렵다고 판단했다. 그래서 베이지안 이론이 가지는 큰 개념과 문제해결 방식을 흡수하기 위해서 노력했다. 무엇보다 베이지안을 학습하다 보면 베이지안이 가지고 있는 몇가지 전제가 쉽게 받아들여지지 않아서 고생이었는데, 교재가 파이썬으로 다 구현되어 있어서 이론과 별개로 문제 해결 방법에 대해선 어느정도 ‘감’을 잡았다 생각하고 베이지안에 대한 학습을 끝냈다. 당시에는 MCMC에 대한 호기심이 너무 컸기 때문이다.

베이지안 통계를 처음 진행하신다면!

시간이 제법 흘러서 한빛미디어에서 제공받은 2판을 받았다. 이 책을 받고 내가 학습했던 방식은 기존에 가지고 있던 코드를 업데이트 하는 것이었다. 나는 1판의 경험이 있고, 당시에 만들어둔 코드가 있어서 2판을 읽으면서 코드를 업데이트 하는 방향으로 학습을 진행했다.

책표지

2판의 경우 1판에 비해서 초급자를 배려해서 훨씬 많은 것을 설명하고 있다. 이전에는 다른 교재, 영문 서적 어떤 것은 논문을 참고해야 했던 것이 비해서 2판은 기본적으로 요구되는 이론에 대해서 적당한 분량을 추가적으로 다루고 있다.

MCMC 등과 같은 실제 많이 활용되는 분야에 대한 설명도 곁들이고 있고, PyMC3를 사용하고 있는 등 코드 자체가 오래되지 않아서 큰 무리없이 진행할 수 있다. 책의 분량이 늘었다고 생각했는데, 기본적인 이론 및 응용에 대한 설명이 많이 늘어났기 때문이라 생각된다.

MCMC?!

나만의 팁!

프로그래밍으로 베이지안 통계를 배우고 이해한다.

이 책으로 베이지안 이론을 학습하는 분들에게 약간의 팁을 드려보자면 통계와 코드를 머리속에서 밀어내고 빠르게(이게 핵심이라 생각한다!) 읽으면서 개별 장에서 제시하는 문제를 해결하는 과정을 자신만의 방식으로 도식화 시켜보길 권한다. 동일한 문제를 다루는 장을 묶어서 하나의 스토리로 엮에서 이해하면 훨씬 많은 도움이 된다. 이론은 다른 교재를 통해서 충분히 보충할 수 있지만, 프로그래밍으로 베이지안 통계를 접하는 경험은 쉽지 않다. 그렇게 만들어진 자신만의 스토리를 책에 소개된 코드를 활용해서 해결 과정을 채워나가다 보면 베이지안 이론을 기반으로 한 다른 모델을 학습하는데 훨씬 수월할 것이라 생각한다.

이 책을 통계지식이 전무 상태로 학습했던 시절에 우리가 이 책을 통해서 배운 것은 ‘베이지안 이론’에 대한 접근 방법이었다. 당시나 지금이나 베이지안을 기반으로 한 통계 모델의 경우 이론과 코드가 별개로 돌아가는 경향성이 있다고 생각한다. 이론에서 말하는 분포 등에 대한 논의를 뒤로 하고 PyMC3와 같은 라이브러이에선 데이터를 읽고 해당 적당한 함수를 입력하면 대체로 답이 나온다. 정확한 답인지 아닌지에 대해선 논의가 필요하지만 여튼 결과가 나온다.

그런데 이게 이론과 정확하게 일치하는 것일까? 하는 의문이 들고한다. 대부분이 이 참을 수 없는 모호함을 해결하기 위해서 통계 기초를 배울 수 있는 교재를 찾게 되는데, 이 경우 학습분량이 엄청나게 늘어난다. 겉잡을 수 없이 폭증하는 학습의 시대에서 기초 통계를 학습한다는 것은 쉽지 않은 선택이다. 하지만 이 책은 코드가 잘 작동하기 때문에 책에서 가이드하는 방식으로 문제를 해결하는 방법을 먼저 익혀두고 그것을 기반으로 필요한 부분을 채워나가면 학습량을 조금 줄일 수 있을 것이다.

연습문제


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
소플의 처음 만난 리액트 - 리액트 기초 개념 정리부터 실습까지 소문난 명강의
이인제 지음 / 한빛미디어 / 2022년 5월
평점 :
구판절판


한빛미디어 “나는 리뷰어다” 활동을 위해서 책을 제공받아 작성된 서평입니다.

TL;DR

  • React를 처음 접하는 분들에게 적극적으로 권함
    • 핵심 개념이 매우 잘 설명되어 있어서 초급자에게 적극 권장
    • 중급자의 경우 7장, 14장 등과 같이 꼭 필요한 개념 부분만 발췌해서 복습 중심으로 진행해도 좋음
    • 회사에서 디자이너, 기획자들과 함께 작은 스터디를 진행해도 좋을만큼 개념설명과 실습이 충실함
  • React 이외에 다른 내용을 다루고 있지 않음
    • Redux, React-Router, React Query 등을 다루고 있지 않기 때문에 학습 후 부가적인 학습이 필요
    • 이후에 Next.js, React Native 등을 공부하면 좋을 듯

1. 대세는 React인가?

요즘(2022년 6월) 대부분의 프로젝트에서 꼭 거론되는 것 중 하나가 React라 할 수 있다. SPA(single page application)를 기반으로 진행되는 Next.js, 모바일 크로스 플랫폼 중 하나인 React Native, 데스크탑 크로스 플랫폼 중 하나인 Electron 등 거의 대부분 영역에서 React를 확인할 수 있다.

책표지

개발자를 지망하는 분들을 비롯해서, 나와 같은 백엔드 API를 만드는 개발자까지 정도의 차이는 있지만 React에 대한 관심과 영향력은 여전하다. 불과 1~2년전만 해도 국내에선 VueAngular 등에 대한 논의도 활발하게 진행되었지만 요즘은 React를 기반으로 프로젝트를 세팅하는 곳이 늘었고,전자정부프레임워크에서도 React기반의 예제를 제공한다.

React가 이렇게 활발하게 사용되는 이유는 다양하겠지만, Meta와 같은 대규모 서비스를 제공하는 곳에서 지속적으로 관리하고 지원을 아끼지 않고 있다는 점과 RN 등과 같은 다양한 분야에 활용할 수 있다는 것이 크게 작용했을 것으로 본다. 반면에 학습(learning curve)이 어렵다는 점은 React의 가장 큰 단점이라 할 수 있다. React는 공식 문서를 통해서 핵심 개념과 개발에 필요한 필수적인 내용을 설명하고 있다. 초급자의 경우 ‘How’에 대한 이야기는 공식 문서나 검색을 통해서 해결할 수 있지만, ‘Why’에 대한 내용은 쉽게 찾을 수 없기 때문에 React의 에코시스템(redux, react-router)등을 사용하면서 React의 필수적인 개념 부족으로 인해서 부가적인 기술에 대한 난이도가 급상승하기 때문에 학습이 어려움을 겪고 있다고 생각한다.

2. React를 처음 접하는 사용자를 위한 교재

이 책의 경우 후반분의 미니 프로젝트를 제외하면 총 15개의 장으로 React와 관련된 내용을 설명하고 있다. 각 장은 크게 설명-실습-요약 3단계로 이뤄져 있으며 15개의 장이 모두 동일한 형태로 구성되어 있어서 4~5장 정도만 읽고 실습을 병행하다보면 쉽게 익숙해진다. 설명 내용은 길지 않지만 반드시 알아야 하는 핵심적인 내용은 모두 설명하고 있다. 5장 컴포넌트와 Props, 7장의 훅, 14장의 컨텍스트 등 React 사용자가 꼭 알아야 되는 핵심적인 내용 뿐마니 아니라 15장에선 styled-components 까지 React를 처음 배우는 학습자가 배워야한 거의 대부분의 내용이 포함되어 있다.

각 장에서 소규모의 작은 예제를 만들고, 16장에서 미니 프로젝트를 진행하기 때문에 충실하게 학습만 한다면 거의 React의 기본적인 내용은 모두 학습했다고 봐도 과언은 아니다. 기존에 React를 학습했던 분들 중에서 개념적인 부분을 보강해야 한다면 이 책으로 가볍게 훑어보면서 진행해도 좋다. 그리고 각 장은 하나의 주제를 다루기 때문에 필요하다면 필요한 부분만 발췌해서 봐도 좋다. 실습 자체가 별도의 장으로 구성되어 있기 때문에 필요부분만 발췌해도 핵심 개념은 빠르게 학습할 수 있다.

설명이 좋음

대부분의 프로젝트에서 활용되는 Next.js나 React Native를 사용하기 위해서 React를 빠르게 배워야 한다면 이 책은 좋은 선택이다.

3. 처음 만난 Next.js/React Native를 기대!

한 가지 매우 아쉬운 점은, 가끔 예제 코드가 스크린샷으로 대체되어 있다는 점이다. 특히 실습 중에 일부는 스크린샷에 들어있어서 생각보다 난이도가 높아진다. 다르게 표현하면 파일 구조 및 위치를 알 수 있어서 좋을 듯 하지만 이미지에 있는 글자가 잘 읽혀지지 않거나 코드로 이뤄진 이미지를 그냥 지나쳐버릴 수 있어서 이 점은 아쉬움을 남는다. 이 책의 코드를 제공하는 Github 저장소를 즐겨찾기에 저장해두고 학습을 진행하길 권한다.

이것은 아쉬움

이 책은 React만 다루고 있기 때문에 ReduxReact-Roduter나 React Query 등을 다루지 않는다. React의 기본적인 내용을 제외한 다룬 주제를 다루지 않은 것은 분량도 한 몫하겠지만 이 책의 목표가 초급자를 대상으로 하고 있기 때문관련 내용을 다루고 있지 않을 것으로 예상된다. 상대적으로 아쉽긴 하지만 그렇다고 무작정 분량을 추가할 수 없다는 점도 동의한다. 향후에 기회가 된다면 이런 형태의 Next.js나 React Native 책도 출간되기를 기대한다.

Written on June 20, 2022



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