3분 딥러닝: 파이토치맛

오늘 소개할 도서는 '펭귄브로의 3분 딥러닝: 파이토치맛'으로 두 명의 저자가 파이토리로 인공지능 구현하는 방법을 설명합니다. 인공지능을 개발할 때 많이 사용되는 프레임워크는 텐서플로우, 케라스, 파이토치 등이 있으며, 실제 연구에는 케라스 및 텐서플로우가 현재 많이 사용되고 있지만, 최근 들어 파이토치 또한 논문 및 연구 쪽에서 어렵지 않게 볼 수 있습니다. 개인적으로 추상화가 너무 잘되어 있어 디테일한 수정이 불가능했지만, 다른 프레임워크 보다 좀 더 빠르게 구현할 수 있다는 장점이 있었습니다. 

 

파이토치는 페이스북에서 만든 딥러닝 모델 오픈소스 프레임워크입니다. 이 책은 ANN, DNN, CNN, RNN, GAN 등을 파이토치를 이용해 구현해봅니다. 3분 시리즈의 특성상 수학적 공식과 같은 이론 위주의 도서보다는 코드 위주로 빠르게 구현하고 이해하는 데 집중하고 있습니다. 3장은 파이토치로 ANN인 인공신경망을 구현하고 있습니다. 딥러닝의 가장 기본인 ANN은 각 노드들이 유기적으로 연결되어 가중치를 역전파 알고리즘 등으로 조정하고 최적화합니다. 5장은 지금까지도 가장 활발히 사용되고 계속적으로 발전되고 있는지 CNN을 사용해 이미지 처리를 다룹니다. CNN은 컨볼루션 신경망으로 합성곱 신경망이라 합니다. 컨볼루션은 계층적으로 이미지를 인식하도록 단계마다 이미지의 특징을 추출하게 됩니다. 이렇게 컨볼루션을 거쳐 만들어진 이미지를 특성 맵이라고 합니다. 이후 ResNet도 소개하는데, 데이터셋이 복잡해질수록 학습량은 많아지고 좀 더 효율적인 아키텍처 필요합니다. 컨볼루션층의 출력에 전의 모든 레이어에 쓰였던 입력을 더해 과거의 특징을 함께 가져갑니다. 

 

7장의 RNN은 순차적인 데이터를 다룹니다. 흔히 보는 텍스트, 글, 음악, 시계열 데이터가 해당됩니다. 책에서는 설명도 설명이지만 코드와 함께 구현과 테스트가 따라하기 쉽게 적혀있습니다. 9장은 생산적 적대 신경망인 GAN을 소개합니다. 새로운 진짜같은 가짜 데이터를 생성하는 GAN은 아이디어부터 활용까지 정말 놀라운 딥러닝 방법입니다. 거기에다가 사용자가 원하는 레이블 정보와 함께 조건을 걸어 원하는 가짜 이미지를 생성하는 조건부 GAN도 존재합니다. 이후 현재까지도 다양한 GAN이 파생되어 연구되어 있습니다. 파이토치는 제품, 연구 등 딥러닝이 활용되는 분야에서 구현을 빠르게 할 수 있는 프로엠워크입니다. 입문자부터 시작해 학생, 전문가까지 빠르게 개념을 습득하고 싶을 때 이 책이 많은 도움이 될 것입니다. 특히, 이론보다는 실습이 좀 더 재미있고 효과가 좋은 독자에게 더욱 도움이 될 것입니다.

파이썬으로 배우는 딥러닝 교과서

오늘 살펴볼 도서는 한빛미디어의 '파이썬으로 배우는 딥러닝 교과서'입니다. 부제로 '이미지 인식 모델을 만들면서 익히는 딥러닝'을 사용하고 있는데, 파이썬 기초부터 시작해 이미지 인식을 다루는 딥러닝 예제를 살펴보는 번역서입니다. 딥러닝 초심자부터 중급자까지 다루는 도서인만큼 프로그래밍 경험이 다소 있지만 파이썬에 익숙치 않고 딥러닝이 처음인 독자를 위한 도서입니다. 기본적인 컴퓨터 지식과 기초적인 프로그래밍 경험, 함수 및 미분, 벡터, 행렬 등의 기초가 있으면 좋지만 이 책의 앞부분에서 꽤 다루고 있기때문에 기억이 가물가물하더라도 괜찮습니다. 초심자부터 시작하는 도서인만큼 처음부터 개발 환경을 준비하고, 머신러닝이 무엇인지 등 이론적인 내용부터 시작해, 파이썬을 활용한 딥러닝에 필수적인 사항인 변수 및 자료형, 문법, Numpy, Pandas 패키지 등을 다루고 있습니다. 

 

10장부터는 본격적인 데이터 시각화에 대해 다루고 있는데, 딥러닝의 결과를 시각적으로 나타내고 성능 또한 그래프로 나타내는 것이 중요합니다. 실제 딥러닝은 수많은 수치 연산으로 이뤄지기 때문에 성능 평가와 그 결과를 시각화해 이해하고 객관적인 지표로 사용하는 것이 중요합니다. 따라서 한 번 익혀놓으면 어떻게 활용해야 될지 감이 잡히고 시간이 흐른 후 여러분만의 딥러닝 모델을 만들때 또는 다른 사람의 모델을 볼 때 많은 도움이 될 것입니다. 기본적인 패키지는 matplotlib를 사용하지만 최근에는 반응형, 웹형 패키지도 이용하고 있습니다. 더군다나 tensorboard와 같은 추상화과 잘된 패키지를 이용할 경우 전문가들처럼 다양한 수치 및 시각적인 자료를 코드 한 줄로 해결할 수 있습니다. 패키지를 워낙에 많이 존재하니 본인한테 익숙하거나 많은 사람들이 사용하는 패키지를 사용하는 것이 좋을 듯 합니다.

 

이미지 데이터의 경우 15장부터 OpenCV를 활용해 처리합니다. 이미지 데이터는 행렬과 유사하므로 또다른 접근법이 필요합니다. 많이 사용되는 프레임워크는 OpenCV로 컴퓨터 비전분야에서 많이 사용됩니다. 16장은 지도학습 중 분류문제에 대한 기초를 다루고 있습니다. 대표적인 통계적 기법인 회귀, 서포트 벡터 머신, 랜덤 포레스트 등을 다루고 있는데 데이터의 종류, 형태, 구성에 따라 이러한 기법을 자유자재로 다뤄야 되는데 이 때 하이퍼파라미터와 같이 기법의 수치적인 사항을 조절해 알맞게 적용해야 합니다. 머신러닝과 다르게 딥러닝은 신경망을 이용해 손실 함수를 정의하고 이 손실함수가 최소화가 되도록 반복적으로 학습합니다. 신경망 중 가장 널리 사용되는 것이 합성곱 신경망인 CNN으로 21장부터 이미지 인식에 필요한 CNN을 다루고 있습니다. 분류 문제를 다루고 있으며, 해당 이미지가 dog 이미지인지, cat 이미지인지 등 해당 이미지의 클래스를 구별합니다. 이미지 인식률을 높이기 위해서 다양한 데이터 기법들이 사용되는데, 여기서는 22장에서 데이터 부풀리기, 정규화, 전이 학습 등 비교적 간단하게 설명하고 있으니 좀 더 깊게 알고 싶으면 개인적인 공부가 더 필요할 듯 합니다.

 

이 책은 전체적으로 파이썬을 활용한 딥러닝의 기초를 위한 도서입니다. 초심자에게 파이썬 기초부터 딥러닝이 어떻게 구성되고 실제 구현이 어떻게 이뤄지는 지 궁금한 독자분들이 많은 것입니다. 특히 비전공자일수록 그럴 수 있는데, 초급부터 중급 독자를 위한 도서인 만큼 넓은 계층에서 지금은 널리 사용되는 딥러닝의 기초를 익혀 많은 도움이 되길 바랍니다.

 

어느 덧 더운 여름이 다가왔습니다. 오늘도 한빛미디어에서 새로 출간된 파이썬 웹 프로그래밍 도서를 저에게 보내주셨습니다. 시중 IT관련 서적에서 좋은 번역서로 많이 존재하지만, 그래도 저서로 집필된 책이 좀 더 정이 많이 가는 부분입니다. 그 중에서 파이썬 관련 분야에서 많은 집필 도서가 나오고 있습니다. 이 책은 출판사에서 강조하길 파이썬 웹 개발자를 위한 학습로드맵의 가장 마지막에 해당되는 도서입니다. 실전편인 만큼 다양한 사례와 중급 개발자로 성장하기 위한 내용들이 담겨 있습니다.

 

<파이썬 웹 개발자를 위한 학습로드맵>

혼자 공부하는 파이썬 -> 파이썬 웹 프로그래밍, 기본편 -> 파이썬 웹 프로그래밍, 실전편

 

장고(Django)는 현재 국내와 해외에서 가장 많이 사용하고 있는 파이썬 웹 프레임워크입니다. 다양한 레퍼런스와 이슈들에 대한 해결법, 템플릿 등도 많아 많은 서비스들이 장고를 이용해 웹 앱을 개발하고 관리하고 있습니다. 또한 가장 대중적이고 많은 사용자 층을 보유한 파이썬을 기반으로 진입 장벽이 낮은 프레임워크이므로 이 또한 큰 장점이 됩니다. 실전편은 앞선 기본편에 비해 간단한 예제와 튜토리얼 수준을 넘어 프로젝트 기반으로 간단한 앱부터 복잡한 기능까지 확장하는 방식으로 좀 더 자세한 설명이 주를 이룹니다.

 

책 실습코드의 테스트 환경은 모두 리눅스 가상머신 환경에서 이뤄졌다. 따라서 CentOS 및 우분투를 사용하면 된다. 1장에서는 장고 개발의 기본 사항 및 가상환경 구성에 대한 내용이 주를 이룬다. 2장부터 실전 프로그램일 Bookmark앱과, Blog 앱들을 개발해본다. 6장부터는 Blog앱의 UI 및 URL을 설계하는 등 확장해 Tag 달기, 댓글 달기, 검색 기능 등을 진행해본다. 13장부터는 장고의 핵심 기능인 Model의 정의 및 관계 등을 구성해보고, 마찬가지로 View, Template, Form 등에 대해서도 자세히 살펴본다. 

 

특히 심화편에서 다루는 Model, View, Template, Form등은 장고에서 중요한 개념으로 이 책에서는 클래스별로 나눠 설명하고 있다. 따라서 본인이 알고 싶거나 참고하고자 하는 클래스를 찾아 알아보면 매우 큰 도움이 될 것이다. 끝으로 이 책은 기본편의 간단한 예제를 넘어 좀 더 깊게 심화된 부분이다. 따라서 기본적인 내용이 부족하다면 앞선 도서를 먼저 읽어볼 것을 권장하고, 실전에 많은 도움이 되고자하는 Django 기반 웹앱을 구성하기 위해서는 이 책이 많은 도움이 될 것이다.

 

 

 

오늘 살펴볼 도서는 Head First Go입니다. 구글에서 만든 Go언어에 대한 입문서입니다. 표지를 보면 익숙하겠지만 오레일리 출판사에서 나온 원서의 번역본입니다. Go언어는 2009년 구글에서 발표한 언어로 최근 우리나라에서도 많이 활용되고 있습니다. 클라우드 및 네트워크의 백앤드 등의 영역에서 대체적으로 많이 사용되며, 도커, 쿠버네티스, 분산 시스템 등에 많이 이용된다고 합니다.

 

Go언어의 특징은 빠른 컴파일 속도, 간결한 코드, 자동 가비지 컬렉션, 편리한 동시성 코드 작성, 멀티코어 지원 등이 있습니다. 최신의 언어답게 간결한 문법과 좋은 성능을 보이는 것이 특징입니다. 현재 Go언어는 오픈소스로 누구나 무료로 쉽게 사용할 수 있습니다. 하나의 프로그램으로 멀티운영체제에 동작가능하며, 웹 서버의 동시 접속을 좀 더 쉽고 효율적으로 작성할 수 있어 유지보수면에서도 훌륭할 것으로 봅니다.

 

전체적인 구성은 그림과 예제가 많은 형태입니다. 입문서답게 처음 접하는 사람들도 쉽게 받아들일 수 있게 구성되어 있습니다. 만약 파이썬과 같은 프로그래밍 언어를 한번이라도 다뤄본 경험이 있다면 Go언어는 매우 익숙할 것이다. 필자 또한 Go언어를 얼핏들어보고 접해봤지 실제로 사용해보적은 없다. 하지만 처음 패키지를 불러들이고 라이브러리를 import하고 코드를 작성하는 과정은 파이썬과 매우 유사해 이러한 부분은 프로그래밍 언어에 익숙해지는데 많은 도움을 줄 것이라 봅니다.

 

다양한 그림과 삽화를 통해 이해를 돕고 있으며 중간중간 '중요 항목'을 정리하며, 연습문제 또한 간단하게 나와있습니다. 차례대로 읽으면서 따라한다면 큰 문제없이 따라할 수 있을 것입니다. 마지막 정도의 13장에서는 고루틴과 채널에 대해 배운다. 고루틴의 일반적인 입문서에서는 잘 다루지않는 내용이지만 Go언어에서는 마지막에 다루고 있습니다. 작업을 한 번에 처리하는 것이 아닌 작은 작업으로 쪼개어 처리하는 것입니다. 이 때 채널이라는 개념을 통해 얼마만큼 잘게 쪼갤지 결정하며, 고루틴 간 데이터를 동기화하며 특정 고루틴이 다른 고루틴보다 앞서가지 않도록 제어해야 한다. 앞서 Go언어는 멀티코어 프로그래밍에 좋은 이점이 있는데 이러한 고루틴을 사용해 멀티프로그래밍을 쉽게 할 수 있습니다.

 

Go언어를 처음접하는 독자분들께 훌륭한 도서가 되길 바랍니다.

 

 

<배워서 바로 쓰는 14가지 AWS 구축 패턴>

 

코로나가 한참인 요새 온라인 강의로 많은 관심입니다. 사람들의 바깥활동이 줄고 집에서 IT기기 등을 이용한 활동이 늘어나면서, OTT, YouTube, Netflix, 게임, 온라인강의 등 집에서 할 수 있는 활동이 부쩍 많아졌습니다. 특히 온라인 강의는 매번 많은 접속자로 인해 서버에 문제가 생기고, 이용자들이 편하게 이용하지 못하는 부분도 있죠. 덕분에 서버쪽 관리의 중요성이 주목받고 있습니다. 과거부터 대부분의 대기업들은 자체 서버를 마련했습니다. 회사내 빌딩에 서버룸을 구축하고, 24시간 365일 꼼꼼히 관리하고 유지보수하며, 이슈가 발생하지 않도록 관리합니다. 개인정보, DB, 서비스 등 회사의 자산 및 정보가 될 수 있는 중요한 것들이 들어있는 만큼 많은 투자와 인력이 필요합니다.

 

하지만 중소기업들은 이렇게 비용이 많이 드는 서버를 어떻게 구축할까요? 가장 간단한 방법은 바로 빌리는 것입니다. 일정기간 또는 자기가 사용한 만큼 금액을 주고 빌리는 것입니다. 이렇게 서버를 대여해주는 사업을 하는 기업이 대표적으로 아마존의 AWS, MS의 Azure, 네이버, 카페24등이 있습니다. 익히 너무나도 유명한 기업이며, 이러한 기술을 클라우드 컴퓨팅이라 부릅니다. 그 중에서 아마존의 AWS(Amazon Web Service)는 가장 많은 사용자가 있으며, 그만큼 다양한 서비스를 제공하며, 웬만한 기업에서는 이러한 AWS만 담당한 개발자가 있을 정도입니다. 그만큼 서비스 측면에서 중요하므로 다양한 기술에 대한 이해가 필요합니다.

 

이러한 클라우드 업계의 표준인 AWS의 기능을 이해하는데 있어 단순히 개별적인 요소만 아는 것이 아닌, 특정 요구 사항에 만족하는 시스템 개발 능력이 필요하다. 따라서 나무보다는 숲의 측면에서 서비스 개발을 바라보고, 그만큼 실제 얼만큼의 데이터가 있고 일사용자가 얼마고, 부하가 필요한지 많은 경험이 필요하다. 이 책의 저자 역시 AWS 초창기부터 AWS의 다양한 서비스를 적용해 고객의 요구 사항을 만족하는 사이트를 구축해왔다고 한다. 따라서 이 책은 AWS 관련 중급서라고 할 수 있다. 따라서 AWS의 기본적인 EC2, S3등의 개념을 이해한 후 읽어보고 익히면 더욱좋다. 

 

역시 기업의 핵심은 가격이다. 이 책에서 가장 중점을 두는 것은 가격이다. 똑같은 서비스를 제공한다고 했을때, 좀 더 효율적인 방안을 고안해야 한다. 1부 웹 시스템의 경우 웹, 애플리케이션, DB로 구성된 시스템을 AWS에서 어떻게 설계하는지 알려준다. 이후에 비교해 다소 초보적인 부분이니 AWS에 대한 이해가 부족하다면 꼭 읽어보는 것을 추천한다. 이후 3부 데이터 분석 시스템부터 본격적으로 살펴본다. 비즈니스에 직접 연관이 있는 기업의 문제를 해결하고자 시나리오에 따라 패턴을 설계해본다. 사용자, API 호출 건, 데이터 이동량등을 예상해 적절한 서비스를 찾고 좀 더 빠르게 생산성을 높여 개발 환경 설계를 해본다.

 

클라우드 장점을 살려, 클라우드 네이티브 시스템 아키텍처를 사용하는 내용은 5부에서 배워본다. 아키텍처 엔지니어의 중요성을 살펴보고, 온프레미스와 함께 시스템 설계도 같이 이야기해본다.

 

기본적으로 책의 양도 적당하며, 독자가 읽기 쉽게 구성되어 있다. 인프라 구축, 클라우드 도입, 클라우드를 현재 이용중이지만 비용에 문제가 있을 경우 반드시 필요할 도서라고 생각한다. 특히 인프라, 서버 쪽 등은 많은 이슈들을 관리하고, 각 상황에 대한 대처능력도 중요하므로 이러한 도서를 접해보는 것도 좋을 것으로 본다.

 

 

 

 

친절한 그림과 코드가 훌륭하다.

벌써 봄날씨가 가득합니다. 올해도 여김없이 서평단 기회를 가져다준 한빛미디어 관계자분들께 감사드립니다.

항상 많은 도움이 되는 리뷰가 되도록 노력하겠습니다.

 

오늘 책은 알기쉬운 비유와 기초 수학으로 시작하는 그로킹 딥러닝이라는 도서입니다. 

구글 딥마인트 리서치 사이언티스트인 앤드루 트라스크가 저술했고, 박상현 역자가 옮겼다. 인공신경망을 연구하는 저자로서 이번 도서 역시 제목에서 알수있듯이 딥러닝에 관한 도서이다. 딥러닝을 처음 접하는 입문자에게 필요한 이론 도서인 셈이다. 파이썬을 기본으로 코드가 구성되지만 코드의 양은 그렇게 많지 않다. 

 

2장은 머신러닝에 관련된 내용으로 파라미터릭 모델과 넌파라미터릭 모델 및 지도, 비지도 학습의 패러다임에 대해 소개한다. 딥러닝에 대해 본격적으로 공부하기 전 컴퓨터가 어떻게 학습하는지 알아보는 것이다. 3장부터 본격적인 순전파 신경망에 대해 알아본다. 결국 딥러닝의 최종목표는 예측이다. 미래에 어떤 일이 일어날지 과거의 데이터를 기반으로 확률적으로 알아보는 것이다. 이 때 여러 입력이 있을 수 있으며, 출력도 한 개 또는 그 이상일 수 있다. 이러한 다양한 문제를 모델로 구축하는 것이 딥러닝의 핵심이다. 

 

수포자도 이해할 수 있는 딥러닝 입문

이러한 확률을 계산하는데 있어 다양한 수학적 기법이 사용되는데 그 중 모델의 최소값, 즉 미분해서 0이 되는 지점을 찾기위해서는 경사하강법 등이 필요하다. 4장은 이러한 기법을 코드를 통해 살펴볼 수 있는데, 넘어가 5장에서 이를 좀 더 일반화시키고 있다. 

 

정규화와 함께 오버피팅의 원인등을 알아보는 8장,9장에서는 활성화 함수에 대해서도 알아보는데, 대표적인 sigmoid와 tanh의 차이와 함께 언제 무엇을 사용해야 하는지도 보여준다. 나아가 10장부터는 딥러닝의 대표적인 모델인 CNN과 RNN에 대해 살펴본다. RNN의 비중이 좀 더 많은 단어주머니 모델 및 임베딩 등의 내용을 다루며 연속적인 언어 모델링에서 딥러닝이 어떻게 사용되는지 알 수 있다. 

 

13장부터는 딥러닝 프레임워크에 대해 알아본다. 우리가 잘 알고 있는 텐서플로, 파이토치, 케라스 모두 딥러닝 프레임워크 중 하나이다. 결국 코드를 좀 더 간단하게 하여 딥러닝 구축을 손쉽고 빠르게 하며 성능도 높여주는 것이 목적이다. 복잡한 모델을 디버깅하거나 내부적인 동작을 좀 더 깊이 알고싶을 때 어떻게 사용되는지도 알 수 있다. 

 

처음에 이 책에서는 수포자도 이해할 수 있다고 했다. 결국 복잡한 수식이 나오지 않았다는 뜻인데, 실제로 수식을 거의 없애고 도식과 간단한 코드로 나타냈다. 이공계열을 전공하지 않았지만 딥러닝을 배워야하는 독자에게 필요한 책이다. 비유와 그림이 이 책의 내용을 잘 안내하고 있으며, 딥러닝, 머신러닝, 신경망 구현, 모델링 등에 대해 잘 설명하고 있으며 번역도 훌륭하게 이뤄진 도서이다. 많은 독자들에게 추천하는 바이다.

 

 

"이 리뷰는 한빛미디어의 지원을 받아 작성되었습니다"

미술관에 GAN 딥러닝 실전 프로젝트-데이비드 포스터(박해선 역)

 

 

텐서플로 2.0이 업데이트된 이후로 텐서플로와 함께 케라스의 관심이 크다. 케라스가 텐서플로와 통합되었기 때문이다. CNN, RNN이 넘어 이제는 GAN이 주목받고 있다. 오토인코더(AutoEncoders), 생성적 적대 신경망(Generative Adversarial Networks,GAN)가 이 책의 주된 키워드이다. 

 

GAN이란 두 개의 네트워크로 구성된 심층 신경망 구조이다. 한 신경망과 또 다른 신경망이 서로 겨루고 있는 구조이므로 적대적이라는 의미가 이름에 포함된다. 이 신경망은 2014년 몬트리올 대학의 Ian Goodfellow와 Yoshua Bengio를 포함한 여러 연구자들의 논문에 소개되었다. 페이스북의 인공지능 연구 책임자인 Yann LeCun의 경우 GAN을 머신러닝 분야에서 지난 10년 간 가장 흥미로운 아이디어라고 일컸다.

 

데이터의 특징을 모방하는 학습을 할 수 있어 GAN의 능력은 어마어마하다. 두 개의 신경망은 각각 제너레이터(Generator)라는 새로운 데이터 인스턴스를 생성하는 신경망과 이를 진짜인지 가짜인지 평가하는 디스크리미네이터(Discriminator)로 이뤄져있다. 디스크리미네이터의 목표는 실제 데이터의 인스턴스를 살펴봐 그것이 진짜인지 알아내는 것이다. 반면 제너레이터는 디스크리미네이터에게 전달하는 새로운 데이터를 계속해서 생성하는데, 제너레이터 입장에서 생성한 가짜 데이터가 진짜인것처럼 보여는 것이 목표이다. 이러한 과정해서 서로의 능력은 계속적으로 향상되고 일종의 제로섬 게임으로 서로 반대되는 목적함수 및 손실함수로 최적화를 시도한다. 

 

이번 책에서는 이러한 GAN과 오토인코더, 인코더-디코더 모델, 월드 모델을 배워보며, 기계 스스로 그림을 그리고, 글을 쓰고, 음악을 작곡하고, 게임을 하는 딥러닝 생성 모델을 재현해본다.

 

주요내용으로는 다음과 같다.

  • 변이형 오토인코더가 사진 속 얼굴 표정을 어떻게 바꾸는지 알아보기
  • 스타일을 변경하는 CycleGAN과 음악을 생성하는 MuseGAN을 사용한 GAN 예제
  • 텍스트를 생성하는 순환 생성 모델을 만들고 어텐션을 사용하여 모델 성능 향상시키기
  • 생성 모델이 어떻게 강화학습 환경에서 작업을 완수하려는 에이전트를 돕는지 이해하기
  • 트랜스포머(BERT, GPT-2), ProGAN, StyleGAN 같은 이미지 생성 모델의 구조 살펴보기

전체적인 도서 구성자체가 딥러닝에 대해 어느정도 알고있는 중급자를 위한 도서이다. 따라서 이러한 부분에 있어 책의 진입장벽은 다소 높을 수도 있으나 1장과 2장에 걸쳐 생성 모델과 딥러닝에 대해 배우기 때문에 큰 부담은 없을것이라 본다. 또한 RNN, LSTM을 프로젝터 형태로 배우기 때문에 더욱더 흥미롭게 배울 수 있다.

 

코드 구성과 설명도 쉽고 친절하다. 그림 그리기 AI 프로젝트의 경우 다운샘플링, 업샘플링등으로 Unet, ResNet등을 구성해 CycleGAN으로 그림을 그리는 과정까지 친절하게 나타내어 있다. 코드에 기초한 설명과 직관적인 구성이 마음에 든다.

 

원서에서도 이미 많은 호평을 받은 도서인 만큼 번역서 또한 훌륭하게 번역이 되어 출간이 된 것 같다. 최근들어 딥러닝의 기초를 넘어 중급자 수준까지 국내 도서로 요구하고 있어 그만큼 기대에 부응하는 도서라고 본다.

 

많은 독자들이 이 책을 통해 GAN, 오토인코더등에 익숙해지길 바란다.

파이썬을 활용한 머신러닝 쿡북

 

파이썬을 활용한 머신러닝 쿡북

파이썬을 활용한 머신러닝 쿡북

크리스 알본 저/박해선

200개 비법 레시피로 실무 머신러닝 문제를 쉽고 빠르게 해결하기 200여 개의 비법 레시피를 제공하는 이 책은 실무에서 접하는 다양한 머신러닝 문제를 해결하도록 도와준다. 판다스나 사이킷런 같은 파이썬 라이브러리로 데이터 적재, 텍스트나 수치형 데이터 다루기, 모델 선택, 차원 축소 등 다양한 문제를 해결할 수...

 

 

 

그동안 많은 파이썬 머신러닝 관련 도서를 봤다. 하지만 역시 박해선 역자님의 '파이썬을 활용한 머신러닝 쿡북'은 그 중에서도 가장 좋은 도서이다. 파이썬 데이터 분석부터 머신러닝, 신경망까지 다룰 수 있는 도서로서 다양한 실전 문제 해결 200선이 담겨있다. 

 

Numpy를 활용한 벡터, 행렬등의 연산부터 시작한다. 행렬식 계산에는 numy만큼 좋은 라이브러리가 없다. 다음으로 데이터 적재는 sklearn의 datasets 라이브러리를 이용한다. 이를 이용해 샘플 데이터를 적재하고 모의 데이터셋을 만들어본다. 그 후 이를 CSV, 엑셀, JSON과 같은 형태로 적재해본다. 

 

3장의 데이터 랭글링은 다소 생소할 수 있다. 한마디로 데이터프레임을 다룬다. Pandas 라이브러리를 이용하게 된다. 데이터프레임은 우리가 흔히 볼 수 있는 열과 행으로 이뤄진 데이터로 일반사람들이 가장 익숙한 데이터 자료형이라고 할 수 있다. 값을 치환하고, 열 이름을 바꾸고, 최솟값 ,최댓값등을 찾아본다. 누락된 값을 다루고 그룹핑하는 등 일반적인 데이터 분석을 전반적으로 배워본다. 전반적으로 코드가 간단하고 가독성이 좋아 파이썬에 대한 어느정도 기본기가 있다면 쉽게 이해할 수 있다.

 

6장에서는 텍스트를 다뤄본다. BeautifulSoup와 Regular Expression등의 라이브러리를 이용해, 텍스트 및 HTML을 다뤄본다. 나아가 nltk 라이브러리를 활용해 다양한 품사를 태깅하고 어간을 추출하고 단어 중요도에 가중치를 부여하는 등 간단한 텍스트 처리를 해본다. 7장에서는 시계열 데이터이다. 날짜와 시간을 이용해서 시계열 데이터를 다뤄본다. 8장은 이미지 다루기이다. OpenCV 영상인식 라이브러리를 사용해 이미지를 로드하고 크기를 변경하는 등 이미지를 다뤄본다. 

 

어떻게 보면 9장부터가 진정한 머신러닝이라고 할 수 있다. sklearn 라이브러리를 이용해 주성분 분석을 해본다. 특성을 줄이고, 차원을 줄이는 등 나아가 선형회귀까지 다뤄본다. 14장의 결정 트리와 랜덤 포레스트는 대표적인 머신러닝 기법 중 하나이다. 결정 트리는 전체 모델을 그래프로 나타낼 수 있어 직관적으로 시각화가 가능하다. 17장의 서포터 벡터 머신도 대표적인 기법이다. 마찬가지로 sklearn 라이브러리를 이용해서 샘플의 경계를 나타내는 초평면을 matplotlib를 이용해 그려본다. 

 

19장에서는 k- 평균을 사용한 군집 분석을 해보며, 20장에서는 신경망에 대해 다루는데, 신경망을 구성해 이진, 다중 분류기 훈련등을 해본다. 그 후 예측과 시각화 오버피팅을 줄여보는 작업을 한다. 

 

이 책은 아마존 베스트셀러인 Machine Learning with Python Cookbook를 번역한 도서로 머신러닝 작업에 필요한 핵심 조리법을 알차게 담고 있다. 특히나 책이 모두 컬러판으로 출판사의 신경이 많이 쓰였다. 역자의 '덧붙임'을 통해 레시피에서 다루지 못한 내용을 추가적으로 설명해주고 있다. 박해선 역자님의 블로그에는 책에 관련된 이야기 및 코드도 있으니 참고하면 좋다.

 

전반적인 책의 구성이 간단하고 알차게 이뤄져있다. 머신러닝의 개괄적인 내용부터 데이터 분석 기본까지 다루고 싶다면 이 책을 꼭 추천한다.

 

 

 

+ Recent posts