신간도서

신간도서

인공지능 2판

파이썬으로 배우는 머신러닝과 딥러닝
  • 저자천인국
  • 관련분야인공지능, 머신러닝, 딥러닝, 기계학습
  • 발행일2023-03-10
  • 정가33,000원
  • 페이지592 페이지
  • ISBN979-11-92373-16-4
  • 일반자료 소스파일 (Source File)
    정오표
  • 책소개
  • 저자소개
  • 목차
  • 출판사 서평

<인공지능 2>은 인공지능을 처음 배우는 학습자라도 쉽게 따라올 수 있을 만큼 다양한 그림과 실습으로 가득하다. 특히 딥러닝 분야에서는 구글이 제공하는 텐서플로우 플레이그라운드 사이트를 이용하여 개념을 쉽게 이해할 수 있도록 하였다. 각 장의 본문에는 학습자의 진도에 따라 적절한 실습들이 이어지며, 이것들을 따라 하다 보면 실전에 적용되는 인공지능의 다양한 이론들을 습득하게 된다. 각 장의 끝에는 연습문제를 두어 학습자들이 추가로 학습할 수 있도록 하였다.

이번 개정판에서 변경된 부분은 다음과 같다.

○ 인공지능 소개 내용에 최신의 경향을 반영하였다.

탐색을 위한 파이썬 코드를 수정, 보완하였다.

전통적인 머신러닝 이론인 결정 트리를 추가하였다.

기존의 책에는 없었던 영상 인식 딥러닝, 강화 학습, 생성 모델 등의 내용을 추가하고, 강화 학습 실습 코드를 보완하였다.


천인국

서울대학교 전자공학과에 입학하여 1983년에 공학사 학위를 취득하였고, 한국과학기술원 대학원에 입학하여 1985년에 전기 및 전자공학과 석사 학위를, 1993년에 박사 학위를 취득하였다. 1985년부터 1988년까지 삼성전자 종합연구소에서 주임 연구원으로 재직하였고, 1993년부터 현재까지 순천향대학교 컴퓨터공학과 교수로 재직 중이다. 2005년에는 캐나다 UBC에서 방문교수를 지냈다.


저서로는 HTML5+CSS3+자바스크립트로 배우는 웹프로그래밍 기초 2(2023, 인피니티북스), Power JAVA 3(2022, 인피니티북스), 인공지능(2020, 인피니티북스), 스크래치로 배우는 컴퓨팅 사고와 문제해결(2019, 인피니티북스), OpenCV를 이용한 디지털 영상처리(2019, 인피니티북스), Power Java Compact(2018, 인피니티북스), 어서와 C++는 처음이지!(2018, 인피니티북스), 문제해결과 컴퓨팅 사고(2017, 인피니티북스), 문제해결과 컴퓨팅 사고를 위한 스크래치(2017, 인피니티북스), 문제해결과 컴퓨팅 사고를 위한 파이썬(2017, 인피니티북스), 어서와 파이썬은 처음이지!(2016, 인피니티북스), 어서와 Java는 처음이지!(2015, 인피니티북스), 어서와 C언어는 처음이지!(2015, 인피니티북스), HTML5+CSS3+자바스크립트로 배우는 웹프로그래밍 기초(2014, 인피니티북스), C++ Espresso(2010, 인피니티북스), Power C++(2010, 인피니티북스), 쉽게 풀어쓴 C언어 Express(2007, 생능출판사), C언어로 쉽게 풀어쓴 자료구조(2005, 생능출판사) 등이 있다.

Chapter 01 인공지능 소개

01 인공지능의 시대

인공지능의 충격

우리 생활에 스며든 인공지능

인공지능과 인간

02 인공지능의 정의

지능형 에이전트

인공지능 vs 머신러닝 vs 딥러닝

03 튜링 테스트

ELIZA

중국어 방(The Chinese Room)

2014년 유진 구스트만

튜링 테스트의 문제점

04 인공지능의 역사

인공지능의 태동(1943-1956)

황금기(1956-1974)

첫 번째 인공지능의 겨울(1974-1980)

전성 시대(1980-1987)

두 번째 인공지능의 겨울(1987-1993)

인공지능의 부활(1993-2011)

딥러닝, 빅데이터 및 인공지능(2011-현재)

05 인공지능은 어디에 필요할까?

자율주행 자동차

동영상 추천 시스템

광고 시스템

챗봇(Chatbot)

의료 분야

예술 창작

신약 개발과 생물학 분야

초거대 AI

Mini Project 구글의 딥드림 사용해 보기

Mini Project ChatGPT 체험하기

Summary

연습문제


Chapter 02 탐색

01 탐색

02 상태 공간 탐색 문제

상태 공간 탐색 문제

LAB 경로 찾기 문제

LAB N-queen 문제

03 탐색 트리

LAB 4-queen 문제 탐색 트리

04 기본적인 탐색 기법

탐색 성능 측정

05 깊이 우선 탐색

깊이 우선 탐색의 분석

06 너비 우선 탐색

너비 우선 탐색의 분석

07 깊이 제한 탐색

IDDFS의 장점과 단점

08 FS DFS 8-퍼즐 프로그램

보드를 어떻게 표현할 것인가?

open closed 큐는 무엇으로 구현할 것인가?

자식 노드들은 어떻게 생성할 것인가?

BFS 전체 소스코드

DFS 프로그램

09 경험적 탐색 방법

10 언덕 등반 기법

알고리즘

지역 최대 문제

11 최고 우선 탐색

12 A* 알고리즘

LAB A* 알고리즘 시뮬레이션

13 A* 알고리즘의 파이썬 구현

LAB N-queen 문제의 탐색 알고리즘

Mini Project TSP

Summary

연습문제


Chapter 03 게임 트리

01 게임 프로그램

게임 정의

Tic-Tac-Toe에 대한 게임 트리

02 미니맥스 알고리즘

Tic-Tac-Toe 게임에 미니맥스 알고리즘 적용

LAB 미니맥스 알고리즘 실습

미니맥스 알고리즘의 의사코드

미니맥스 성능 분석

03 Tic-Tac-Toe 게임 프로그래밍

04 알파베타 가지치기

알파베타 알고리즘

알파베타 알고리즘 실습

05 불완전한 결정

Summary

연습문제


Chapter 04 전문가 시스템

01 전문가 시스템

전문가 시스템의 역사

02 전문가 시스템의 구성 요소

지식베이스

추론 엔진

사용자 인터페이스

03 지식과 인공지능

데이터, 정보, 지식

04 규칙

규칙에 AND OR를 사용할 수 있다

05 전문가 시스템에서의 추론

순방향 추론

역방향 추론

LAB 추론 실습

LAB 화재 처리 시스템

06 충돌 해법

07 전문가 시스템의 장점과 단점

Summary

연습문제


Chapter 05 지식 표현

01 지식 표현(Knowledge Representation)

02 규칙

03 의미망

04 프레임

프레임의 장점

프레임과 객체 지향 프로그래밍

프레임과 상속

시맨틱 웹과 프레임

05 논리(Logic)

06 명제 논리

명제 논리에서의 추론

모더스 포넌스(Modus Ponens)

부정 논법(Modus Tollens)

삼단논법(Syllogism)

07 술어 논리

08 술어 논리에서 추론

정형식

논리융합(Resolution)

논리융합에 의한 증명

09 시맨틱 웹과 온톨로지 소개

기존 웹의 문제점

시맨틱 웹

시맨틱 웹의 예

시맨틱 웹의 요소 기술

온톨로지

10 프롤로그(Prolog)

LAB 논리융합 실습 #1

LAB 논리융합 실습 #2

LAB 논리융합 실습 #3

Summary

연습문제


Chapter 06 퍼지 논리

01 퍼지 논리란?

퍼지 논리를 사용할 수 있는 분야

02 크리스프 집합과 퍼지 집합

크리스프 집합

퍼지 집합

퍼지 집합의 표기 방법

LAB 퍼지 집합의 예

03 퍼지 집합에서의 연산자

집중화 연산자 CON DIL

LAB 퍼지 집합 연산자

04 퍼지 추론

퍼지 규칙

퍼지 추론의 기본

퍼지 추론의 과정

규칙이 여러 개 있는 경우

LAB 팁을 주는 문제

Summary

연습문제


Chapter 07 불확실성

01 불확실성

불확실성의 예

불확실성은 왜 발생하는 것인가

인공지능 시스템에서의 불확실성 처리

02 확률을 이용한 불확실성 처리

사전 확률과 사후 확률

베이즈 정리

LAB 내가 Z-바이러스에 감염되었을까?

LAB 과일 문제

LAB 카드 게임

03 베이즈 정리와 추론

증거와 가설이 여러 개일 때

베이즈 정리의 단점

LAB 베이즈 정리로 규칙의 확률 계산

LAB 스팸 필터링

LAB 몬티 홀 문제

04 확신도

확신도의 정의

불확실한 증거를 가진 규칙에서의 확신도

규칙이 여러 개의 전제를 가지는 경우

LAB 확신도 실습

Summary

연습문제


Chapter 08 유전자 알고리즘

01 자연계에서의 진화

02 유전자 알고리즘

염색체, 인코딩, 평가 함수

유전자 알고리즘의 의사코드

선택 연산자

교차 연산자

돌연변이 연산자

유전자 알고리즘

03 유전자 알고리즘의 예제

04 유전자 알고리즘 프로그램

LAB 8-queen 문제

LAB TSP 문제

05 유전자 알고리즘의 장단점

06 유전자 프로그래밍

어떻게 프로그램을 표현할 것인가?

기본 연산들

GP 알고리즘

Summary

연습문제


Chapter 09 머신러닝 소개

01 머신러닝이란?

머신러닝과 전통적인 프로그래밍과의 차이점

인공지능, 머신러닝, 딥러닝

머신러닝의 역사

머신러닝의 종류

02 머신러닝의 용어들

특징(Feature)

함수 근사와 머신러닝

레이블(Label)

샘플

학습과 예측

학습 데이터와 테스트 데이터

03 지도 학습

회귀(Regression)

분류(Classification)

Mini Project 티처블 머신 이용하여 머신러닝 체험하기

04 비지도 학습

05 강화 학습

06 머신러닝의 과정

데이터 수집

학습 데이터와 테스트 데이터

모델 선택

학습

평가

예측

07 머신러닝 알고리즘의 성능 평가

정확도

혼동 행렬

Mini Project 머신러닝 체험하기

08 머신러닝의 용도

머신러닝은 어디에 이용되는가?

프로그래머로서 머신러닝의 실용적인 가치

Summary

연습문제


Chapter 10 선형회귀

01 선형 회귀

선형 회귀 소개

선형 회귀의 종류

선형 회귀의 원리

학습과 손실

02 선형 회귀에서 손실 함수 최소화 방법

분석적인 방법

경사하강법(Gradient Descent Method)

선형 회귀에서 경사하강법

03 선형 회귀 파이썬 구현 #1

04 선형 회귀 파이썬 구현 #2

선형 회귀를 그래프로 그려보자

LAB 선형 회귀 실습

05 과잉 적합 vs 과소 적합

LAB 당뇨병 예제

LAB 면적에 따른 집값 예측

Summary

연습문제


Chapter 11 kNN, K-means, 결정 트리

01 kNN 알고리즘

kNN 알고리즘 정리

수정된 kNN 알고리즘

kNN 알고리즘의 장점과 단점

02 예제: kNN을 이용한 붓꽃 분류

특징과 레이블

그래프 그리기

kNN 학습하기

예측해보자

03 예제: kNN으로 필기체 이미지 분류

데이터 세트 읽어들이기

학습 데이터와 테스트 데이터

모델

학습

예측 및 평가

04 머신러닝 알고리즘의 성능 평가

혼동 행렬을 출력해 보자

분류 리포트

05 K-means 클러스터링

K-means 클러스터링의 예

K-means 클러스터링

06 sklearn을 이용한 K-means 클러스터링

라이브러리를 포함시킨다

데이터를 준비한다

데이터 시각화

클러스터 만들기

k를 결정하는 방법

팔꿈치 방법의 구현

LAB K-means 클러스터링 실습

07 의사 결정 트리(Decision Tree)

의사 결정 트리의 원리

어떻게 트리를 구축하는 것일까?

엔트로피

sklearn을 이용한 의사 결정 트리

08 예제: 의사 결정 트리를 이용한 붓꽃 분류

Summary

연습문제


Chapter 12 퍼셉트론

01 신경망

신경망의 장점

뉴런의 수학적인 모델

02 퍼셉트론

퍼셉트론은 논리 연산을 학습할 수 있을까?

03 퍼셉트론 학습 알고리즘

예제

sklearn으로 퍼셉트론 실습하기

04 퍼셉트론의 한계점

XOR 연산 학습

선형 분류 가능 문제

다층 퍼셉트론으로 XOR 문제를 해결

LAB 퍼셉트론으로 분류

Summary

연습문제


Chapter 13 다층 퍼셉트론(MLP)

01 다층 퍼셉트론

활성화 함수

계단 함수

시그모이드 함수

ReLU 함수

하이퍼볼릭 탄젠트 함수

02 순방향 패스

행렬로 표기해 보자

03 오차 계산

손실 함수란?

손실 함수의 구체적인 예

손실 함수 계산 예

04 역방향 패스

무엇을 알면 될까?

경사하강법

경사하강법의 재소개

그래디언트

LAB 경사하강법의 실습

05 역전파 알고리즘

체인룰의 적용

은닉층 노드

결론을 내려보자

역전파 학습 알고리즘

LAB 역전파 알고리즘 애니메이션

06 넘파이를 이용한 MLP 구현

1) 순방향 전파

2) 오차 역전파를 수행한다

3) 학습이 종료된 이후에 테스트하는 함수를 작성한다

4) 학습 함수와 테스트 함수를 순차적으로 호출한다

07 구글의 플레이그라운드를 이용한 실습

에포크

학습률

활성화 함수 선택

문제 유형

학습 데이터와 테스트 데이터의 비율

입력 특징 선택

은닉층 추가하기

학습 시작

은닉층 없이 분류 실습

은닉층을 추가한 실습

08 구글의 텐서플로

텐서플로 설치하기

케라스 예제

LAB MLP를 사용한 MNIST 숫자인식

Summary

연습문제


Chapter 14 심층 신경망과 딥러닝

01 딥러닝

은닉층의 역할

02그래디언트 소멸 문제

새로운 활성화 함수

Mini Project 활성화 함수 실험

03 손실 함수 문제

평균 제곱 오차

소프트맥스(Softmax) 활성화 함수

교차 엔트로피 손실 함수

LAB 교차 엔트로피의 계산

04 케라스에서의 손실 함수

BinaryCrossentropy

CategoricalCrossentropy

SparseCategoricalCrossentropy

MeanSquaredError

05 가중치 초기화 문제

가중치 초기화 방법

Mini Project 가중치 초기화 실험

06 미니 배치

07 데이터 정규화

08 데이터 엔코딩 기법

09 학습률과 모멘텀

10 과잉 적합의 처리

과잉 적합을 아는 방법

과잉 적합 처리 방법

조기 종료

가중치 규제 방법

데이터 증강

드롭아웃

앙상블

Mini Project 배치 크기, 학습률, 규제항

11 예제: MNIST 숫자 인식

숫자 데이터 가져오기

모델 구축하기

학습시키기

12 예제: MNIST 패션 아이템 분류

완전 연결 신경망 이용

Summary

연습문제


Chapter 15 컨볼루션 신경망

01 컨볼루션 신경망 소개

컨볼루션 신경망의 기원

네오코그니트론

컨볼루션 신경망의 중요성

Mini Project 컨볼루션 네트워크 체험하기

02 컨볼루션 연산

컨볼루션 신경망의 구조

영상 처리에서의 컨볼루션 연산

컨볼루션 신경망에서의 컨볼루션 연산

보폭

패딩

커널의 개수

03 풀링(서브 샘플링)

04 예제: MNIST 패션 아이템 분류

Summary

연습문제


Chapter 16 영상 인식

01 영상 인식이란?

Mini Project 영상 인식 신경망 체험하기

02 전통적인 영상 인식

03 심층 신경망을 이용한 영상 인식

04 예제: CIFAR-10 영상 분류하기

CIFAR-10 데이터 세트

컨볼루션 신경망을 이용한 CIFAR-10 분류 프로그램

05 데이터 증강

06 예제: 강아지와 고양이 구별하기

강아지와 고양이 데이터 세트

라이브러리 설치

이미지 출력

신경망 모델 생성

이미지 전처리

학습

학습 결과 그래프 표시

07 가중치 저장과 전이 학습

학습된 가중치의 저장 및 적재

전이 학습

사전 훈련된 신경망 모델

사전 훈련된 모델을 내 프로젝트에 맞게 재정의하기

예제 #1: 강아지 인식 프로그램 작성

예제 #2: 사전 훈련된 모델을 특징 추출기 전처리기로 사용

Summary

연습문제


Chapter 17 강화 학습

01 강화 학습이란?

강화 학습의 원리

강화 학습 프레임워크

강화 학습과 딥러닝

02얼음 호수 게임

OpenAI 재단

얼음 호수(FrozenLake) 게임

얼음 호수 게임 버전 #1

실행 결과 분석

03 Q-학습 #1

보상

Q-함수

정책(Policy)

Q-값 순환 관계식

얼음 호수 문제에서 실제로 Q-값을 계산해 보자

얼음 호수 게임 버전 #2

04 Q-학습 #2

탐험과 활용

할인(Discount)된 보상

학습률

얼음 호수 게임 버전 #3

05 Deep Q-학습

왜 신경망을 사용하는가?

DQN(Deep Q Network)

Q-학습 vs Deep Q-학습

학습 방법

알고리즘

실제 적용 예

문제점

심층 Q-학습의 단점

Summary

연습문제


Chapter 18 생성 모델

01 생성 모델이란?

생성 모델은 훈련 데이터를 생성하는 규칙을 파악한다

판별 모델과 생성 모델의 차이

02 GAN이란?

GAN의 구조

GAN 훈련 과정

판별자 훈련

생성자 훈련

손실 함수

03 예제: GAN으로 숫자 이미지 생성

Summary

연습문제

찾아보기


2016년 알파고가 이세돌을 이기는 바둑 이벤트는 전 세계 사람들에게 큰 충격을 주었으며, 인공지능은 컴퓨터공학에서 가장 떠오르는 분야가 되었다. 딥러닝 알고리즘이 개발되고 2012년에 열린 영상 인식 대회에서 객관적인 방법으로 딥러닝의 우수성이 증명된 이후로 거의 모든 나라에서 인공지능 기술을 미래의 핵심 기술로 개발하고 있다. 인공지능의 역사에서 두 번이나 접했던 인공지능 겨울을 극복하고 광범위한 빅데이터 수집과 분석을 위한 과학, 고도로 발전한 반도체 집적, 그리고 초고속의 처리 기술을 바탕으로 새로운 인공지능의 시대가 열리고 있는 것이다.

본서는 새로운 인공지능의 시대를 준비하는 필독서로서 컴퓨터, 전자, 정보통신, 기계 등 융합 기술을 전공하는 공학도와 인공지능을 처음 접하는 컴퓨터 비전공자들도 다양한 예제와 실습을 통해 인공지능의 기초적인 개념과 이론을 익힐 수 있다. 인공지능의 기본적인 이론을 빠짐없이 수록하였으며 딥러닝을 포함하여 머신러닝을 10개의 장에 걸쳐서 자세히 설명하였다. 딥러닝 분야는 구글의 텐서플로를 기본으로 고수준 라이브러리인 케라스를 사용하여 실습할 수 있으며, 구글의 텐서플로 플레이그라운드를 이용하여 체험할 수 있다.