메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

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

인공지능 개발자로 레벨 업하기! 신경망 기초부터 컴퓨터 비전, 자연어 처리, 시계열 예측까지

한빛미디어

번역서

판매중

  • 저자 : 로런스 모로니
  • 번역 : 박해선
  • 출간 : 2022-08-24
  • 페이지 : 464 쪽
  • ISBN : 9791169210126
  • 물류코드 :11012
  • 초급 초중급 중급 중고급 고급
4.9점 (52명)
좋아요 : 12

수학이 어려운 개발자에게 바치는 

코드 실습형 머신러닝 가이드북

 

인공지능 기술 도입률이 늘면서 개발자에게 필요한 역량도 높아지고 있다. 산업을 획기적으로 변화시키는 인공지능, 어떻게 하면 현명하고 실속 있게 마스터할 수 있을까? 이 책의 목표는 개발자가 마주하게 될 다양한 문제를 머신러닝으로 해결하는 방법을 안내하고, 머신러닝과 인공지능 개발자로 레벨 업할 수 있도록 돕는 것이다.

수만 명이 선택한 온라인 강좌 기반으로 내용을 구성했고, 복잡하거나 어려운 수식은 다루지 않으며 다양한 예제 코드를 실습하면서 주요 개념을 배워본다. 머신러닝 세계에서 만나게 될 다양한 시나리오를 구현해보고, 컴퓨터 비전, 자연어 처리, 웹, 모바일, 클라우드 및 임베디드 런타임을 위한 시퀀스 모델링도 소개한다. 이 책을 읽고 나면 여러분은 곧 파이썬과 텐서플로로 머신러닝과 인공지능의 세계를 자유롭게 유영하는 인공지능 개발자로 업그레이드하게 될 것이다.

 

 

상세이미지700_개발자를 위한 머신러닝&딥러닝.jpg

로런스 모로니 저자

로런스 모로니

로런스 모로니는 구글에서 AI Advocacy를 리딩하고 있습니다. 그의 목표는 세계에 있는 소프트웨어 개발자들에게 머신러닝으로 인공지능 시스템 구축 방법을 알리고 가르쳐주는 것입니다. 그는 텐서플로 유튜브 채널에 종종 기고하고 있으며, 저명한 키노트 연설자이고, 여러 베스트셀러 공상 과학 소설과 시나리오를 저술했습니다. 그는 워싱턴 주에 거주하며, 커피를 아주 많이 마십니다. 트위터의 @lmoroney나 링크드인으로 연락할 수 있습니다.

 

박해선 역자

박해선

기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고 쓰는 일을 했습니다. 블로그(tensorflow.blog)에 글을 쓰고 머신러닝과 딥러닝에 관한 책을 집필, 번역하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있습니다.

『챗GPT로 대화하는 기술』(한빛미디어, 2023), 『혼자 공부하는 데이터 분석 with 파이썬』(한빛미디어, 2023), 『혼자 공부하는 머신러닝+딥러닝』(한빛미디어, 2020), 『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했습니다.

『실무로 통하는 ML 문제 해결 with 파이썬』(한빛미디어, 2024), 『머신러닝 교과서: 파이토치 편』(길벗, 2023), 『스티븐 울프럼의 챗GPT 강의』(한빛미디어, 2023), 『핸즈온 머신러닝(3판)』(한빛미디어, 2023), 『만들면서 배우는 생성 AI』(한빛미디어, 2023), 『코딩 뇌를 깨우는 파이썬』(한빛미디어, 2023), 『트랜스포머를 활용한 자연어 처리』(한빛미디어, 2022), 『케라스 창시자에게 배우는 딥러닝 2판』(길벗, 2022), 『개발자를 위한 머신러닝&딥러닝』(한빛미디어, 2022), 『XGBoost와 사이킷런을 활용한 그레이디언트 부스팅』(한빛미디어, 2022), 『구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js』(길벗, 2022), 『파이썬 라이브러리를 활용한 머신러닝(번역개정2판)』(한빛미디어, 2022), 『머신러닝 파워드 애플리케이션』(한빛미디어, 2021), 『머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로(개정3판)』(길벗,2021)를 포함하여 여러 권의 책을 우리말로 옮겼습니다.

 

[PART I 모델 구축]


CHAPTER 1 텐서플로 소개

1.1 머신러닝이란

1.2 전통적인 프로그래밍의 한계

1.3 프로그래밍에서 학습으로

1.4 텐서플로란

1.5 텐서플로 사용하기

1.6 머신러닝 시작하기

1.7 마치며

 

CHAPTER 2 컴퓨터 비전 소개

2.1 의류 아이템 인식하기

2.2 컴퓨터 비전을 위한 뉴런

2.3 신경망 설계

2.4 신경망 훈련하기

2.5 모델 출력 살펴보기

2.6 더 오래 훈련하기: 과대적합

2.7 훈련 조기 종료

2.8 마치며

 

CHAPTER 3 고급 컴퓨터 비전: 이미지에서 특징 감지하기

3.1 합성곱

3.2 풀링

3.3 합성곱 신경망 만들기

3.4 합성곱 신경망 살펴보기

3.5 말과 사람을 구별하는 CNN 만들기

3.6 이미지 증식

3.7 전이 학습

3.8 다중 분류

3.9 드롭아웃 규제

3.10 마치며

 

CHAPTER 4 텐서플로 데이터셋으로 공개 데이터셋 사용하기

4.1 텐서플로 데이터셋 시작하기

4.2 케라스 모델에서 텐서플로 데이터셋 사용하기

4.3 데이터 증식을 위해 매핑 함수 사용하기

4.4 사용자 정의 분할 사용하기

4.5 TFRecord 이해하기

4.6 텐서플로에서 데이터 관리를 위한 ETL 프로세스

4.7 마치며

 

CHAPTER 5 자연어 처리 소개

5.1 언어를 숫자로 인코딩하기

5.2 불용어 제거와 텍스트 정제

5.3 실제 데이터 다루기

5.4 마치며

 

CHAPTER 6 임베딩을 사용한 감성 프로그래밍

6.1 단어의 의미 구축하기

6.2 텐서플로의 임베딩

6.3 임베딩 시각화

6.4 텐서플로 허브에서 사전 훈련된 임베딩 사용하기

6.5 마치며

 

CHAPTER 7 자연어 처리를 위한 순환 신경망

7.1 순환 구조

7.2 순환을 언어로 확장하기

7.3 RNN으로 텍스트 분류기 만들기

7.4 RNN에 사전 훈련된 임베딩 사용하기

7.5 마치며

 

CHAPTER 8 텐서플로로 텍스트 생성하기

8.1 시퀀스를 입력 시퀀스로 변환하기

8.2 모델 만들기

8.3 텍스트 생성하기

8.4 데이터셋 확장하기

8.5 모델 구조 바꾸기

8.6 데이터 개선하기

8.7 문자 기반 인코딩

8.8 마치며

 

CHAPTER 9 시퀀스와 시계열 데이터 이해하기

9.1 시계열의 공통 특징

9.2 시계열 예측 기법

9.3 마치며

 

CHAPTER 10 시퀀스를 예측하는 머신러닝 모델 만들기

10.1 윈도 데이터셋 만들기

10.2 DNN을 만들고 시퀀스 데이터로 훈련하기

10.3 DNN의 결과 평가하기

10.4 전반적인 예측 살펴보기

10.5 학습률 튜닝하기

10.6 케라스 튜너로 하이퍼파라미터 튜닝하기

10.7 마치며

 

CHAPTER 11 시퀀스 모델을 위한 합성곱 신경망과 순환 신경망

11.1 시퀀스 데이터를 위한 합성곱

11.2 NASA 날씨 데이터 사용하기

11.3 RNN으로 시퀀스 모델링하기

11.4 다른 순환 층

11.5 드롭아웃 사용하기

11.6 양방향 RNN 사용하기

11.7 마치며

 

 

[PART II 모델 사용]


CHAPTER 12 텐서플로 라이트 소개

12.1 텐서플로 라이트란

12.2 훈련된 모델을 텐서플로 라이트로 변환하기

12.3 전이 학습으로 만든 이미지 분류기를 텐서플로 라이트로 변환하기

12.4 마치며

 

CHAPTER 13 안드로이드 앱에서 텐서플로 라이트 사용하기

13.1 안드로이드 스튜디오란

13.2 첫 번째 텐서플로 라이트 안드로이드 앱 만들기

13.3 이미지를 처리하는 앱 만들기

13.4 텐서플로 라이트 샘플 앱(안드로이드용)

13.5 마치며

 

CHAPTER 14 iOS 앱에서 텐서플로 라이트 사용하기

14.1 Xcode로 첫 번째 텐서플로 라이트 앱 만들기

14.2 한 걸음 더: 이미지 처리하기

14.3 텐서플로 라이트 샘플 앱(iOS용)

14.4 마치며

 

CHAPTER 15 TensorFlow.js 소개

15.1 TensorFlow.js란

15.2 브래킷츠 설치하고 실행하기

15.3 첫 번째 TensorFlow.js 모델 만들기

15.4 붓꽃 분류기 만들기

15.5 마치며

 

CHAPTER 16 TensorFlow.js에서 컴퓨터 비전 모델 훈련하기

16.1 텐서플로 개발자를 위한 자바스크립트 고려 사항

16.2 자바스크립트로 CNN 만들기

16.3 시각화를 위해 콜백 사용하기

16.4 MNIST 데이터셋으로 훈련하기

16.5 TensorFlow.js로 이미지에 대해 추론 수행하기

16.6 마치며

 

CHAPTER 17 파이썬 모델을 변환해 재사용하기

17.1 파이썬 기반 모델을 자바스크립트로 변환하기

17.2 사전에 변환된 모델 사용하기

17.3 마치며

 

CHAPTER 18 자바스크립트의 전이 학습

18.1 MobileNet으로 전이 학습 수행하기

18.2 텐서플로 허브를 사용한 전이 학습

18.3 TensorFlow.org를 사용한 전이 학습

18.4 마치며


CHAPTER 19 텐서플로 서빙으로 배포하기

19.1 텐서플로 서빙이란

19.2 텐서플로 서빙 설치하기

19.3 모델 구축과 배포

19.4 마치며

 

CHAPTER 20 인공지능 윤리, 공정성, 개인 정보 보호

20.1 프로그래밍의 공정성

20.2 머신러닝의 공정성

20.3 공정성을 위한 도구

20.4 연합 학습

20.5 구글의 인공지능 원칙

20.6 마치며

인공지능 4대 석학 앤드루 응이 추천하는 

개발자의, 개발자에 의한, 개발자를 위한 머신러닝 가이드북 

 

바야흐로 인공지능의 시대! 인공지능 기술은 급성장해왔고 금융, 교육, 유통, 제조업 등 다양한 산업에서 앞다투어 인공지능을 도입하고 있습니다. 시대 흐름에 발맞춰 인공지능 관련 교육은 다양화되고 교육에 참여하는 연령층도 점점 낮아지고 있지만, 여전히 머신러닝, 딥러닝 첫걸음을 떼기 어려워하는 개발자가 많습니다. 인공지능을 제대로 배우고 싶은데 복잡한 수식이 부담인 개발자라면, 어려운 이론 없이 파이썬 코드로 머신러닝을 시작해보고 싶은 개발자라면 이 책과 함께 머신러닝 세계에 첫발을 내디딜 차례입니다!

 

이 책은 개발자의 입장에서 머신러닝과 텐서플로가 무엇인지 설명하고 실습을 위한 텐서플로 설치법을 안내합니다. 간단한 모델을 직접 구현해보고 패션 MNIST, 말-사람, 가위, 바위, 보, Sarcasm, 강아지-고양이 데이터셋 등 다양한 데이터셋을 활용해 머신러닝, 딥러닝 모델을 구축해봅니다. 이 책은 컴퓨터 비전, 합성곱, 순환 신경망은 물론 텐서플로 라이트, TensorFlow.js, 텐서플로 서빙까지 다루는 ‘개발자를 위한 머신러닝 종합 선물 세트’입니다. 명확하고 실용적인 개념 설명과 예제 코드로 차근차근 머신러닝을 배워보세요. 인공지능 개발자로 레벨 업할 여러분을 응원합니다. 

 

대상 독자

  • 머신러닝, 시작하고 싶은데 어떻게 시작해야 할지 막막한 개발자
  • 어려운 수학이나 이론 없이 파이썬 코드로 직접 실행해보며 머신러닝 개념을 체득하고 싶은 누구나

 

주요 내용

  • 텐서플로로 다양한 모델 구조 만들어보기
  • 하나의 뉴런을 가진 신경망으로 모델 구축하기
  • 컴퓨터 비전으로 이미지의 특성 감지하기
  • 자연어 처리로 단어와 문장을 토큰화하고 순서 지정하기
  • 텐서플로 라이트로 모바일 기기에서 모델 사용하기
  • 텐서플로 서빙으로 웹이나 클라우드에 모델 배포하기

 

추천사

 

로런스 모로니는 텐서플로를 세계 최고의 인공지능 프레임워크로 만드는 데 중요한 역할을 했습니다. DeepLearning.AI와 코세라에서 8만 명이 넘는 수강생이 로런스의 온라인 강의를 수료했고 그 과정에서 그를 도울 수 있어 영광이었습니다. 여러분도 이 책을 들고 로런스와 함께 엄청난 모험을 떠나보세요. 텐서플로를 배우는 여러분의 여정에 행운이 깃들길 기원하겠습니다.

_앤드루 응, 코세라&DeepLearning.AI 설립자

 

이 책은 복잡한 수식이 아닌 다양한 예제 코드를 통해 여러분을 인공지능의 세계로 안내합니다. 머신러닝, 딥러닝 입문자들의 필독서입니다.

_마거릿 메이너드-리드, ML GDE

 

모델을 이해하는 법과 다양한 플랫폼의 머신러닝, 딥러닝 애플리케이션에 텐서플로를 적용하는 법도 소개합니다. 인공지능에 관심이 있는 모든 분에게 추천합니다. 

_자린 황, 마이크로소프트 데이터 및 응용과학자

1111.jpg

 

나에게 잘 맞는 좋은 책을 만나면 진심으로 기분이 정말 좋다.

'개발자를 위한 머신러닝&딥러닝'은 나에게 잘 맞는 기분좋은 책 이었다. 이 책은 인공지능 4대 석학 앤드루 웅의 추천 도서라고 해서 처음부터 기대가 컸다.

 

​개발자를 위한 ( 원서의 제목은 AI and Machine Learning For Coders이다.) 머신러닝 딥러닝 책인 만큼 어려운 수학적 이론은 최대한 빼고 코드 중심 그리고 머신러닝 딥러닝 모델을 실제 어떻게 실용화 할 수 있는지에 포커스가 맞추어져 있다.

 

​처음 입사했을 때 나의 사수는 수학과 출신이었다. 주변에서 전산학과 출신보다 수학과가 프로그래밍을 더 잘 한다라고 했었다. 그리고 사수는 진짜 잘 했다. 그 이유는 알고리즘의 차이였다.

나같은 프로그래밍 언어만 배우고 익혀서 프로그래밍을 하는 개발자에게 AI는 미분, 통계 등 수학적 이론이 약하므로 그냥 말만 들어도 무서운! 분야였다. 대세는 AI라고 하는데 도퇴되지 않으려면 공부는 해야하는데... 머신러닝의 입문서라고 해도 경사하강법을 설명하기 위해서 고등학교 시적 배우고 모두 지워버린 미분식, 행렬식이 나오니 정말 시작조차도 어려웠었다.

 

이런 이유에서 이 책이 Coders를 위한 책이라고 제목에서부터 당당하게 쓸 수 있었던 것 같다.

이 책에는 수식이 거의 나오지 않는다. (y=2x-1, y=10x+10  이런 식은 예를 위해 나온다) 심지어 평균 제곱 오차(MSE) 를 '시간 t에서 예측과 실젯값 사이의 차이를 구하고 음수를 없애기 위해 제곱한 다음 평균을 구합니다.(p.236)' 라고  말로 풀어서 설명해 준다. 

 

​또한 합성곱에서 풀링을 설명하는 부분은 감동적이기까지 하다. 

 

222.jpg

 

 

'핸즈 온 머신러닝 2판'에서 5페이지를 할애하여 설명하는 내용을 이 책에서는 1페이지로 끝낸다(그나마 그림이 반이다.) 물론 풀링의 이론 적인 설명은 부족할 수 있지만 프로그래머라는 사람들은 학자가 아닌 엔지니어로써 실제 어떻게 사용 되는지가 중요하지 어떻게 만들어 졌는지에 대해서는 그렇게 깊이 알려고 하지 않는 편 아니던가.(나는 그렇다.)

 

이 책은 1부 다양한 문제를 해결하는 머신러닝 모델을 텐서플로로 구축하는 방법, 2부 모델을 안드로이드, iOS로 배포하고 Tensosrflow.js를 활용하여 웹 브라우저에서 실행하며 클라우드로 배포하는 내용으로 구성되어있다. 

 

1부에서는 앞에서도 말한 것과 같이 복잡한 수식을 쪼~옥 뺀 머신러닝과 딥러닝을 이용하여 컴퓨터 비전, 자연어 처리, 순환 신경망(RNN), 시계열 데이터분석 등 이론들을 공개데이터 셋을 이용하여 실제 모델을 만들어보고, 왕좌의 게임에 관련된  시를 써보게 하는 등 흥미를 유발하는 예제를 통해 알려준다. 

 

2부에서는 이미 만들어진 모델을 여러 디바이스에 포팅하여 제품으로 만드는 기본적인 방법을 배울 수 있다. 하지만 안드로이드 스튜디오, Xcode 등에서 간단한 예제를 만들어 보는데 그치므로 자기가 필요한 부분에 대해서는 다시 공부를 하는 것이 필요하다. 그럼에도 머신러닝, 딥러닝이 어떻게 쓰이는지 실제 활용방법에 대해 다루고 있어 나에게는 큰 도움이 되었다. 

 

​컴퓨터 비전, 자연어 처리 등 각 독립된 분야로 벽돌 책 한 권의 분량의 내용들을 한 챕터로 다루고 있어 내용이 부실하지 않을까 걱정된다면 그 걱정은 넣어 두시기를 바란다. 물론 모든 이론적인 내용을 다 다루지는 못하지만 이미 있는 모델을 이해하고 살짝 고쳐서 사용할 수 있을 만큼의 내용으로는 충분하게 자세하고 실용적이다.

 

​머신러닝 딥러닝 정말 매우고 싶은데 벽돌 책과 무시무시한 수식들에서 무너지려하는 입문자에게 시작하고 싶은데 뭐부터 해야할지 모르는 사람들에게 이 책은 큰 도움이 될 것이다.  또한 머신러닝,딥러닝 분야를 전체적으로 알고 싶은 사람들에게도 꼭 추천하고 싶다. 머신러닝 딥러닝의 숲을 보여줄 것이다.

 

"이 책은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성한 서평입니다 "

 

이 서평은 출판사로부터 책을 제공받아 작성하였습니다. 

 

 

무작정 따라하기 좋아하는 타입이라면 이 책을 추천한다.

 

박해선님의 번역이기도 하거니와(박해선님 번역이라면 사실 품질 보증이 된다는 의미다) 책도 아마존에서 베스트셀러로 이미 검증받은 도서기 때문이다.

 

chatGPT덕에 다시한번 머신러닝의 시대가 부흥하는 거 같고, 딥러닝의 시대가 오는 듯 하지만, 실무에서 실제로 ML을 적용한다는 것 혹은 실제로 ML을 배워본다는 건 쉽지 않은 일이다. 왜냐하면 어렵기 때문이다. ML이 쉽다는 건 내 생각에 거짓말 같다. 

 

하지만 거짓말이 아닌거 같기도 하다. ML을 전문적으로 다루는 프로들의 세계가 아니라면 말이 되기 때문이다. 그렇지만 언제 수학부터 하나하나 다 공부하고 있을까. 그럴 여유가 별로 없다. 그리고 뭔가 개발을 배울 때 빨리 배우는 건 일단 무조건 돌려보는 거다. 여기서 문과적 사고와 이과적 사고가 나뉘는거 같기도 한데, 일단 그냥 돌려보고 되네? 바꿔보고 되네? 바꿔보고 이렇게 해보는것만으로도 괜찮은거 같다. 

 

다만, 다시 강조하지만 이렇게 하는 방식이 프로들 세계에서도 먹힐지는 미지수다. 그리고 실제 서비스에서 이런 식으로 해서 안정성이 보장되지 않는다면 그건 실격이다.

 

이 책은 어쩌면 그런 불상사를 막기 위한 협업을 위해 조금씩 서로를 이해하는데 도움을 줄 수 있는 책이지 않을까 싶다.

 

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

 

1. 대상 독자

- 인공지능과 머신러닝에 관심이 있고 데이터에서 학습하는 모델을 빠르게 구축하고 싶은 사람 

- 일반적인 인공지능 및 머신러닝 개념을 배우는 데 관심이 있고 이 분야의 문제를 해결하기 위해 신경망을 훈련하는 방법을 알고 싶은 사람

- 이미 훈련한 모델이 있고 모바일, 브라우저 또는 클라우드를 통해 사용자에게 제공하려는 사람 

 

2. 책의 구성

- 1부 : 다양한 문제를 해결하는 머신러닝 모델을 텐서플로로 구축하는 방법을 설명.

          신경망 모델을 만드는 방법, 컴퓨터 비전, 자연어 처리, 시퀀스 모델링 

- 2부 : 모델을 안드로이드, iOS로 배포하고 웹 브라우저에서 자바스크립트로 실행하며 클라우드로 배포하는 시나리오. 

 

3. 온라인 자료

- 텐서플로 홈페이지 : https://www.tensorflow.org/

- 텐서플로 유튜브 채널 : https://www.youtube.com/tensorflow 

- 이 책의 코드 : https://github.com/rickiepark/aiml4coders 

 

4. 텐서플로

    4-1) 전통적인 프로그래밍

           복잡한 규칙을  적용해야 하는 프로그램의 경우에는 한계

    4-2) 머신러닝 : 프로그래밍 -> 학습

            스스로 학습하면서 규칙을 만들어 냄

 

    4-3) 텐서플로란?

           머신러닝 모델을 만들고 사용하기 위한 오픈 소스 플랫폼

 

                                    (텐서플로의 구조) 

 

5. 내용 

- 1부_위의 기본적인 텐서플로 구조를 바탕으로 신경망 모델을 만들고, 컴퓨터 비전, 자연어 처리, 시퀀스 모델링까지 구현해 본다.

- 2부_모델을 안드로이드, iOS로 배포하고 웹브라우저에서 자바스크립트로 실행하며 클라우드로 배포하는 시나리오를 다른다.

 

(마무리)

요즘 AI(인공지능)이 매우 핫한 시점입니다. 이 시점에 실제로 인공지능 신경망을 만들어보고, 자기만의 인공지능 비서를 구현해보는 것도 좋은 방법이 아닐까 생각합니다. 

 

아무리 쉽게 할 수있다고 하더라도 인공지능 기술을 구현하는 부분은 일반인들이 쉽게 접하기 힘들지 않나 생각해봅니다. 따라해서 구현하는 것은 하겠지만 실제로 모델을 만들고 논문을 가지고 구현을 해내려면 시간도 많이들고 장비도 좋은게 있어야 하기 때문에 이 책은 개발을 할 줄 안다고 전제하고 있습니다. 개발을 할 줄 아는데 인공지능 프로그래밍을 해보고 싶거나 인공지능분야로 나아가 보고 싶은 분들이 보기에 좋은 책이라고 생각합니다. 

 

책을 쓴 지은이의 의도를 파악하고, 위에 나타난 소스를 잘 참고해서 실습해보면 공부하는데 많은 도움이 되지 않을까 생각합니다. 하루 하루 즐겁게 보내시고, 리뷰가 도움이 되었길 바랍니다. ^^

지난 몇년동안 베타리딩이나 리뷰활동을 하면서 되도록이면 인공지능 관련 서적 (혹은 파이썬 개발서적)을 선택해서 읽는 편이다. 물론 현업에서 활용하기도 할 뿐더러, 과연 딥러닝/머신러닝 관련 서적들이 출간되면서 어떤 내용들을 다루는지 궁금해서다. 물론 왠만한 개발 내용은 인터넷을 검색해서도 찾을수도 있고, 때로는 논문을 찾아봐야만 나오는 내용들도 있지만, 이렇게 책을 통해서 살펴보는 내용은 뭔가 정리가 되어있고, 순서에 맞게 읽을 수 있다는 점? 혹은 난이도에 따라서 천천히 읽어볼 수 있다는 점이 장점이 아닐까 싶다. (물론 정적인 요소이기에 어느정도 시간이 지나면 outdated되는 부분이 존재하긴 하지만 말이다.)

그런데 사실 이런 인공지능 서적을 읽으면서도 한가지 고민이 되는 점이 한가지 생긴다. 과연 이런 인공지능 관련 서적을 전공지식? 혹은 배경지식을 이해하지 않고도 과연 접근할 수 있는가에 대한 부분이다. 분명 비개발자나 비전공자가 처음 인공지능을 접근하는데 있어서는 소위 말하는 핸즈온 방식의 내용 전개가 참 도움이 된다. 그냥 뭔지는 몰라도 예제를 직접 따라해보면서 거기서 발생하는 궁금증을 스스로 해결할 수 있게끔 도와주는 책은 시중에도 많이 나와있고, 아마 대부분의 서적이 거진 이런 방식으로 따라간다. 나도 처음 접근하는 입장에서는 이렇게 접근하다가도 문득, 단순히 이렇게 코드만 보고 따라하는 것만으로도 과연 성능을 올리고, 확장시킬 수 있는가에 대한 걱정이 들기 시작했다. 아무리 봐도 인공지능 기술을 공부하는데 있어서는 아무래도 수학적인 부분을 알아야만 넘어갈 수 있는 부분이 있는 것이고, 최근은 강의나 책들을 그런 관점에서 보고있긴 하다. 그래도 개발자로써는 이런 수학적인 지식과 더불어 뭔가 개발적인 부분(예를 들어서 API 사용법이나 데이터 구조같은 부분)도 필요하고.. 어느정도 균형이 필요한 것 같다.

 

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

 

이 책은 이름도 "개발자를 위한" (원서에는 For Coder라고 표현되어 있다.) 머신러닝/딥러닝이라는 타이틀을 가지고 있다. 그래서 이책에는 앞에서 언급한 것처럼 뭔가 원론적인 수학 지식이나 인공지능 관련 배경지식을 포함하지 않고 딱 담백하게 Tensorflow/Keras를 활용한 인공지능 기술 활용 방법에 대해서 기술하고 있다. 사실 개인적인 입장에서는 이런 류의 책을 좋아하지는 않지만, 뭔가 어떤 결과물이나 현재 하고 있는 작업에 관련 기술을 적용하기 위한 예시를 찾고 있다면 이 책은 그런 부분에서 부족한 것을 채워줄 수 있다. 이 책의 원저자인 로렌스 모로니도 사실 전공자가 아닌 입장(물리학 전공)에서 어떻게 하면 사람들이(특히 개발자가) 인공지능 기술을 잘 활용할 수 있을지에 대한 고민을 많이 하고 이 책을 작성했다고 하고, 책 내용도 살펴보면 그런 부분이 많이 강조되어 있다. 특히 뭔가 복잡하게 내용이 전개될 것 같은 부분이 있으면 해당 부분에 대한 원론적인 내용보다는 이와 관련 예시를 통해서 쉽게 설명하고자 했다. 일례로 컴퓨터 비전 관련된 설명에서도 복잡한 기술 설명보다도 API를 통해서 이해하기 쉽게 설명해놨다.또 후반부에는 임베디드나 폰 환경에서도 활용해볼 수 있는 Tensorflow Lite나 웹환경에서도 구현가능한 Tensorflow.js에 대한 설명이 포함되어 있어, 다양한 사례에 응용해보고자 하는 사람에게는 도움이 될 것이다.

이 책은 간단히 말하자면 뭔가 코드를 가지고 인공지능 모델을 만들어야하는데 진짜 막연할 때 도움이 될만한 책이다. 물론 앞에서 언급한 그런 복잡한 이론부분이나 수학 내용이 담겨져 있지는 않지만, 전형적인 핸즈온 방식으로 내용을 이해하고자 하는 사람에게는 읽어보면 좋겠다.

(해당 포스트에서 소개하고 있는 "개발자를 위한 머신러닝&딥러닝" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)

 

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

수학이 어려운 개발자를 위한 코드 실습형 머신러닝 가이드북. 머신러닝 모델 구축부터 활용법까지 단계별로 설명하며 개발자가 마주하게 될 다양한 문제를 머신러닝으로 해결하는 법을 안내

hanbit.co.kr

책을 리뷰하면서 느낀 점은 큰 흐름을 파악하고 핵심 개념과 TensorFlow(텐서플로) 실습하며 학습하고 싶은 분들에게 딱 좋은 책입니다. 

 

저자

로런스 모로니는 구글 Lead AI Advocate이며 텐서플로를 주요 인공지능 프레임워크로 만드는 중요한 역할은 한 분 입니다. 그리고 DeepLearning.AI와 코세라에서도 온라인 강의를 하여 더 많은 사람들이 입문하고 학습하도록 하고 있습니다. 그리고 코세라 창업자인 Andrew Ng(앤드류 응) 이 추천사를 쓴 책입니다. 

 

난이도

개발자를 위한 이라고 나와 있는 건 모델 배포, 서빙 영역까지 다루기 때문으로 보이며 꼭 개발자가 아니더라도 요즘과 같이 초거대 AI가 나올수록 이런 기술에 대한 이해와 활용능력이 더울 커질 것으로 보여서 관심이 있는 파이썬 경험자라면 입문으로 보기 좋습니다.  한 책 안에 다양한 분야를 다루기 때문에 수학적인 내용이나 관련 이론에 대해서 깊이는 다루지 않지만 핵심 개념을 이해하고 넘어갈 수 있는 단계 별로 나아간다.

 

또, 이전에 코세라, deeplearning.AI 에서 텐서플로 강의를 한글로 배우고 싶거나 복습 자로  설명이 상세히 적힌 하나의 책으로 소장하고 싶다면 추천드립니다. 

 

선수지식으로 파이썬 문법 및 Numpy array를 어느 정도 할 수 있는 분들이라면 큰 허들 없이 따라 하며 입문하기 좋습니다. 

 

구성

수학이나 AI에 대한 깊은 이해가 없더라도 빠르게 TensorFlow 활용하여 컴퓨터비전, 자연어처리, 시퀀스 데이터로 모바일, 브라우저, 클라우드에 서빙까지 하는 전 단계를 다루어 빠르게 TF 로 학습부터 서빙까지 하는 방법을 코드와 함께 학습 가능한 코드 실습형 머신러닝 가이드 북입니다.

 

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

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

 

로런스 모로니 지음 / 박혜선 옮김

 

책 소개

이 책은 머신러닝과 딥러닝에 대해 처음 접하는 개발자들에게 유용한 안내서입니다. 파이썬을 기반으로 한 머신러닝 라이브러리와 딥러닝 프레임워크를 소개하고, 많은 예제 코드를 제공하여 초보자들도 쉽게 따라할 수 있도록 구성되어 있습니다. 또한 다양한 응용 분야에서의 실제 적용 사례를 다루어 개발자들이 이 분야를 더 깊이 이해할 수 있도록 도와줍니다.

리뷰

머신러닝과 딥러닝은 현재 매우 핫한 분야이며, 이 책은 이러한 분야에 대한 깊은 이해와 적용 방법을 제공합니다. 책에서는 머신러닝 및 딥러닝의 개념과 이론부터 시작하여 파이썬을 기반으로 한 라이브러리와 프레임워크, 그리고 다양한 응용 분야까지 다루고 있습니다.

이 책은 초보자부터 전문가까지 다양한 수준의 개발자들이 활용할 수 있습니다. 예제 코드와 함께 구성되어 있기 때문에 이론적인 내용을 쉽게 이해할 수 있으며, 머신러닝 및 딥러닝의 적용 방법을 실제로 적용해보면서 실력을 향상시킬 수 있습니다.

머신러닝 및 딥러닝 분야는 계속해서 발전하고 있기 때문에, 이 책을 통해 기본적인 내용을 습득한 뒤 더 깊이 있는 학습을 진행한다면 더욱 좋습니다. 전반적으로 이 책은 머신러닝 및 딥러닝에 대한 기본 개념부터 실제 적용 방법까지 쉽게 다루고 있어 매우 유용하게 사용될 수 잇을 것 같습니다. 저도 프로젝트에서 텐서플로우를 사용한 경험이 있는데, 이 책을 통해 조금 더 공부를 더했더라면 이해가 수월했을 것 같습니다.

 

 

 

 

 

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

 

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

 

 

개발자를 위한 머신러닝&딥러닝(Ai and Machine Learning For Coders) 는 여러 예시들로 다양한 문제들을 해결하는 머신 러닝 모델을 텐서플로로 구축해보고, 신경망 모델을 만드는 방법, 컴퓨터 비전, 자연어 처리 등을 다룬다. 그리고 만든 모델을 안드로이드, IOS 그리고 웹 브라우저에서 js로 실행하며 클라우드로 배포하는 방법까지 설명해준다.

 

머신러닝에 대해 아직 한번도 배워보지 않은 상태에서 이 책을 접했는데, 이런 나도 충분히 이해할 수 있게 쓰여져있었다.

그리고 만든 모델을 다양한 방법으로 사용해 볼 수 있는 과정도 같이 설명하고 있어서 매우 유용한 책이다.

머신러닝&딥러닝 입문 서적으로 추천하고 싶다. 

Intro

다시 머신러닝 책 리뷰를 쓰게 됐다. AI가 인기가 많은 만큼 머신러닝 책도 많이 나오고 있다. 실무에서 자주 쓰이는 백엔드, 프론트엔드 기술과 관련해서도 책이 많이 나왔으면 좋겠는데 요즘 트렌드가 이러하니 어쩔 수 없는 것 같다.

어쨌든 이런 책들이 많이 나오니 머신러닝은 더 이상 전공자만 배울 수 있는 기술이 아니게 되고 있다. 누구나 배우고 싶으면 배울 수 있다. 그러니 머신러닝 또는 딥러닝을 공부해 보고 싶다면 사람들이 쓴 리뷰를 잘 판별해서 책을 골라보자.

Book Review

개발자에게 추천하고 싶은 책

개인적으로 나는 밑바닥부터 공부해서 올라오는 Bottom-Up 방식을 좋아한다. 그래서 내 첫 딥러닝 책은 밑바닥부터 시작하는 딥러닝이었다. 그러나 지인들에게 책을 추천할 때 Bottom-Up 방식의 공부를 좋아하지 않으면 과연 어떤 책을 추천할 수 있을까? 라는 생각이 들었다.

누군가는 개념들을 간단하게 공부한 후, 빠르게 적용하고 싶을 수도 있지 않은가. 이 책은 그런 경우에 적절하게 사용할 수 있는 책이라 생각한다. 모르는 개념들과 용어는 개인적으로 구글링을 통해 찾아보면 된다. 또한, 저자뿐만 아니라 역자분께서 역주를 사용하여 부족한 개념들을 보충해 주셨기에 읽기 쉬울 것이다. 이번에 이 책을 읽으면서 다음부터 개발자들에게 머신러닝, 딥러닝 책을 추천할 일이 있다면 이 책을 추천할 예정이다.

간단한 순서

이 책은 PART 1과 PART 2로 나누어진다. 처음에 PART 1에서는 전반적으로 모델들에 대해 설명한다. 텐서플로부터 간단하게 소개하고 바로 컴퓨터 비전과 CNN으로 넘어간다. 그리고 텐서플로 데이터셋을 사용하는 방법을 알려주는데 여기서 4.6 텐서플로에서 데이터 관리를 위한 ETL 프로세스가 인상적이었다. 간단하게 설명하지만 이 부분이 실제로 중요한 부분이라 생각된다. 이후 자연어처리, RNN 그리고 시계열 데이터까지 다룬다. 누군가에게는 이 책이 불친절하다고 생각할 수 있다. 하지만 책을 읽는 대상 자체가 개발자로 지정했기에 불친절하더라도 모르는 부분은 검색하면서 읽어야 하지 않을까 생각이 된다. 검색하면서 모르는 개념들을 공부해 볼 수 있는 것이고 시간이 조금 걸리겠지만 그래도 머신러닝을 빠르게 활용할 수 있게 도와준다는 점에서 나는 이 책을 추천하고 싶다.

PART 2에서는 모델을 어떻게 사용할 수 있는지에 대해 설명한다. 텐서플로 라이트를 활용하여 안드로이드, iOS에서 사용할 수 있도록 알려주고, TensorFlow.js를 사용하여 웹에서 사용할 수 있도록 알려준다. TensorFlow.js 기술에 대해서는 예전에 들어본 적이 있었지만, 웹에서 CNN까지 사용해 볼 수 있다는 점은 이 책을 읽으며 처음 알게 됐다. 기술의 발전이 정말 빠르다는 것을 느꼈다.

또한, TFX를 간단하게 소개하고 TensorFlow Serving(TFS)에 대해서 알려준다. TFS 이외의 TFX는 살아 움직이는 머신러닝 파이프라인 설계를 참고하는 것을 추천한다. 개인적으로 TFX를 더 다뤄줬으면 좋겠다고 생각하나 그랬다면 책이 엄청나게 굵어졌을 것이라 예상한다. 마지막으로 인공지능 윤리, 개인 정보 보호 등에 대해 간단하게 설명하고 마무리된다. 이런 부분에서 많은 개발자들이 지식이 부족했을 텐데 끝으로 상기시켜 주면서 다뤄주는 것이 좋았다.

대상 독자

이 책은 개발자를 대상으로 쓰였다. 그래서 머신러닝, 딥러닝에 대한 기본적인 지식이 없다면 이 책을 읽는 것이 조금 힘들 수도 있다. 하지만 개발자라면 누구나 읽을 수 있게 최대한 간단하고 쉽게 설명하고 있으니 머신러닝, 딥러닝에 관심이 있다면 도전해보길 바란다. 수식이나 어려운 ML 개념은 대부분 제외하고 코드와 결과 위주로 쓰여졌기 때문에 데이터 과학자가 아닌 개발자에게 더욱 특화된 책이라 생각한다. 물론 머신러닝에 대해 사전 지식이 있으면 이 책을 읽기에는 더욱 쉬울 것이다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
로런스 모로니 지음 / 박해선 옮김


  회사 업무는 주로 데이터 전처리, 통계 분석, 머신러닝 정도를 활용하고 있다 보니, 딥러닝은 네이버 부스트캠프 이후로 공부한 기억이 없었는데, 마침 코드 위주로 구성된 책을 받아보게 되었습니다. 오랜만에 딥러닝 내용을 복습할 수 있어서 좋았고, 특히나 아래에서 한번 더 서술하겠지만 단순히 AI 모델을 소개하는 것에서 끝나지 않고, 어떻게 서빙할 수 있는지, 앱에서 텐서플로우 라이트 사용하는 방법 등을 소개하고 있습니다. 또한 요즘 인공지능 윤리가 많이 대두되고 있는데, 해당 내용에 대해서도 다루고 있어서 좋았던 것 같습니다. 자세한 내용들은 아래에서 소개해보도록 하겠습니다.

1. 대상 독자

 이 책은 빠르게 모델링을 해보고 싶은 분이나 모델을 만들고 그 모델을 앱 등에 서빙하고 싶은 분들에게 유용한 책이라고 생각합니다. 특히나 요즘 인공지능 모델에 대한 소개나 개념 등은 잘 소개되어 있는 책은 많지만, 모델을 어떻게 서빙하는 지를 다루는 책은 많지 않은데, 그러한 독자의 궁금증을 해결해 줄 수 있는 책입니다. 책은 텐서플로우를 기반으로 작성되어 있어서 파이토치를 주로 다루시는 분들은 낯설 수 있습니다. 텐서플로우로 작성된 이유는 아마 서빙 부분에서 파이토치보다 강력하기 때문이 아닐까라고 추측해 봅니다. 제가 인공지능을 공부할 때에는 모델링한 뒤에 다양한 형태로 변환하기 텐서플로우가 쉬웠었는데, 지금도 그런지는 모르겠네요! 

 

2. 이 책의 특징

1) 책의 구성

 이 책은 크게 2가지 파트로 나눠져 있습니다. 첫 번째 파트에서는 모델 구축과 관련된 내용을 두 번째 파트에서는 첫 번째 파트에서 만든 모델을 어떻게 사용하는 지에 대해서 다루고 있습니다.

 첫 번째 파트에서는 모델 구축에 활용되는 라이브러리인 텐서플로우에 대해서 소개하면서 시작합니다. 그리고 기본적으로 인공지능 문제에 해당하는 컴퓨터비전, 자연어처리, 시계열예측 크게 3개를 다루고 있습니다.

 두 번째 파트에서는 모바일과 임베디드 장치에서 머신러닝을 가능하도록 만든 기술인 텐서플로우 라이트에 대해서 소개하며 시작합니다. 안드로이드 앱, ios앱에서 텐서플로우 라이트를 활용하는 방법, TensorFlow.js, 텐서플로 서빙, AI 윤리까지 다루고 있습니다. 자세한 목차는 아래와 같습니다.

Part 1. 모델 구축

  • 텐서플로 소개
  • 컴퓨터비전 소개
  • 고급 컴퓨터 비전: 이미지에서 특징 감지하기
  • 텐서플로 데이터셋으로 공개 데이터셋 사용하기
  • 자연어 처리 소개
  • 임베딩을 사용한 감성 프로그래밍
  • 자연어 처리를 위한 순환 신경망
  • 텐서플로로 텍스트 생성하기
  • 시퀀스와 시계열 데이터 이해하기
  • 시퀀스를 예측하는 머신러닝 모델 만들기
  • 시퀀스 모델을 위한 합성곱 신경망과 순환 신경망

Part 2. 모델 사용

  • 텐서플로 라이트 소개
  • 안드로이드 앱에서 텐서플로 라이트 사용하기
  • iOS 앱에서 텐서플로 라이트 사용하기
  • TensorFlow.js 소개
  • TensorFlow.js에서 컴퓨터 비전 모델 훈련하기
  • 파이썬 모델을 변환해 재사용하기
  • 자바스크립의 전이 학습
  • 텐서플로 서빙으로 배포하기
  • 인공지능 윤리, 공정성, 개인 정보 보호

 

2) 실습과정 중에서 발생할 수 있는 문제

모델링 진행 중 흔히 발생할 수 있는 문제

 모델링을 다루는 많은 책들에서는 실질적으로 독자 입장에서 발생할 수 있는 문제들을 다루지 않는 경우가 많습니다. 이 책에서는 위처럼 모델이 학습이 잘 안 되었을 때, 발생할 수 있는 문제들을 제시하면서 해결할 수 있는 방법들을 소개합니다. 위와 같이 모델이 잘 학습되지 않는 문제들은 데이터셋이 빈약하거나 다양한 환경에서 발생할 수 있는 케이스들을 학습하지 못한 경우가 있습니다. 예전에 드론으로 인퍼런스 하는 문제를 해결하려고 했었는데, 그때에도 장화 신은 고양이가 등장했던 기억이 있습니다. 해당 문제를 해결하고자 저희 팀에서는 다양한 고양이 얼굴을 포함해서 문제를 해결했었습니다. 이처럼, 실제 모델을 구축하는 입장에서는 "당연히 잘되겠지?"라고 생각할 수 있겠지만, 생각보다 쉽게 모델링이 되지 않는다는 것을 알려주고 있다는 점에서 좋았습니다.

 

3) 효율적인 학습을 위한 파이프라인 소개

 동일한 데이터셋을 활용해서 다양한 모델을 만들고, 그 과정에서 각각의 이미지 증식이 효과적이었는 지를 확인하기 위해서 원본 데이터를 수정하지 않은 상태로 학습이 진행되어야 합니다. 그에 필요한 ETL 파이프라인을 간략하게 소개해주는 점이 좋았습니다. 또한, 이미지의 경우 이미지 1장마다 데이터가 너무 크다면, 학습할 때 메모리에 한번에 올리기 어려운 문제 등도 있고, GPU를 적절하게 사용하고 있는지에 대한 의문이 들 때도 있습니다. 해당 부분에 대한 내용들도 다루고 있고 단순하게 이론에 치우친 내용보다 실질적으로 접할 수 있는 어려움에 대해 미리 알려주는 느낌이라 더 좋았던 것 같습니다.

 

4) 다양한 앱에서 텐서플로 사용하는 방법 소개

 저는 전공을 수학을 했다보니, 컴퓨터 언어를 많이 접해보지도 않았고, 실제로 어떠한 프로세스로 앱이 만들어지는지, 어떻게 구성해야 하는지 잘 모르는 상태였습니다. 그래도 내가 만든 모델로 다른 사용자들이 직접 인퍼런스 해봤으면 하는 마음이 많이 있는데, 어떻게 앱을 만들어야 하는지 모르다 보니 나만 사용하는 모델이 될 때가 많았습니다. 제가 느끼는 것처럼 실제로 다양한 사용자들과 나누고 싶은 마음은 있으나, 어떻게 해야 할지 모르는 분들에게 차근차근 소스코드까지 알려주다 보니, 쉽게 따라 할 수 있었습니다. 예전에 막무가내로 안드로이드 스튜디오를 깔았다가 지웠던 기억이 있었는데, 이 책을 보니 다시 해볼 수 있겠다는 생각이 들었습니다. 

 

3. 총평

 이 책은 완전 이론보다는 직접 만들어보면서 인공지능을 배워가고 싶은 분들에게 도움이 되는 책입니다. 그리고 저처럼 인공지능을 알지만, 실제로 서빙하는 경험을 해보고 싶다면 추천해드리고 싶습니다. AI 모델을 End-to-End로 경험해볼 수 있는 책이 될 것 같습니다. 그래도 중간중간 어려운 용어들이 있긴 하지만, 아래에 주석으로 많이 설명하려고 노력하신 것 같다고 느꼈습니다. 제가 만약 지금 취업준비생인 상태였다면, 이 책을 활용해서 내가 만든 모델로 서빙까지 진행해 볼 것 같습니다. 

 

 

 

IMG_6390.jpg

 

IMG_6394.jpg

 

 

개발자를 위한 머신러닝 딥러닝: Machine Learning For Coders

 

개발자를 위한 머신러닝&딥러닝은 머신러닝 뜻 딥러닝 차이에 대해서 완벽하게 정리해주는 코더를 위한 IT전문서예요. AI인공지능 설계에 필수적인 머신러닝을 학습하는데 실제 코드를 활용해서 이해하기 쉽게 머신러닝과 딥러닝을 구현할 수 있게 도와주고 있거든요.

 

오라일리 개발자를 위한 머신러닝&딥러닝은 파이썬 라이브러리인 텐서플로를 이용해서 학습을 진행해요. 지도학습 머신러닝과 인공 신경망을 활요하는 딥러닝까지 단계적으로 학습할 수 있게 구성되어 있다는 점이 장점이었어요.

 

IMG_6392.jpg

 

 

개발자를 위한 머신러닝 딥러닝: Machine Learning For Coders

 

코드를 직접 확인하면서 머신러닝 뜻 딥러닝 차이에 대해서 바로알 수 있게 친절하게 정리되어 있는 개발자를 위한 머신러닝&딥러닝은 최적의 학습서라는 느낌이 들어요.

IMG_6397.jpg

 

선형대수와 베이지안 통계에 대한 지식이 없더라도 인공지능을 위한 머신러닝 딥러닝 공부를 하고 싶은 분께 추천드릴 수 있어요. 수학적 기초가 부족해서 머신러닝 딥러닝 차이 공부를 망설이고 계셨다면 개발자를 위한 머신러닝 딥러닝: Machine Learning For Coders을 통해 학습을 이어가시는 것을 추천드려요.

 

"여러분은 그림 속 의류 아이템을 종류별로 알아볼 수 있습니다. 어떤 것이 셔츠, 코트, 드레스인지 구별할 수 있습니다. 하지만 옷을 한 번도 본 적 없는 사람에게 이를 어떻게 설명할 수 있을까요? 신발은 어떻게 설명할까요? 그림에는 종류가 다른 신발 두 개가 있는데 어떻게 설명해야 할까요? 이는 1장에서 이야기한 규칙 기반 프로그래밍이 실패하는 또 다른 영역입니다. 이따금 규칙으로 무언가를 설명하기가 불가능한 경우가 있습니다.

컴퓨터 비전도 예외가 아닙니다. 하지만 여러분이 이런 아이템을 인식하는 방법을 생각해보죠. 여러 가지 샘플을 보고 사용 방법을 경험하고, 이를 기반으로 사물을 구별합니다. 그렇다면 컴퓨터로 이 과정을 똑같이 해낼 수 있을까요? 네, 할 수 있습니다. (...중략...)

의류 아이템에는 다양한 셔츠, 바지, 드레스, 여러 가지 종류의 신발이 있습니다. 그림에 나타나 있듯이 흑백 이미지이므로 각 사진은 0과 255 사이의 픽셀 값으로 구성됩니다. 덕분에 데이터셋을 쉽게 다룰 수 있습니다."

- ≪개발자를 위한 머신러닝&딥러닝》 중에서

책에서는 컴퓨터 비전에 대해 이처럼 직관적으로 이해하기 쉽게 소개한다. 뉴런부터 Hidden Layer(은닉 층)과 Output Layer(출력 층), Overfitting(과대적합), Hyperparameter Tuning(하이퍼파라미터 튜닝) 등 머신러닝에 필요한 개념과 학습(신경망 훈련)하는 방법까지 알려주면서 어려운 이론적인 내용보다는 바로 이해하고 활용할 수 있도록 파이썬 코드와 함께 설명해준다.

파트 1에서는 컴퓨터 비전 외에도 자연어 처리, 텍스트 생성, 시계열데이터 처리 그리고 CNN과 LSTM, RNN, DNN 등 모델 구축에 대해 다룬다. 그리고 파트 2에서는 텐서플로를 이용해 모델을 사용하는 방법을 상세하게 알려준다. DeepLearning.AI와 코세라에서 텐서플로 교육 과정을 진행했었던 저자 로런스 모로니의 텐서플로우 강의인만큼 알차다. 네이티브 모바일이나 임베디드 시스템에서 실행되는 텐서플로 라이트와 웹에서 사용할 수 있는 TensorFlow.js를 알려주기도 한다.

특히 텐서플로 서빙과 모델 구축과 배포, 데이터 관리를 위한 ETL 프로세스, 텐서플로로 웹/앱 만들기 등 실제 개발 시 필요한 내용을 많이 다루고 있다는 점에서 개발자에게 아주 유용하다.

무엇보다도 수식과 이론을 늘어놓기보다는 코드와 실제 실행 결과를 기반으로 설명해주는 점이 개발자입장에서 읽기가 훨씬 수월하다. 그래서 이 책은 처음부터 끝까지 코드를 베이스로 하는 만큼 모델을 빠르게 구축하여 학습과 추론을 하고 싶은 사람에게 주저 없이 추천하고 싶다. 책의 내용을 하나씩 따라가다 보면 금방 머신러닝을 사용할 수 있을 것이다.

일단 머신러닝과 딥러닝을 전체적으로 아우르고 개발자에게는 좋은 도서가 될 거 같습니다.

첫 번째 ‘모델 구축’ 파트의 각 장에서는 관련 단어와 개념 설명을 간략하게 설명하고 텐서플로를 사용하여 컴퓨터 비전과 자연어 처리, 시퀀스 모델링 머신러닝 모델을 만듭니다. 두 번째 ‘모델 사용’ 파트에서는 첫 번째 파트에서 훈련한 모델을 안드로이드와 iOS 모바일 환경을 위한 텐서플로 라이트와 웹 환경의 TensorFlow.js를 사용한 시나리오를 실습합니다. 

 

책의 두께는 다른 개발서에 비해 비교적 얇은 편이지만, 다루는 상황과 데이터셋은 다양합니다. 그만큼 개념은 핵심만 다루고 실습 위주로 진행됩니다. 머신러닝을 적용할 수 있는 케이스와 신경망의 종류 등을 개괄할 수 있는 책입니다.

 

약간의 선수 지식을 필요로 합니다. 모델을 구축할 때 텐서플로에서 사용하는 파이썬 문법이나 배포 단계의 각 플랫폼과 관련된 언어의 문법은 책에서 따로 설명하지 않습니다. 하지만 각 장이 독립적으로 구성되어 있기 때문에 자신이 필요한 플랫폼과 관련한 부분만 발췌독해도 무리가 없는 내용입니다.

 

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

 

이 책의 내용은 코드 중심으로 구성되어 있습니다. 그렇기에 머신러닝&딥러닝을 학습하고자 하는 개발자분들께 실제적인 콘텐츠를 제공하고 있습니다. 지은이는 구글의 인공지능 개발 지원 팀 리더인 로런스 모로니(Laurence Moroney) 님으로, 책의 내용은 구글의 '텐서플로'를 기반으로 작성되어 있습니다.

책의 목차는 크게 '파트 1'과 '파트 2'로 구성되어 있습니다.

'파트 1'은 텐서플로로 다양한 모델을 구축해보는 내용을 담고 있습니다. 번역서이기 때문에 한국어 사용자에게 불편이 없도록 블로그 정오표와 깃허브 주피터 노트북이 제공되고 있습니다.

'파트 2'는 모델을 안드로이드, iOS로 배포하는 방법, 웹 브라우저에서 자바스크립트로 실행하고 클라우드로 배포하는 방법 등을 다루고 있습니다.  책의 내용은 챕터별로 분리되어 있어 학습하고 싶은 챕터부터 봐도 무리가 없겠지만, (전체 책을 둘러본 입장에서) 처음부터 차근차근 보셨으면 하는 의견을 드리고 싶습니다.

책 자체는 코드 중심으로 되어 있지만, 책 내용을 이해하다 보면 구글링을 통해 추가 지식을 많이 습득하게 될 거라고 생각됩니다. 한 권의 책에 모든 지식을 넣어 읽기도 전에 지치게 만들기 보다는, 개발자가 코드를 통해 모델 구축과 사용을 손쉽게 다뤄볼 수 있도록 배려한 방식이 제 개인적으로는 흡족한 부분이었습니다.

결론적으로 이 책은 '텐서플로'에 관한 책입니다. 텐서플로를 통해 모델을 구축하고 배포하고자 하는 분들은 필독서로서 적합하다 생각됩니다. 이미 텐서플로를 다뤄봤다 하더라도, 이 책이 다루고 있는 텐서플로의 광범위한 기능을 학습해 보는 것은 분명 유익한 경험이리라 생각됩니다.

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

서평 원문 링크: https://foss4g.tistory.com/1870

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

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

머신러닝과 딥러닝에 굉장히 관심이 많다. 최근에는 Kideny를 예측하는 이진 분류 competition에 참가하였다. 다른 사람들의 코드를 보면서 연습하고 공부했지만, 여전히 부족한 것 같다. 또 한번 기초를 다지고 싶어서 책을 읽게 되었다.

첫 장은 바로 텐서플로로 시작한다. 딥러닝을 바로 배운다는 것이다. 실제로도 이후의 코드들은 텐서플로를 사용하기 때문에 머신러닝을 시작하고자 하는 사람이라면 이 책을 구입하기보다는 sklearn을 배울 수 있는 책을 구매해야한다. 나는 텐서플로를 다룬 경험이 있기 때문에 무리없이 읽을 수 있었다.

무엇보다 박해선 번역가이기 때문에 수월하게 읽을 수 있었다. 딥러닝을 공부하다보면 파라미터를 왜 64 또는 128로 설정해야하는지 의문이 들었다. 하지만 이 책에서는 그런 사소한 것들도 이야기 해주는 부분이 있기 때문에 의문이 해소가 되기도 했다.

총평

  • 박하선 옮김인데 안 읽을 이유가 있을까? 데이터 사이언스계의 최고의 번역가라고 생각한다. 책이 술술 읽힌다.

  • 코드들을 하나씩 알려주고 왜 이 숫자로 설정해야하는지도 알려준다. 딥러닝 기초를 다지고자 하는사람에게 매우 좋다.

  • 저자가 앤드류 응인데 안 읽는다고..?

원제에 For Coders라고 적혀있는 것처럼 이 책은 기존에 머신러닝, 딥러닝을 이미 사용하고 있는 사람을 위한 책이 아니다. 부제에 적혀있는 인공지능 개발자로 레벨 업하기에 알맞은 책이다.

 

입력과 결과를 이용해 규칙을 찾아내는 모델을 만드는 것이 AI 모델 개발이라는 것을 첫 주제로 시작한다. 머신러닝 파트는 비교적 빠르게 넘어가고 Tensorflow, Keras를 활용해 비교적 최근에 나온 딥러닝 이론까지 다룬다. 그리고 굉장히 공들여 번역한 느낌이 드는데 원서 어투가 어떤지는 잘 모르겠지만 친절하게 번역이 된 것 같다. 그래서 잘 읽히는 것 같기도 하다.

 

인공 신경망과 딥러닝에 대해 접해보고 싶다면 파트 1까지만 읽어도 괜찮고, 나아가서 직접 애플리케이션에 적용하는 것까지 해본다면 파트 2까지 따라가면 될 것 같다. 자연어, 이미지 등 다양한 분야를 다루기 때문에 굉장히 딥한 내용까지 다루진 않으나 오히려 그것이 읽기 난도를 낮춰서 딥러닝이 무엇인지 코드, 실습과 함께 익혀보고 싶은 개발자라면 추천한다. Python 경험이 없다면 기본적인 문법 정도만 익히고 책을 시작하는 것을 추천한다.

 

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

beauty_1682054148290.JPG

 

 

 

 

인공지능에 대해 공부하면

 

 

머신러닝과 딥러닝에 대해서도

 

 

당연히 공부해야 한다

 

 

하지만 시중에 너무 많은 책들이 있어서

 

 

어떤 책을 읽어야 할지 모르겠다면

 

 

Ai 세계 4대 천왕이라 불리는 '앤드류 웅' 교수가 추천하는

 

 

[개발자를 위한 머신러닝&딥러닝 / 한빛미디어]

 

 

책을 읽어보자

 

 

이 책의 특징은 머신러닝, 딥러닝에서 나오는 수학적인 내용보다는 코드 실습형 책이다

 

 

수학이 부족한 내게 딱 맞는 책이었다

 

 

책의 특징은 두 가지로

 

 

1. 탄탄한 구성

 

 

2. 다양한 데이터 셋

 

 

활용이 특징이다

 

 

책은 크게 두 파트

 

 

Part 1은 모델 구축

 

 

1 ~ 11챕터

 

 

Part 2는 모델 사용

 

 

12 ~ 20챕터

 

 

총 20챕터로 구성돼있다

 

 

 

각 챕터마다 실습이 있어서 정말 좋았다

 

 

실습은 텐서 플로르 진행되고

 

 

텐서플로에 익숙지 않는 사람들을 위해

 

 

첫 챕터를 오로지 텐서플로에 할애했다

 

 

 

 

책 내용은 서평 기간 동안

 

 

다 보기엔 부족할 것 같아서

 

 

그래서 난 내가 관심 있는 컴퓨터 비전을 보았다

 

 

컴퓨터 비전은 고맙게도

 

 

2 챕터로 구성돼 있었다

 

 

컴퓨터 비전을 소개하고

 

 

신경망을 설계하고

 

 

실습 전체 코드로 실습을 진행 후

 

 

신경망을 훈련하고

 

 

모델을 출력한다

 

 

다행히 모든 실습 코드가 깃허브로 올라가 있어서 좋았다

 

 

물론 실습은 내가 직접 따라 쳐본 후 확인하는 용으로 실습 코드를 사용하는 게 좋다

 

 

컴퓨터 비전 고급 챕터에선 : 이미지에서 특징을 감지하는 걸 주제로 진행되었다

 

 

말과 사람을 구별하는 CNN 구조를 만들고

 

 

테스트까지

 

 

실습을 재밌게 할 수 있었다

 

 

이 외에도

 

 

시계열 데이터,

 

 

자연어 처리, 감성 프로그래밍, 머신러닝 모델 만들기,

 

 

안드로이드, iOS 앱에서 텐서플로 라이트 사용하기 등등

 

 

많은 내용이 있는 책이기에

 

 

두고두고 보면서 실습하며 공부하기에 좋은 책이라는 생각이 들었다

 

 

 

출판사에서 생각하는 책의 난이도는 초중급 정도 난이도라고 하지만

 

 

내겐 어려웠다




한빛미디어 <2023 나는 리뷰어다> 에서 제공받은 책을 바탕으로 쓴 글입니다.
 
개발자를 위한 머신러닝&딥러닝
 

 

데이터 공부하는 사람이라면 무조건 알고 있는 OREILLY 시리즈!!

이번 달은 "개발자를 위한 머신러닝&딥러닝" 라는 책이 선정되었습니다.

 

이 책은 일반적인 인공지능 및 컴퓨터 비전, 자연어 처리, 시퀀스 모델링 등 머신러닝의 개념에 대해 예제와 함께 설명하고 있습니다. 또한 모바일, 브라우저, 클라우드를 통해 이미 제작한 모델을 배포하는 과정도 설명하고 있어 서비스를 제공하는 방법까지 습득할 수 있답니다.

 

이미지 데이터는 직접 수집하기 쉽지 않은데 이 책에서는 다양한 데이터와 예제 코드를 제공하고 있습니다.

 

일반적인 인공지능에 사용되는 개념들도 이해하기 쉽게 설명을 제공하고 있습니다.

 

텐서플로 서빙을 사용하여 모델을 배포하고 추론을 관리하는 방법을 소개하고 있습니다.

설치하는 방법부터 자세히 설명하고 있으니 순서대로 따라 하시면 좋을 것 같습니다 :)

 

이 책에서 인상깊었던 점은 윤리, 공정성, 개인 정보 보호 등도 다룬다는 점이었습니다.

보통 다른 책에서는 전처리, 모델에 관한 정보들만 있지만 이 책에서는 달랐습니다.

 

머신러닝 시스템을 만들 때 발생할 수 있는 가능성들을 고민해봐야 합니다.

  • 머신러닝이 실제로 필요한지 결정하기

  • 시작부터 측정 지표를 설계하고 구현하기

  • 실행 가능한 최소 모델을 구축하고 반복하기

  • 인프라가 신속한 재배포를 지원하는지 확인하기

 

단순히 분석 목표만을 바라보고 모델을 구축하는 것이 아닌 윤리적으로도 적합한지 고민할 수 있었던 시간이었습니다.

 

공정성을 위한 도구로 What-if 도구, 패싯 등이 있습니다.

 

이상으로 4월의 서평은 마치도록 하겠습니다 :)

 

다시 한번 매달 나이스한 책을 제공해주시는 "한빛미디어"에게 감사의 말씀을 올립니다.



이 책은 개발자들이 머신러닝과 딥러닝에 대한 기초적인 이론와, 실제 구현 방법을 습득할 수 있도록 Python의 TensorFlow 프레임워크를 이용한 실습 코드로 구성되어 있습니다. 또한 모델을 만드는 것에 그치지 않고 디버깅 및 성능 개선에 대한 다양한 내용도 다룹니다. 그래서인지 464페이지에 달하는 분량이지만, 코드 비중이 있어서 읽는데 큰 부담이 느껴지지 않았습니다.

모바일 앱 개발자를 꿈꾸고 있는 저는, 이 부분을 제일 흥미있게 읽었는데요. 바로 모바일에 관한 설명과 예제가 있다는 점이었습니다. 모바일은 성능이 컴퓨터보다는 뒤쳐지고 배터리 문제도 있기 때문에, TensorFlow가 아닌 TensorFlow Lite을 사용하는 것을 확인할 수 있었습니다. 예제에서는 숫자로 정답을 추정하는 간단한 모델을 학습했지만, 이미지 분류, 자세 추정, 음성 인식 등 다양한 기능을 제공한다는 것을 알게 되어 유익한 부분이었습니다.

제가 이 책에서 특히 좋았던 부분은 장, 또는 절이 끝나는 부분마다 한 문장으로 정리를 해준다는 점입니다. 예를 들면 '이번 장에서는 작은 규모부터 연구에 사용되는 대규모 테이터셋까지 다양한 종류의 데이터셋을 제공하는 텐서플로 데이터셋을 소개했습니다.'와 같이요. 사소한 부분이긴 하지만, 이런 정보를 전달하는 책 특성상 읽다보면 '어? 내가 지금 뭘 알려고 하는거지?'하고 의문을 가질 때가 있거든요. 하지만 이 책은 그걸 단 한 문장으로 정리해주는 책입니다. 또한 앞선 내용을 언급할 때 구체적인 챕터를 인덱스해주면서 기억이 나지 않는 사람을 위해 복습할 수 있게 해주는 것이 인상적이었습니다.

마지막으로, 이 책은 머신러닝과 딥러닝에 대한 개념을 이해하고, 자신의 모델에 적용해보고자 하는 개발자들에게 추천하고 싶습니다. '개발자'에게 추천하는 이유는 실습 코드가 많은 만큼 어느 정도 파이썬 언어에 대한 이해를 전제로 하고 책이 쓰여져 있기 때문입니다. 이 책으로, 머신러닝과 딥러닝의 기초를 탄탄하게 다지고, 실제 모델을 만들어보며 오류를 해결하는 과정을 통해 적용해보면서 인공지능 관련 지식을 한 켠 늘려갈 수 있었습니다.

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

빅데이터가 유행한지는 10년이 넘었고 , 머신러닝이나 딥러닝이 화제가 된지도 꽤 지났다.

요즘은 chatGPT가 화제이다.

 

요즘 하고 있는 일은 사실 빅데이터에서 벗어나지 않고 있다.

데이터의 수집과 가공, 통계 정도가 대부분의 업무이다.

 

그런데 여기에 머신러닝이나 딥러닝을 도입해 보면 어떨까 생각해보았다.
데이터가 워낙 많아서 처리하는 서버 성능 고민 같은건 나중에 한다 치고...

해서 관련 자료를 하나 본적이 있는데 거의 대부분 내용이 수학 식이었다.

그때 GG를 치고 덮어 두고 있다가 이번에 이 책을 받게 되었다.

 

저자는 제목과 서두에 대놓고 수학식 따위 없고 그냥 개발자가 보기 좋은 책이라고 설명 해 주고 있다.

실제로 책은 파이썬과 그 외 몇가지 언어들로 많은 것들을 해 볼수 있도록 내용이 구성 되어 있었다.

 

1부는 파이썬으로 텐서 플로를 다양하게 활용 하는 방법에 대해서 소개 하고 있다.

물론 친절하게도 텐서플로 소개부터 시작해서 컴퓨터 비전, 자연언어처리 등을 다룰 수 있도록 설명하면서 마지막에는 특성을 예측하는 모델을 만드는 내용까지 다루고 있다.

짧게 설명 하자면 텐서플로를 이용한 머신러닝, 딥러닝의 기초와 간단한 활용에 대해서 다양한 예시를 활용하여 개발자가 접근하기 좋게 설명 해 주고 있다.

세삼...파이썬이 참 열일 하고 있다는 생각이 든다.

파이썬을 우연하게 접하게 되어서 지금까지 잘 쓰고 있는데 그때 공부해두기를 정말 잘했다는 생각이 자주 든다.

 

2부는 안드로이드나 iOS, 웹에서 텐서플로를 이용할 수 있는 방법에 대해서 소개하고 있다.

개인적으로 앱 개발이 본업이었던 기간이 길어 코틀린이나 스위프트가 크게 낮설지 않아 2부의 내용도 꽤 마음에 들었다.

(웹은 이상하게 개발할 일이 없다 시피 해서 node.js같은건 아직도 잘 모른다.)

 

앱 개발 개인 프로젝트를 구상중인데 2부 내용 덕분에 프로젝트 구상의 폭이 더 넓어 질 수도 있을것 같다.

 

책을 짧게 축약해 보자면 개발자가 머신러닝이나 딥러닝을 활용하고 싶을때 많은 도움을 줄 수 있는 내용이 잘 정리 되어 있는 책이라 할 수 있을것 같다.

일단 수학식이 아니라 코드로 얘기 하니까...ㅎㅎ

 

 

 


초보자들도 접근하기 쉽게 쓰여진 책


1. 시작


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


2022년 9월달에 소개할 책은 개발자를 위한 머신러닝&딥러닝입니다



<표지>


이 책을 한마디로 ‘수학이 어려운 개발자에게 바치는 코드 실습형 머신러닝 가이드북’이라고 할 수 있습니다.


개발자가 머신러닝, 인공지능 기술을 습득할 수 있도록 도와주는 가이드 형태의 지침서입니다.


많이 바쁜 개발자를 위해서 다양한 문제를 머신러닝으로 해결하는 방법을 가르쳐 줌으로써 인공지능 개발자로 도약할 수가 있습니다.




2.목적 (책을 쓴 이유)

이 책을 쓴 저자는 기존의 개발자가 인공지능을 배우려고 할때 

복잡한 수식으로 접근하는것이 아니라 다양한 예제 코드를 통해서 개발자가 인공지능 기술을 습득할 수 있도록 돕습니다.


인공지능, 머신러닝에 관심있고, 데이터 학습 모델을 빠르게 구축하고 싶은 개발자를 위한 책입니다.


이 책을 통해 개발자 분들이 파이썬, 텐서플로를 통해 머신러닝, 인공지능 세계를 자유롭게 유영하는 인공지능 개발자로 업그레이드 할 수 있기를 희망합니다.


지금부터 책의 내용을 좀 더 살펴보도록 하겠습니다.



3.책의 내용

이 책은 총 2부로 구성되어 있습니다.


먼저 1부(모델구축)는 1~11장 다양한 문제를 해결하는 머신러닝 모델을 텐서플로로 구축하는 방법을 설명하고, 신경망 모델을 만드는 방법부터 컴퓨터 비전, 자연어 처리, 시퀀스 모델링을 배우게 됩니다.


2부(모델사용)는 12~20장에서는 학습된 모델을 안드로이드, iOS로 배포하고 웹 브라우저에서 자바스크립트로 실행하며 클라우드로 배포하는 것을 배우게 됩니다. 


1장, 2장에서는 각각 텐서플로 소개 컴퓨터 비전 소개를 다루고 있습니다.

1장에서 머신러닝이 입,출력에 매핑하기 위해 신경망을 이용해 복잡한 패턴 매칭을 수행하는 방법을 배우고, 2장에는 하나의 뉴런을 넘어서 첫 번째 매우 기본적인 컴퓨터 비전 신경망을 만드는 법을 알려줍니다.


<페이지 31>



<페이지 51>


3장은 「고급 컴퓨터 비전: 이미지에서 특징 감지하기」입니다. 합성곱 신경망을 사용한 고급 컴퓨터 비전 방법을 상세하게 다루고 있습니다.


<페이지 102>


4장은 「텐서플로 데이터셋으로 공개 데이터셋 사용하기」입니다. 작은 규모부터 연구에 사용되는 대규모 데이터셋까지 다양한 종류의 데이터셋을 제공하는 텐서플로 데이터셋에 대해서 설명해줍니다.


<페이지 125>


5장부터 8장까지는 「자연어 처리 소개, 임베딩, 순환 신경망, 텍스트 생성하기」의 내용을 다루고 있습니다. 자연어 이해를 통해서 단어 토큰화를 사용하여 텍스트를 숫자로 바꾸는 방법, 다양한 텍스트를 읽고 필터링 하는 방법을 배우고, 이를 토대로 단어에서 의미를 추출하는 방법과 LSTM 기반 모델을 사용해 기본적인 텍스트 생성작업을 독자들에게 가르쳐 줍니다.


<페이지 190>



<페이지 226>


9장에서 11장부터는 「시퀀스와 시계열 데이터 이해, 모델 생성, 신경망」내용에 대해서 학습할 수 있습니다.  시계열 의 공통적인 특징과 더 나은 예측 모델 만드는 방법과 모델의 정확도를 향상하는 방법을 배울수가 있습니다.


<페이지 232>



<페이지 280>



12장에서 14장까지는 「텐서플로 라이트 소개, 안드로이드, iOS에서 사용하기」에 대해서 다루고 있습니다. 텐서플로 라이트는 안드로이드, iOS에서 인공지능 앱을 개발하도록 머신러닝 툴킷을 제공합니다. 


<페이지 319>



<페이지 337>


19장에서 서버에 모델을 배포하는 방법을 다루고, 20장에서는 인공지능 개발자가 꼭 알아야 하는 윤리, 공정성, 안전한 데이터 수집, 개인 정보 보호에 대해서 다루고 있습니다. 마지막으로 구글의 인공지능 원칙 7가지를 알려줍니다. 



<페이지 444>



<페이지 452>



4. 책을 읽은후


이 책이 가지고 있는 6가지 장점

1)복잡한 수식을 다루지 않는다. 코드 실습형 머신러닝 가이드북 지향

2)컴퓨터 비전, 자연어 처리, 웹, 모바일에서 머신러닝을 다룰수 있게 알려준다

3)개발자가 마주하게 될 다양한 문제를 머신러닝을 해결하는 방법을 안내한다

4)기존의 개발자가 인공지능 개발자로 레벨 업할 수 있도록 돕는다

5)인공지능 개발자를 위한 윤리를 다룬다


마무리

「개발자를 위한 머신러닝&딥러닝」책에 대한 리뷰를 마치도록 하겠습니다. 


수많은 머신러닝, 딥러닝, 인공지능 서적이 쏟아지고 있습니다. 대부분 어려운 수식, 복잡한 수학을 포함하는 책들이 대부분입니다.


이책은 수학이 어려운 개발자가 인공지능을 접할수 있도록 돕는 가이드의 역할을 할 수 있는 쉬운 책입니다.


현시대 살아가는 개발자라면 꼭 습득해야 할 타이탄 도구인 인공지능 기술을 꼭 배워야 합니다.


무한 경쟁의 시대, 공정하지 않는 사회에서 살아남기 위해서 오늘도 정직하게 땀 흘리는 모든 분들을 위해서 힘내라고 말씀드리고 싶습니다.


여기서 책의 서평을 마무리 짓겠습니다.


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

 

감사합니다

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

 

제목이 좋았다. 개발자를 위한 머신러닝&딥러닝.

 

모델을 활용하는 부분도 있겠다 싶었는데 역시나 였다. 

 

책은 크게 두파트로 나뉘어져 있으며 첫번째 파트에서는 문제 도메인에 적절한 모델들에 대한 설명들을 하고 있으며 

 

두번째 파트에서는 텐서플로 라이트에 대한 소개를 시작으로 응용(활용에 더 가깝다)에 초점이 맞추어져 있었다.

 

배포나 서빙 등 활용에 있어서 이렇게 분량을 주었던 책이 있나 싶다.

 

예전에 안드로이드 타겟으로 텐스플로 라이트를 설명하는 책을 본 것 같긴한데.. 무튼 각설.

 

제목이 좋았는데 역시 배신하지 않았다. 

 

구현을 중심에 두고 설명을 이어가는데 이런 흐름은 부담스럽지 않고 호기심에 기반해서 공부를 할 수 있어 즐거울수 있다. 

 

궁금한게 있으면 그때그때 따로 알아보면 된다. 하지만 역시나 단점은 있다. 깊이가 없을수 있는데 그런데 이제.. 깊이가 의미가 있을까 싶다.

 

오히려 이런 접근이 흥미를 잃지 않게 공부할 수 있게 하지 않을까 싶었다.

 

마지막으로 개인적인 취향이지만 텐서플로가 아니라 파이토치였으면 얼마나 더 좋았을까 ㅜ.ㅡ 

 

undefined

 

tempImageHBfNPl.jpg

 

컴퓨터/IT] 개발자를 위한 머신러닝&딥러닝

신경망 기초부터 컴퓨터비전, 자연어처리, 시계열 예측까지

알아볼 수 있다는 표지에 호기심이 열리고

목차를 살펴보며 내가 원하던 딱 그런!

코드로 개념잡아볼 수 있는 책이란 생각에 펼쳐들게 되었다.

 1_1.jpg

이 책은 크게 두 부분으로 나뉘어서 진행된다.

 

먼저 머신러닝 모델을 텐서플로로 구축하는 방법을 

하나의 뉴런을 가진 신경망 모델을 만드는 방법부터 

컴퓨터 비전(CNN), 자연어 처리(RNN), 시퀀스 모델링(CNN, RNN)까지

알아본 후 

앞서서 만든 모델을 텐서플로우 라이트를 이용해

사용하는 방법을 알려준다. 

안드로이드, iOS로 배포하거나 

웹 브라우저에서 자바스크립트로 실행하여 

클라우드로 배포하는 방법을 알아볼 수 있다.

 

처음부터 단계적으로 알아보고 싶은 사람은 목차별로 살펴봐도 되지만

특정 파트에서 머신러닝 모델을 구축하고 싶은 사람은

파트별로 살펴봐도 괜찮은거 같다.

다만 앞서서 설명했던 내용은 뒷부분에는 생략되어 있기 때문에

건너뛰고 보다가 설명이 필요한 부분은 앞에 부분에서 찾아봐야 한다.

 

나는 컴퓨터 비전 쪽에 관심이 있어서 해당 부분부터 살펴봤는데

컴퓨터 비전 소개 파트에서 패션MINST를 활용해 훈련하는 부분이

기초 코드로 시작해서 과대적합, 조기종료로 

 

단계적으로 내용이 구성되어 있어서 좋았다.

에폭 횟수를 하드코딩하는 코드뿐만 아니라

원하는 정확도에서 종료되게하는 코드가 있어서 좋았다.

 

또한 볼수록 굉장히 친절한 책이구나 감탄하며 봤는데

저자가 원 내용을 잘 풀어낸 것도 있지만

역시나 옮긴이의 능력이 대단한거 같다.

저자가 코드에 대해 세세하게 설명을 달아 주었다면

옮긴이가 그 설명에 더 친절하게 부가설명 또는 

참고하면 좋을 사항들을 알려줘서 보기 좋았다.

저자의 내용도 잘 전달하면서

옮긴이의 친절한 부가 설명까지 더해지면서

설명이 정말 풍성해진 느낌!

역시 번역서는 옮긴이가 중요함을 다시 한번 더 깨닫게 되었다.

 

1_2.jpg

 

각 파트는 앞에 개념을 설명하고 거기에 맞춰 코드가 나오는데

개념들은 이해를 돕기위해 친절하게 도식화되어 있다.

설명과 적절한 그림들이 매치되어 이해를 도와준다.

 

1_3.jpg

모델 사용하는 두번째 부분에서는 활용이라는 초점에 맞게

폰과 PC라는 디바이스에서 어떻게 텐서플로우를 활용해 

모델을 사용하는지 알려주는데 

역시나 친절하게 각 디바이스별로 IDE에서 

텐서플로우를 사용하는 방법을 알려준다.

나는 웹 브라우저에서 사용하는 부분이 관심 있어서 

그 부분부터 보았는데 텐서플로우.js를 통해

html에 표시하는 부분이 흥미로웠다.

단순하게 사용법을 알려주는 것에 그치지 않고

텐서플로를 이용해 자바스크립트로 표현할 때

참고하면 좋을 만한 사항들을 알려줘서 

해당 내용을 공부한 뒤 자신의 프로젝트에 적용할 때

많은 도움이 될꺼 같았다.

 

참고로 나는 구글 코렙에서 실습해 보았다^^

 

신경망 기초부터 컴퓨터 비전, 자연어 처리, 시계열 예측을

활용하여 모델도 구축해보고

다양한 디바이스에서 해당 모델을 사용하는 걸

알아보고 싶은 사람에게

이 책을 추천해주고 싶다.

 

머신러닝&딥러닝에 대해

기본적인 코드와 

친절하고도 자세한 설명과

다양한 활용에 대해서 알아 볼 수 있다.

 

----------------------------------------------

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

----------------------------------------------

 

 

 

얼마 전까지만 해도 인공지능을 배워야 하나 고민을 했었는데, 이젠 선택이 아닌 필수가 되었다. #프로그래머 라면, 인공지능을 몰라서는 안 되는 세상이 된 것이다. #머신러닝, #딥러닝 같은 #인공지능 을 기존에 배우지 못했던 경력 #개발자 경우, 어떻게 보면, 발등에 불이 떨어진 상황일 수도 있다.

 

나 역시도 이렇게 빨리 인공지능 기술이 본격적으로 쓰이게 될 줄은 몰랐다. 그래서 인공지능을 그저 신기하고 재미있다는 생각으로만 가끔씩 인공지능 책을 보곤 했었다. 그런데 지금은 이러다 뒤처지겠다는 긴장감이 엄습하며, 정신 차리고 제대로 공부하려고 한다.

 

이런 상황은 과거 스마트폰이 퍼지기 시작했을 때와 아주 흡사하다. 당시 앱 개발에 발 빠르게 뛰어든 사람들은 여기저기 유명세도 타고, 기업들이 모셔가기 바빴다. 각종 개발로 고수익을 창출하기도 했다.

 

그런데 인공지능은 시장면에서 스마트폰 보다 판이 더 크다. PC, 모바일, 산업 자동화, 임베디드 기기 등 다양한 플랫폼에 적용할 수 있기 때문이다. 게다가 코딩 하나로 생산성, 기능성, 확장성, 정확성 등 다양한 성능 개선을 이룰 수 있다 보니, IT 분야 뿐만 아니라 미래의 문화, 경제, 금융, 산업 등에 혁명을 가져올 수 있는 기술이다. 따라서 신기술에 관심 있고, 사업적으로 야망이 있는 개발자, 창업자라면, 인공지능 관련 기술은 꼭 익혀야 할 것이다.

 

 

 

이에 책 제목처럼 개발자라면, 꼭 한 번쯤은 봐야 하는 책이 바로 '개발자를 위한 머신러닝 & 딥러닝'이라고 생각한다. 읽어 보면 확실히 느끼겠지만, 인공지능의 이 지식, 저 지식을 짜깁기 해서 구성한 책이 절대 아니다. 학습의 개념이해 부터 책 전반의 구성이나 내용이 기존에 봤던 인공지능 책과 달리 새롭게 되어 있다.

 

저자 로런스 모로니는 서두에 있는 '이 책에 대하여'에서 개발자인 독자를 박사 학위 없어도 머신러닝과 인공지능 개발자가 될 수 있도록 돕는 게 책의 목표라 말하고 있다. 이 말이 빈말이 아닌 것이 일반적으로 인공지능을 깊이 있게 알려면, 많은 수학 지식이 필요한데, 여기서는 그런 것을 배제하고, 코드를 중심으로 스피디하게 머신러닝, 딥러닝을 익힐 수 있게 해주고 있다. 원리 보다는 응용력을 키우는 내용을 담고 있는 것이다. 다만 인공지능 초보자를 위한 책은 아니다.

 

 

 

여기에 나오는 코드들은 텐서플로와 파이썬을 주로 이용한다. 파트2에 코틀린, 스위프트, 자바스크립트, HTML이 약간 등장한다. 텐서플로는 각기 다른 3가지 설치법부터 해서, 공개 데이터셋 사용하기, 각종 #텐서플로 이용법 등 어느 정도 자세히 설명하고 있어 잘 몰라도 크게 어려움이 없으나, 파이썬과 기타 언어들은 별도 설명이 없으므로 이 책을 원활히 보려면, 미리 학습이 되어 있어야 한다.

 

 

 

처음 등장하는 코드는 X, Y 데이터로 함수를 역으로 찾아내는 것인데, 이것을 시작으로 신경망을 익히고, 다시 이걸 이미지 내용을 식별하는 합성곱, 전이학습, 자연어 처리 순으로 계속해서 확장해 나간다. 꼬리에 꼬리를 무는 형식으로 #AI 지식을 배워 나간다.

 

코드 한 줄, 한 줄 의미가 무엇인지 자세히 설명하고, 매 번 결과도 함께 확인을 한다. 필요에 따라서는 도표나 그림으로 추가 설명도 하고 있다 보니, 설명이 머리에 쏙쏙 들어오게 잘 되어 있다.

 

게다가 #개발자를위한머신러닝딥러닝 곳곳에 나오는 주석과 NOTE를 보면, 박해선 번역가가 얼마나 열일을 했는지 알 수 있다. 옮긴이의 이런 수고 덕분에 이 책을 더욱 확실히 이해할 수 있었고, 책의 가치도 더 높아졌다 생각한다.

 

 

 

파트 2에서는 더욱 다양한 시스템에서의 머신러닝과 딥러닝 활용 방법을 배운다. 텐서플로 서빙, 텐서플로 라이트, TensorFlow.js 를 사용해 웹, 클라우드, 모바일, 임베디드 시스템 코딩을 모두 경험하게 된다. 많은 형태를 다루는 만큼 깊이 있는 내용은 아니지만, 접하지 않은 분야도 경험할 수 있어, 시야를 좀 더 넓힐 수 있었다.

 

 

 

'개발자를 위한 머신러닝 & 딥러닝' 마지막인 챕터 20에서는 인공지능 윤리, 공정성, 개인 정보 보호가 주제인데, 인공지능에 관련된 다양한 생각, 보충 조언 같은 것들을 담고 있는데, 인공지능 기술이 사회에 큰 영향을 끼칠 수 있는 만큼, 그저 시키는 데로 일만 하는 #프로그래머 가 아닌 깨어 있는 사회 공동체의 일원으로 무엇을 해야 할지, 나의 영향력은 무엇인지, 다시 생각하게 만든다.
 
저자의 경력을 보면, 인공지능 교육에 많은 공을 들인 것을 알 수 있는데, 그래서 그런지 '개발자를 위한 머신러닝 & 딥러닝'을 보는 내내 책의 구성과 내용이 인공지능 교육에 최적화 되어 있다는 느낌을 받았다. 마치 명강사가 들려주는 수업과 같았다. 그만큼 독학으로 공부하기에 좋다. 그리고 머신러닝, 딥러닝 기술을 보다 쉽게 응용할 수 있게 해주고, 인공지능 기술 전반을 꿰뚫어 볼 수 있는 안목도 길러준다. 시대에 걸맞은 인공지능 개발자로 새롭게 업그레이드, 레벨업 할 수 있게 도와주는 값진 내용의 책이다.



다운로드.jpg

 

 

"머신러닝 개발자로 한단계 업그레이드를 위한 책"

 

개발자를 위한 머신러닝 & 딥러닝책은 기존 많은 머신러닝 책하고는 다른 부분이 있다.

기존의 많은 책들이 CNN, RNN, DNN 등 모델에 관한 정의에 국한된 내용들이 많았다면

해당책은 모델을 활용한 단계적인 레벨업에 초점을 두었다고 할수있다. 학원에 학습과정처럼

단계 단계를 올라가다보면 해당 모델에 대한 이해와 적용예제를 통한 방법을 터득하게 된다.

이 책에서도 말했듯이 AI와 관련된 내용을 공부한다는게 전공자에게도 힘들고, 더 깊게 내용을 다루는곳이

대학원과정에서나 볼수 있기 때문에 개발자에게 머신러닝에 대한 접근이 쉽지 않은게 현실이다.

책을 읽고 나서 느낀점은 너무 많은 내용의 모델과 수학 이론을 설명하기 보다는 CNN, RNN만 활용하여 처음부터 단계적 설명을 통한 제대로 알게 해준다는 점이 가장 좋았던 점 같다.

 

다만. 파이썬 문법적인 요소와 텐서플러, 케라시스등과 같은 내용이 선행되어야 책을 이해하기 쉽기 때문에

개발자들에게 기초서적으로는 볼수 없다. 이 책의 번역자인 박해선님의 다른 머신러닝 기초책(혼자공)을 읽어보고 난 후 이책을 접해본다면 좋을듯 하다.

 

 

"단계적 구성으로 되어있는 파트분류가 좋다"

 

책의 구성은 크게 2파트로 나눠져 있다. 1부와 2부로 크게 나눠져 있는데 1부에서는 텐서플로로 다양한 모델 구조를 만들어보는 내용으로 구성되어있고, 2부에서는 텐서플로 모델을 사용하고 모바일과 웹브라우저에서 실행하는 방법, 그리고 클라우드에 배포하는 방법까지 자세하게 다루고 있다.

 

책 구성상 좋은점을 뽑으라면 1부에서 텐서플로를 활용한 모델을 만들어 가는 과정을 자세히 설명하고, 중간중간에 수학적 알고리즘에 해당하는 함수(라이브러리)들을 사용하는 내용들에 대한 설명이 잘 되어있다는 점이며,

2부에서는 다소 어려운 내용들이 존재하기도 하지만 IOS나 안드로이드에서 텐서플로라이트 사용방법과

Tensor.js를 활용한 브라우저에서 머신러닝을 활용하는 방법등은 처음 접해보는 부분이라서 좋았던것 같다.

 

"이런 분들에게 추전하고 싶다"

 

책 구성에 일부분만 보아도 도움이 되도록 잘 구성 되어있고, 소스코드 및 코드에 대한 설명도 머신러닝을 공부하는데 잘 이해 할 수 있도록 되어있다. 그래도 머신러닝을 처음 접해보는 분들에게는 어려울 수 있다.

머신러닝과 딥러닝의 기초 개념을 알고 있는 독자라면 충분히 현장에서도 바로 사용할 수 있는 코드 구성과

이론이 있기 때문에 머신러닝 초급자에서 중급자로 업그레이드 하고 싶은분들에게 이책을 추천하고 싶다.

 

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

 



 

개발자를 위한 머신러닝 딥러닝.png

제목이 정말 적절하다고 생각합니다.

 

'개발자는 어떻게 일하는가?'를 생각하면 자연스럽게 떠오르는 방식이 있습니다. 문제와 원하는 답이 주어지면, 그 안에 있는 규칙을 파악하고, 데이터를 활용하여 답을 제공하는 구조를 만드는 방식입니다.

이런 방식에 익숙한 개발자에게 학습은 조금 다른 형태를 가진다고 알려주며 시작합니다.

하지만, 언제가 그렇듯이 앞에 나오는 함축된 한마디가 이후에 있는 다양한 설명이 알려주고자 하는 바를 품고 있습니다.

 

머신러닝과 딥러닝이 뭔지 전혀 모르신다면 간략한 안내서를 함께 보신다면 훨씬 쉽게 읽으실 수 있으리라 생각합니다. 간략하다는 건 수식은 잘 보이지 않는 대신 그림이 많고 친절한 설명이 덧붙여져 있으며 얇다는 뜻입니다. 머신러닝을 이렇게 시작한다고 알려주기는 하는데 머신러닝이 어떻게 돌아가는지 간략하게는 알고 있다고 가정하는 듯합니다.

 

 

궁금해할 부분이 뭔지 알고 알려줍니다.

 

개발자의 성향을 너무 잘 알고 있습니다.

머신러닝과 관련된 책이나 블로그에서 사용하는 코드를 보면 다양한 파라미터가 정신없이 나옵니다. 비슷한 형태가 반복되기에 자주 접하다 보면 코드 형태는 머지않아 익숙해집니다. 그렇지만, 파라미터가 가지는 값들이 도대체 어디서 왔는지 설명해 주는 내용을 찾기는 정말 어렵습니다. 잘해야 '경험을 통해 얻은 값이다.' 정도입니다.

저자는 머신러닝에 배우면서 궁금하지만 속 시원하게 알 수 없어 답답해하는 부분들이 어디인지 알고 있는 것 같습니다. 그렇기에 파라미터가 가지는 값들이 어디에서 왔고 어떤 성격을 가지는지 조곤조곤 설명해 줍니다. 이것만으로도 속이 뻥 뚫리는 느낌을 받으실 분들이 계시리라 생각합니다.

 

 

모델을 만드는 현실적인 방법이 있습니다.

 

모델을 만드는 것보다 모델을 훈련시킬 데이터를 구하는 게 더 어렵습니다. 실제로 모델 훈련과 관련하여 다양한 데이터가 많을수록 좋다는 건 쉽게 알 수 있습니다. 하지만 데이터는 늘 부족하다는 걸 알기에 데이터를 보강할 수 있는 다양한 방법들이 제공됩니다. 이런 방법을 사용하더라도 아쉬움을 느끼게 됩니다.

길은 있습니다. 다만, 아직 모르고 있을 뿐입니다.

공개 데이터셋과 전이 학습이라는 멋진 방법이 있습니다. 게다가 이들은 점점 더 확장되고 강화될 것입니다.

 

 

모델을 어떻게 사용할 수 있는지 보여줍니다.

 

어떤 모델을 어떻게 만드는지 알려주는 자료는 어렵지 않게 찾을 수 있습니다. 물론 상황과 도구별로 수준이 천차만별이기도 일반화하기는 조심스럽습니다. 그렇더라도 어렵게 모델을 훈련시키는 것과 이를 적용하는 건 또 다른 문제입니다.

겨우 모델을 훈련해서 예측이 어느 정도 가능하게 되더라도 여기까지는 모델 구축 단계일 뿐입니다.

'이제 이걸 어떻게 하지?' 하는 막막함을 만나는 순간이기도 합니다.

이러한 막막함을 2부에서 친절하게 풀어줍니다. 어떻게 배포하고 무엇을 사용하는지 보여줍니다.

대표적인 환경인 앱, 브라우저, 서버, 각 환경에서 사용하는 방식을 익숙한 예제를 통해 만날 수 있습니다.

 

 

처음에는 코드에 얽매이지 말고 빠르게 전체를 먼저 읽어 보시길 권해 드립니다.

한번 읽고 덮는 책이 아니라고 생각합니다.

먼저 방향을 알고, 배우는 단계를 거쳐서, 변화와 다양한 시도를 통해 익숙해질 수 있을 것 같습니다.

 

 

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

이 책은 텐서플로를 접해 본 경험이 있어서 기초적인 지식을 갖고있는 분들에게 적합한 책입니다.

이 책은 수학이 어려운 이론을 대신해서 코드를 우선으로 광범위하게 실습이 있고 최신 텐서플로를 많이 이용해서 쉽게 머신러닝 & 딥러닝을 접해볼 수 있도록 구성되어 있다.

개발자가 머신러닝으로 어떤 어플리케이션을 만들려고 할 때, 뭘 이해하고, 뭘 해야 하며, 뭘 고민해야 하는지, 체계적으로 설명하고 있네요. 그래서, 인공지능 어플리케이션을 개발하는 개발자들이 읽어보면 좋은 책인 것 같습니다.

1장~11장까지는 .하나의 뉴런을 가진 신경망 모델을 만드는 방법부터 컴퓨터비전, 자연어처리, 시퀀스모델링 등 다양한 문제를 해결하는 머신러닝 모델을 텐서플로를 통해 구축할 수 있는 방법을 설명한다. 텐서플로로 다양한 모델 구조를 만들어보는 것이 목표로 선수 지식은 파이썬을 알고 있어야 합니다. 12~20장까지는 모델을 안드로이드, iOS, JAVASCRIPT로 실행하여 클라우드로 배포하는 시나리오를 다룬다.

텐서플로(케라스가 포함된)의 주요 기능을 철저하게 실습을 통해 주요 기능 위주로 실습하는 도서입니다. 제목에 "개발자를 위한"이라는 전제가 붙은 이유는, 첫 번째, 파이썬에 대한 기본적인 설명이나 모르는 이를 위한 여유를 주지 않은 채 머신러닝/딥러닝 내용으로만 집중하고, 두 번째, 이론이나 기작에 대한 설명 없이 모든 내용을 코드로 선 실습을 하고 제안한 뒤 코드와 결괏값만을 설명하기 때문입니다. 간단한 파이썬 문법을 알고 있다면 굳이 개발자가 아니더라도 충분히 도서 내용을 따라가는데 문제가 없습니다. 머신러닝/딥러닝에 대한 이론적인 배경 이해를 병행하고 싶다면 분야별 전문 도서를 권장합니다.

 

이 책의 내용은 각 챕터별로 별도의 전문 도서가 있을 만큼 많은 머신러닝과 딥러닝이 다루는 많은 분야를 폭넓게 다루고 있습니다. 모델의 구축뿐만 아니라 모델을 사용하고 배포하는 내용도 포함하고 있습니다. 이 모든 내용을 464페이지에 담아 내용이 시원시원하게 매우 스피디하게 진행됩니다.

 

[핸즈온 머신러닝(한빛미디어)]이나 [자연어 처리(위키북스)]와 같이 많은 입문자들이 참고하는 도서에서 봤음직한 내용들에서, 세부 내용은 모두 가지치기 하고 필수 코드와 이에대한 기본적인 설명만을 액기스처럼 모아놓은것 같습니다. 

 

머신러닝/딥러닝에 대한 이해의 유무를 떠나, 입문서나 강좌를 통해 머신러닝을 접해본 독자가 읽는다면 적당합니다. 텐서플로를 이용해 다양한 분야의 머신러닝을 부담없이 실습하며 체험할 수 있습니다.

 

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

IMG_5107.JPG

 

웹개발자로 일하면서도 인공지능 AI에 대한 호기심이 가득한 저에게 머신러닝&딥러닝을 함께 학습할 수 있는 책 오라일리 시리즈의 “개발자를 위한 머신러닝&딥러닝”을 읽어보았습니다.인공지능 4대 석학 앤드루 응이 추천한 도서이며, 아마존 AI&ML 분야 베스트셀러인 만큼 그 내용이 알차다고 할 수 있겠습니다.

저자는 과거 인공지능으로 할 수 있는 이론적인 작업은 많지만 실제로 쉽게 적용할 수 있는 방법이 없던 시기인 ‘AI 겨울’ 시기를 겪게 됩니다. 구글에서 미적분학과 경사 하강법에 대한 강의를 들으며 머신러닝을 공부 하게 되는데 저자는 이 교육 방식으로는 과거 ‘AI 겨울’ 시기를 또 겪게 될거라 생각해 자신의 교육방법과 피드백을 텐스플로 팀에게 전달해 팀에 합류까지 하게 됩니다. 개발자에게 쉽게 머신러닝을 접할 수 있기 위해 이 책을 집필했다고 합니다. 이런 집필의도에 걸맞게 개발자가 쉽게 머신러닝 개념을 배우고 적용해볼 수 있게 쓰여있습니다. 마치 인공지능을 잘하는 선임이 옆에서 친절하게 설명해주는 느낌을 받았습니다.

이 책이 좋았던 점은 어려운 수학적 이론 보다 다양한 예제를 활용하여 실습해 볼 수 있는 환경을 제공해 개발자들이 익숙한 방법으로 인공지능을 학습할 수 있게 하였다는 점입니다. 텐서플로를 활용해 예제를 실습하고 디버깅하면서 자연스럽게 개념들도 익히는 이 방법이 저는 프로그래밍 언어를 배울때도 그렇고 개발자에게 쉽고 흥미를 돋우는 방법이라고 생각합니다. 추가로 파트2에서는 텐서플로 라이트를 활용해 안드로이드, iOS 모바일 앱 만들기와 TensorFlow.js를 활용한 웹 애플리케이션까지 만들어보면서 저자의 의도대로 실용적인 면모를 유감없이 보여줍니다. 이 책을 통해 사회적으로 유익한 인공지능 프로그램을 개발할 수 있는 인공지능 개발자로 성장해보시길 추천합니다.

 

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

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받았습니다. 요약: Tensorflow로 시작해 컴퓨터 비전, 자연어처리, CNN, RNN 모델을 다루고, Tensorflow Lite로 Android, iOS, Tensorflow.js, 서빙으로 배포까지 책임지는 책! 나는 Tensorflow Lite를 좋아한다. 아직 개인 프로젝트나 이곳저곳에 활용해 본 적은 없고, Arduino Nano BLE Sense나 Raspberry PI pico로 음성감지에만 적용시켜봤는데 손가락 만한 보드에서 ML/DL을 돌릴 수 있다는 것이 맘에 들었다. 슈퍼컴퓨터 300대 놓고 초거대 인공지능 모델도 유용하겠지만, 잘 작동하는 인공지능 모델을 적당히 뺄건 빼고, 정확도와 속도와 타협하며 만들어낸 최적화의 결과물로 작동하는 귀엽지만 강력한 모델또한 우리 삶 속에서 필수적이다. 일단 책 제목만 보면 그다지 흥미있을 것 같진 않은데, Tensorflow Lite를 다루길래 읽게 되었다. 아쉽게도 책에선 Tensorflow Lite를 통해 아두이노같은 MCU나 라즈베리파이에 배포하는 내용은 TinyML도서를 참고하라고 하면서 다루지 않지만, 안드로이드나 iOS환경에 배포하는 법을 설명한다. 다른 책들은 CNN, RNN 주구장창 설명하고 끝이지만 이 책은 모델의 배포까지 알려주는 책임감있는 책이다. 문제는 내가 Windows/Linux PC+아이폰을 쓰고 있어서, 책에서 다루는 두 모바일 환경 모두 체험할 수 없다. 개발용 안드로이드 폰이나, ios 앱 개발용 사과 PC가 있어야 하는데 말이다. 그리고 모델에 관한 이론을 다루는 부분에선 상당히 친절하고 자세하다. 주입식으로 그냥 생략하고 넘어가지 않고, 왜 뉴런수를 128로 설정하냐, 많으면 똑똑해지는거 아니냐, 많이 설정했는데 왜 바보가 되었냐 등등 예전에 찾아봤더니 의외로 많은 사람들이 설명하지도 않고 당연하게 넘어갈법한 의문들이나, categorical cross entropy 앞에 sparse가 있고 없고의 차이, 그래서 도대체 어떤 손실함수를 써야하고, optimizer는 왜 다 adam인지 사소하지만 중요한 것들을 언급하면서 진행한다. 또한 시간과 자원절약 뿐만 아니라 여러가지 측면에서 유용할 수 있는 콜백을 구현도 짧게 다루고, keras의 ImageDataGenerator를 쓸때 디렉토리를 어떻게 구성해야 하는가, 이미지 증식은 어떻게 구현하는가 등 Tensorflow 튜토리얼에서 볼 수 있는 몇몇 내용도 깔끔하게 짚고 넘어간다. 작년에 혼자 프로젝트할 때 막히거나 왜그렇지 하는거는 이 책에 거의 다 있는듯 하다. 이 책 저 책 다 읽어본 후, 드디어 무언가를 만들 상황이 되어서 만들다가 안될 때 잠깐 보면 좋은 책인 것 같다.

몇년 동안 동일한 분야의 책들을 보다 보면 하나씩 변하는 모습들이 보인다.

점점 보기 편해지고, 점점 유용해지고, 점점 실무에 가까워진다.

일단 컬러풀하다. 컬러풀 한 코드가 코드를 읽는 데에서 발생하는 눈의 피로를 덜어준다. 일단 개인적인 생각이지만 같은 색만 보는 것보다는 코드들이 컬러가 입혀진 것이 리딩에서의 피로도를 줄여 준다는 느낌을 충분히 받았다.

 

직접적인 실습 화면을 컬러로 보여주니 내가 하고 있는 것이 올바른지 잘하고 있는 것인지에 대해서 바로 확인 가능한 것도 좋다.

그리고, 내용은 더욱 직접적인 예제들과 실제로 적용할 만큼 쉽게 알려주고, 이미 구축된 튼튼한 라이브러리와 예제를 기반으로 좀더 구체적인 예제를 실습할 수 있다.

이미지, 자연어, 시계열 등 다양한 데이터 형태에 대하여 학습하고 사용하는 방법을 제공하고 있다. 특히, iOS 와 자바스크립트에서 사용하는 방법에 대한 내용을 처음 접했다. 자료가 드물었던 내가 관심이 덜해서 몰랐던 것인지는 확실하지 않지만 관심이 없던(?) 나에게도 해당 내용을 접할 수 있게 될 만큼 확장이 많이 되었다고 개인적으로 생각한다. 해당 자료가 부족하여 찾는 중이라면 이책이 지푸라기가 되었으면 한다.

 

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

개발자를 트렌디하게 만들 책의 구성

이 책의 가장 마음에 들었던 부분을 꼽자면 바로 맨 처음에 나오는 '머신러닝이란' 부분이었습니다. 사실 저는 머신러닝, 딥러닝을 하면서도 '컴퓨터가 학습을 해서 무언가를 한다.'라는 점은 입력을 하면 출력을 한다는 점과 상당히 비슷하다고 생각했으며, 기존의 프로그래밍과의 차이점을 인지하지 못하고 있습니다. 그런데 이 책에서 기존의 프로그래밍과 머신러닝을 비교해가며 머신러닝을 설명해주는데 정말 시원한 사이다를 들이킨 것 같은 느낌이었습니다.

간단히 설명드리자면 기존 프로그래밍과 머신러닝의 차이점은 '결과물'이 다르다는 점입니다. 기존은 어떤 값이나 행동같은 결과물이 나왔다면 머신러닝은 '규칙'이라는 결과물이 나와서 그걸 다른 곳에 활용할 수 있게 되는겁니다. 제가 기존 프로그래밍과 머신러닝이 비슷하다고 생각했던 이유는 머신러닝의 결과물인 '규칙'을 활용하면 결국에는 기존 프로그래밍처럼 값이나 행동이 나오기 때문이었습니다. 그런데 이건 머신러닝 자체를 잘못 이해했던 것이었습니다. 머신러닝은 인공지능 프로그래밍의 생성부터 적용까지 이야기하는게 아니라 규칙을 만드는 과정인데, 이를 적용까지 생각해버리니 기존 프로그래밍과 비슷하다고 생각했던 것이지요. 우선 이 부분에서 좋았고, 다음은 책의 구성입니다.

책은 총 2개의 파트, 20개의 챕터로 구성되어있는데요. 모델을 만드는 것에서 끝나는게 아닌 어떻게 활용할지를 파트에서 보여주고 있으며, 챕터들의 구성이 정말 마음에 들었습니다. 아래 표를 보시면 제가 챕터를 임의로 분류 해놓았는데요. 먼저 텐서플로 소개를 해주고 그 다음에는 '시각 인공지능 - 데이터셋 사용 - 자연어 처리 - 시계열 분석'순으로 정리가 돼있는데 정말 주로 사용되는 '시각 / 언어 / 시계열'을 모두 다뤄줘서 좋았고, 인공지능의 어떤 기술로 나누는게 아닌 실제로 활용되는 분야를 지정한 후 그 안에서 설명해줌으로써 현재 어떤 부분에서 무엇을 어떻게 활용해야하는지를 알 수 있었습니다.

그리고 모델 사용 부분에서는 컴퓨터에서 활용하는 텐서플로가 아닌 앞으로 기존 보다 훨씬 더 큰 시장이 될 IoT 기기나 엣지 컴퓨팅에서 인공지능을 사용하는 방식인 텐서플로 라이트(TensorFlow Lite) 그리고 웹 서버에서 손쉽게 사용할 수 있게 만들어주는 텐서플로.js(TensorFlow.js)를 두루 다루고 있습니다. 또 마음에 들었던 부분은 모델 변환과 전이학습, 연합학습을 다루고 있다는 점입니다. 개인적으로 머신러닝 공부를 하면서 정말 활용도가 높다고 생각했던 부분들이어서 좋았습니다. 마지막으로 윤리 부분은 조금 아쉬웠는데요. 책 내용 자체는 너무 무겁지 않게 터치를해서 괜찮았는데 챕터 이름을 '인공지능 윤리, 공정성, 개인 정보 보호'라는 너무 무거운 타이틀을 쓴 것 같습니다. 그러다보니 '이런 걸 다룬다고?!'하고 기대하고 들어갔던 것 보다는 적은 정보량에 좀 실망을 하게 됩니다. 마지막 챕터에 연합학습 내용이 들어가 있던것도 조금 부자연스러웠구요. 그래도 전체적으로 봤을 때 개발자를 트렌디하게 만들어줄 수 있는 구성이어서 좋다고 생각합니다.

 

챕터(총 20개)

모델 구축

(PART 1)

  • 텐서플로 소개

  • 컴퓨터 비전 소개 / 고급 컴퓨터 비전:이미지에서 특징 감지하기

  • 텐서플로 데이터셋으로 공개 데이터셋 사용하기

  • 자연어 처리 소개 / 임베딩을 사용한 감성 프로그래밍 / 자연어 처리를 위한 순환 신경망 / 텐서플로로 텍스트 생성하기

  • 시퀀스와 시계열 데이터 이해하기 / 시퀀스를 예측하는 머신러닝 모델 만들기 / 시퀀스 모델을 위한 합성곱 신경망과 순환 신경망

모델 사용

(PART 2)

  • 텐서플로 라이트 소개 / 안드로이드 앱에서 텐서플로 라이트 사용하기 / iOS 앱에서 텐서플로 라이트 사용하기

  • TensorFlow.js 소개 / TensorFlow.js에서 컴퓨터 비전 모델 훈련하기 / 파이썬 모델을 변환해 재사용하기 / 자바스크립트의 전이학습 / 텐서플로 서빙으로 배포하기

  • 인공지능 윤리, 공정성, 개인 정보 보호

간략하면서 요소요소 들어있는 이미지

약 500페이지 정도밖에 안되는 책에 저렇게 많은 내용이 들어가있다보니 이걸 어떻게 다 집어넣었을까, 글만 많고 이해에 도움이 될만한 코드나 이미지 자료는 적은게 아닐까 걱정했었는데요. 이런 걱정이 무색할 정도로 한 장, 한 장을 넘겼을 때 코드나 이미지가 안보일 때가 거의 없는 수준으로 적절한 코드와 이미지들이 들어있어서 좋았습니다.

 

 

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

 

 

 

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

AI and Machine Learning For Coders

로런스 모로니 지음 / 박혜선 옮김 / 한빛미디어

인공지능 4대 석학 앤드루 응 추천도서

아마존 AI&ML 분야 베스트셀러

요즈음 AI가 산업분야 곳곳에서 활용이 높아지고 있다.

AI를 개발하는 개발자라면 자신이 개발하고자 하는 분야에 적용할 수 있는 알고리즘을 찾기가 쉽지 않아서 고민이 많을 것이다.

적용 가능한 알고리즘을 찾았다 하더라도 어떻게 적용할 것인가에 대한 고민이 많을 것이다.

이 책은 저자가 직접 AI를 적용하여 해결한 문제들을 독자들이 이해하기 쉽도록 풀어내고 있다.

또한 역자의 세심한 작업으로 읽으며 따라 할 수 있도록 잘 편집되어있다.

책을 통하여 고민하던 문제들을 쉽게 풀어낼 수 있도록 차근차근 시도해 보고 좋은 결과를 얻으므로 희열을 만끽할 수 있기를!!!

2부 텐서플로라이드(안드로이드, iOS) 사용하기 부분을 잘 활용한다면 적용할 수 있는 분야가 많을 것으로 본다.

대상독자

- 인공지능과 머신러닝에 관심이 있고 데이터에서 학습하는 모델을 빠르게 구축하고자 하면 적합하다.

- 인공지능 및 머신러닝 개념(컴퓨터 비전, 자연어 처리, 시퀀스 모델링 등)을 배우는데 관심이 있고 이 분야의 문제를 해결하기 위해 신경망을 훈련하는 방법을 알고 싶다면 적합하다.

구성

1부(1~11장): 다양한 문제를 해결하는 머신러닝 모델을 텐서플로로 구축하는 방법을 설명하고 있다.

하나의 뉴런을 가진 신경망 모델을 만드는 방법부터 컴퓨터 비전, 자연어 처리, 시퀀스 모델링을 다루고 있다.

2부(12~20장): 모델을 안드로이드, iOS로 배포하고 웹 브라우저에서 자바스크립트로 실행하며 클라우드로 배포하는 시나리오를 다룬다.

온라인 자료

텐서플로 홈페이지: https://www.tensorflow.org

텐서플로 유튜브 채널: https://www.youtube.com/tensorflow

이 책의 코드: https://github.com/rickiepark/aiml4coders

원서의 깃허브 주소: https://github.com/lmoroney/tfbook

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

#개발자를_위한 #머신러닝 #딥러닝 #로런스_모로니 #박혜선 #한빛미디어 #텐서플로 #인공지능 #신경망 #컴퓨터_비전 #자연어_처리 #시계열_예측

■ 대상독자

개발자를 위한 (원서에서는 For Coders)라고 정의된 이유에 대해서 생각해보면,

"로런스 모로니" 저자분도 처음부터 머신러닝 개발을 하시지 않았고,

처음에는 개발자로 구글에서 파이어베이스 제품관련 일을 하시면서, 텐서플로 팀에 합류하시게 되었습니다.
개발자입장에서 머신러닝을 잘 활용하는 방법과, 그것을 실제 서비스에 배포하는 것에 대해서

개발자 입장에서 책을 통해서 전달하려는 내용이 구성되어 있다고 보시면 될거 같습니다.

<<Part1>>

여러가지 경우에 대해서 모델을 구성하는 방법을 실습해봅니다

코드를 통해서 이론등을 설명합니다. 

신경망을 설명할때, 주요 핵심 키워드들이 다 언급됩니다.

은닉층, 과대적합, 하이퍼파리미터 튜닝, 과대적합, 출력층, ReLU, Softmax함수 등등

내용을 처음 보시는 입장에서는 용어, 단어에 익숙해지고 크게 어떠한 흐름으로 동작되는지 파악하는 관점으로

보시면 좋을거 같습니다. 여기서 조금 더 심화학습이 필요한 부분은 다른것으로 보충하시면 좋을거 같습니다.

 

2장에서, 예제로 많이 사용하는 MNIST데이터(0~9까지 숫자)와 비슷한 패선 MNIST데이터를 가지고 실습을 합니다.

3장에서는 여기서 만든 신경망을 이용해서, CNN(합성곱)을 실습합니다.

폴링, 이미지 증식, 드롭아웃과 같은 기법을 활용하여서, 이미지 처리에 대한 합성곱을 실습합니다.

자연어 처리(NLP)에 대한 부분에 대해서 어떻게 단어를 구분하고, 역전파를 통해서 적절한 단어를 구성해서 문장을 도출합니다.

(텍스트를 토큰화 하고 시퀀스로 변환해 신경망에 주입할수 있도록 문장을 숫자 텐서로 만드는 과장)

이것을 기반으로 비슷한 단어를 임베딩하는 하고, RNN(순환신경망)을 만들어봅니다.LSTM기반 모델을 추축하여서 텐서플로를 통해서 텍스트를 구성해봅니다.

10,11장에서는 여러 신경망으로 구성된 시계열데이터를 예측하믄 모델을 추축해보는 과정이 있습니다.

하이퍼파라미터, 신경망 구조를 조정을 통해서 모델의 정확도를 도출해봅니다.

 

<<Part2>>

크게 3가지의 플랫폼에 대해서 설정을 합니다.

1. Android (App)

2. IOS (App)

3. Web

 

https://www.hanbit.co.kr/data/books/B9073454247_l.jpg

요약

  • 텐서플로 기반의 비전, 자연어 처리, 시계열 데이터 처리 등 다양한 토픽을 다룬 책

장점

  • https://github.com/rickiepark/aiml4coders 에서 책에서 사용하는 모든 코드를 확인할 수 있음
  • 실제 안드로이드 및 ios 앱에 적용해봄으로써, 실용적인 측면도 배울 수 있음

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

 



오늘 소개드릴 책은 한빛미디어- 개발자를 위한 머신러닝&딥러닝 도서입니다.

 

개인적으로 따로 무언가를 개발할 때, 머신러닝을 사용하지 않고서는 개발할 수 있는데에 한계가 있음을 요즘 깨닫고 있습니다. 공부는 해보고 싶은데, 또 막상 개론부터 공부하기에는 아무래도 부담이 되어서 실습위주 + 기초 개념이 설명되어 있는 책을 찾다가 해당 도서를 선택하게 되었습니다.





책의 구성은 크게 2가지 파트로 구성되어 있습니다.

 

1부는 모델을 구축하는 방법에 대한 이야기로, 텐서플로에 대한 소개와 컴퓨터 비전 CNN, 자연어 처리 RNN, 시계열 처리에 관한 DNN, CNN, RNN등의 설명을 포함하고 있습니다. 데이터셋 사용 방법이나, 자연어 처리에 필요한 기반 지식들을 포함하고 있어서 학부시절때 배운 내용들을 복습하기에 좋았습니다.

 

2부는 앞서 배운 모델을 직접 사용하는 것으로, 텐서플로 라이트를 소개하고 각각의 안드로이드, IOS 앱에서 텐서플로 라이트를 사용하는 방법이 포함되어 있습니다. 이뿐아니라 자바스크립트나 Node.js를 이용해 머신러닝 모델을 개발할 수 있는 TensorFlow.js 사용방법, 배포, 인공지능 윤리 및 개인정보 보호내용이 포함되어 있어 개발에 대한 전반적인 사항을 고려하며 배울 수 있습니다.



[책의 특징]

 

1. 다양한 데이터셋을 활용할 수 있음



패션 MNIST 데이터셋, 말-사람 데이터셋, 가위 바위 보 데이터셋, 아일랜드 노래 데이터셋, NASA 날씨 데이터셋, 강아지- 고양이 데이터셋 등 흥미로운 데이터셋을 토대로 실습을 직접 진행해볼 수 있습니다.

 

 

2. 머신러닝을 익히기 위한 기반 지식 내용이 포함되어 있음



머신러닝을 배우기 위해 필요한 기반지식 내용을 대부분 포함하고 있고, 설명도 매우 쉽게 그림을 통해 설명해주기때문에 오랜만에 접했거나, 지식이 얕더라도 쉽게 습득이 가능합니다.

 

 

3. 실습 위주로 익히기에 수식을 공부해야하는 부담 경감



어려운 수학과 이론내용들보다도 실용적인 방법 위주로 머신러닝에 대해 설명하고 있고, 예제 코드 실습 위주로 책이 구성되어 있기 때문에 처음 공부를 할 때 느끼는 허들, 심리적 부담감을 상당히 경감시킬 수 있습니다.

자연스럽게 읽어나가며 따라진행하다보면, 초보자여도 반복하다보면 쉽게 체득이 될 것입니다.



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

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

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


책 표지

 

> 책의 구성 및 내용

이 책은 개발자를 위해 머신러닝에 대해 소개하는 책입니다.

Part 1, 에서는 주로 다양한 머신러닝 모델에 대한 소개와 이론적 설명을 쓰고 있습니다.
다른 책들이 머신러닝의 원리나 이론에 대해 많은 지면을 할애하고 있는데 반해, 
이 책은 개발자로서 각 머신러닝 모델에 대해 코드로 설명하는 부분이 많아
바로 적용해보고 테스트 해 볼 수 있다는 점에서 개발자로서 굉장히 좋았습니다.
개인적으로 소스코드를 상세히 설명해주는 부분이 제일 좋았습니다.

이론적인 면에서도 머신러닝의 기초에서 다루는 대부분의 영역을 모두 알려주고 있습니다.
- 비전 데이터 처리 
- 자연어 처리
- 시쿼스, 시계열 데이터 처리
등 대부분 머신러닝 책에서 소개하는 분야는 모두 안내하고 있습니다.

Part 2, 에서는 기존 책들에서 잘 고려되지 않던 Tensorflow의 배포도 소개해 주는 부분이 
- 텐서플로 서빙 (클라우드, 온프레미스)
- 텐서플로 라이트 (안드로이드, IOS, 라즈베리파이)
- TensorFlow.js (브라우저, Node.js)
나름 신선하고 새로워서 좋았습니다.

 

텐서플로 라이트

 

 

개발자로서 머신러닝을 배워 활용하기에 적절한 모든 내용을 한 권에 알차게 넣어 놓은 책이었습니다.

> 장점

  • 개발자에 익숙한 코드로 상세히 설명해 주어 이해가 쉽습니다.
  • 모델을 사용하기위한 환경별로 구분하여 안내하고 있어 좋았습니다.

> 아쉬운 점

  • 없음

책읽기 필요사항

없음

추천 독자

머신러닝에 관심있는 개발자

> 정보

저자: 로런스 모로니
옮긴이: 박해선
출판사: 한빛미디어
가격: 34,000원
전체 페이지: 464페이지

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

[BOOK] 개발자를 위한 머신러닝&딥러닝 - 로런스 모로니 지음 / 박해선 옮김

 

2022-09-28 01.06.12.jpg

 

 

부제: "인공지능 개발자로 레벨 업하기! 신경망 기초부터 컴퓨터 비전, 자연어 처리, 시계열 예측까지"

 

책 표지에서 제일 먼저 눈에 들어온 것은 '개발자를 위한'입니다. (영문은 For Coders 네요?!?!)

그리고 '인공지능 개발자로 레벨 업'이 눈에 들어왔습니다.

 

요즘 개발자분들과 티타임을 하다보면 농담처럼 이야기합니다.

얼마전까지의 풀스택 개발자는 백엔드와 프론트를 함께하는 개발자를 이야기 했다면 앞으로는 인공지능을 다룰 수 있어야 풀스택 개발자라고 이야기 할 수 있다고요.

점점 인공지능이 적용되는 소프트웨어 프로젝트가 늘어가고 있습니다.

 

인공지능 개발자는 어떻게 될 수 있을까요?

아직 정확한 로드맵은 없는 것 같습니다. 

개발과 관련된 여러 로드맵을 소개하는 사이트(https://roadmap.sh)에도 아직 인공지능에 대한 이야기는 없습니다.

 

그럼 인공지능을 어떻게 공부하는 것이 좋을까요?

전문으로 인공지능을 연구하는 분들이 읽는 책들은 내용이 참 어렵습니다. 

인공지능에 대해 쉽게 소개된 책들도 있지만 그 내용만으로는 인공지능을 프로젝트에 적용하기는 힘듭니다.

개발자가 코드를 작성하면서 머신러닝과 딥러닝 개념을 이해할 수 있도록 돕는다.

인공지능에 대한 어려운 수학이나 이론을 걷어내고, 코드를 작성하면서 인공지능 개발자가 될 수 있도록 돕는 것이 이 책의 목표라고 합니다.

'1장 텐서플로 소개'에 전통적인 프로그래밍과 머신러닝를 비교하며 설명하는 내용이 있습니다.

이 부분을 읽으면서 참 쉽게 설명을 잘 한다고 느꼈습니다. (2장부터는 좀 어려워지긴 합니다.

 

 

IMG_3775.jpg

 

저자는 구글의 인공지능 개발 지원팀 리더로 이 팀은 SW 개발자가 머신러닝으로 인공지능 시스템을 구축할수 있도록 교육하는 것이 목표하고 한다. 따라서 이 책에서는 수학이나 이론에 대한 내용보다는 이 책의 영어 제목(AI and Machine Learning For Coders) 처럼 실용적인 접근방법으로 머신러닝과 인공지능을 설명한다.

 

책의 내용은 머신러닝의 Hello World 부터 컴퓨터 비전, 자연어 처리, 시퀀스 모델링 시스템을 만들고 모바일 장치와 웹 브라우저에서 모델을 배포하는 것까지 설명을 하는데 깊이 들어가지는 않고 간단한 예제를 통해 배운다. 우는 것이므로 관심있는 분야는 각자가 검색을 통해 더 깊이 들어갈 수 있을 것이다. Learn by doing!!

 

Part I 모델 구축

전통적인 프로그래밍: 규칙과 데이터를 가지고 정답을 찾는 것. 여기서 규칙은 사람이 찾아서 알고리즘을 만들어야 한다.

 

머신러닝 기반의 프로그래밍: 정답과 데이터를 가지고 규칙을 찾는 것. 여기서 규칙은 AI가 학습을 통해 찾는다. 규칙임 만들어지면 실 데이터로 부터 답을 찾을 수 있다.

 

Part 1에서는 구글 colab에서 텐서플로를 사용하여 다음 3가지 영역에서 모델을 구축하고 테스트를 한다.

 

이미지 특징 감지

  • CNN(Convolutional Neural Network)를 사용하고 공개데이터인 패션 MNIST을 사용
  • Keras에 ImageDataGenerator, 데이터세트를 늘리기 위해서 Image augmentation을 사용
  • Over fitting을 위해 dropout regulation

 

자연어 처리

  • 언어 encoding & tokenizer
  • OOV(out of vocabulary) 사용
  • Embedding을 사용하여 언어의 감성 분석
  • RNN(Recurrent Neural Network), LSTM

 

시계열 데이터

  • 시퀀스를 예측하는 모델만들기

 

Part II 모델 사용

이 챕터에서는 텐서플로 라이트를 사용한다. 즉 Android, iOS등의 임베디드 환경에서 머신러닝 응용과, 브라우저에서 동작하는 TensorFlow.js도 소개를 한다.

 

임베디드 환경은 리소스가 제한되어 있기 때문에 여기서 학습을 하는 것은 아니고 텐서플로 모델을 컨버터를 거처서 tffile을 각 OS상에서 인터프리터를 동작시켜서 추론만하는 개념이다.

 

이 링크 https://github.com/margaretmz/awesome-tensorflow-lite 에서 다양한 분야의 TF lite의 샘플들을 확인할 수 있다.

 

참고:  책의 코드들은 번역자의 깃헙(https://github.com/rickiepark/aiml4coders)에 수록되어 있다.

 

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

 

이 책은 텐서플로를 사용해서 어플리케이션을 개발하고 싶은 개발자에게 무얼 해야 하는지 이야기해주는 책입니다. 여러 책을 읽다보면, 어느 책이든 책의 저자가 독자에게 뭘 말하고 싶은지 깨닫게 되는데요. 제가 지금까지 접했던, 머신러닝이나 딥러닝 책들은 머신러닝, 딥러닝을 다양한 방식으로 설명하려는 책들이 대부분 이었습니다.

하지만 이 책은 개발자가 머신러닝으로 어떤 어플리케이션을 만들려고 할때, 뭘 이해하고, 뭘 해야 하며, 뭘 고민해야 하는지, 체계적으로 설명하고 있네요. 그래서, 인공지능 어플리케이션을 개발하는 개발자들이 읽어보면 좋은 책인것 같습니다.

저자는 먼저 인공지능이 어떤 의미를 지니는지 설명하며 시작합니다.

전통적인 프로그래밍은 "규칙"과 "데이터"로 "정답"을 만들어 내는 걸 의미했습니다.

하지만, 인공지능은 "정답"과 "데이터"로 "규칙"을 알려주는 것이라고 표현하고 있군요.

그다음,

정답과 데이터가 인간이 찾기엔 버거운 규칙들을 알려주는 인공지능을 어떤 분야에서 사용하고 있는지, 설명하는데요. 대표적인 분야인 "컴퓨터 비전"과 "자연어 처리" 에서 어떻게 하는지 간단한 코드로 따라해볼 수 있도록 배려하고 있습니다.

책의 중반이 넘어서면, 어플리케이션 개발자가 머신러닝을 사용해서 어플리케이션을 개발 할 때 필요한 툴들을 소개하고 설명하는데 지면을 할애하는데요. iOS와 안드로이드 웹에서 애플리케이션을 개발 할 때 사용하는 도구들을 설명합니다.

그리고, 마지막으로 "인공지능 윤리, 공정성, 개인 정보 보호"를 설명한 후 책을 마치고 있습니다. 아주~ 깔끔하게...

중반에 "컴퓨터 비전"과 "자연어 처리"부분을 보면서는 기반지식이 없이 보기엔 좀 무리가 있는게 아닌가 싶은 생각도 들었는데요. 책을 모두 읽고 나서 생각해보니, 사실 그 부분은 더 필요한 사람들이 따로 공부할 영역이기 때문이 아닐까 싶었습니다. 어플리케이션을 개발하는 개발자 입장에서는 어떤걸 할 수 있고, 어떻게 할 수 있는지, 주의사항이 뭔지만 정확하게 알고 있으면 되니까요.

저는 올해 초에 <비전시스템을 위한 딥러닝>이라는 책을 재미 있게 읽고 난다음, 제가 근무하고 있는 회사의 팀에 세미나를 진행했습니다. 책의 내용이 이해하기 쉽고, 우리같은 비전공자들도 딥러닝이 뭘하는 건지 알기 수월하다고 생각했기 때문이거든요. 세미나가 끝난다음, "그렇다면 어플리케이션 개발자들은 뭘 하면 되는 걸까요? "라는 질문을 받았습니다. 그 질문을 받고 보니, 딥러닝이 뭐하는 건지는 대충 이해할 수 있었는데, 이걸로 어플리케이션을 만들려면 어떻게 해야 하는지는 또 별개의 문제가 아닐까 하는 생각을 하게 되었군요. 하지만 이번에 이 책을 보면서 그 질문에 체계적인 대답이 가능하게 된것 같습니다.

 

 

 

 

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

몇년 전 딥러닝을 입문하기 위해 박해선 저자님의 서적들로 공부하며 직접 주최하신 밋업에도 참가했던적이 있는데, 저자님의 새로운 번역서가 나왔고, 리뷰를 하게 되었다.


책을 한번 주욱 따라해보고 난 소감은 이렇다.
"머신러닝과 딥러닝의 개념을 잡고, 실무에 활용해보기 원하는 개발자들에게 많은 도움이 될 것 같다."

순차적으로 챕터를 따라가면서 예제들을 충실히 따라하면 텐서플로에 대한 사전지식이 없는 상태여도 순조롭게 내용을 따라갈 수 있다.


책의 제목이 '개발자들을 위한' 이기에 파이썬에 대한 기초문법 등을 다루고 있지는 않지만, 사용되는 문법이 어렵거나 복잡하지 않고, 문법 자체가 직관적이기에 개발을 처음 접하는 사람도 크게 어렵지 않게 공부 할 수 있을 것 같다. (는건 나만의 생각인가..)

수학적인 풀이보다는 예제와 결과 위주로 진행되는 구성 덕분인지 지루함을 느끼지 못했으며, 개념 설명시에는 손쉬운 다이어그램을 이용해 이해를 도왔다.

 

 

크게 파트를 나눠서 '모델 구축'과 '모델 사용'으로 나뉘어 있으며, '모델 구축' 파트에서는 Tensorflow, 컴퓨터 비전(이미지 인식, 신경망 설계, 모텔 출력 등), 공개 데이터셋 활용방법, 자연어 처리 등에 대해서도 예제를 통해 자세하게 익힐 수 있다. 목차만 봐도 배가 부를 정도.

물론 이 책 한권으로 머신러닝의 신이 될 순 없겠지만 그 '맛'을 보기엔 충분하고도 넘친다.

 

'모델 사용' 파트에서는 앞서 구축한 모델을 텐서플로 라이트에 대해 배워볼 수 있드며, 안드로이드 / iOS 에서 텐서플로 라이트를 사용하는 방법에 대해 배워볼 수 있다.
파이썬으로 구축한 모델을 자바스크립트로 변환하여 활용하는 방법도 설명하고 있어서, 웹에서도 손쉽게 활용 가능하다. (개인적으로 제일 맘에 들고 도움을 받은 부분)

 

최근 진행중인 업무가 딱 머신러닝을 활용해야 하는 직무인지라, 업무도 진행할 겸, 책 내용도 리뷰할 겸, 예전에 공부했던 내용들을 리마인드 하면서 공부했고, 확실히 학습은 반복하면 할수록 뭔가 더 성장하는게 느껴진다. 처음 머신러닝을 공부할 때, 어렵다고 느끼고 이해가 잘 되지 않던 부분도 몇 번 반복을 하니 회차가 거듭할 수록 이해도가 높아져 가는게 느껴진다.

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

● 머신 러닝 붐

- 머신 러닝 입문자가 계속 느는 것이 느껴진다.

- 정확한 통계 수치를 보지 못해 얼마가 늘었는지, 늘고 있는지는 알 수 없지만

- 최근 강의를 하러 방문했던 한 기관에서는 기존 DB 담당자들, 웹개발자들이 머신 러닝 입문자로 앉아 있었다.

- IT와 거리가 먼 분들 입장에서는 DB나 웹이나 머신 러닝이나 그게 그거 아닌가 싶겠지만

- 밭을 일구는 농부와 배를 타는 어부, 산을 누비는 심마니처럼 바라보는 대상과 생존을 위한 기본기가 다른 것이 이들이다.

 

● 개발자를 위한 입문서

- 여러 종의 입문서가 시중에 나와있고 이 중 몇 권을 읽었지만 이 책은 조금 독특하다.

- 제목인 "개발자를 위한~" (원서는 "~ for coders")에서 알 수 있듯 코딩 자체를 처음으로 하는 이들이 아니다.

- 심마니에게 농사일은 낯선 일이겠지만 풀 이름을 일일이 가르칠 필요는 없는 것처럼,

- 딥 러닝 라이브러리인 텐서플로는 낯설겠지만 코딩 자체를 처음부터 가르칠 필요는 없다.

 

● 독특한 구성

- 그래서인지 구성이 상당히 독특하다. 

- 본문 두 번째 페이지에 나오는 가장 먼저 나오는 그림 1-1에서 벽돌깨기 게임 예를 들면서 나오는 설명은 코드 형식이다.

- 연달아 나오는 몇 개의 예시를 자바스크립트 형식의 코드로 설명하고 나서 텐서플로 이야기가 나오는데,

- 설치 등 환경 설정이 다른 입문서와 비교해 몇 배나 짧다. 개발자들에겐 익숙한 이야기이기 때문이다.

- 드디어 텐서플로 코딩을 하는 단계에서도 경사하강법이나 오차역전파 같은 이야기는 거의 생략된다.

- 이 부분은 익숙해서라기보다는 결과 위주의 설명이 개발자들에게 더 익숙하게 다가가기 때문일 것이다.

 

● 다른 입문서는?

- 여러 편의 다른 입문서는 관점에 따라 조금씩 다르기는 하지만 수학적 설명이 더 많이 포함된다.

- 경사 하강법을 설명할 때 깊게 설명하지 않더라도 편미분방정식 하나쯤은 등장하고

- 오차 역전파에서 발생하는 기울시 소실을 이야기할때도 미분 이야기가 등장한다.

- 머신 러닝 모델을 만드는 이들이 반드시 다루어야 하는 학습률(learning rate)을 설명하려면 불가피해 보인다.

 

● 결과물 위주의 방식

- (주)인사이트마이닝 이부일 대표님께서 주신 말씀처럼 통계학은 의심하는 학문이고, 머신 러닝의 본질은 통계학이다.

- 받은 데이터가 정규성을 띄고 있는지, 이 표본과 저 표본의 분포가 다른지 같은지부터 시작해

- 내가 적용하는 모델이 옳은지까지 끊임없이 의심하고, 결과를 제출할 때도 p-value와 신뢰 구간 등을 제시한다.

- 그러나 어떤 집단에서 개발자가 머신 러닝 모델링에 투입된다면 적어도 결과를 빠르게 요구하는 상황일 것이다.

- 이들에게 샤피로-윌크 검정이니, 선형성이니 하는 이야기부터 하고 있을 여유는 없다.

- 검증은 이들에게 데이터를 맡기며 모델링을 의뢰한 이들에게 맡기고, 우선 결과부터 빠르게 내야 한다.

 

● 배포(deploy) 부분 비율이 높다

- 개발자들이 머신 러닝을 배워야 하는 상황이라면 앱이나 웹으로 모델을 배포해야 하는 상황일 확률이 높다.

- 그래서 텐서플로 기본, 이미지, 자연어를 빠르게 훑은 후 (딥 러닝은 이미지나 자연어에 강력하다)

- 텐서플로.js 등을 사용해 앱과 웹으로 배포를 하는 실습에 적지 않은 분량을 할애하고 있다.

- 이 책을 읽어야 하는 이유가 되는 지점이 여기라고 생각한다.

- 정석으로 머신 러닝을 배운 이들 입장에서는 앱이나 웹 배포가 어렵지만 음으로 양으로 등을 떠밀리고 있다.

- 개발자들에겐 익숙할테니 이 책의 후반 3분의 1 정도를 차지하는 부분에서 생략이 적지 않다고 느끼지만

- 그럼에도 불구하고 따라해볼 수 있는 좋은 예제들이 담겨 있다.

 

● 이 책이 다가 아니기를 알면 좋겠다.

- 갑자기 머신 러닝을 담당하게 된 개발자들이 이 책으로 빠르게 결과를 낼 수 있는 것은 반가운 소식이다.

- 하지만 이 책의 내용을 전부라고 인식하고 이것"만" 하면 분명히 문제가 생길 것이다.

- 위에서 이야기한 데이터의 특성도 파악해야 하고, 결과 검증 이전에 데이터 분할부터 신경쓸 거리가 많다.

- 이 책으로 입문하시는 분들께서 나중에라도 다른 책을 함께 읽으시면 좋겠다.

 

※ 한빛미디어 2022 도서 서평단 "나는 리뷰어다"의 일원으로 도서를 제공받아 작성한 리뷰입니다