처음 처음 | 이전 이전 | 1 | 2 | 3 | 4 |다음 다음 | 마지막 마지막
동시성 프로그래밍 - Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A to Z
다카노 유키 지음, 김모세 옮김 / 한빛미디어 / 2022년 4월
평점 :
장바구니담기



서론

개발을 하다보면 언젠가는 작성한 프로그램의 성능적 한계를 만나게 됩니다. 이는 알고리즘적 비효율성으로 인해 야기 되었을 수도, 언어적 한계로 인해 발생했을 수도 있습니다. 알고리즘적 한계를 개선하고 난 후에도 더 높은 성능이 요구된다면, 요구사항을 만족시키기 위해 우리는 동시성 프로그래밍을 고려할 수 있습니다. 혹자는 ‘그냥 multiprocessing 라이브러리 사용하면 되는거 아니야?’라고 생각할 수도 있지만, 이해 없이 사용하게 되면 원치 않는 동작이 야기됨으로써 시스템의 안정성을 보장할 수 없게 됩니다. 이러한 관점에서 바라볼 때, 이 책은 동시성 프로그래밍을 처음 입문하기에 적절한 책이라고 생각됩니다.

이 책의 내용

책의 첫 단원에서는 프로세스, 그리고 동시성과 병렬성에 대해서 설명합니다. 사실 병렬성과 동시성이 같은 개념이라고 생각하는 경우도 많을 것 같은데, 이 책에서는 그림과 함께 두 용어의 차이점에 대해 설명하고, 카테고리를 나누어 세부적으로 설명합니다. 이후 동시 및 병렬 처리의 필요성에 대해서 설명한 후, 어샘블리어와 근래에 부상하고 있는 RUST언어를 간단하게 설명합니다.

이후 뮤텍스, 세마포어 등의 개념과 동시성 처리 알고리즘을 C의 Pthread 라이브러리를 이용하여 구현된 코드와 함께 제공하는데, 코드의 가독성이 높아 주석이 따로 필요 없을 뿐 아니라, 개념 설명 이후 등장하는 그래프 형태의 그림들이 이해를 돕는데 큰 역할을 해 주었습니다. 또한 비동기 프로그래밍으로 인해 발생할 수 있는 버그들과 해결할 수 있는 방법들을 제시하면서 처음 구현할 때 닥칠 문제상황들을 대비할 수 있었습니다.

전반적으로 보면 개념을 소개하기 전에 예시를 통해 독자의 이해를 도와주는데, 읽다보면 정말 적절한 예시를 들었다라는 생각이 들었습니다.

추천합니다

  • 동시성 프로그래밍을 통해 프로그램의 성능을 높이고자 하는 개발자
  • 동시성 프로그래밍을 수학적으로 이해하고 싶은 분
  • OS단에서 동시성을 다루고자 하는 분

추천하지 않습니다

  • 코딩 입문자 및 CS 비전공자
  • 수학적 표현에 어려움을 느끼시는 분


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


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
그로킹 심층 강화학습 - 이론과 실제 사이의 틈을 메우다
미겔 모랄레스 지음, 강찬석 옮김 / 한빛미디어 / 2021년 10월
평점 :
장바구니담기


이 책의 내용

강화학습의 역사와 배경적 설명은 물론 실제 구현하는 내용까지 총망라한 구성으로 이루어져 있습니다. 이전에 강화학습을 공부하기 위해 몇몇 책들과 자료들을 살펴보았는데, 번역서이지만 한글 자료보다 더 와닿고 이해가 쉬웠습니다. 저자가 서론에서 알고리즘을 위주로 공부하는 것이 가장 효과적이라고 말했는데, 그 말에 걸맞게 3장부터 12장까지 알고리즘으로 가득찬 구성을 가지고 있습니다. 깔끔한 내용과 다양한 구성, 그리고 독자에게 생각해볼 거리는 던져주는 저자의 말들이 어우러져 좋은 책이라는 인상을 받았습니다. 거기에 체감상 1페이지당 1개의 그림이 있어 글로 와닿지 않는 개념들을 머리속에서 그려보는데 많은 도움이 되었습니다.

그중에서도 가장 인상깊었던 것은 트렌디하고 가독성 좋은 코드였습니다. 파이썬에 입문하신지 얼마 되지 않으신 분들에게는 어렵게 다가올 수 있지만, 간결하고 충분히 효율적인 코드, 이해하기 쉬운 네이밍을 통해 강화학습 알고리즘을 코드로 구현할 때 참고할만한 모범답안이라고 생각됩니다.

대상 독자

저자가 앞서 밝혔듯 딥러닝과 머신러닝, 그리고 파이썬에 대해서 익숙하셔야 이 책을 온전히 이해하고 따라갈 수 있을 것 같습니다. 내용 자체가 쉬운편이 아니고, 수많은 이론들과 알고리즘이 곳곳에서 나타나고 활용되기 때문에 코드나 알고리즘에 익숙하지 않다면 장황하다고 느낄 수도 있겠습니다. 하지만 강화학습이 무엇인지 대략적으로 알고 있는 상태에서 더 자세히 공부하고 싶으신 분들에게는 더할나위 없이 좋은 책일 것 같습니다.

추천합니다

  • 강화학습에 간단하게라도 입문하셨던 분
  • 파이썬과 알고리즘에 익숙하신 분
  • 수식에 두려움이 없으신 분
  • 강화학습을 바로 구현해서 활용해 보고 싶으신 분

추천하지 않습니다

  • 머신러닝과 딥러닝을 이 책으로 처음 접하시는 분


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



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
제대로 배우는 수학적 최적화 - 최적화 모델링부터 알고리즘까지
우메타니 슌지 지음, 김모세 옮김 / 한빛미디어 / 2021년 9월
평점 :
장바구니담기


 

서론

우리는 많은 상황에서 최적화라는 말을 사용합니다. 네비게이션의 최단경로찾기나 프로젝트의 마감을 준수하면서 비용을 최소화, 혹은 인력을 최대로 활용하기위한 일정 계획, 혹은 여러 공장들을 가진 기업에서 물류창고를 짓기 위한 입지 선정 등 많은 최적화 문제들이 존재하고 이를 해결하고자 하는 수요는 항상 존재해왔습니다. 이런 문제들을 해결하기 위해 주어진 제약조건들 하에서 이익이나 비용등을 나타내는 목적함수를 최대/최소화 하는 해를 구하는 것을 수리 계획법, 혹은 수학적 최적화라고 합니다.

위에서 예시로 든 다양한 최적화 문제는 수리 최적화 모델로 나타낼 수 있고, 수학적인 속성이나 문제를 해결하기 위한 알고리즘 설계를 통해 최적, 혹은 최적에 가까운 해를 찾아낼 수 있습니다. 특히, 많은 분들이 딥러닝을 접하며 한번쯤 들으셨을 경사하강법(gradient descent) 또한 손실 함수를 최소화 하기 위한 파라미터(해)를 찾기 위해 기울기라는 수학적 속성을 이용하여 해를 찾아 나가는 최적화 문제를 풀기위한 알고리즘입니다.

이 책의 내용

수리적 최적화를 공부하는 입장에서 이 책은 대학원, 혹은 산업공학과 4학년 전공교재로 사용해도 좋을 것 같다는 생각이 들 정도로 알차게 구성되어 있습니다. 책의 두께가 생각보다 얇아서 많은 내용을 얕게 다루지 않을까 걱정했는데, 그 생각이 기우일 정도로 한장한장 가득 채워 내용이 담겨있습니다.

이 책에서는 산업공학, 컴퓨터공학을 전공하며 한번씩 들어보았을 선형계획법 문제부터 비선형 계획법, 정수 계획법, 조합 최적화 등의 주제를 다루고, 그 안에서 각 문제의 수학적 특성과 문제를 해결할 수 있는 알고리즘에 대해서 소개하고 있습니다. 그 뿐만 아니라 후반부에서는 메타휴리스틱 기법까지도 다루며 독자들에게 최적화 문제를 풀 수 있는 직관적이고 검증된 방법론에 대해서 설명합니다.

이 책을 읽으며 여러 점이 인상깊었는데, 첫 번째로 선형 계획법 문제를 해결할 때 많이 사용되는 심플렉스 알고리즘(단체법)을 표가 아닌 수리적 특성을 기반으로 설명해 준다는 것입니다. 많은 경영 과학 수업에서 이 알고리즘을 간략하게 배우거나 표를 이용하여 푸는 방법을 배우게 되는데, 표 기반의 심플렉스 알고리즘은 좋은 프레임워크이기는 하나 그 이론적 배경을 모두 이해하지 않고 단순히 행렬의 기본행 연산만 수행하는 꼴이 되는 경우가 많습니다. 심플렉스 알고리즘의 수학적 배경까지 모두 설명하면서 알고리즘을 만들어가는 부분이 있다는 점에서 대학 교재로 사용되는 책들보다 훨씬 더 훌륭하다고 느껴졌습니다.

두 번째로 인상깊었던 점은 비선형 계획법에 있었습니다. 비선형 계획법에서 반드시 알아야 할 볼록 집합, 볼록 함수, 그리고 subgradient와 semidefinite이라는 개념을 소개하고 이를 하나로 연결시키는 부분에서 간결하면서 필요한 정리와 증명을 통해 풀어나가는 스토리텔링이 아주 좋다고 느껴졌습니다. 적당한 난이도와 적절한 수준의 내용으로 필요한 개념을 이해시키는 것이 매우 어려운 일인데도 매끄럽게 잘 풀어나가는 점이 인상깊었습니다.

아쉬운점

열심히 latex 작업하셨을 역자님과 편집자님께는 죄송하지만, 수식에 오탈자가 타 책에 비해 많아 보였습니다. 타 책에 비해 압도적으로 많은 수식이 있기도 하고 전공자이기 때문에 꼼꼼히 보기도 해서 그럴 수 있지만, 수식으로 풀어나가는 이야기가 많은 책이기에 조금 아쉬움이 남았습니다.

그리고 설루션이라는 번역이 조금 어색하다고 느껴졌습니다. 흔하게 쓰이는 '솔루션', 혹은 '해'로 표기해도 되지 않았을까 하는 생각이 들었습니다.

대상 독자

최적화를 조금 더 깊게 공부하고 싶은 산업공학과 전공자들에게 먼저 추천하고 싶습니다. 수학적인 내용이 많기 때문에 비 공학 출신 분들에게 권하기는 조금 어려울 것 같고 미적분학, 선형대수 강의를 수강하고 선형계획법에 대해서 공부한 적 있는 분들이 본다면, 수업에서 배웠던 내용보다 조금 더 넓은 세계를 볼 수 있는 지도가 되지 않을까 생각됩니다.

딥러닝에 관심이 많아 이 책을 보려고 하시는 분들은 비선형 계획법과 책 중간중간에 등장하는 최적화에 관련된 이론들(KKT 조건 등)이 도움이 되실 것 같습니다. 최적화 관점에서 보자면, 딥러닝의 파라미터를 찾는 방법도 최적화 문제이기 때문에 기존과는 조금 다른 관점에서 딥러닝을 살펴보실 수 있는 기회가 될 것 같습니다.

또한 정수 계획법과 조합 최적화 부분은 잘 알려진 외판원 문제(TSP)나 최단 경로 문제도 다루고 있을 뿐 아니라 동적 계획법이나 크루스컬 알고리즘 등 관련된 알고리즘도 다루고 있기 때문에 컴퓨터 공학이나 알고리즘을 공부하시는 분들에게도 참고하기 좋은 내용들이 많이 있습니다.

추천합니다

  • 산업공학에서 최적화에 대해 더 공부하고 싶으신 분
  • 딥러닝을 최적화 관점에서 바라보고 싶으신 분
  • 알고리즘 등에 대해 공부하고 싶으신 분

추천하지 않습니다

  • 미적분학, 선형대수학에 대한 이해가 부족한 분
  • 수리적인 내용이 싫으신 분


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



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
만들면서 배우는 파이토치 딥러닝 - 12가지 모델로 알아보는 딥러닝 응용법
오가와 유타로 지음, 박광수 옮김 / 한빛미디어 / 2021년 8월
평점 :
장바구니담기


서론

정말 많은 딥러닝 기초 책들이 출간되고 있습니다. 딥러닝의 열풍에 따라 문이과 할 것 없이 시작하기에 초급자를 위한 책이 필요한 것은 맞지만, 나오는 책들의 수준이 사람들의 전반적인 수준이 올라가는 것을 따라가지 못하는 것 같은 느낌을 받았습니다. 입문 이후의 책들이 많이 나오지 않는다면 모든 사람들을 초보자에 머물게 되는 상황이 만들어질 것입니다. 당연히 비숍 교수님의 Pattern Recognition and Machine Learning이나 다른 유명한 바이블들이 존재하지만, 석박사급 연구가 아니라 가볍게 입문하고자 하는, 혹은 실무에서 사용하기 위한 분들은 그정도의 책을 원하지는 않을 것입니다. 심지어 그 책들은 코드조차 없기 때문에 코딩에 약하다면 이해는 하더라고 구현을 못하는 경우가 반드시 발생할 것입니다. 이런 상황속에서 기초적인 책들은 다 읽어보았고 조금 더 높은 난이도를 가지는, 중급자를 위한 책에 갈증을 느끼셨던 분이라면 이 책을 한번 읽어보셔도 좋을 것 같습니다.

이 책의 내용

1장은 기본적인 딥러닝 지식은 가지고 있지만 파이토치가 익숙하지 않은 사람들을 위해서 파이토치를 이용한 모델링 기법과 전이학습 모델을 가져오고 파인튜닝을 하는 코드를 작성하는 방법에 대해서 설명하고 있습니다. 이 챕터는 이론적인 부분보다는 파이토치를 이용한 딥러닝 방법에 대해서 다루고 있으므로, 파이토치를 어느정도 사용할 줄 아는 분들이라면 넘어가도 괜찮아 보입니다.

2장부터는 본격적으로 여러 딥러닝 모델들에 대한 이론과 구현 부분을 다룹니다.딥러닝 모델을 구축하는 프로세스에 대해서 반복적으로 설명함으로써 독자들에게 각인시키는 점이 좋았으며, 코드에 대한 설명이 자세한 것도 구현하고자 하는 분들에게는 유익할 것으로 생각됩니다.생각보다 난이도가 높고 이론적인 부분들이 많이 나오기 때문에, 수학적인 사고 없이 볼 수 있는 책이 아닐 것 같다는 생각이 듭니다. 그리고 몇몇 실습 코드가 매우 어렵다고 솔직하게 말해주는 부분도 재미있었습니다. (구현방법은 매우 '간단합니다'라고 말할 것으로 기대했는데 '복잡합니다'라고 써있어서 정말 솔직한 책이구나 라고 생각했습니다.)

아쉬운점

번역할 때 '화상'이라는 표현이 대중들이 이해하기에 적절한 단어선택인지는 조금 논란이 있을 것 같습니다. 아마 '画像'을 번역한 것으로 보이는데, 이미지가 조금 더 친숙하지 않았을까 하는 생각이 들었습니다. 또한 지도 데이터라는 표현, 아마 supervised data라는 의미가 아닐까 싶은데 매우 낯선 표현이었습니다. 그 외에도 다클래스 예측, 전결합층(Fully-Connected Layer) 등 일본식 표현들을 그대로 사용한 부분이 보여 아쉬웠습니다.

대상 독자

추천합니다

실무에 적용할 수 있는 딥러닝의 구현이 필요한 분

Tensorflow, Keras에서 Pytorch로 넘어오고자 하는 분

추천하지 않습니다

딥러닝의 기초 지식을 배우고자 하시는 분

 

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


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
데이터 스토리 - 데이터를 설득력 있는 이야기로 바꾸는 방법
낸시 두아르테 지음, 권혜정 옮김, 윤영진 감수 / 한빛미디어 / 2021년 7월
평점 :
장바구니담기


서론

"우리가 보는 데이터는 정제되지 않은 날 것이다."

데이터, 데이터, 데이터, 하루에도 수십번씩 듣는 이야기에 우리는 피로감을 느끼곤 합니다. 그만큼 수많은 종류와 엄청난 크기의 데이터가 이 세상에 존재하고, 지금도 쌓여가고 있기 때문에 데이터에 근거한 많은 이야기들을 듣게 됩니다. 그렇지만, 데이터를 사용한 모든 문서들이 합리적이거나 논리적이지는 않습니다. 데이터라는 최소한의 근거자료를 통해 신빙성이 부여될 뿐, 작성한 사람의 역량에 따라 그 데이터가 제대로 활용되지 못하는 경우가 다반수이기 때문입니다. 특히 데이터 시대에 들어오며 아직 기존의 프레젠테이션 혹은 보고 방식에서 벗어나지 못한 사람들은 물밀듯이 들어오는 데이터의 홍수 속에서 어떻게 효율적으로 표현해야 할지 갈피를 잡기 어려울 것입니다. 따라서 데이터 속의 인사이트를 발견하고, 이를 주변 사람들과 상사에게 효과적으로 표현하는 것이 중요해지고 있습니다.

이 책에서는 데이터 기반의 스토리텔링 기법을 통해 동료와 직장상사, 나아가 경영자와 의사소통을 할 때 본인의 주장을 효과적으로 표현할 수 있는 방법을 나타냅니다. 이 책에서 설득을 목표로 하는 주된 청자는 C-Level의 경영자지만, 자신의 동료와 상사에게도 적용이 가능하고 가까운 사람들에게는 유능하다는 인상을 심어줄 수 있을 것입니다.

이 책의 내용

이 책은 크게 3가지 내용으로 구성되어 있습니다. 먼저 스토리텔링의 효과와 필요성에 대해서 피력하고, 어떻게 데이터로 소통해야 하는지에 대한 개괄적인 내용을 다룹니다. 그 다음엔 글쓰기와 문학에서 많이 사용되는 3막 구조와 제안 나무 구조를 통해 어떻게 발표자료와 제안서를 구성하고 흐름을 만들어 가야 하는지에 대해 이야기합니다. 마지막으로 데이터를 효과적으로 표현하기 위해 차트의 제목과 설명을 어떻게 작성해야 하는지, 원하는 내용을 강조하기 위해 어떠한 효과를 써야 하는지를 다룹니다.

책을 읽으며 다음 두 가지 인상깊은 내용이 있었습니다.

  1. 경영자가 얼마나 바쁜지 왜 의사결정을 하기 어려운지에 대한 내용이 있습니다. 우리는 추상적으로 "경영자는 바쁘니까 간략하게 핵심만 보고해야 한다" 라는 생각을 가지고 있습니다. 하지만 왜 그런지, 어떤 보고는 왜 마음에 들어하지 않는지에 대해서는 깊게 생각해 보지 않았습니다. 이 책에서 실제로 CEO들이 어떤 방식으로 정보를 바탕으로 의사결정을 하며, 바쁜 시간을 분단위로 사용하기 위해 어떻게 살아가는지 등의 내용을 통해 의사결정자를 이해하고 그들을 위한 자료를 작성하는데 생각할 여지를 남깁니다.
  2. 다양한 데이터 분석 결과에 따라 사용할 수 있는 어휘를 정리했습니다. 개인적으로 저는 점점 사용하는 어휘가 줄어들고 있고, 블로그 글을 쓸 때 마다 느끼지만 어휘의 한계를 느끼곤 합니다. 그 결과 보고서에도 비슷한 표현이 반복되어 사용되는 경우가 많았는데, 이 책에서는 제안하거나 현상유지 및 완료 상황에서 어떠한 어휘를 사용해야 하는지, 데이터가 증가하거나 보합 상태일 때 어떤 표현을 사용해야 하는지 등의 다양한 표현을 다룹니다. 원서를 번역하면서 이 부분이 어색하지 않을까 하며 살펴보았는데, 역자와 감수자 분께서 열심히 다듬어 주신 덕분인지 어색한 단어는 단 한 개도 없었습니다. 모두 실무에서 활용 가능한 표현이라고 생각이 들 정도로 좋은 단어들이 많아 나중에 제안서를 작성할 때 책을 참고서로 사용해도 좋을 것 같습니다.

이 뿐만 아니라 뒤의 사례연구도 테드와 같은 발표자료를 데이터 스토리텔링 관점에서 분석함으로써 여러 영감을 가져다 주었습니다.

개인적으로는 글을 쓸 때 3막 구조가 좋다라는 생각은 무의식 적으로 가지고 있었지만, 이 책에서 다시한번 명료하게 짚어줌으로써, 조금 더 체계적이고 목표에 맞는 글을 쓸 수 있을 것 같았습니다. 그리고 놓치고 있었던, 데이터분석을 통해 다른 사람에게 자신의 관점을 설명하고, 적절한 양의 정보를 전달받는 사람에게 적합한 방식으로 제공하여 의사결정권자에게 자신이 의도한 행동을 유발해야 한다는 것을 깨닫게 되어 조금 더 좋은 데이터 분석가가 될 수 있는 밑바탕이 되었습니다.

아쉬운점

기술 서적이나 논문을 주로 보는 저에게, 책의 디자인은 낯설음을 가져다 주었습니다. 기업의 마케팅 부서나 스타트업 데모데이에서 볼 것 같은 풀컬러의 현란한 책의 구성은 마케터 분들에게 조금 더 익숙할 것 같았습니다. 그리고 예시로 제시된 프레젠테이션이 미국 느낌(?)이 강해서 바로 적용하기에는 조금 어렵고 자신만의 디자인 언어를 적용해서 활용하면 좋을 것 같다는 생각이 들었습니다.

대상 독자

데이터를 조금이라도 다룬다면, 산업 분야나 직군에 관계 없이 한번씩 읽어보면 좋을 것 같은 책입니다. 엔지니어 분들에게는 보고서 작성 능력과 소통 능력을 기를 수 있고, 마케터나 경영 직무에 계신 분들은 데이터를 어떻게 효과적으로 표현할 수 있을 지 생각해 볼 수 있는 책이 될 것입니다.

추천합니다

  • 프레젠테이션에 약점을 가지고 계시는 분
  • 데이터 기반으로 프로젝트 기획서나 보고서를 작성하시는 분
  • 다양한 데이터 표현 방법과 짜임새 있는 발표를 준비하시는 분
  • 데이터 기반의 스타트업을 운영하며 아이디어를 피칭해야 하는 대표님 혹은 마케터
  • 분석 결과를 주변에 공유해야 하는 데이터 사이언티스트, 애널리스트

추천하지 않습니다

  • 데이터 분석 기법을 다루지 않을까 생각하신 분

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




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
처음 처음 | 이전 이전 | 1 | 2 | 3 | 4 |다음 다음 | 마지막 마지막