핸즈온 비지도 학습 - 텐서플로, 케라스, 사이킷런을 활용한 알고리즘과 방법론, AI 활용 사례
안쿠르 A. 파텔 지음, 강재원.권재철 옮김 / 한빛미디어 / 2020년 7월
평점 :
장바구니담기



[ 한빛미디어에서 주관하는 '나는 리뷰어다' 활동에서 제공받은 책을 통해 작성된 서평입니다 ] 




머신러닝과 딥러닝 책을 좀 봤다면, 비지도학습을 다루는 챕터를 분명히 보았을 거라고 생각한다. 

보통 국내 책마다 2,3챕터정도는 비지도학습의 기법에 대한 설명과 핸즈온으로 구성된 게 많은 걸로 안다. 

이 책은 철저하게 비지도학습에 초점을 맞춘다. 사용하는 라이브러리는 사이킷런, 텐서플로(1.xx), 케라스을 이용한다. 


이 책은 머신러닝 입문자들이 보기는 부적합하다. 다른 책이나 강의로 조금 공부를 한 사람이 보기에 적합하다고 본다.

책의 초반이나 챕터마다 초반에 기본적인 개념에 대한 정리를 해주지만 몇 장 되지 않는다. 그러니, 다른 머신러닝 책을 1,2권 정도 공부해본 사람이 보길 권한다. 물론 여기에는 케라스나 텐서플로우도 기본을 조금은 해놓는 거까지가 전제다. 


1,2장까지는 머신러닝에 대한 기본적인 개념과 지도학습에 대한 설명과 실습을 진행한다. 왜냐면 비지도학습을 제대로 이해하려면 지도학습을 명확히 알아야 하기 때문이다. 헌데, 한 챕터로 정도로는 지도학습에 맛만 조금 볼 수 있기에 다른 책들을 통해 지도학습에 대한 좀 더 다양한 챕터와 실습을 해본 뒤에 비지도학습으로 넘어가는 것이 좋다고 본다.




3장부터 6장까지는 사이킷런을 이용해서 비지도학습의 굵직한 기법들을 하나씩 설명하고 핸즈온한다. 

차원 축소, 이상치 탐지, 클러스터링 등이다. 다루는 데이터셋은 캐글에서 다운받을 수 있는 데이터이며 mnist처럼 오래된 데이터들이다. 

역자의 깃허브에 가면 데이터셋을 쉽게 받을 수 있다. 리뷰어의 경우는 git lfs pull 에서 뭔가를 자꾸 purchase 하라는 에러가 나오길래 그냥 데이터셋 링크 가서 다운로드 했다. 







챕터 7부터는 딥러닝 프레임워크들을 이용한 비지도학습을 설명한다. 

이 책에서 다루는 tensorflow 는 1 버전이다. 최근 나오는 책들은 2 버전들인데 아마 원서가 최소 1년 전에 출간되서 그 간격에서 tf1 으로 한 게 아닐까 싶다. 헌데, 케라스도 사용하니 tensorflow 1 버전을 안 사용했어도 크게 문제 안될 거라고 생각한다. 왜냐면, 이 책에서 비지도학습에 대한 여러가지 api 사용법을 핸들링하기 좋은 데이터셋으로 다루기에 tensorflow 1 어려운 모델을 구현하거나 하지 않는다. 나 역시 tensorflow 1 버전은 예전에 잠깐 공부한 수준인데 거기서 크게 더 깊어지지는 않는다. 그러니 api 사용법은 걱정하지 말자. 그냥 그대로 따라치면 된다.  


정리하자면, 책에서는 비지도학습에 관련된 흩어진 인공지능의 부분들을 다 모아놓은 책이다. 마지막 챕터까지 가면 GAN, 시계열 클러스터링 등 조금은 어려울 수 있는 부분까지 핸즈온을 한다. 그리고 그렇게 깊게 들어가지는 않는다. 이후의 깊이는 공부하는 사람이 여러 구글링과 논문, 더 심도있는 책들을 통해서 하면 될 것 같다. 여하튼, 머신러닝과 딥러닝 책들에 흩어져있는 비지도학습들을 잘 모아서 정리해놓은 책이라는 느낌이다. 정리해놓은 책이기에 깊이가 엄청나지 않은 느낌이니 부담없이 읽어도 된다고 본다. (물론 기본서 1,2권정도 보고 공부한 사람이라는 전제하이다) 


비지도학습은 업무에서 데이터의 샘플이 부족하거나 라벨이 없거나 하는 경우가 대다수이기에 무조건적으로 고려해야 되는 옵션 중 하나라고 본다. 그러니 비지도학습에 대한 큰 기법들과 API 사용법을 정리한 이 책은 현업에 있는 사람들에게 큰 도움이 된다고 본다. 물론 데이터분석, 머신러닝 공부하는 이들에게도 마찬가지로 도움된다!




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
금융 데이터를 위한 파이썬 - 부동산&주식 데이터 수집.분석.활용까지
테리엇 지음 / 비제이퍼블릭 / 2020년 6월
평점 :
장바구니담기



[파이썬으로 금융 데이터를 다룰 수 있는 최적의 입문서] 


파이썬이라는 언어는 다양하고 유용한 라이브러리들이 많다. 하지만, 라이브러리의 버전 업에 따라서 메서드의 이름이나 사용법이 변하는 일이 빈번하게 발생한다. 금융과 관련된 파이썬 api 도 마찬가지이다. 유용한 라이브러리가 있다고 이에 전적으로 의지하면 안된다. 다양한 방법을 알 필요가 있는데 이 책은 그런 면에서 유용하다. 


먼저 1장은 '수집'에 대해 다룬다. 라이브러리를 이용한 방법, open API 사용법, bs4와 selenium 을 이용한 크롤링 등등이 그것이다. 그리고 크롤링을 할 때 알아야되는 기초적인 html, css 등의 설명과 수집한 데이터를 mysql 에 집어넣는데 pymsql 을 사용하거나 등등은 파이썬을 최소한만 알아도 자연스럽게 익히게 하는 느낌이다. 


사실은 '점프투파이썬'정도만 떼었다고 해서 이 책을 1회독 만에 다 이해할 수는 없다. 입문  수준으로는 변수나 클래스를 왜 저렇게 짰는지 이해를 못할 가능성이 높다. 함수나 클래스 정도는 '코딩도장' 책을 이용해서 공부한다면 그정도 수준이면 이 책을 어느정도 이해할 수 있다고 본다. 


리뷰를 쓰는 필자의 수준은 파이썬이 어느정도 익숙하며 본격적으로 파이썬을 공부한 것은 1년여 됐다. 이런 나에게는 이 책이 진행하는 방식이 굉장히 유용하고 재밌다. 2장은 이러한 데이터를 분석하는 데 sheet 형태로 데이터를 다루는 pandas 와 시각화 라이브러리로 설명한다. 


오히려 데이터 분석을 위주로 파이썬을 공부했다면 1장보다 더 쉽게 느껴질 수 있다. 하지만 1장은 더 가치가 있다. 왜냐면 데이터가 있어야 분석을 할 수 있기 때문이다. (물론 금융데이터는 해당 사이트에서 날짜 맞춰서 csv 로 받아서 pandas로 볼 수 있긴한데 이는 자유도가 낮은 방법이다.) 


3장은 말 그대로 데이터를 '활용'하는 법을 배운다. 개인적으로는 저자가 정해준 순서대로 따르길 원하지만 수집 부분이 어렵다면 2장->1장->3장 순으로 보면 될 것 같다. 책의 분량이 많지는 않아서 가볍게 며칠이면 다 따라하고 볼 수 있을 것이다. 개인적으로 소액으로 주식을 하는 사람이 하면 좋을 것 같다. 그래야 더 '몰입'될 것 같기 때문이다 ㅎㅎ 


그래도 취준생이나 학생이 금융권의 디지털 직무 등을 목표로 한다면 이 책으로 파이썬과 금융을 엮어서 입문하면 좋을 것 같다. 다만 구글링을 좀 해야할 것이다. 책의 페이지 분량을 보면 알겠지만 설명이 엄청 디테일하지는 않으니 참고 바란다. 


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
검색을 위한 딥러닝 - 심층 신경망을 활용하는 차세대 검색 엔진 개발 제이펍의 인공지능 시리즈 (I♥A.I.) 26
토마소 테오필리 지음, 박진수 옮김 / 제이펍 / 2020년 3월
평점 :
절판







우선 제가 본 도움이 이 책이 도움 될 수 있는 대상들을 이야기 해보겠습니다. 



""" 리뷰어가 생각한 이 책이 도움되는 사람 순위 """



1) 자바 개발자이며 딥러닝을 적용하려는 사람


2) 자바 개발자 및 자바 공부를 초중급 수준까지 공부한 사람(+ 간단한 토이 프로젝트까지 해본 수준)


3) 딥러닝은 공부를 꽤 해오고 그걸 활용한 프로젝트도 캐글도 참여해보았으며, 서비스 차원에서 딥러닝이 검색엔진에 어떻게 적용되는지 알고 싶은 사람(+ 자바는 거의 모른다 , 이럴 경우 책에서 제공하는 코드는 활용하기 힘듭니다.)



사실 3)의 경우는 도움이 많이 된다고 하기 힘듭니다. 왜냐면 이 책은 '자바'로 대부분의 코드가 이루어져 있습니다. 

저의 경우도 파이썬만을 주로 써왔기에 자바는 학부생 시절 2과목 정도 이수하였지만, 너무나 오래되서 거의 생각이 안나는 수준입니다. 그런 제가 왜 3) 을 굳이 넣었냐면, 검색엔진을 구성하면서 딥러닝이 어떻게 적용되느지 알 수 있었기 때문이다. 



검색엔진은 아직 손대지 못한 영역이지만 딥러닝의 저렇게 적용되는 구나라고 느낄 수 있었습니다. 

사실 이 책에서 쓰이는 딥러닝은 그렇게 깊은 내용들은 아닙니다. 

거의 다 자연어처리 관련한 이론들을 적용하는데 nlp 업계에서는 bert 가 이제 기본이라고 할 수 있는데 이 책에서 다루는 딥러닝 알고리즘은 거기까지 가지 않습니다. 머신러닝과 딥러닝의 기초적인 알고리즘 정도를 도입하는 수준입니다. 

하지만 실제 서비스에 적용하는 부분을 고민하고 실습하는 코드들이기에 실무적인 면에서는 깊이 있다고 생각합니다. 



항상 it 서적을 사는 사람들은 어떤 언어로 코드가 이뤄져있으며 어떤 내용을 구현하는지를 중요시한다고 생각한다. (나 역시 마찬가지다) 그러니 저자가 책의 내용을 시작하기 전에 얘기하는 이러한 안내는 책을 구매 전에 서점에서 한 번 보거나 해야된다고 생각한다. 



어쨋든 자바를 잘 모르는 본인의 관점으로 책을 한 번 살펴보겠습니다. 



1장에서는 딥러닝과 검색 엔진에 대한 기초적인 이론을 이야기 합니다. 

쿼리 구문 분석에 대한 설명과 인덱스가 뉴런과 어떤 식으로 만날 수 있을까 하는 접근법에 대한 이야기 합니다. 



2장부터 루씬과 자바 실습코드로 word2vec 과 같은 Nlp 의 기본 개념들을 구현합니다. 검색 엔진의 관점에서 다루기에 실무적인 면에서 딥러닝 자연어처리의 기초 이론이 어떻게 적용되는지 알 수 있습니다. (참고로 번역서이기에 영어를 기준으로 합니다) 



3장부터 rnn, lstm 의 딥러닝의 기초적인 모델들을 이용해서 쿼리를 어떻게 활용하고 확징시킬지 철저하게 검색 엔진 관점에서 다룹니다. 딥러닝에 대한 기본적인 설명을 하기에 딥러닝에 대한 기초이론을 미리 공부할 필요는 없다고 생각합니다. (물론 따로 딥러닝 공부를 하고 이 책을 보면 더 좋긴 합니다)



TF-IDF,  word2vec 가 뒤에 장에 나오는 걸 볼 수 있는데 , 자연어처리에서는 이를 먼저 배우고 rnn, lstm 을 배운다. 하지만 이 책은 검색엔진의 관점에서 딥러닝을 다루기에 이러한 순서로 진행되지는 않는다. 




정리하겠습니다. 



대상 독자들에 대해서는 서두에 이야기를 하였습니다. 

장점을 말하면, 검색엔진에 대한 이해도를 높일 수 있고 여기에 딥러닝을 어떻게 적용하고 고민했는지 이를 확인할 수 있었습니다. 루씬을 다루는 것도 도움이 많이 됩니다. 



단점은 파이썬 코드로 이루어진 것이 아닌 겁니다. 딥러닝 프레임워크와 데이터 분석은 대부분 파이썬 기반으로 이루어지지만, 이 책은 자바로 코드가 이루어져있습니다. 이 단점은 파이썬만을 할 줄 아는 저에게만 통용됩니다. 자바 개발자에게는 오히려 굉장한 장점이라고 생각합니다. 새로 언어를 공부할 필요 없으며 원래 하던 자바에 딥러닝 공부를 하면서 적용만 하면 되기 때문입니다. 



이 리뷰는  책쓰는 프로그래머 협회(이하 '책프협')의 이벤트를 통해 지원 받은 책의 리뷰 입니다 :)






댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
코틀린을 다루는 기술 - 코틀린답게 코딩하자!
피에르 이브 쏘몽 지음, 오현석 옮김 / 길벗 / 2020년 3월
평점 :
장바구니담기


최소한 '자바'를 공부했다면(입문서, 기본서 1권 이상) 더 나아가서 자바로 작은 프로그램 또는 토이 프로젝트라도 한 경험이 없는 사람 이외에는 이 책을 보지 않길 권한다. 


애초에 코틀린은 (저의 주관상)  자바를 조금 현대화 및 개량한 언어 느낌이기에 자바를 어느 정도 알고 있어야 이해가 잘되는 언어입니다. 그리고 이 책은 자바를 어느정도 알고 있다는 사람이라는 전제하에 설명을 합니다. 그래서 보통의 프로그래밍 언어 책들은 설치를 다루는데 이 책은 전혀 다루지 않습니다. 


환경은 IntelliJ 를 권장하며 별도로 구글링해서 설치해야 합니다. 하지만, 자바를 공부하는 사람이라면 보통 이클립스나 인텔리J 는 사용하고 있을 겁니다. 



객체 지향에 대한 개념이 좀 잡혀있고 자바를 다뤄본 사람 이외에는 이 책은 좀 불편할 수 있습니다. 

그러니 코틀린 기본서인 이 책은 자바를 잘 모른다면 보기 매우 힘들거라는 점을 또 한 번 강조합니다. 




자바 프로그래머라면 꽤 재밌게 읽을 수 있다. 본인이 자바로 코드를 짜면서 이건 좀 더 이렇게 안되나? 생각했던 것들이 코틀린은 좀 더 편리하게 로직을 짜놓았기에 뭔가 좀 더 트렌디하다는 느낌을 받을 수 있다.



이 책은 꼭 순서대로 읽으라고 권하는데 챕터 시작별로 이해를 먼저 돕는 설명을 하고(=필요성을 알려주고) 언어의 특징들을 예제와 함께 말해준다.



부록에서는 자바와 코틀린을 함께 쓰는 방법에 대해 얘기해주는데 실무에서는 굉장히 유용할 수 있는 설명이다. 



자바 프로그래머라면 트렌드를 따라가려한다면 이 책으로 공부하면 많은 도움이 될 거라고 확신한다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
혼자 공부하는 파이썬 - 파이썬 최신 버전 반영 혼자 공부하는 시리즈
윤인성 지음 / 한빛미디어 / 2019년 6월
평점 :
구판절판


윤인성님의 책은 늘 입문자와 초보자의 관점에서 많은 도움이 된다. 상세하고 친절한 설명, 그리고 하나하나씩 세세하게 알려주는 과정은 타의 추종을 불허한다고 본다. 파이썬의 입문서이자 초급 서적으로 최고다.

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