머신러닝을 위한 파이썬 한 조각 - 파이썬으로 이해하는 인공지능의 시작
박성호 지음 / 비제이퍼블릭 / 2020년 2월
평점 :
장바구니담기


이 책은 파이썬으로 머신러닝을 배우기 위해 기초부터 설명하고 있다. 1장은 머신러닝의 개요, 2장은 파이썬의 기초적인 것들로 List, Tuple, Dictionary, List Comprehension, Function, Lambda, Class 등을 다룬다. 그리고 3장은 넘파이(Numpy)에 대해서 배우며 머신러닝을 위한 기본을 준비한다. 책의 내용은 입문자를 위한 내용이라 보통의 난이도이다. 2020년 2월에 출간된 기술 서적이지만 편집된 그림들이 옛스러워 오래된 책처럼 여겨진다.


머신러닝에서 가중치와 편향을 계산하기 위해 미분은 반드시 필요한 수학이다. 머신러닝에서는 미분으로 가중치와 편향을 계산하면서 최종 값을 찾아나간다. 편미분은 미분하고자 하는 변수 1개를 제외한 나머지 변수들을 상수로 취급하여 미분하는 것을 말한다. 그리고 체인룰은 여러 개의 함수로 구성된 함수를 미분하기 위해 사용하는 방식이다.

머신러닝은 학습하는 방법에 따라 지도 학습과 비지도 학습으로 나눈다. 지도 학습은 결과를 예측하는 방법에 따라 회귀(Regression)와 분류(Classification)로 나눈다. 비지도 학습은 입력값 자체의 특성과 분포를 파악해서 그룹화 하는 군집화(Clustering)에 주로 사용한다. 회귀(Regression)는 연속적인 값을 예측하고 분류(Classification)는 이산적인 값을 가진다.


딥러닝 아키텍처는 입력층(Input Layer), 은닉층(Hidden Layer), 출력층(Output Layer)으로 구성돼 서로 연결되어 있는 구조이다. 딥러닝의 기본적인 예제라고 할 수 있는 MNIST 손글씨 숫자 인식을 다룬다. 입력층과 출력층의 노드 개수는 데이터에 의해 정해진다. 하지만 은닉층은 개발자가 임의로 설정할 수 있는 하이퍼 파라미터이다.


텐서플로(TensorFlow)는 구글에서 개발하여 공개한 딥러닝 프레임워크이다. 텐서플로는 스칼라, 벡터, 행렬과 같은 데이터를 텐서로 인식한다. 텐서를 흘려보내면서 딥러닝 알고리즘을 실행한다. 마지막 두 챕터에 합성곱 신경망(CNN, Convolutional Neural Network)와 순환 신경망(RNN, Recurrent Nerual Networ)를 다룬다.


댓글(0) 먼댓글(0) 좋아요(12)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬 클린 코드 - 유지보수가 쉬운 파이썬 코드를 만드는 비결
마리아노 아나야 지음, 김창수 옮김 / 터닝포인트 / 2019년 2월
평점 :
구판절판


클린 코드는 단순하게 체커(checker)를 사용해 문법을 체크하거나, 린터(Linter)를 사용해 취약한 부분을 찾아내거나, 정적 분석기를 실행하는 것이 아니다. 클린 코드는 코드의 가독성을 높여 작업자 간의 이해도를 높임에 따라 코드 품질을 높이고 유지보수의 향상성을 가져온다.

PEP는 Python Enhancement Proposal을 말한다. 거기서 PEP-8은 핵심 파이썬 개발자가 만들었는데 PEP-8에 따라 코딩을 작성하여 코드의 이해도를 높이고 일관성을 유지해 코드의 품질을 높일 수 있다. PEP-8을 모두 준수한다고 해도 클린 코드의 요건을 충족하는 것은 아니다. 기본적인 코드 지침이라고 볼 수 있다. 코딩 가이드라인은 품질과 표준을 지키기 위해 따라야 하는 최소한의 요구사항이다. 가이드에 따라 코드가 일관되게 구조화되어 있으면 가독성이 높아지고 이해하기 쉬워진다.

Docstring은 주석을 다는 것이 아니라 설명을 기술하는 것이다. 코드의 특징이나 모듈, 클래스, 함수에 대한 것을 설명한다. 이전에는 소스코드에 주석을 달았는데 최근에는 코드에 주석을 다는 것은 나쁜 습관으로 본다. 생각을 코드로 제대로 표한하지 못하였기에 주석을 달아서 보충하는 것이다. 소스 코드만으로 쉽게 읽혀지고 동작하는 로직을 바로 볼 수 있도록 코딩해야 한다.

코드 리뷰에 시간을 투자하고 보다 좋은 코드가 무엇인지, 어떻게 하면 읽기 쉽고 관리하기 쉬운 코드인지 고민해야 한다. Mypy, Pylint 등과 같은 코드에 대한 검사는 자동화하는 것이 중요하다.


댓글(0) 먼댓글(0) 좋아요(12)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
애프터스킬 파이썬 프로젝트 Active 개발 가이드 - 환경부터 프레임워크까지 100% 실무 기법서 애프터스킬 시리즈
최원우 지음 / icox(아이콕스) / 2019년 8월
평점 :
장바구니담기


180쪽 분량에 많은 페이지에 큼지막한 화면캡쳐 이미지가 있어서 두 시간 정도면 완독이 가능하다. 기본적인 개념과 예제 수준의 코드 위주라 입문자가 아니고선 일부터 타이핑할 필요도 없어 보인다. 저자 나름 정리와 비교 분석을 잘하였는데 두께와 내용의 깊이가 아쉽다.




파이썬 설치와 환경설정이 캡처 이미지 기반으로 9페이지 채우고 나서 다음에는 Git & GitHub 설치가 이어진다. 또다시 캡처이미지와 간단한 설명으로 10페이지가 넘어간다.




총 180페이지에서 이미 20% 이상이 지나갔는데 PyCharm 설치가 이어진다. 그렇게 52페이지까지는 설치가 마무리된다.



마지막에 부록에서 MariaDB 설치와 Database에 대해서 18페이지를 채운다. 이 책에 대한 생각은 내용의 절반 정도가 설치를 다루고 있는 거 같아서 개발가이드라기 보다는 "파이썬 개발환경 설정 및 예제 실행 가이드" 매뉴얼 같다.




파이썬 첫 입문자에게는 도움 되는 내용인지는 모르겠지만 여기까지의 내용은 인터넷에 많이 있고 한번 경험해본 사람에게는 그냥 넘어가는 페이지들이다. 이런 이야기를 적어서 저자에게는 미안하지만 한번 읽고 나면 다시 보게 되는 일이 없어 보인다.



파이썬은 읽기 쉽고, 이해하기 쉽고, 배우기 쉬운 특징을 갖는다


댓글(0) 먼댓글(0) 좋아요(10)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
Flask 기반의 파이썬 웹 프로그래밍 - 생산성을 보장하면서도 가벼운 웹 프레임워크, 플라스크!
이지호 지음 / 제이펍 / 2016년 5월
평점 :
절판


Flask 입문자를 위해 소스코드를 라인 단위로 상세히 설명해 준다. 국내서적인데 요소기술에 관해 단계별로 상세히 다루고 있다. 챕터마다 예제코드가 넘처난다. 그당시 Flask 관련된 내용을 모두 한 권에 담으려고 했나 보다. 반면 상세한 설명이 많다 보니 기술에 관한 중요도가 잘 들어나지 않고 모두 골고루 배분되어 있는 모양이다.


이 책을 통해 파이썬으로 언제나 손쉽게 웹 서버를 실행할 수 있다는 것을 알았는데 실무에서 상당히 유용하게 사용하고 있다.

> python -m http.server


Jinja 템플릿과 Validator와 관련해서는 상당히 상세하게 다루고 있다. 너무 디테일한 내용들이라 나중에 필요할 때 참고하기로 하고 가볍게 읽고 넘어갔다. 중후반 내용들도 나름 유용했지만 정독하지는 않았고 나중에 필요시 보는게 좋겠다. 


댓글(0) 먼댓글(0) 좋아요(9)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
DIY! 워드프레스 쇼핑몰 - 프리미엄 테마로 만드는 쇼핑몰/웹사이트 위키북스 오픈소스 & 웹 시리즈 57
김덕기 지음 / 위키북스 / 2014년 4월
평점 :
장바구니담기


기초부터 단계별로 학습하기에는 좋다.

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