* 3줄 요약
1. 어려운 수식 없이 직관적으로 머신러닝 기법들을 이해할 수 있다.
2. 입문자의 관점에서 쉽게 설명한다.
3. 어떻게 활용하는게 좋을지는 알려주지 않는다.
* 추천 대상
- 머신러닝 기법들을 쉽게 알고 싶은 [입문자]
요새 머신러닝, 딥러닝이 핫합니다. 뭐만 한다 싶으면 머신러닝이고 딥러닝이고, 인공지능이라네요? 예전에 호텔에 있을때 인공지능 와인 추천 머신이란 걸 업체에서 들고 왔습니다. 무언가 하니, 내가 원하는 당도, 산도, 탄닌, 바디감을 점수로 선택하면 그에 적합한 와인을 블렌딩해서 내려주는 기계였습니다. 아아....이게 왜 인공지능이죠? 그냥 셋팅된 값에 맞춰 적절한 조합으로 와인을 섞어주는 것 뿐이잖아요? 그런데 다른 분들의 반응이란, '와 대단하다 이게 인공지능이구나!' 이것은 정확히 말하면 낮은 수준의 추천 시스템일 뿐이죠. 진짜 AI는 아닙니다. 그냥 트렌드에 맞게 영업 요소로 인공지능을 활용한 것 뿐이죠. 현재 수준이란게 이렇습니다. (얼마전엔 또 인공지능 안마기 라는게 나오더군요..,)
자, 각설하고. 제가 이해하는 인공 지능은 수확적 확률을 따지는 것 부터 시작합니다. 판단을 위한 인자로 다양한 것들을 투입하고, 알고리즘 기법을 통해 결과를 예측하는 식이죠. 정확한 결과에 가까울수록 인간에 지능에 가깝게 혹은 인간은 예측하지 못하는 그 이상이 되겠지요? 여기에 기계에 의한 학습이란 요소가 포함되죠. 네 우리가 말하는 머신러닝이요. 이쯤되어야 머신러닝 딥러닝을 기반으로 하는 인공 지능이라 할 수 있겠지요. 이 책은 머신러닝과 딥러닝의 기법을 설명한 책입니다. (앞서 말한 와인 블렌드기나 자세 제어를 위한 안마기는 인공지능이 아닙니다.)
어라 어려운 수식이 거의 없네?
보통 머신러닝 책이라 하면 어려운 수식으로 도배된 경우가 많습니다. 머신 러닝 기법 하나 많으로도 책 한권이 넘을 수 있는 분량인데 어려운 수식 을 적어 놓았다고 입문자가에게 좋은 머신 러닝 교재라 할 수 있을까요? 이 책은 제목에서 알수 있듯이 '나의 첫' 머신 러닝 즉 머신 러닝 입문자를 위한 책입니다. 입문자에게는 입문자에 적합한 학습 방식이 필요합니다. 어떤 사람들에게는 전자계산기가 작동하는 원리가 중요하지만, 또 어떤 사람에게는 계산기를 잘 쓸 수만 있게 하면 된다고 생각합니다. 이책은 계산기가 작동하는 원리가 아니라 계산기를 어떻게 사용할 수 있는지를 알려줍니다. 이 책은 어려운 수식을 거의 나열하지 않았어요, 먼저 머신적인 머신러닝과 딥러닝에 대해 설명합니다. 그에 대한 주요 항목들도요.
<과대 적합과 과소 적합>
그리고 표와 그림으로 전체적인 숲을 먼저 알 수 있게 했어요. 그리고 각 기법들에 대한 내용을 플어가죠. 독자를 직관적으로 이해하게끔 합니다. SVM, 의사결정나무, kNN, 나이브 베이즈 통계 등 머신러닝에서 주로 쓰이는 기법들의 개념들을 차분하고 싶게 풀어갑니다.
실습 할수 있는 거리들도 다수 준비해 놔서 독자로 하여금 이해를 쉽게 할 수 있게 돕습니다. 이런 면에서 꽤 좋은 머신 러닝 입문서라고 생각힙니다.
아쉬운 점은, 그래서 어떡하라구?
참 괜찮은 서술방식을 갖은 책이기에 머신러닝 입문자에게 좋은 책임에는 분명한 것 같습니다. 다양한 기법을 알기 쉽게 설명하니까요. 그런데 말이죠. 제가 생각하는 전문 서적들 특유의 단점이 있습니다. 기법들을 나열한 것은 좋은데, 이것을 실무에 어떻게 쓸 수 있는거죠? 농구선수 게임 기록으로 포지션 예측하기나 손글씨 분류등의 사례가 나옵니다만 잘 와닿지 않습니다...아 이렇게 쓸수는 있는거구나 라고는 알겠는데 막상 적용하려니까 막막할거 같네요. 즉 기법을 설명하는데 까지는 탁월했는데 막상 어떻게 실무적으로 쓸지에 대해서는 제시하지는 않음으로 결국 한계에 부딪히게 됩니다. 입문서에 너무 많은 걸 바라는 걸까요?
그래도 이정도면 괜찮다
이 책은 데이터를 정리하는 전처리등을 아주 자세히 다루지 않습니다. 데이터를 알고 어느 정도는 다룰수 있는 분들이 읽을 만한 책입니다. 머신러닝 입문자에게 좋지, 데이터 분야 입문자에게 어울리진 않습니다. 모든것을 완벽하게 갖춘 그런 교재는 찾기 어렵겠죠. 이 책은 책이 집필의도가 명백해 보이는 책입니다. 저는 이런 책들을 목표가 명확한 책을 좋아합니다. 대학 교재인데 애매모호하게 이론서도 아니고 실무서도 아닌 교수님들이 쓰신 그런 책말구요. 이 책은 한계는 있지만 다른 책으로 보충하게 되면 분명 좋은 책입니다.
목차
▣ 01장: 개발자가 처음 만난 머신러닝의 세계
1.1 머신러닝이란?
1.2 프로젝트 과정 미리보기
1.3 실습의 중요성
▣ 02장: 실습 준비
2.1 예제 코드
2.2 구글 코랩(Google Colaboratory)
▣ 03장: 자주 등장하는 머신러닝 필수 개념
3.1 지도학습과 비지도학습
____3.1.1 지도학습
____3.1.2 비지도학습
3.2 분류와 회귀
____3.2.1 분류
____3.2.2 회귀
3.3 과대적합과 과소적합
____3.3.1 과소적합
____3.3.2 과대적합
3.4 혼동 행렬
3.5 머신러닝 모델의 성능 평가
____3.5.1 TP(true positive) - 맞는 것을 올바르게 예측한 것
____3.5.2 TN(true negative) - 틀린 것을 올바르게 예측한 것
____3.5.3 FP(false positive) - 틀린 것을 맞다고 잘못 예측한 것
____3.5.4 FN(false negative) - 맞는 것을 틀렸다고 잘못 예측한 것
____3.5.5 정확도
____3.5.6 정밀도
____3.5.7 재현율
____3.5.8 F1 점수
3.6 k-폴드 교차 검증
▣ 04장: 머신러닝 알고리즘 실습
4.1 머신러닝 알고리즘 실습 개요
____4.1.1 알고리즘 선정 이유
4.2 k-최근접 이웃(k-Nearest Neighbor, kNN)
____4.2.1 [이론] k-최근접 이웃 알고리즘(kNN)
____4.2.2 [실습] 농구선수의 게임 데이터를 활용한 포지션 예측
4.3 서포트 벡터 머신(SVM)
____4.3.1 [이론] 서포트 벡터 머신
____4.3.2 [실습] 농구선수의 게임 기록을 학습해서 포지션을 예측해보자
4.4 의사결정 트리
____4.4.1 [이론] 의사결정 트리
____4.4.2 [실습] 서울 지역(강동, 강서, 강남, 강북) 다중 분류하기
4.5 나이브 베이즈
____4.5.1 [이론] 나이브 베이즈
____4.5.2 [실습] 가우시안 나이브 베이즈를 활용한 붓꽃 분류
____4.5.3 [실습] 베르누이 나이브 베이즈를 활용한 스팸 분류
____4.5.4 [실습] 다항분포 나이브 베이즈를 활용한 영화 리뷰 분류
4.6 앙상블
____4.6.1 [이론] 배깅
____4.6.2 [이론] 부스팅
____4.6.3 [실습] 랜덤 포레스트 손글씨 분류
____4.6.4 [실습] 보팅 앙상블 손글씨 분류
4.7 군집화
____4.7.1 [이론] k 평균 알고리즘
____4.7.2 [실습] 키와 몸무게에 따른 체형 군집화
4.8 선형회귀
____4.8.1 [이론] 선형회귀
____4.8.2 [실습] 선형회귀
4.9 로지스틱 회귀
____4.9.1 [이론] 로지스틱 회귀
____4.9.2 [실습] 단일 입력 로지스틱 회귀
____4.9.3 [실습] 다중 입력 로지스틱 회귀
____4.9.4 [실습] 소프트맥스(다중 분류 로지스틱 회귀)
4.10 주성분 분석
____4.10.1 [이론] 주성분 분석
____4.10.2 [실습] 식습관 데이터를 차원축소시켜서 시각화하기
▣ 05장: 딥러닝의 기본 개념
5.1 딥러닝의 탄생
5.2 딥러닝과 머신러닝의 관계
5.3 딥러닝 이름의 유래
5.4 딥러닝 탄생 배경
5.5 퍼셉트론
5.6 다층 퍼셉트론
5.7 뉴런(노드)
5.8 딥러닝의 학습
____5.8.1 순전파(forward propagation)
____5.8.2 손실함수
____5.8.3 최적화
____5.8.4 역전파
____5.8.5 옵티마이저
5.9 딥러닝의 과대적합
____5.9.1 드롭아웃
____5.9.2 조기 종료
5.10 [실습] 퍼셉트론
5.11 [실습] 뉴런(노드)
5.12 [실습] 다층 퍼셉트론으로 XOR 구현하기
5.13 [실습] 다층 퍼셉트론으로 손글씨 숫자 분류하기
▣ 06장: 딥러닝
6.1 컨볼루셔널 뉴럴 네트워크(CNN)
____6.1.1 [이론] CNN
____6.1.2 [실습] CNN
6.2 순환신경망(RNN)
____6.2.1 [이론] RNN
____6.2.2 [이론] LSTM
____6.2.3 [실습] RNN 기초
____6.2.4 [실습] LSTM 기초
____6.2.5 [실습] LSTM - 지문을 읽고 주제 분류하기
6.3 오토인코더
____6.3.1 [이론] 오토인코더
____6.3.2 [실습] 손글씨 숫자 데이터 시각화
6.4 단어 임베딩
____6.4.1 [이론] Word2Vec
____6.4.2 [실습] Word2Vec
____6.4.3 [실습] 사전 학습된 Word2Vec 맛보기
____6.4.4 [이론] FastText
____6.4.5 [실습] 사전학습된 FastText 맛보기
____6.4.6 [실습] 사전 학습된 Glove 맛보기
6.5 전이 학습
____6.5.1 [이론] 전이 학습
____6.5.2 [실습] 사전 학습된 임베딩으로 사용자 리뷰 분류하기
* 3줄 요약
1. 어려운 수식 없이 직관적으로 머신러닝 기법들을 이해할 수 있다.
2. 입문자의 관점에서 쉽게 설명한다.
3. 어떻게 활용하는게 좋을지는 알려주지 않는다.
* 추천 대상
- 머신러닝 기법들을 쉽게 알고 싶은 [입문자]
요새 머신러닝, 딥러닝이 핫합니다. 뭐만 한다 싶으면 머신러닝이고 딥러닝이고, 인공지능이라네요? 예전에 호텔에 있을때 인공지능 와인 추천 머신이란 걸 업체에서 들고 왔습니다. 무언가 하니, 내가 원하는 당도, 산도, 탄닌, 바디감을 점수로 선택하면 그에 적합한 와인을 블렌딩해서 내려주는 기계였습니다. 아아....이게 왜 인공지능이죠? 그냥 셋팅된 값에 맞춰 적절한 조합으로 와인을 섞어주는 것 뿐이잖아요? 그런데 다른 분들의 반응이란, '와 대단하다 이게 인공지능이구나!' 이것은 정확히 말하면 낮은 수준의 추천 시스템일 뿐이죠. 진짜 AI는 아닙니다. 그냥 트렌드에 맞게 영업 요소로 인공지능을 활용한 것 뿐이죠. 현재 수준이란게 이렇습니다. (얼마전엔 또 인공지능 안마기 라는게 나오더군요..,)
자, 각설하고. 제가 이해하는 인공 지능은 수확적 확률을 따지는 것 부터 시작합니다. 판단을 위한 인자로 다양한 것들을 투입하고, 알고리즘 기법을 통해 결과를 예측하는 식이죠. 정확한 결과에 가까울수록 인간에 지능에 가깝게 혹은 인간은 예측하지 못하는 그 이상이 되겠지요? 여기에 기계에 의한 학습이란 요소가 포함되죠. 네 우리가 말하는 머신러닝이요. 이쯤되어야 머신러닝 딥러닝을 기반으로 하는 인공 지능이라 할 수 있겠지요. 이 책은 머신러닝과 딥러닝의 기법을 설명한 책입니다. (앞서 말한 와인 블렌드기나 자세 제어를 위한 안마기는 인공지능이 아닙니다.)
어라 어려운 수식이 거의 없네?
보통 머신러닝 책이라 하면 어려운 수식으로 도배된 경우가 많습니다. 머신 러닝 기법 하나 많으로도 책 한권이 넘을 수 있는 분량인데 어려운 수식 을 적어 놓았다고 입문자가에게 좋은 머신 러닝 교재라 할 수 있을까요? 이 책은 제목에서 알수 있듯이 '나의 첫' 머신 러닝 즉 머신 러닝 입문자를 위한 책입니다. 입문자에게는 입문자에 적합한 학습 방식이 필요합니다. 어떤 사람들에게는 전자계산기가 작동하는 원리가 중요하지만, 또 어떤 사람에게는 계산기를 잘 쓸 수만 있게 하면 된다고 생각합니다. 이책은 계산기가 작동하는 원리가 아니라 계산기를 어떻게 사용할 수 있는지를 알려줍니다. 이 책은 어려운 수식을 거의 나열하지 않았어요, 먼저 머신적인 머신러닝과 딥러닝에 대해 설명합니다. 그에 대한 주요 항목들도요.
<과대 적합과 과소 적합>
그리고 표와 그림으로 전체적인 숲을 먼저 알 수 있게 했어요. 그리고 각 기법들에 대한 내용을 플어가죠. 독자를 직관적으로 이해하게끔 합니다. SVM, 의사결정나무, kNN, 나이브 베이즈 통계 등 머신러닝에서 주로 쓰이는 기법들의 개념들을 차분하고 싶게 풀어갑니다.
실습 할수 있는 거리들도 다수 준비해 놔서 독자로 하여금 이해를 쉽게 할 수 있게 돕습니다. 이런 면에서 꽤 좋은 머신 러닝 입문서라고 생각힙니다.
아쉬운 점은, 그래서 어떡하라구?
참 괜찮은 서술방식을 갖은 책이기에 머신러닝 입문자에게 좋은 책임에는 분명한 것 같습니다. 다양한 기법을 알기 쉽게 설명하니까요. 그런데 말이죠. 제가 생각하는 전문 서적들 특유의 단점이 있습니다. 기법들을 나열한 것은 좋은데, 이것을 실무에 어떻게 쓸 수 있는거죠? 농구선수 게임 기록으로 포지션 예측하기나 손글씨 분류등의 사례가 나옵니다만 잘 와닿지 않습니다...아 이렇게 쓸수는 있는거구나 라고는 알겠는데 막상 적용하려니까 막막할거 같네요. 즉 기법을 설명하는데 까지는 탁월했는데 막상 어떻게 실무적으로 쓸지에 대해서는 제시하지는 않음으로 결국 한계에 부딪히게 됩니다. 입문서에 너무 많은 걸 바라는 걸까요?
그래도 이정도면 괜찮다
이 책은 데이터를 정리하는 전처리등을 아주 자세히 다루지 않습니다. 데이터를 알고 어느 정도는 다룰수 있는 분들이 읽을 만한 책입니다. 머신러닝 입문자에게 좋지, 데이터 분야 입문자에게 어울리진 않습니다. 모든것을 완벽하게 갖춘 그런 교재는 찾기 어렵겠죠. 이 책은 책이 집필의도가 명백해 보이는 책입니다. 저는 이런 책들을 목표가 명확한 책을 좋아합니다. 대학 교재인데 애매모호하게 이론서도 아니고 실무서도 아닌 교수님들이 쓰신 그런 책말구요. 이 책은 한계는 있지만 다른 책으로 보충하게 되면 분명 좋은 책입니다.
목차
▣ 01장: 개발자가 처음 만난 머신러닝의 세계
1.1 머신러닝이란?
1.2 프로젝트 과정 미리보기
1.3 실습의 중요성
▣ 02장: 실습 준비
2.1 예제 코드
2.2 구글 코랩(Google Colaboratory)
▣ 03장: 자주 등장하는 머신러닝 필수 개념
3.1 지도학습과 비지도학습
____3.1.1 지도학습
____3.1.2 비지도학습
3.2 분류와 회귀
____3.2.1 분류
____3.2.2 회귀
3.3 과대적합과 과소적합
____3.3.1 과소적합
____3.3.2 과대적합
3.4 혼동 행렬
3.5 머신러닝 모델의 성능 평가
____3.5.1 TP(true positive) - 맞는 것을 올바르게 예측한 것
____3.5.2 TN(true negative) - 틀린 것을 올바르게 예측한 것
____3.5.3 FP(false positive) - 틀린 것을 맞다고 잘못 예측한 것
____3.5.4 FN(false negative) - 맞는 것을 틀렸다고 잘못 예측한 것
____3.5.5 정확도
____3.5.6 정밀도
____3.5.7 재현율
____3.5.8 F1 점수
3.6 k-폴드 교차 검증
▣ 04장: 머신러닝 알고리즘 실습
4.1 머신러닝 알고리즘 실습 개요
____4.1.1 알고리즘 선정 이유
4.2 k-최근접 이웃(k-Nearest Neighbor, kNN)
____4.2.1 [이론] k-최근접 이웃 알고리즘(kNN)
____4.2.2 [실습] 농구선수의 게임 데이터를 활용한 포지션 예측
4.3 서포트 벡터 머신(SVM)
____4.3.1 [이론] 서포트 벡터 머신
____4.3.2 [실습] 농구선수의 게임 기록을 학습해서 포지션을 예측해보자
4.4 의사결정 트리
____4.4.1 [이론] 의사결정 트리
____4.4.2 [실습] 서울 지역(강동, 강서, 강남, 강북) 다중 분류하기
4.5 나이브 베이즈
____4.5.1 [이론] 나이브 베이즈
____4.5.2 [실습] 가우시안 나이브 베이즈를 활용한 붓꽃 분류
____4.5.3 [실습] 베르누이 나이브 베이즈를 활용한 스팸 분류
____4.5.4 [실습] 다항분포 나이브 베이즈를 활용한 영화 리뷰 분류
4.6 앙상블
____4.6.1 [이론] 배깅
____4.6.2 [이론] 부스팅
____4.6.3 [실습] 랜덤 포레스트 손글씨 분류
____4.6.4 [실습] 보팅 앙상블 손글씨 분류
4.7 군집화
____4.7.1 [이론] k 평균 알고리즘
____4.7.2 [실습] 키와 몸무게에 따른 체형 군집화
4.8 선형회귀
____4.8.1 [이론] 선형회귀
____4.8.2 [실습] 선형회귀
4.9 로지스틱 회귀
____4.9.1 [이론] 로지스틱 회귀
____4.9.2 [실습] 단일 입력 로지스틱 회귀
____4.9.3 [실습] 다중 입력 로지스틱 회귀
____4.9.4 [실습] 소프트맥스(다중 분류 로지스틱 회귀)
4.10 주성분 분석
____4.10.1 [이론] 주성분 분석
____4.10.2 [실습] 식습관 데이터를 차원축소시켜서 시각화하기
▣ 05장: 딥러닝의 기본 개념
5.1 딥러닝의 탄생
5.2 딥러닝과 머신러닝의 관계
5.3 딥러닝 이름의 유래
5.4 딥러닝 탄생 배경
5.5 퍼셉트론
5.6 다층 퍼셉트론
5.7 뉴런(노드)
5.8 딥러닝의 학습
____5.8.1 순전파(forward propagation)
____5.8.2 손실함수
____5.8.3 최적화
____5.8.4 역전파
____5.8.5 옵티마이저
5.9 딥러닝의 과대적합
____5.9.1 드롭아웃
____5.9.2 조기 종료
5.10 [실습] 퍼셉트론
5.11 [실습] 뉴런(노드)
5.12 [실습] 다층 퍼셉트론으로 XOR 구현하기
5.13 [실습] 다층 퍼셉트론으로 손글씨 숫자 분류하기
▣ 06장: 딥러닝
6.1 컨볼루셔널 뉴럴 네트워크(CNN)
____6.1.1 [이론] CNN
____6.1.2 [실습] CNN
6.2 순환신경망(RNN)
____6.2.1 [이론] RNN
____6.2.2 [이론] LSTM
____6.2.3 [실습] RNN 기초
____6.2.4 [실습] LSTM 기초
____6.2.5 [실습] LSTM - 지문을 읽고 주제 분류하기
6.3 오토인코더
____6.3.1 [이론] 오토인코더
____6.3.2 [실습] 손글씨 숫자 데이터 시각화
6.4 단어 임베딩
____6.4.1 [이론] Word2Vec
____6.4.2 [실습] Word2Vec
____6.4.3 [실습] 사전 학습된 Word2Vec 맛보기
____6.4.4 [이론] FastText
____6.4.5 [실습] 사전학습된 FastText 맛보기
____6.4.6 [실습] 사전 학습된 Glove 맛보기
6.5 전이 학습
____6.5.1 [이론] 전이 학습
____6.5.2 [실습] 사전 학습된 임베딩으로 사용자 리뷰 분류하기