책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/skku-ai-textbook/aitextbook
요약
인공지능에 관심이 있지만 복잡한 수식이나 어려운 코드 때문에 학습을 시작하기 어려웠던 사람들을 위한 책이다. 누구나 쉽게 인공지능 개발을 경험할 수 있도록 수학적 설명을 최대한 배제했다. 코딩에 대한 기초 지식 없이도 쉽게 인공지능 개발에 도전할 수 있도록 개발 환경 구축부터 파이썬의 기초적인 사용법을 다룬다. 또한 실제 인공지능 개발 workflow를 소개함으로써 인공지능 개발의 A to Z를 모두 경험할 수 있는 기회를 제공한다. 이 책은 인공지능 개발에 도전하고 싶은 분들이 파이썬을 이용해서 그 첫걸음을 떼는 데 도움이 될 것이다.
이 책에서 다루는 내용
◆ 인공지능 입문자를 고려한 인공지능 개발A to Z 소개
◆ 수식보다 개념적 이해를 통한 인공지능 학습 과정에 초점을 맞춘 설명
◆ 인공지능 개발 과정에서 생길 수 있는 윤리적 이슈 소개
◆ 누구나 쉽게 인공지능을 개발할 수 있도록 구글 코랩(colab) 개발 환경 사용
◆ 인공지능 개발을 위한 파이썬 기초부터 데이터 처리, 데이터 시각화 실습
◆ 인공지능 개발 워크플로우 설명
◆ 실제 활용할 수 있는 인공지능 개발 예제 포함
◆ 예측, 분류, 군집화, 텍스트 자동 분석 등 다양한 인공지능 개발 실습 제공
◆ 인공지능 개발에 필요한 다양한 노하우 수록
이 책의 대상 독자
◆ 인공지능을 처음 접해 개념 이해와 코딩 기초부터 탄탄히 쌓고 싶은 분
◆ 인공지능 학습을 어디에서부터 시작해야 할지 감이 잘 잡히지 않는 분
◆ 본격적으로 인공지능을 배우기에 앞서, 인공지능 개발의 A to Z를 경험해 보고 싶은 분
◆ 복잡한 수학적 설명이나 어려운 코드 때문에 인공지능 학습을 포기한 경험이 있는 분
◆ 업무 효율 증대와 합리적 의사결정을 위해 인공지능 개발을 해보고 싶은 분
이 책의 구성
첫 두 챕터는 인공지능에 대한 개괄적 이해를 돕는다. 먼저 1장은 인공지능의 개념과 이 책의 구성을 설명한다. 2장에서는 앞으로 인공지능을 개발하면서 고려해야 할 윤리적 쟁점에 대해서 논의한다. 인공지능의 객관성에 대한 질문부터 인공지능을 만드는 데 사용되는 데이터의 대표성까지 인공지능 개발자로서 항상 비판적 시선으로 인공지능 시스템 개발 과정을 바라볼 필요가 있기 때문이다.
8장에서는 인공지능 시스템을 만드는 데 필요한 컴퓨터 프로그램 언어인 파이썬을 배운다. 9장부터 12장까지는 본격적으로 인공지능 시스템을 만드는 데 필요한 단계들을 개념적으로 설명한다. 파이썬의 기초, 인공지능 개발 파이프라인, 인공지능 개발 실습의 세 부분으로 구성돼 있다.
상세 이미지
목차
목차
- 1장. 들어가며
- 1.1 인공지능이란 무엇인가?
- 1.2 이 책의 특징
- 1.3 이 책의 구성
- 1.3.1 파이썬의 기초
- 1.3.2 인공지능 개발 파이프라인
- 1.3.3 인공지능 개발 실습
- 1.4 요약
- 2장. 인공지능과 사회 윤리
- 2.1 인공지능과 윤리
- 2.2 데이터 수집과 윤리
- 2.3 인공지능과 데이터 편향
- 2.4 인공지능과 사회적 영향
- 2.5 요약
- 3장. 파이썬과 구글 코랩 사용하기
- 3.1 왜 파이썬을 사용해야 하나?
- 3.2 구글 코랩은 무엇인가?
- 3.3 구글 코랩의 A to Z
- 3.3.1 구글 코랩 실행하기
- 3.3.2 코드셀과 텍스트셀
- 3.3.3 코랩 노트북 공유 방법
- 3.3.4 구글 코랩 코드 히스토리 보기
- 3.4 구글 코랩에서 외부 파일 사용하기
- 3.5 구글 코랩 중단하기
- 3.5.1 실행 중인 코드 중단하기
- 3.5.2 런타임 재시작하기 및 런타임 초기화하기
- 3.6 요약
- 4장. 파이썬과 친해지기 1
- 4.1 파이썬 시작하기
- 4.1.1 안녕, 세상아! 출력하기
- 4.1.2 주석 달기
- 4.2 파이썬을 사용해 계산 결과 출력하기
- 4.2.1 파이썬에서의 사칙 연산
- 4.2.2 왜 마지막 값만 출력될까?
- 4.3 파이썬에서 사용되는 데이터의 종류
- 4.3.1 파이썬에서 사용하는 네 가지 데이터 유형
- 4.3.2 문자열에서의 따옴표 사용
- 4.3.3 데이터 값 사이의 연산
- 4.3.4 큰 숫자의 표시
- 4.3.5 데이터 간 유형 변환
- 4.4 문자열 인덱싱과 슬라이싱
- 4.4.1 인덱싱 실습
- 4.4.2 슬라이싱
- 4.5 요약
- 연습문제 1
- 4.1 파이썬 시작하기
- 5장. 파이썬과 친해지기 2
- 5.1 변수
- 5.1.1 변수에 데이터 저장하기
- 5.1.2 변수명 정하기
- 5.1.3 사용자에게 데이터를 입력받아 변수에 저장하기
- 5.2 리스트
- 5.2.1 리스트 만들기
- 5.2.2 리스트에 저장되는 데이터의 유형
- 5.2.3 리스트의 인덱싱과 슬라이싱
- 5.2.4 리스트의 연산
- 5.3 리스트 안의 데이터 다루기
- 5.3.1 리스트 안의 데이터 수정
- 5.3.2 명령어를 사용해 리스트 안의 요소 처리
- 5.3.3 리스트의 복제
- 5.4 딕셔너리
- 5.4.1 딕셔너리 만들기
- 5.4.2 딕셔너리 인덱싱
- 5.5 딕셔너리 안의 데이터 다루기
- 5.5.1 딕셔너리 데이터 추가
- 5.5.2 딕셔너리 안의 데이터 수정
- 5.5.3 딕셔너리 안의 데이터 삭제
- 5.5.4 딕셔너리 복제
- 5.6 요약
- 연습문제 2
- 5.1 변수
- 6장. 조건문과 반복문
- 6.1 연산자
- 6.1.1 대입연산자
- 6.1.2 비교연산자
- 6.1.3 멤버연산자
- 6.1.4 식별연산자
- 6.2 조건문의 활용
- 6.2.1 조건문의 형식
- 6.2.2 복수의 조건문 사용법
- 6.2.3 if, elif, else의 활용
- 6.3 반복문
- 6.3.1 반복문은 왜 필요한가?
- 6.3.2 while을 사용해 조건이 만족할 때까지 반복해 실행하기
- 6.3.3 while문과 조건문의 사용
- 6.4 for를 사용해 일정 범위에서 반복문을 사용하기
- 6.4.1 for문의 기본 문법
- 6.4.2 for의 중첩 사용
- 6.4.3 for와 if, continue의 사용
- 6.5 리스트의 요소 자동으로 채우기
- 6.5.1 리스트 컨프리헨션의 형식
- 6.5.2 리스트 컴프리헨션과 조건문 사용하기
- 6.6 딕셔너리의 요소 자동으로 채우기
- 6.6.1 딕셔너리 컴프리헨션 만들기
- 6.6.2 조건문과 함께 딕셔너리 컴프리헨션 사용하기
- 6.7 요약
- 연습문제 3
- 6.1 연산자
- 7장. 판다스의 활용
- 7.1 판다스
- 7.1.1 판다스 사용할 준비하기
- 7.1.2 데이터 시리즈
- 7.1.3 데이터 시리즈의 특성
- 7.2 데이터프레임
- 7.2.1 데이터프레임 만들기
- 7.2.2 데이터프레임 인덱싱하기
- 7.3 외부 데이터 관리하기
- 7.3.1 데이터 불러오기
- 7.4 데이터프레임 살펴보기
- 7.4.1 데이터 특성 확인하기
- 7.4.2 데이터프레임의 연산
- 7.4.3 조건에 맞는 데이터만 가져오기
- 7.5 데이터 합치기
- 7.5.1 .append()를 사용해 반복되는 데이터 합치기
- 7.5.2 .merge()를 사용해 독립적인 두 데이터 합치기
- 7.6 탐색적 데이터 분석 및 처리
- 7.6.1 데이터프레임에 대한 기본 정보 살펴보기
- 7.6.2 데이터 탐색적 분석하기
- 7.6.3 열에 대한 여러 정보를 한번에 보기
- 7.7 명목 변수를 사용해서 그룹별로 기술 통계치 출력하기
- 7.7.1 명목 변수란?
- 7.7.2 명목 변수를 사용해 데이터 나눠 보기
- 7.8 요약
- 연습문제 4
- 7.1 판다스
- 8장. 데이터 시각화 실습
- 8.1 데이터 시각화
- 8.1.1 시각화를 위해서 사용한 seaborn 모듈
- 8.1.2 간단한 선 그래프 그리기
- 8.2 분포도를 사용해 데이터 분포 보기
- 8.2.1 변수 하나의 분포도 시각화하기
- 8.2.2 여러 데이터의 분포도를 시각화하기
- 8.2.3 막대의 크기 조절
- 8.2.4 명목 변수를 사용해 하나의 분포도에 다른 그룹을 시각화하기
- 8.3 박스플롯을 사용해 데이터 특성 파악하기
- 8.3.1 박스플롯의 개념
- 8.3.2 박스플롯 시각화
- 8.3.3 명목 변수를 사용해 그룹별로 박스플롯 시각화하기
- 8.3.4 여러 그룹의 분포 살펴보기
- 8.4 두 변수의 관계를 산점도를 사용해 시각화하기
- 8.4.1 산점도 그리기
- 8.4.2 그룹에 따라 산점도를 다르게 시각화하기
- 8.4.3 데이터별 크기 조절
- 8.5 히트맵을 사용해 두 변수의 빈도 구하기
- 8.5.1 히트맵의 개념과 실습 데이터
- 8.5.2 피벗테이블 만들기
- 8.5.3 히트맵 만들기
- 8.6 워드클라우드로 단어 빈도 시각화하기
- 8.6.1 분석 준비하기
- 8.6.2 데이터 전처리
- 8.6.3 단어 빈도 수 시각화하기
- 8.6.4 워드클라우드 조정하기
- 8.7 요약
- 연습문제 5
- 8.1 데이터 시각화
- 9장. 인공지능 개발 파이프라인
- 9.1 인공지능 개발 워크플로
- 9.2 문제 제기
- 9.3 데이터 파악
- 9.4 데이터 전처리 및 정제
- 9.5 모델 학습, 검증, 평가
- 9.6 요약
- 10장. 데이터 수집/이해/처리
- 10.1 데이터란 무엇인가?
- 10.1.1 구조화된 데이터와 비구조화된 데이터
- 10.2 데이터 수집
- 10.2.1 탐색적 데이터 분석
- 10.3 데이터 전처리 실습
- 10.3.1 결측값 처리
- 10.3.2 결측값 처리 실습
- 10.3.3 이상치 처리 실습
- 10.4 데이터 정제
- 10.4.1 기존의 데이터를 사용해 새로운 데이터로 변환
- 10.4.2 데이터 리코딩
- 10.4.3 원-핫-인코딩
- 10.5 요약
- 10.1 데이터란 무엇인가?
- 11장. 모델과 학습
- 11.1 모델이란?
- 11.2 인공지능에서 학습이란?
- 11.3 지도 학습
- 11.4 비지도 학습
- 11.5 강화학습
- 11.6 요약
- 12장. 모델 검증 및 평가
- 12.1 모델을 왜 평가하나?
- 12.1.1 지도 학습을 사용해 학습한 모델의 평가
- 12.1.2 비지도 학습을 사용해 학습한 모델의 평가
- 12.2 과소적합과 과대적합 문제
- 12.3 모델 검증과 평가 실습
- 12.3.1 과소적합 및 과대적합 실습 준비
- 12.3.2 회귀분석 학습 및 평가
- 12.4 교차 검증
- 12.4.1 교차 검증의 개념
- 12.4.2 K-겹 교차 검증
- 12.4.3 K-겹 교차 검증 실습
- 12.5 모델 평가
- 12.5.1 예측 모델
- 12.5.2 분류 모델
- 12.5.3 비지도 학습에서의 평가
- 12.6 요약
- 12.1 모델을 왜 평가하나?
- 13장. 예측 문제 해결하기(비가 오는 날은 영화 관객 수가 줄어들까?)
- 13.1 들어가며
- 13.2 선형 회귀 모델에 대한 개념적 설명
- 13.3 인공지능 모델 학습 준비
- 13.3.1 준비하기
- 13.3.2 데이터 불러오기
- 13.4 데이터 탐색적 분석
- 13.5 예측 모델 학습
- 13.5.1 데이터셋 준비
- 13.5.2 데이터셋 분리
- 13.6 모델 학습
- 13.7 정규화
- 13.8 모델 검증 및 평가
- 13.8.1 모델 평가
- 13.9 K-겹 교차 검증
- 13.10 모델 평가 활용
- 13.11 학습된 모델로 2020년 영화 관객 수 예측해 보기
- 13.12 요약
- 연습문제 6
- 14장. 분류 문제 해결하기(누가 신문을 읽고 있을까?)
- 14.1 들어가며
- 14.1.1 서포트 벡터 머신의 개념
- 14.2 분류 모델 학습 준비
- 14.2.1 데이터 준비
- 14.2.2 탐색적 분석
- 14.3 분류 모델 학습
- 14.3.1 데이터 준비
- 14.3.2 분류 모델 학습
- 14.4 모델 평가
- 14.4.1 혼동행렬
- 14.4.2 혼동행렬을 사용해 평가 지표 구하기
- 14.4.3 Receiver Operating Characteristics(ROC) 커브를 사용해 모델 평가하기
- 14.5 모델 성능 개선
- 14.5.1 모델 개선: 분류에 사용하는 특성이 많아지면 모델 성능이 향상될까?
- 14.5.2 변수를 계속 추가하면 모델의 성능이 계속 향상될까?
- 14.5.3 모델 성능 비교
- 14.5.4 K-겹 교차 검증
- 14.6 요약
- 연습문제 7
- 14.1 들어가며
- 15장. 군집화 문제 해결하기(강수량과 평균 기온으로 사계절을 구분할 수 있을까?
- 15.1 K-평균 군집화의 개념
- 15.2 K-평균 군집화 모델 학습
- 15.2.1 준비하기
- 15.2.2 탐색적 분석
- 15.2.3 모델 학습
- 15.2.4 학습된 모델 확인
- 15.2.5 K-평균 군집 모델 시각화
- 15.3 K-평균 군집화 모델 평가
- 15.3.1 실루엣 분석의 개념
- 15.3.2 각 데이터별 실루엣 계수 구하기
- 15.3.3 실루엣 계수를 사용해 모델 성능 비교
- 15.3.4 실루엣 분석 시각화
- 15.4 요약
- 연습문제 8
- 16장. 텍스트를 자동으로 분류하기(토픽 모델링을 사용한 신문사설 자동 분류 모델)
- 16.1 토픽 모델링이란?
- 16.1.1 토픽 모델링의 개념
- 16.1.2 LDA 토픽 모델링
- 16.1.3 토픽 모델링 실습 과정
- 16.2 텍스트 전처리
- 16.2.1 분석 준비하기
- 16.2.2 텍스트 전처리
- 16.2.3 특수 기호 없애기
- 16.2.4 형태소 분석
- 16.2.5 정규화
- 16.2.6 불용어 제거
- 16.3 토픽 모델링 실습
- 16.3.1 토모토파이 설치
- 16.3.2 토모토파이 기본 사용 방법
- 16.4 최적의 K값 찾기
- 16.4.1 토픽 모델링 함수 정의
- 16.4.2 K값 찾기
- 16.4.3 혼란도 값의 시각화
- 16.5 토픽 모델링 결과 탐색
- 16.5.1 토픽별로 확률이 높은 단어 출력하기
- 16.5.2 각 문서별 토픽 분포 구하기
- 16.5.3 토픽 이름 붙이기
- 16.5.4 토픽 모델링 시각화
- 16.6 요약
- 16.1 토픽 모델링이란?