한 2주 정도 동안 <혼자 공부하는 머신러닝/딥러닝>이라는 책을 공부했다. 이 책은 인공지능 분야에 어떤 개념이 '존재'하는지 훑어보기 좋다. 난이도를 낮추기 위해 수식이나 이론, 심층적인 코드가 많이 빠져서 깊이 있게 공부하기는 어려웠다. 다음 단계로 넘어가기 전에 <혼자 공부하는 머신러닝/딥러닝>에 나온 개념어를 정리하려고 본 포스팅을 적기 시작했다.
1장. 인공지능이란?
- 강인공지능 Strong AI: AGI Artificial General Intelligence가 여기에 속함
- 약인공지능 Weak AI: 보조하는 AI
- 머신러닝 meachine learning: 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야
- 딥러닝 deep learning: 인공 신경망 ANN을 기반으로 한 머신러닝 분야
2장. 데이터 다루기
- 지도 학습 Supervised learning
- 비지도 학습 unsupervised learning
- 브로드캐스팅 broadcasting: 모양이 다른 배열 간의 연산을 가능하도록 하는 기능
3장. 회귀 알고리즘과 규제
- KNN K-Nearest Neighbors Algorithm: 인접한 샘플을 이용해서 예측하는 알고리즘
- 결정계수 coefficient of determination: 회귀 모델의 예측의 적합도를 (0, 1) 값으로 계산함.
- 오버피팅 overfitting
- 언더피팅 underfitting
- 선형 회귀 linear regression
- 다항 회귀 polynomial regression (다항식을 사용) vs. 다중 회귀 multiple regression (여러 개의 특성을 사용)
- 릿지 회귀 Ridge regression: alpha 매개변수로 규제의 강도를 조절함
- 라쏘 회귀 lasso regression: alpha 매개변수로 규제의 강도를 조절함
- 하이퍼 파라미터: 사람이 지정하는 파라미터
4장. 분류 알고리즘
- 로지스틱 회귀 logistic regression: 시그모이드 함수(이중), 소프트맥스 함수(다중)를 이용하여 클래스 확률을 출력하는 분류 알고리즘
- 시그모이드 함수: 이진 분류를 위해 사용하는 함수. 0.5 이상이면 양성, 0.5 미만이면 음성
- 소프트맥스 함수: 다중 분류를 위한 함수. 여러 개의 선형 방정식의 출력값을 0~1 사이로 압축하여 전체 합이 1이 되도록 만듦. 정규화된 지수 함수
- 확률적 경사 하강법 Stochastic Gradient Descent: 훈련 셋에서 랜덤하게 하나의 샘플을 선택하여 손실 함수의 경사를 따라 최적의 모델을 찾는 알고리즘
- 에포크: 훈련 세트를 한번 모두 사용하는 과정
- 로지스틱 손실 함수 logistic loss function: 타깃이 1일 때 -log(예측 확률), 타깃이 0일 때 -log(1-예측 확률)로 계산함. 예측 확률이 0에 가까워질수록 손실은 아주 큰 양수가 됨
- 힌지 손실 hinge loss: SVM(Support Vector Machine)에서 널리 사용되는 손실 함수.
5장. 트리 알고리즘
- 결정 트리 Decision tree: 비교적 예측 과정을 이해하기 쉬운 알고리즘
- 교차 검증 cross validation: 훈련 세트를 k개의 폴드로 나누고 한 폴드를 검증 세트로, 나머지 폴드를 훈련 세트로 사용하기를 반복하는 학습 방식
- 그리드 서치 Grid Search: 적절한 하이퍼파라미터 탐색을 자동으로 해주는 도구
- 랜덤 서치 random search: 하이퍼파라미터가 연속적인 값일 때 유용
- 랜덤 포레스트: 대표적인 결정 트리 기반의 앙상블 학습 방법.
- 1) 훈련 셋에서 부트스트랩 샘플링(중복을 허용하여 추출)으로 여러 개의 표본을 준비함
- 2) 부트스트랩 샘플에서 트리를 생성(이때 피처 몇개를 랜덤하게 선택)
- 3) 각 트리에서 예측한 값을 평균내어 결과 도출
- 엑스트라 트리 extra trees
- 기본적으로 랜덤 포레스트와 비슷한데 부트스트랩을 사용하지 않는다
- 피처와 랜덤으로 훈련 셋을 무작위로 분할한다
- 그레디언트 부스팅 gradient boosting
- 깊이가 얕은 결정 트리를 순차적으로 연결됨. 이전 트리의 오차를 보완하는 식으로 결합한다
- 히스토그램 기반 그레디언트 부스팅 histogram-based gradient boosting
- 그레디언트 부스팅이 학습 속도가 느리다는 문제를 해결한 알고리즘.
- 연속적인 변수를 수백개의 고윳값으로 '이산화'하여 속도를 높인다
6장. 비지도 학습
- k-평균 알고리즘: 최적의 클러스터를 구성하는 알고리즘(랜덤 배치 > 클러스터 중심 계산 > 재배치 > ...)
- inertia 이너셔: 클러스터 중심과 샘플 사이의 거리의 제곱합.
- PCA principal component analysis 주성분 분석: 차원 축소 알고리즘의 하나. 데이터에서 분산이 가장 큰 방향을 찾는 방법.
7장. 딥러닝
- ANN Artificial Neural Network
- 원-핫 인코딩: 타깃값만 1로, 나머지는 0인 배열 만들기
- DNN Deep neural network: 2개 이상의 층을 포함한 신경망
- ReLU 함수: 활성화 함수의 일종
- 옵티마이저: 신경망의 가중치/절편을 학습하기 위한 알고리즘
- adaptive learning rate: 안정적으로 수렴하도록 최적점에 가까워지면 학습률을 낮춤
- dropout: 훈련 과정에서 일부 뉴런을 랜덤하게 꺼서 오버피팅을 방지함
8장. 이미지를 위한 딥러닝
- CNN 합성곱 신경망 Convolution Neural Network: 일부에 가중치를 곱하는 방식. 이미지에 특화됨
- 필터 filter = 뉴런 = 커널
- 특성 맵 feature map: 합성곱 계산을 통해 얻은 출력
- 패딩 padding: 입력 배열 주위를 가상의 원소로 채우는 것
- 풀링 pooling: 가로 세로의 크기 줄이기(max pooling/average pooling)
9장. 텍스트를 위한 딥러닝
- 순차 데이터 sequential data: 순서에 의미가 있는 데이터. 시계열 데이터, 텍스트 등
- FFNN feedforward neural network: 입력 데이터의 흐름이 앞으로만 전달되는 신경망
- RNN recurrent neural network: sequential data를 처리하기 위해 recurrent layer를 1개 이상 사용한 신경망
- 셀 cell: 층을 셀이라고 함
- 워드 임베딩 word embedding: 정수 데이터를 받아서 처리할 수 있음. 원핫인코딩에 비해 메모리를 효율적으로 사용함
- LSTM long short term memory: 입력 게이트, 삭제 게이트, 출력 게이트 역할을 하는 작은 셀이 포함됨
- GRU Gated Recurrent Unit: 은닉 상태 하나만 포함
앞으로의 계획
- <핸즈온 머신러닝 (2판)> 공부하기
- 데이콘 연습 대회 참여하기
'Data Science > AI' 카테고리의 다른 글
인공지능 주제 탐색 #1 | Computer Vision 분야 알아보기 (0) | 2023.03.26 |
---|---|
인공지능 주제 탐색 #0 | AI 분야 알아보기 (0) | 2023.03.23 |
인공지능 #9 | 텍스트를 위한 인공 신경망(NLP, IMDB, LSTM, GRU) (0) | 2023.03.14 |
인공지능 #8-2 | CNN - 텐서플로 Conv2D, MaxPooling2D, plot_model (0) | 2023.03.13 |
[에러 해결] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 0: invalid start byte (0) | 2023.03.11 |