<인공지능 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개의 장에 걸쳐서 자세히 설명하였다. 딥러닝 분야는 구글의 텐서플로를 기본으로 고수준 라이브러리인 케라스를 사용하여 실습할 수 있으며, 구글의 텐서플로 플레이그라운드를 이용하여 체험할 수 있다.