이미 소장하고 있다면 판매해 보세요.
|
1장. 머신 러닝 시작
__머신 러닝 시작하기 __머신 러닝으로 해결할 수 있는 문제들 __파이썬 시작하기 __OpenCV 시작하기 __설치하기 ____이 책의 최신 코드 얻기 ____파이썬의 아나콘다 배포판에 대해 살펴보기 ____conda 환경에서 OpenCV 설치 ____설치 확인하기 ____OpenCV의 ML 모듈 엿보기 __요약 2장. OpenCV와 파이썬의 데이터 작업 __머신 러닝 워크플로우의 이해 __OpenCV와 파이썬을 사용해 데이터 다루기 ____새로운 IPython 또는 주피터 세션 시작하기 ____파이썬 NumPy 패키지를 사용해 데이터 다루기 ____파이썬에서 외부 데이터 세트 적재하기 ____Matplotlib을 사용해 데이터 시각화하기 ____C++에서 OpenCV의 TrainData 컨테이너를 사용해 데이터 다루기 __요약 3장. 지도 학습의 첫 번째 단계 __지도 학습 이해하기 ____OpenCV에서 지도 학습 살펴보기 ____점수화 기능으로 모델 성능 측정 __분류 모델을 사용해 클래스 레이블 예측하기 ____k-최근접 이웃 알고리즘의 이해 ____OpenCV에서 k-최근접 이웃 구현하기 __회귀 모델을 사용해 지속적인 결과 예측하기 ____선형 회귀 분석 ____선형 회귀 분석 방법을 사용해 보스턴 주택 가격 예측하 ____라소 및 융기 회귀 적용 __로지스틱 회귀를 이용한 아이리스 종 분류하기 ____로지스틱 회귀 이해하기 __요약 4장. 데이터와 엔지니어링 특징 표현하기 __특징 엔지니어링의 이해 __전처리 데이터 ____특징 표준화 ____특징 정규화 ____특징의 범위 확장 ____특징 이진화 ____누락된 데이터 처리 __차원 축소 이해하기 ____OpenCV에서 PCA 구현하기 ____ICA 구현 ____NMF 구현 __범주형 변수 표현하기 __텍스트 특징 표현하기 __이미지 표현하기 ____색상 공간 사용 ____이미지의 코너 검출하기 ____SIFT 사용하기 ____SURF 사용하기 __요약 5장. 의사 결정 트리를 사용해 의료 진단하기 __의사 결정 트리의 이해 ____첫 번째 결정 트리 만들기 ____훈련된 의사 결정 트리에 대한 시각화 ____의사 결정 트리의 내부 동작 조사 ____특징 중요도 평가 ____의사 결정 규칙 이해하기 ____의사 결정 트리의 복잡성 제어 __의사 결정 트리를 사용해 유방암 진단하기 ____데이터 세트 불러오기 ____의사 결정 트리 만들기 __회귀 결정 트리 사용 __요약 6장. 서포트 벡터 머신으로 보행자 검출하기 __선형 서포트 벡터 시스템의 이해 ____최적의 의사 결정 경계 학습 ____첫 번째 서포트 벡터 머신 구현 __비선형 의사 결정 경계 다루기 ____커널 트릭 이해하기 ____우리가 사용할 커널 파악하기 ____비선형 서포트 벡터 머신 구현 __외부에서 보행자 검출하기 ____데이터 세트 가져오기 ____HOG 훑어보기 ____네거티브 생성하기 ____서포트 벡터 머신 구현하기 ____모델 부트스트랩하기 ____더 큰 이미지에서 보행자 검출하기 ____모델 개선하기 __요약 7장. 베이지안 학습을 이용한 스팸 필터 구현 __베이지안 추론 이해하기 ____확률 이론에 대해 간단히 살펴보기 ____베이즈 정리 이해하기 ____나이브 베이즈 분류기의 이해 __첫 번째 베이지안 분류기 구현하기 ____장난감 데이터 세트 만들기 ____일반 베이즈 분류기로 데이터 분류 __나이브 베이즈 분류기로 데이터 분류하기 ____조건부 확률의 시각화 ____나이브 베이즈 분류기를 사용해 이메일 분류하기 ____데이터 세트 불러오기 ____Pandas를 사용해 데이터 행렬 만들기 ____데이터 전처리하기 ____정상적인 베이즈 분류기 훈련 ____전체 데이터 세트에 대한 교육 ____n-gram을 사용해 결과 개선하기 ____tf-idf를 사용해 결과 개선하기 __요약 8장. 비지도 학습으로 숨겨진 구조 발견 __비지도 학습의 이해 __k-평균 클러스터링의 이해 ____첫 번째 k-평균 예제 구현 __기댓값 최대화 방법 이해하기 ____기대치 극대화 솔루션 구현하기 ____기댓값 최대화의 한계 파악하기 ____첫 번째 경고: 전반적인 최적 결과를 찾기 어려움 ____두 번째 경고: 미리 클러스터 수를 선택해야 한다 ____세 번째 주의 사항: 클러스터 경계는 선형이다 ____네 번째 경고: k-평균은 많은 수의 샘플에서는 느리다 __k-평균을 사용해 색 공간 압축하기 ____트루 컬러 팔레트 시각화 ____k-평균을 사용해 색상 표 축소 __k-평균을 사용해 숫자 필기 인식 분류하기 ____데이터 세트 불러오기 ____k-평균 실행하기 __클러스터를 계층적 트리로 구성하기 ____계층적 클러스터링의 이해 ____응집력 있는 계층적 클러스터링 구현 __요약 9장. 딥러닝을 사용해 숫자 필기 인식 분류하기 __맥컬럭-피츠 뉴런에 대한 이해 __퍼셉트론 이해하기 __첫 번째 퍼셉트론 구현하기 ____장난감 데이터 세트 생성하기 ____퍼셉트론을 데이터에 적용하기 ____퍼셉트론 분류기 평가 ____선형으로 분리되지 않는 데이터에 퍼셉트론 적용하기 __다층 퍼셉트론의 이해 ____경사 하강법 이해하기 ____역전파를 이용해 다층 퍼셉트론 훈련하기 ____OpenCV에서 다층 퍼셉트론 구현하기 __딥러닝에 익숙해지기 ____Keras에 익숙해지기 __숫자 필기 인식 분류하기 ____MNIST 데이터 세트 적재하기 ____MNIST 데이터 세트 전처리하기 ____OpenCV를 사용해 MLP 훈련하기 ____Keras를 이용한 심층 신경망 훈련하기 __요약 10장. 앙상블 기법으로 여러 알고리즘 결합하기 __앙상블 메소드 이해하기 ____평균 앙상블 이해하기 ____부스터 앙상블 이해하기 ____스태킹 앙상블 이해하기 __의사 결정 트리를 랜덤 포레스트로 결합하기 ____의사 결정 트리의 단점 이해하기 ____첫 랜덤 포레스트 구현하기 ____scikit-learn을 사용해 랜덤 포레스트 구현하기 ____과랜덤화된 트리 구현하기 __얼굴 인식을 위한 랜덤 포레스트 사용 ____데이터 세트 불러오기 ____데이터 세트 전처리하기 ____랜덤 포레스트 훈련 및 테스트 __AdaBoost 구현하기 ____OpenCV에서 AdaBoost 구현하기 ____scikit-learn에서 AdaBoost 구현하기 __다른 모델을 투표 분류기로 결합하기 ____다양한 투표 방법 이해하기 ____투표 분류기 구현하기 __요약 11장. 하이퍼 매개변수 튜닝으로 올바른 모델 선택하기 __모델 평가하기 ____모델을 잘못된 방식으로 평가하기 ____올바른 방식으로 모델 평가하기 ____최고의 모델 선택하기 __교차 유효성 검증의 이해 ____OpenCV에서 교차 유효성의 수동 검증 구현 ____k-겹 교차 검증을 위해 scikit-learn 사용하기 ____단일 관측치 제거법 교차 검증 구현 __부트스트랩을 사용해 견고성 예측하기 ____OpenCV에서 부트스트랩 수동으로 구현하기 __결과의 중요성 평가하기 ____스튜던트 t-검정 구현하기 ____맥니마의 검정 구현하기 __격자 검색으로 하이퍼 매개변수 튜닝하기 ____간단한 격자 검색 구현하기 ____유효성 검증 집합의 값 이해하기 ____교차 유효성 검증과 함께 격자 검색 결합하기 ____중첩된 교차 유효성 검증과 함께 격자 검색 결합하기 __다양한 평가 메트릭을 사용한 점수화 모델 ____올바른 분류 기준 선택하기 ____올바른 회귀 측정 기준 선택하기 __파이프라인을 형성하기 위한 체이닝 알고리즘 ____scikit-learn에서 파이프라인 구현하기 ____격자 검색의 파이프라인 사용하기 __요약 12장. 정리하기 __머신 러닝 문제점에 접근하기 __자신만의 추정기 작성하기 ____자신의 OpenCV 기반 분류기를 C++로 작성하기 ____파이썬으로 자신의 scikit-learn 기반 분류기를 작성하기 __다음 단계 __요약 __찾아보기 __컬러 이미지 |
Michael Beyeler
마이클 베이어의 다른 상품
테크 트랜스 그룹 T4의 다른 상품
|
추천의 글 비록 시간이 오래 걸리긴 했지만, 지난 몇 년 동안 기계는 스스로 정확하게 학습하는 방법을 배워왔다. 이에 따라 카메라가 사람을 찍을 때 얼굴을 검출하고, 소셜 미디어 앱이 업로드한 사진을 통해 우리를 인식할 수 있다는 것은 더 이상 놀라운 일이 아니다. 앞으로 몇 년 동안, 우리는 더욱 급진적인 변화를 경험하게 될 것이다. 머지않아 자동차가 자율 운행하게 될 것이고, 휴대 전화는 특정 언어로 된 간판을 읽고 번역 가능하게 될 것으로 보인다. 또한 엑스레이 및 기타 의료 영상을 보고 강력한 알고리즘으로 분석함으로써 의학 진단과 효과적인 치료법도 추천하게 될 것이다. 이러한 변화는 컴퓨팅 성능이 향상되고, 대량의 이미지 데이터와 수학, 통계학, 컴퓨터 과학에서 가져온 아이디어가 폭발적으로 결합함으로써 이뤄진다. 빠르게 성장하고 있는 머신 러닝 방법은 일상적인 세상과의 상호작용에 영향을 미친다. 컴퓨터 비전의 패러다임 변화에서 가장 주목할 만한 항목 중 하나는 오픈소스 커뮤니티의 많은 기여자, 애호가, 과학자, 엔지니어가 자유롭게 사용할 수 있으며, 이미 개발된 소프트웨어 활용에 많이 의존할 수 있다는 점이다. 이는 진입 장벽이 그 어느 때보다 낮다는 것을 의미한다. 이미지 처리를 위해 머신 러닝을 활용하고자 하는 마음만 있다면, 누구나 사용 가능하게 됐다. 다양한 도구와 아이디어들이 있다고 하더라도, 여러 갈래의 수많은 길이 있는 복잡한 정원에서는 길을 안내하고 올바른 길로 가도록 도와주는 가이드가 필요하다. 다행히도 이 책을 보는 당신에게는 앞서 이야기한 복잡한 길 찾기와 관련된 좋은 소식을 전할 수 있다. 이 책을 집어 들었다면, 당신은 내 동료이자 이 책의 저자인 마이클 베이어 박사가 담아낸 내용을 좋은 지침서로 활용할 수 있을 것이다. 마이클은 광범위한 전문 지식을 가지고 있는 열정적인 엔지니어, 컴퓨터 과학자, 신경과학자이면서 많은 오픈소스 소프트웨어를 개발하는 개발자다. 그는 로봇이 복잡한 환경을 관측하고 탐색할 방법을 가르칠 뿐 아니라, 뇌 활동을 모델링하는 방법을 만들었고, 프로그래밍을 사용해 다양한 머신 러닝 및 이미지 처리 문제를 해결하는 방법을 개발자들에게 정기적으로 가르친다. 정기적인 학습을 통해 자신의 전문 지식과 경험에 대해 한 번 더 생각하고, 책 내의 아이디어를 학습할 때 여러 번 생각할 수 있게 해준다. 또한 가르치면서 자신의 유머 감각도 잘 살리고 있다. 두 번째 좋은 소식은 이 책과 함께하는 시간이 유쾌한 여행이 될 것이라는 사실이다. 코드와 데이터를 사용해 컴퓨터 비전과 머신 러닝 문제를 해결하면 퍼즐 조각을 모을 때만큼의 큰 스릴을 느낄 수 있다. 리처드 파인만(Richard Feynman)이 말했듯이 "내가 만들 수 없는 것을 이해할 수는 없다."라고 생각하면 좋다. 따라서 이 책에서 제공되는 (오픈소스) 코드와 데이터로 많은 내용을 살펴보고, 창의력을 발휘해보자. 책의 내용은 쉽게 이해할 수 있을 것이다. /아리엘 로켐(Ariel Rokem) 워싱턴 대학 eScience 연구소, 데이터 과학자 이 책에서 다루는 내용 OpenCV의 머신 러닝 모듈 탐색과 효과적인 사용 파이썬으로 배우는 컴퓨터 비전용 딥러닝 기술 선형 회귀 및 정규화 기술 꽃의 종, 필기 인식, 보행자 등의 객체 분류 서포트 벡터 머신, 강화된 의사 결정 트리, 랜덤 포레스트의 효과적인 사용 방법 탐색 실제 네트워크 문제를 해결할 수 있는 신경망와 심층적인 학습 방법 k-평균 클러스터링을 사용한 데이터의 숨겨진 구조 발견 데이터 전처리 및 특징 엔지니어링 활용 이 책의 대상 독자 이 책은 OpenCV와 파이썬에 대한 기본 지식을 갖췄지만, 이에 대해 더 많이 배우고자 하는 독자를 대상으로 한다. 이 책의 구성 1장. ‘머신 러닝 시작’ 머신 러닝의 여러 하위 내용을 소개하고 파이썬 아나콘다(Python Anaconda)환경에서 OpenCV 및 기타 필수 도구를 설치하는 방법을 설명한다. 2장. ‘OpenCV와 파이썬의 데이터 작업’ 일반적인 머신 러닝 워크플로우의 모습과 데이터를 사용하는 방법을 보여준다. 학습 및 테스트 데이터의 차이점을 설명하고, OpenCV와 파이썬을 사용해 데이터를 불러온 후 저장, 조작, 시각화하는 방법을 보여준다. 3장. ‘지도 학습의 첫 번째 단계’ 분류와 회귀 같은 몇 가지 핵심 개념을 살펴보고 지도 학습 주제를 소개한다. OpenCV에서 간단한 머신 러닝 알고리즘을 구현하는 방법, 데이터에 대한 예측을 수행하는 방법, 모델을 평가하는 방법을 배운다. 4장. ‘데이터와 엔지니어링 특징 표현하기’ 공통적으로 잘 알려진 머신 러닝 데이터 세트를 분석하는 방법과 원시 데이터에서 의미 있는 값을 추출하는 방법을 설명한다. 5장. ‘의사 결정 트리를 사용해 의료 진단하기’ OpenCV에서 결정 트리를 작성하는 방법과 다양한 분류 및 회귀 문제에서 결정 트리를 사용하는 방법을 보여준다. 6장. ‘서포트 벡터 머신으로 보행자 검출하기’ OpenCV에서 서포트 벡터 머신을 구축하는 방법과 이미지에 보행자를 검출하는 데 적용하는 방법을 설명한다. 7장. ‘베이지안 학습을 이용한 스팸 필터 구현’ 확률 이론을 소개하고 베이지안 추론을 사용해 전자 메일에서 스팸을 분류하는 방법을 보여준다. 8장. ‘비지도 학습으로 숨겨진 구조 발견’ k-평균 클러스터링과 기댓값 최대화(expectation maximization) 알고리즘 등의 비지도 학습 알고리즘을 살펴본다. 단순하며 레이블이 없는 데이터 세트에서 숨겨진 구조를 추출하는 방법을 보여준다. 9장. ‘딥러닝을 사용해 숫자 필기 인식 분류하기’ 흥미진진한 딥러닝 분야를 소개한다. 퍼셉트론(perceptron)과 멀티레이어 퍼셉트론으로 시작해 광범위한 MNIST 데이터베이스에서 숫자 필기의 자릿수를 분류하기 위해 심층 신경망(deep neural network)을 구축하는 방법을 배운다. 10장. ‘앙상블 기법으로 여러 알고리즘 결합하기’ 개별 학습자의 약점을 극복하기 위해 여러 알고리즘을 앙상블에서 효과적으로 결합하는 방법을 보여준다. 따라서 좀 더 정확하고 신뢰할 수 있는 예측이 가능하다. 11장. ‘하이퍼 매개변수 튜닝으로 올바른 모델 선택하기’ 모델 선택 개념을 소개한다. 이를 통해 다양한 머신 러닝 알고리즘을 비교하고 현재 작업에 적합한 도구를 선택할 수 있다. 12장. ‘정리하기’ 독자적으로 미래의 머신 러닝 문제에 접근하는 방법에 대한 유용한 팁과 고급 주제 관련 정보를 찾을 수 있는 위치를 알려주는 것으로 결론을 맺는다. 지은이의 말 당신을 만나게 돼서 기쁘다. 이제 우리가 머신 러닝에 관해 이야기할 때다. 머신 러닝은 더 이상 단순한 유행어는 아니다. 이메일을 보호하고, 사진 속 친구를 자동으로 태그해 지정하고, 좋아하는 영화를 예측하는 데 이르기까지 이 모두가 우리 주변에서 이뤄진다. 컴퓨터는 컴퓨터 과학의 하위 분야인 머신 러닝을 통해 과거에 수집된 데이터를 사용하고, 미래에 대해 예측하는 경험을 통해 학습을 진행할 수 있다. 이때 분석해야 할 데이터의 양은 엄청나게 많다! 현재 생산 데이터의 일일 양은 2.5엑사바이트(Exabyte, 약 10억 기가바이트gigabyte)로 추정된다. 이렇게 어마어마한 규모의 데이터가 생겨난다는 것을 믿을 수 있는가? 이는 1,000만 개의 블루레이 디스크를 채우기에 충분한 데이터일 뿐 아니라, 90년 동안의 HD 화질 비디오 분량에 해당한다. 구글, 아마존, 마이크로소프트, 페이스북 등의 회사는 이 방대한 양의 데이터를 처리하기 위해 휴대 전화에서 클라우드를 잇는 슈퍼 컴퓨터에 이르기까지 그 범위를 확대해가며 머신 러닝을 통해 이익을 얻을 수 있는 데이터 과학 플랫폼을 개발하는 데 많은 투자를 해왔다. 이는 이제 우리가 머신 러닝에 시간을 투자해야 한다는 의미다. 그리고 당신이 머신 러닝을 하고자 한다면, 이 책이 바로 원하는 답이 돼줄 수 있다. 하지만 초조해하지는 말자. 머신 러닝을 통해 이익을 얻으려면 위의 예와 같이 큰 규모로 시작할 필요가 없다. 어떠한 경우라도 시작은 작게 한다. 따라서 이 책의 첫 번째 단계는 분류 및 회귀와 같은 통계 학습의 핵심 개념을 간단하고 직관적인 예제를 통해 확인하는 것이다. 이미 머신 러닝 이론을 자세히 공부했다면, 이 책은 그 지식을 실용화하는 방법을 보여줄 것이다. 그리고 머신 러닝 분야를 완전히 새롭게 접하는 사람이라도 걱정하지는 말자. 단지 필요한 것은 배우려는 의지다. 모든 기본 개념을 다룬 후에는 의사 결정 트리(decision tree), 서포트 벡터 머신(support vector machine), 베이지안(Bayesian) 네트워크와 같은 다양한 알고리즘을 살펴보고 다른 OpenCV 기능과 결합하는 방법을 배운다. 그 과정에서 데이터를 이해하고 어떻게 완벽하게 작동하는 머신 러닝 파이프라인을 구축하는지 이해함으로써 전체 작업을 배우게 된다. 현장에서 가장 뜨거운 주제인 ‘딥러닝’을 시작할 준비가 될 때까지, 더 많은 머신 러닝 기술들을 학습한다. 작업에 적합한 도구를 선택하는 방법을 숙지하면서 숙련된 기술과 결합해 모든 관련 머신 러닝의 기본 지식을 파악하게 된다. 이 책을 다 읽고 나면, 기존 소스 코드를 기반으로 작성하거나 자신만의 알고리즘을 처음부터 개발해 머신 러닝 문제를 해결하는 능력을 얻게 될 것이다. 옮긴이의 말 지금 전 세계를 뒤덮는 화두 중 하나가 머신 러닝이라는 것은 누구도 부인하기 어려울 것이다. 구글 딥마인드의 알파고가 세기의 이벤트를 보여준 이후, 그 관심도는 나날이 급상승 중이다. 이제는 우리 주변에서 머신 러닝이 적용된 사물들을 쉽게 볼 수 있다. 대표적인 예로, 우리가 사용하는 스마트폰은 이미 머신 러닝이 적용돼 사용자에게 여러 가지 편의를 제공하고 있다. 전 세계의 많은 기업들이 인공지능 기술을 개발하는 데 뛰어들었고, 주요 기술 강대국은 이미 많은 성과를 차근차근 거두어들이고 있다. 기술력이 매우 뛰어난 대표적인 기업인 아마존웹서비스는 연례 기술 컨퍼런스 ‘AWS 리인벤트re:Invent 2017’에서 딥러닝을 지원하는 무선 비디오 카메라 ‘AWS 딥렌즈(DeepLens)’와 개발자를 위한 새로운 머신 러닝 서비스 ‘아마존 세이지메이커(Amazon SageMaker)’를 공개했다. 그리고 누구나 인정하는 초기술 기업 구글은 맞춤형 머신 러닝 모델인 텐서플로와 머신 러닝 엔진을 비롯해 사전 훈련 기반 머신 러닝 모델인 비전, 음성 인식, 번역, 자연어 처리 API 등의 기술을 개발자와 기업 고객에게 제공하고 있다. 구글의 텐서플로를 활용해 생산 효율을 높인 대표적인 사례로는 일본 식품회사 ‘큐피(Kewpie)’가 도입한 텐서플로 기반의 식재료 검수 시스템을 들 수 있으며, 구글의 AI 기술이 의학 분야에 활용된 사례에서 보듯이 헬스케어와 환경 보존 같은 사회적 이슈에 대비하기 위해 머신 러닝을 지속적으로 접목하고자 노력하는 중이다. 또한 각종 질병과 암 검진율을 높이는 연구에도 딥러닝이 활용되는 등 AI와 머신 러닝 기술은 인류가 당면한 중요한 문제들을 해결하는 데 큰 도움을 줄 것으로 예상된다. 이처럼 우리는 머신 러닝이 적용된 사회 속에서 살아간다. 따라서 머신 러닝의 개념뿐 아니라 그 내부에서 작용하는 원리도 함께 알아가야 하며, 그 과정에서 이 책이 여러분에게 일정한 역할을 할 수 있다고 믿는다. 이 책은 비전 처리와 관련된 분야에서 머신 러닝이 어떻게 활용될 수 있는지를 이론과 예제를 바탕으로 상세히 설명한다. 머신 러닝을 완벽하게 이해하려면 가장 기본적인 원리들을 파악하는 것이 좋으며, 이 책은 풍부한 설명과 코드로 원활하게 시작할 수 있도록 도울 것이다. 진심으로 모든 독자가 OpenCV와 머신 러닝에 대한 기본 이론을 이해하고 실제로 구현하는 데 이 책이 많은 도움이 되길 바란다. |