개발자를 위한 AI 알고리즘
저자

임란아마드

저자:임란아마드(ImranAhmad)
알고리즘과머신러닝분야에서오랜기간연구해온데이터사이언티스트다.2010년박사과정에서클라우드자원할당을위한선형계획법기반알고리즘을제안했고,2017년에는실시간분석프레임워크StreamSensing을개발했다.현재캐나다연방정부의A2SC에서일하며칼턴대학교겸임교수로활동중이고,구글(Google)과러닝트리(LearningTree)에서알고리즘,클라우드컴퓨팅,딥러닝을가르쳐왔다.여러연구논문을발표했고일부는최우수논문상을받았다.취미는자연사진이며,기술을인류발전에활용하는데열정을쏟고있다.

역자:박지윤
주중엔코드를짜고주말엔미디를찍는삶을지향하는개발자이자번역가.VST와DAW개발에관심이있어C/C++를기웃대는프런트엔드개발자로살고있다.서울대학교재학중미술대학연합전공영상매체예술(미디어아트)을복수전공한것을계기로웹과전자음악에관심을갖게되었다.언젠가는웹공간에원하는비주얼과사운드를펼쳐놓을수있기를꿈꾸지만,예술가가되기보다는예술가가사용하는도구를만드는데관심이더많다.현재넥슨코리아에재직중이며,역서로는「전문가를위한C」(한빛미디어,2022)등이있다.

목차

<1부>기초및핵심알고리즘
1장알고리즘개요
1.1알고리즘이란무엇인가?
1.1.1알고리즘의단계
1.1.2개발환경
1.2파이썬패키지
1.2.1SciPy생태계
1.3알고리즘설계기법
1.3.1데이터차원
1.3.2계산차원
1.4성능분석
1.4.1공간복잡도분석
1.4.2시간복잡도분석
1.4.3성능평가
1.4.4빅오표기법
1.4.5상수시간(O(1))복잡도
1.4.6선형시간(O(n))복잡도
1.4.72차시간(O(n2))복잡도
1.4.8로그시간(O(logn))복잡도
1.5알고리즘선택하기
1.6알고리즘검증
1.6.1정확한알고리즘,근사알고리즘,무작위알고리즘
1.6.2설명가능성

2장알고리즘에사용되는자료구조
2.1파이썬내장자료형탐색하기
2.1.1리스트
2.1.2튜플
2.1.3딕셔너리와세트
2.1.4시리즈와데이터프레임사용하기
2.1.5행렬
2.2추상자료형탐색하기
2.2.1벡터
2.2.2스택
2.2.3큐
2.2.4트리

3장정렬및탐색알고리즘
3.1정렬알고리즘소개
3.1.1파이썬에서변수교환하기
3.1.2버블정렬
3.1.3삽입정렬
3.1.4병합정렬
3.1.5셸정렬
3.1.6선택정렬
3.1.7정렬알고리즘선택하기
3.2탐색알고리즘소개
3.2.1선형탐색
3.2.2이진탐색
3.2.3보간탐색
3.3실용예제

4장알고리즘설계
4.1알고리즘설계의기본개념소개
4.1.1고려1-정확성:우리가기대한결과를생성하고있는가
4.1.2고려2-성능:최적의방식인가?
4.1.3.고려3-확장성:더큰데이터세트에서어떻게작동할것인가?
4.2알고리즘전략이해하기
4.2.1.분할정복전략이해하기
4.2.2.동적프로그래밍전략이해하기
4.2.3.탐욕알고리즘이해하기
4.3실제응용외판원문제(TSP)해결
4.3.1.무차별대입전략사용하기
4.3.2.탐욕알고리즘사용하기
4.3.3.세가지전략비교
4.4페이지랭크알고리즘소개
4.4.1.문제정의
4.4.2.페이지랭크알고리즘구현하기
4.5선형프로그래밍이해하기
4.5.1.선형프로그래밍문제공식화하기
4.5.2.실용예제-선형프로그래밍으로공급능력계획하기

5장그래프알고리즘
5.1그래프이해하기:간단한소개
5.1.1.그래프:현대데이터네트워크의중추
5.1.2.그래프기초:정점(혹은노드)
5.2그래프이론과네트워크분석
5.3그래프표현방식
5.4그래프의구조와종류
5.4.1.자아중심네트워크
5.5네트워크분석이론소개
5.5.1.최단경로이해하기
5.5.2.중심성지표이해하기
5.5.3.파이썬으로중심성계산하기
5.5.4.소셜네트워크분석
5.6그래프순회이해하기
5.6.1.BFS
5.6.2.DFS
5.7사례연구:소셜네트워크분석으로사기탐지하기
5.7.1.도입
5.7.2.사례연구에서사기란무엇인가?
5.7.3.단순한사기분석수행하기
5.7.4.감시탑사기분석방법소개

<2부>머신러닝알고리즘
6장비지도머신러닝알고리즘
6.1비지도학습개요
6.1.1.데이터마이닝생명주기에서비지도학습
6.1.2.비지도학습의현재연구경향
6.1.3.실용예제
6.2클러스터링알고리즘이해하기
6.2.1.유사도계산하기
6.2.2.k-평균클러스터링알고리즘
6.3계층적클러스터링의단계
6.4계층적클러스터링알고리즘코드작성하기
6.5DBSCAN이해하기
6.6파이썬으로DBSCAN을사용하여클러스터생성하기
6.7클러스터평가하기
6.7.1.클러스터링응용분야
6.8차원축소
6.8.1.주성분분석
6.9연관규칙마이닝
6.9.1.규칙의종류
6.9.2.연관규칙마이닝을위한알고리즘

7장전통적인지도학습알고리즘
7.1지도학습이해하기
7.2지도학습문제공식화하기
7.2.1.가능조건이해하기
7.2.2.분류모델과회귀모델차이구분하기
7.3분류알고리즘이해하기
7.3.1.분류모델과제소개
7.3.2.혼동행렬
7.3.3.재현율과정밀도간의트레이드오프이해하기
7.4결정트리분류알고리즘
7.4.1.결정트리분류알고리즘이해하기
7.4.2.결정트리분류모델의장단점
7.4.3.사용사례
7.5앙상블기법이해하기
7.5.1.XGBoost알고리즘으로그라디언트부스팅구현하기
7.5.2.앙상블부스팅과랜덤포레스트알고리즘의차이구분하기
7.5.3.분류모델과제에랜덤포레스트알고리즘활용하기
7.6로지스틱회귀
7.6.1.가정
7.6.2.관계설정하기
7.6.3.손실함수와비용함수
7.6.4.로지스틱회귀를사용해야하는경우
7.6.5.분류모델과제에로지스틱회귀알고리즘활용하기
7.7SVM알고리즘
7.7.1.분류모델과제에SVM알고리즘활용하기
7.7.2.나이브베이즈알고리즘이해하기
7.8베이즈정리
7.8.1.확률계산하기
7.8.2.곱셈법칙과AND사건
7.8.3.일반적인곱셈법칙
7.8.4.OR사건에대한덧셈법칙
7.8.5.분류모델과제에나이브베이즈알고리즘활용하기
7.9분류알고리즘의승자는...
7.9.1.회귀알고리즘이해
7.9.2.회귀모델과제소개
7.9.3.회귀모델문제정의
7.9.4.과거데이터셋탐색하기
7.9.5.데이터처리파이프라인을활용한특징공학
7.10선형회귀
7.10.1.단순선형회귀
7.10.2.회귀모델평가하기
7.10.3.다중회귀
7.10.4.회귀모델과제에선형회귀알고리즘활용하기
7.10.5.선형회귀는언제사용하는가?
7.10.6.선형회귀의약점
7.10.7.회귀트리알고리즘
7.10.8.회귀모델문제에회귀트리알고리즘활용하기
7.10.9.그라디언트부스트회귀알고리즘
7.10.10.회귀모델과제에그라디언트부스트회귀알고리즘활용하기
7.11회귀알고리즘의승자는...
7.12실용예제:날씨예측하기

8장신경망알고리즘
8.1신경망의진화
8.1.1.역사적배경
8.1.2.AI겨울과AI봄의시작
8.2신경망이해하기
8.2.1.퍼셉트론이해하기
8.2.2.신경망직관적으로이해하기
8.2.3.딥러닝의층구조이해하기
8.3신경망훈련시키기
8.4신경망의구조이해하기
8.5경사하강법정의하기
8.6활성화함수
8.6.1.계단함수
8.6.2.시그모이드함수
8.6.3.ReLU
8.6.4.쌍곡탄젠트(tanh)
8.6.5.소프트맥스
8.7도구및프레임워크
8.7.1.케라스
8.8순차적모델또는함수형모델선택하기
8.8.1.텐서플로이해하기
8.8.2.텐서플로의기본개념소개
8.8.3.텐서에대한수학적이해
8.9신경망종류이해하기
8.9.1.합성곱신경망
8.9.2.생성적적대신경망
8.10전이학습활용하기
8.11사례연구:위조문서탐지에딥러닝활용하기
8.11.1.방법론

9장자연어처리를위한알고리즘
9.1자연어처리개론
9.2자연어처리용어이해
9.2.1.자연어처리의텍스트전처리
9.3파이썬으로데이터정제하기
9.4단어문서행렬(TermDocumentMatrix)이해
9.4.1.TF-IDF사용하기
9.4.2.결과요약및논의
9.5워드임베딩개론
9.6Word2Vec으로워드임베딩구현하기
9.6.1.유사도점수해석
9.6.2.Word2Vec의장단점
9.7사례연구:레스토랑리뷰감성분석
9.7.1.필요라이브러리및데이터셋가져오기
9.7.2.정제된말뭉치구축:텍스트데이터전처리
9.7.3.텍스트데이터를숫자특징으로변환하기
9.7.4.결과분석하기
9.8자연어처리응용분야

10장순차모델이해하기
10.1순차데이터이해
10.1.1.순차모델의종류
10.2순차모델의데이터표현
10.3RNN개론
10.3.1.RNN구조이해
10.3.2.첫번째타입스텝에서RNN훈련하기
10.3.3.시간에따른역전파
10.3.4.기본RNN의한계
10.4GRU(게이트순환유닛)
10.4.1.업데이트게이트소개
10.4.2.업데이트게이트구현
10.4.3.은닉셀업데이트하기
10.5LSTM(장단기메모리)소개
10.5.1.망각게이트
10.5.2.후보셀상태
10.5.3.업데이트게이트
10.5.4.메모리상태계산하기
10.5.5.출력게이트
10.5.6.모두합치기
10.5.7.순차모델코딩하기

11장고급순차모델알고리즘
11.1고급순차모델기법의발전
11.2오토인코더탐색
11.2.1.오토인코더코드작성하기
11.2.2.환경준비
11.3Seq2Seq모델이해하기
11.3.1.인코더
11.3.2.사고벡터
11.3.3.디코더
11.3.4.Seq2Seq의특수토큰
11.3.5.정보병목딜레마
11.4어텐션메커니즘이해
11.4.1.신경망에서어텐션이란?
11.4.2.어텐션메커니즘의세가지주요측면
11.