* 틀린 부분이 있을 수 있습니다.
1. Machine Learning
- 인공지능 개념
- 인공지능 : 사람이 할 일을 기계가 대신하는 모든 스크립트 기반 자동화 방식
- 머신러닝 : 데이터셋을 통해 기계를 학습시킨 후 일반화된 모델을 통해 학습 데이터 외에 다른 데이터에 대답할 수 있도록 함 (data-driven 방식)
- 딥러닝 : 인간의 두뇌(신경)와 비슷한 방식으로 데이터를 처리하도록 기계를 가르치는 방식
** 훈련 데이터와 평가 데이터 비율은 8:2 (평가 데이터 분류는 선택이 아닌 필수)
- 관련 용어
- y = wx + b
- 모델 : w와 b값의 집합(저장)
- 모델 학습(훈련) = 파라미터(w, b)를 찾는 과정
- y : 알고리즘을 사용해 모델이 예측한 값
- x : feature, 학습을 위해 입력된 데이터
- w : feature별 중요도
- b : bias, 가중합에 값을 더해주는 상수
- loss : error, 예측값과 실제값의 차이
- loss function
- 분류-cross entropy, ...
- 회귀-mse, rmse(mse값에 루트), ...
- loss function
- optimization : loss function의 값이 최소가 되게하는 w값을 찾는 것
- parameter : 모델에서 자체적으로 조절하는 값 (w, b)
- hyper parameter : 사용자가 직접 조절하는 값
- epoch : 전체 데이터를 돌리는 횟수 (일반적으로 크게 하는게 좋으나 과적합 주의)
- batch size : 한번에 돌릴 데이터양
- iteration : epoch을 나눠서 실행하는 횟수
- learning rate : 학습률 (보폭) .. 정해진 값은 없으므로 모델별로 적정한 값을 직접 찾아야 함하이퍼 파라미터 : 사용자가 조절하는 값
** feature engineering : 머신러닝은 알고리즘이 간단하므로 feature간의 특성이 명확한지가 중요함. 사람이 직접 feature 선택, 조정 등의 과정 진행
- 머신러닝 유형
- 지도학습 : 레이블 o (분류, 회귀, ...)
- 비지도학습 : 레이블 x (클러스터링, ...)
- 강화학습 : 특정 environment 내 state에서 action을 통해 reward 또는 panalty를 받아가며 학습하는 과정
2. Deep Learning
- 딥러닝 이해
- 기본적으로 머신러닝과 틀은 동일하지만 모델의 복잡도 증가
-
- feature 갯수 및 레이어 갯수가 크게 증가
- 개별 feature 중요도가 비교적 감소
- feature engineering 작업을 모델 내부에서 자체적으로 하기 시작 … 스스로 가중치 값 탐색
- 모델 : y = f(w0x0 + w1x1 + … wnxn + b)
- f (=activation function) : 레이어 단위로 넘어가며 선형 함수를 비선형 함수로 변경, 미분 가능하게 함 (계산이 빨라짐)
- 기존 머신러닝 모델식으로는 xor 연산 불가해 도입된 개념
- 종류
- sigmoid : 중심점 y=0.5, 지수승, 가중치 소멸 현상으로 딥러닝에서 사용 X
- tanh : 중심점 y=0, 지수승, 시그모이드에서 중심점일 때 진동하는 점을 보완, but 가중치 소멸 현상을 해결하지 못해 딥러닝에서는 사용 X
- Relu : 음수면 모두 0, 선형이므로 계산 속도 빠름
- 모델 생성 알고리즘
- CNN : 이미지, NLP에서 사용
- Convolution Layer (합성곱 레이어) : 텐서별 R, G, B값(특징적인 값) 저장 및 Filter층과의 합성곱
- Pooling Layer : 그림 내에 인접한 부분의 특징적인 값만 추출 (크기 감소)
- Stride : 벡터화된 그림에서 필터가 움직이는 단위
- RNN : NLP에서 많이 사용, 시계열 데이터 처리, 다음 가중치 연산에 기존 가중치 값을 사용 (번역, 감정분석)
- 인코더 : 컨텍스트 벡터를 만드는 과정
- 디코더 : 인코더 단계에서 만들어진 컨텍스트 벡터 해석
- 한계점
- Vanishing : 문장이 길어지면 앞부분이 흐려지는 현상
- Attention Mechanism : 컨텍스트 벡터 외에 집중해야할 부분에 초점 맞추기
- Transformer : 순차적으로 처리해야하는 RNN과 달리 병렬 처리 가능, Chat-GPT의 T!
- CNN : 이미지, NLP에서 사용
- f (=activation function) : 레이어 단위로 넘어가며 선형 함수를 비선형 함수로 변경, 미분 가능하게 함 (계산이 빨라짐)
- 손실함수 : 머신러닝과 동일하게 존재
- BackPropagation : 정답과 예측값 사이의 차이를 줄이기 위해 오차를 출력층에서 입력층으로 거꾸로 올라가며 단계별 가중치를 조정하는 과정
- 1차로 계산한 결과값을 기반으로 시작 (메모리에 올라와있는 상태)
- 계산된 가중치 값을 가지고 맨 뒷단-1 부터 시작해서 미분값을 구해 output neuron에 미치는 영향 확인
- 편미분-생략법(chain rule)이 적용되어 많은 컴퓨팅 파워 없이 쉽게 구하기 가능
- 최적화
- gradient descent (경사하강법)
- 가중치의 접선의 기울기가 0이 되는 최소값을 찾기 위한 과정
- new w = old w - (learning rate * old w의 접선의 기울기)
- 기울기가 음수이면 결과적으로 +가 됨
- 차수가 4차 이상인 경우 saddle point(지역 최솟값, 최저점)이 여러개 발생
- Momentum (방향)
- AdaGrad (속도)
- RMSProp (속도 + a)
- Adam (방향 + 속도)
- 경사하강법의 변형 : mini batch를 보통 많이 사용
- gradient descent (경사하강법)