책 소개
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
인공지능을 활용하는 다양한 실제 사례와 인공지능 애플리케이션을 구현하는데 필요한 여러 가지 알고리즘을 소개한다. 인공지능의 개념을 소개하고 데이터 마이닝 기법으로 인공지능의 핵심 구성 요소를 구현하는 다양한 방법도 살펴본다. 또한 최상의 결과를 얻기 위한 알고리즘 구현 방법과, 알고리즘을 실전에 적용하는 방법도 소개한다. 이미지나 텍스트, 주식 시장을 비롯한 다양한 형태의 데이터를 다루는 애플리케이션에 인공지능을 적용하기에 훌륭한 길잡이가 될 것이다.
이 책에서 다루는 내용
■ 분류와 회귀 분석 기법의 이해
■ 군집화의 개념과 이를 활용한 데이터를 자동으로 세분화하는 방법
■ 지능형 추천 시스템 구현 방법
■ 논리형 프로그래밍의 개념과 활용 방법
■ 자동 음성 인식 시스템 구축 방법
■ 휴리스틱 탐색과 유전 프로그래밍의 기본 개념
■ 인공지능을 이용한 게임 구현 방법
■ 강화 학습의 기본 원리
■ 이미지와 텍스트, 시계열 데이터를 다루는 지능형 애플리케이션 구현 방법
■ 딥러닝 알고리즘 사용법 및 이를 이용한 애플리케이션 구현 방법
이 책의 대상 독자
이 책은 현실 세계에 적용할 수 있는 인공지능 애플리케이션을 구축하려는 파이썬 개발자를 위해 저술했다. 파이썬을 처음 접하는 이들도 충분히 이해할 수 있지만, 파이썬에 능숙하다면 예제를 마음껏 응용해볼 수 있다. 자신의 전문 분야에 인공지능 기법을 적용하려는 숙련된 파이썬 프로그래머도 이 책을 통해 많은 도움을 받을 수 있다.
이 책의 구성
1장. '인공지능'에서는 인공지능에 관련된 다양한 개념을 소개한다. AI의 응용 및 연구 분야, 모델링 방법을 소개하고, AI 응용 구현에 필요한 파이썬 패키지를 설치하는 방법도 설명한다.
2장. '분류와 회귀 분석'에서는 분류와 회귀 분석을 위한 지도 학습 기반의 기술을 소개한다. 소득 데이터를 분석하고 주택 가격을 예측하는 프로그램도 만든다.
3장. '앙상블 학습을 위한 예측 분석'에서는 앙상블 학습을 이용한 예측 분석 모델을 만드는 방법에 대해 랜덤 포레스트를 중심으로 소개한다. 이러한 기법을 이용해 스포츠 경기장 주변의 교통량을 예측하는 방법도 살펴본다.
4장. '비지도 학습을 이용한 패턴 인식'에서는 K-평균, 평균 이동 군집(클러스터링)을 비롯한 비지도 학습에 관련된 여러 알고리즘을 소개한다. 이러한 알고리즘을 주식 시장 데이터 분석과 고객 세분화 작업에 적용하는 방법도 살펴본다.
5장. '추천 시스템'에서는 추천 엔진을 구현하기 위한 알고리즘을 소개한다. 그리고 이러한 알고리즘을 이용해 협업 필터링과 영화 추천 기능을 구현하는 방법도 살펴본다.
6장. '논리형 프로그래밍'에서는 논리형 프로그래밍의 개념과 기본 구성 요소에 대해 소개한다. 표현식 매칭, 가계도 분석, 퍼즐 풀기를 비롯한 다양한 응용을 살펴본다.
7장. '휴리스틱 탐색'에서는 솔루션 공간을 탐색하기 위한 여러 가지 휴리스틱 탐색 기법을 소개한다. 시뮬레이티드 어닐링(simulated annealing), 영역 색칠, 미로 찾기와 같은 다양한 응용도 살펴본다.
8장. '유전 프로그래밍'에서는 진화 알고리즘과 유전 프로그래밍에 대해 소개한다. 교배, 변이, 적합도 함수와 같은 다양한 개념을 살펴보며, 이를 이용해 기호 회귀 문제를 풀고 지능형 로봇 제어기를 만드는 방법을 알아본다.
9장. '인공지능을 이용한 게임 만들기'에서는 인공지능을 이용해 게임을 만드는 방법을 소개한다. 틱택토(Tic Tac Toe), 커넥트 포(Connect Four), 헥사폰(Hexapawn)을 비롯한 다양한 게임을 만들어본다.
10장. '자연어 처리'에서는 토큰화, 어간 추출, 백오브워드(bag of words)를 비롯한 여러 가지 텍스트 데이터 분석 기법을 소개한다. 이러한 기법을 이용해 감성 분석, 주제 모델링을 수행하는 방법도 살펴본다.
11장. '순차 데이터에 대한 확률 추론'에서는 시계열 데이터와 순차 데이터를 은닉 마르코프와 조건부 랜덤 필드로 분석하는 기법을 소개한다. 이러한 기법을 순차적 데이터 분석과 주식 시장 예측에 응용하는 방법도 살펴본다.
12장. '음성 인식기 만들기'에서는 음성 데이터를 분석하는 데 사용되는 다양한 알고리즘을 소개하고, 이를 이용해 음성 인식 시스템을 만들어본다.
13장. '물체 감지와 추적'에서는 실시간 비디오에서 물체를 감지하고 추적하는 알고리즘을 소개한다. 광학 흐름, 얼굴 추적, 시선 추적과 같은 다양한 기법도 살펴본다.
14장, '인공 신경망'에서는 신경망을 구축하는 알고리즘을 소개한다. 그리고 신경망을 이용해 광학 문자 인식(OCR) 시스템을 구현하는 방법도 살펴본다.
15장. '강화 학습'에서는 강화 학습 시스템을 구축하는 기법을 소개한다. 주변 환경과 상호작용하면서 학습하는 에이전트를 만드는 방법도 살펴본다.
16장. 'CNN을 이용한 딥러닝'에서는 CNN을 이용해 딥러닝 시스템을 구축하는 알고리즘을 소개한다. 그리고 텐서플로(TensorFlow)로 신경망을 구축하는 방법도 살펴보고, 이를 이용해 CNN으로 이미지 분류기를 만들어본다.
목차
목차
- 1장. 인공지능
- 인공지능이란?
- AI를 배워야할 이유
- AI의 응용 분야
- AI 관련 세부 분야
- 튜링 테스트를 이용한 지능의 정의
- 기계가 사람처럼 생각하게 만들기
- 이성적인 에이전트
- 범용 문제 해결기
- GPS를 이용한 문제 해결 방법
- 지능적인 에이전트 구현 방법
- 모델의 종류
- +파이썬 3 설치
- 우분투에 설치하기
- 맥 OS X에 설치하기
- 윈도우에 설치하기
- 패키지 설치
- 데이터 불러오기
- 요약
- 2장. 지도 학습을 이용한 분류와 회귀
- 지도 학습 및 비지도 학습
- +분류
- 데이터 전처리
- 이진화
- 평균 제거
- 크기 조정(scaling)
- 정규화
- 레이블 인코딩
- 로지스틱 회귀 분류기
- 나이브 베이즈 분류기
- 오차 행렬
- +서포트 벡터 머신
- SVM으로 소득 계층 분류하기
- 회귀 분석
- 단순 회귀 분석 모델 만들기
- 다중 회귀 분석 모델 만들기
- 서포트 벡터 회귀 모델로 주택 가격 예측하기
- 요약
- 3장. 앙상블 학습을 이용한 예측 분석
- 앙상블 학습
- +앙상블 학습을 이용한 학습 모델 구축하기
- 의사 결정 트리
- 의사 결정 트리 기반 분류기 구축하기
- 랜덤 포레스트와 극단 랜덤포레스트
- 랜덤 포레스트와 극단 랜덤 포레스트 분류기 만들기
- 예측 신뢰도 측정하기
- 클래스 별 데이터 불균형 처리
- 그리드 검색을 사용해 최적의 학습 매개변수 찾기
- 특징별 상대적 중요도 계산
- 극단 랜덤 포레스트 회귀분석을 이용한 교통량 예측
- 요약
- 4장. 비지도 학습을 이용한 패턴 추출
- 비지도 학습
- K-평균 알고리즘을 이용한 데이터 군집화
- 평균 이동 알고리즘으로 군집 개수 예측하기
- 실루엣 지수로 군집화 품질 측정하기
- 가우시안 혼합 모델
- 가우시안 혼합 모델 기반 분류기 만들기
- AP 모델로 주식 시장에서 소그룹 찾기
- 쇼핑 패턴에 따른 시장 세분화
- 요약
- 5장. 추천 시스템 만들기
- 학습 파이프라인 만들기
- 최근접 이웃 뽑기
- K-최근접 이웃 분류기 만들기
- 유사도 계산하기
- 협업 필터링을 이용해 유사한 사용자 찾기
- 영화 추천 시스템 만들기
- 요약
- 6장. 논리형 프로그래밍
- 논리형 프로그래밍
- 논리형 프로그래밍의 기본 구성 요소
- 논리형 프로그래밍을 이용한 문제 해결 방법
- 논리형 프로그래밍 관련 파이썬 패키지 설치 방법
- 수학 표현식 매칭하기
- 소수 검사기
- 가계도 분석기
- 지도 분석기
- 퍼즐 해결기
- 요약
- 7장. 휴리스틱 탐색 기법
- 휴리스틱 탐색
- 무정보 탐색 vs 정보 탐색
- 제약 조건 만족 문제(CSP)
- 지역 탐색 기법
- 시뮬레이티드 어닐링(SA)
- 그리디 탐색 기법으로 문자열 생성하기
- 제약 조건 만족 문제(CSP) 풀기
- 영역 칠하기
- 8-퍼즐 풀기
- 미로 찾기
- 요약
- 8장. 유전 알고리즘
- 진화 알고리즘과 유전 알고리즘
- 유전 알고리즘의 기본 개념
- 미리 정의된 매개변수를 이용해 비트 패턴 생성하기
- 진화 과정 시각화하기
- 기호 회귀 문제 푸는 방법
- 지능형 로봇 제어기 만들기
- 요약
- 9장. 인공지능을 이용한 게임 만들기
- 게임에서 검색 알고리즘 사용하기
- 조합 검색
- 미니 맥스 알고리즘
- 알파-베타 가지치기
- 네가맥스 알고리즘
- easyAI 라이브러리 설치하기
- 마지막 동전 피하기 게임 봇 만들기
- 틱택토 게임 봇 만들기
- 두 개의 커넥트 포 게임 봇을 만들어 서로 대결시키기
- 두 개의 헥사폰 게임 봇을 만들어 서로 대결시키기
- 요약
- 10장. 자연어 처리
- 관련 패키지 소개 및 설치
- 텍스트 데이터 토큰화
- 어간 추출을 통해 단어를 기본형으로 변형하기
- 표제화를 통해 단어를 기본형으로 변형하기
- 텍스트 데이터를 단어 묶음으로 나누기
- 백오브워드 모델을 사용해 단어 빈도 추출하기
- 카테고리 예측기 만들기
- 성별 분류기 만들기
- 감성 분석이기 만들기
- 잠재 디리클레 할당(Latent Dirichlet Allocation)을 통한 주제 모델링
- 요약
- 11장. 순차적 데이터에 대한 확률 추론
- 순차적 데이터 이해하기
- 팬더 패키지를 이용해 시계열 데이터 처리하기
- 시계열 데이터 분할하기
- 시계열 데이터 이용하기
- 시계열 데이터에서 통계 추출하기
- 은닉 마르코프 모델을 사용해 데이터 생성하기
- 조건부 랜덤 필드로 알파벳 문자열 예측하기
- 주식 시장 분석하기
- 요약
- 12장. 음성 인식기 만들기
- 음성 신호 이용하기
- 오디오 신호 시각화
- 오디오 신호를 주파수 도메인으로 변환
- 오디오 신호 생성
- 음악을 만들기 위해 음색tone 합성하기
- 음성 특징 추출하기
- 단어 인식하기
- 요약
- 13장. 물체 감지와 추적
- OpenCV 설치
- 프레임 차이 대조법
- 색 공간을 이용한 물체 추적 기법
- 배경 분리법를 이용한 물체 추적 기법
- 캠시프트 알고리즘을 이용한 인터랙티브 방식 물체 추적기
- 광학 흐름 기반 추적 기법
- 얼굴 검출 및 추적
- ++하 캐스케이드를 이용한 물체 감지
- 적분 이미지를 이용한 특징 추출
- 눈 검출 및 추적
- 요약
- 14장. 인공 신경망
- 인공 신경망의 개념
- 신경망 구축 방법
- 신경망 학습 방법
- 퍼셉트론 기반 분류기 구현 방법
- 단층 신경망 구축 방법
- 다층 신경망 구축 방법
- 벡터 양자화기 만들기
- +재귀 신경망을 이용한 순차적인 데이터 분석 방법
- OCR 데이터베이스로 문자 시각화하기
- OCR 엔진 만들기
- 요약
- 인공 신경망의 개념
- 15장. 강화 학습
- 기본 전제
- 강화 학습 vs 지도 학습
- 강화 학습의 실전 사례
- 강화 학습의 기본 구성 요소
- 강화 학습 환경 구축 방법
- 학습 에이전트 구현 방법
- 요약
- 16장. CNN을 이용한 딥러닝
- CNN의 정의
- CNN의 구조
- CNN에서 사용하는 계층의 종류
- 퍼셉트론 기반 선형 회귀 분석기
- 단층 신경망으로 이미지 분류기 만들기
- CNN을 이용해 이미지 분류기 만들기
- 요약
관련 블로그 글
상상이 현실로 바뀌는 인공지능을 개발하고 싶다면
"감시에 식별까지" AI 만난 '지능형 CCTV', 범죄 사각지대 없앤다
지니뮤직, 인공지능 기반 음성명령 서비스 '지니보이스' 출시
애플, 인공지능 스피커 '홈팟' 공개... 불붙은 IoT 주도권 겨쟁
P2P금융 소딧, 대출심사 알고리즘 인공지능 도입
인공지능(AI, Artificial Intelligence)은 인간의 지각, 추론, 학습능력 등을 컴퓨터 기술로 구현해 문제를 해결하는 기술을 말한다. 사실 몇 해 전까지만 해도 인공지능은 소설이나 영화에서만 나오는 이야기였지만, 스스로 생각하고 행동하는 로봇은 더 이상 먼 미래의 일이 아닐 뿐더러 생각보다 가까이 다가와 있다. 인공지능은 전세계적인 관심과 함께 빠른 속도로 발전하며, 대중들의 삶 속에 녹아들고 있다.
실제로 구글 딥마인드 사가 개발한 ‘알파고’부터 아이폰의 ‘시리’, ‘구글 나우’를 포함해 각종 전자기기에 인공지능을 적용한 사례는 주변에서 쉽게 찾을 수 있다. 그 외에도 자동차, 의료, 은행 등 거의 모든 분야에서 인공지능을 적용한 기술 개발에 뛰어들고 있는 상황이다.
최근 딥러닝을 비롯한 AI 기술에 대한 인기는 놀라울 정도다. 주기적으로 유행처럼 찾아오는 기술과 달리 다양한 분야의 IT 개발자로 하여금 AI를 공부하게 만들 정도로 큰 영향을 미치고 있으며, 이미 컴퓨터 서적 순위의 상위권은 머신 러닝이 점령했다. 세계적인 IT 선두 업체 중에서 AI에 관심 없는 회사는 찾아보기 힘들다. 이러한 현상이 영원하지는 않겠지만 생각보다 길게 이어지고 있다. 결론적으로 AI의 전문가가 아닌 개발자라도 AI의 기초는 갖출 필요가 있다. 역자 남기혁, 윤여찬
역자의 말처럼 상상을 현실로 만들 수 있는 인공지능 개발에 많은 개발자들이 관심을 가지고 있을 것이다. 이러한 개발자들에게 파이썬을 이용해 인공지능 애플리케이션 개발을 개발하는 이 책이 많은 도움이 될 것이라 생각한다.
파이썬으로 배우는 인공지능의 가장 큰 특징은 인공지능과 관련된 다양한 개념과 이론을 간략하게 소개한 뒤 실제 예제를 제공해 직접 실행을 확인할 수 있다는 점이다. 게다가 모든 개념과 기법마다 파이썬 예제를 제공하고 있어 파이썬 프로그램을 통해 개념을 직접 확인할 수도 있다.
각 장에서는 주제와 관련된 알고리즘을 소개하고, 해당 알고리즘을 실제로 사용할 수 있는 예제를 만드는 데 사용한다. 예를 들어 2장의 ‘주택 가격 예측 프로그램’, 5장의 ‘영화 추천 기능’, 7장의 ‘음성 인식 시스템’ 등 복잡할 수 있는 개념을 친숙한 예제로 쉽게 확인할 수 있다.
이미 언급했듯이 최근 다양한 인공지능 적용 사례가 늘어나고 많은 사람들의 관심을 받고 있는 가운데, 인공지능에 관심이 있는 파이썬 개발자라면 이 책을 통해 전반적인 AI 기술을 배우고 활용할 수 있을 것이다.
책 속의 개념들을 머릿속으로 상상하는 대신 책에서 튀어나와 현실 세계와 상호작용하는 인공지능을 개발하고 싶다면 이 책을 읽어보기 바란다.
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
도서 오류 신고
정오표
정오표
[p.77 : 아래서 3행]