10강. 딥러닝 개요
추천글 : 【알고리즘】 알고리즘 목차
1. 개요 [목차]
⑴ 인공지능의 의미
① 데이터 사이언스 ⊃ 인공지능 ⊃ 머신러닝 ⊃ 인공신경망 ⊃ 딥러닝
○ 인공지능(artificial intelligence) : 인간과 유사하게 사고하는 컴퓨터 지능을 일컫는 포괄적 개념
○ 머신러닝(machine learning) : 데이터의 학습을 통해 문제 해결에 적합한 모델을 만들어내는 기법
○ 1959년 Arthur Samuel에 의해 최초로 정의됨
○ 인공신경망(ANN, artificial neural network) : 사람의 신경망을 모방한 머신러닝 알고리즘
○ 장점 1. 구체적으로 지시하기 곤란한 업무를 학습시킬 수 있음
○ 장점 2. 많은 정보를 압축할 수 있음 (오토인코더)
○ 딥러닝(deep learning) : 깊은 다층 구조의 인공신경망
○ 피처(feature)를 사람이 아니라 컴퓨터가 정의한다는 점에서 다른 머신러닝과 차이가 있음
○ 최근 다양한 분야에서 기존 머신러닝 기법들 대부분을 압도하는 성능을 보이고 있음
② 강한 인공지능과 약한 인공지능
③ 튜링 테스트(Turing test)
○ 인간이 기계와 대화하고 있다는 사실을 깨닫지 못한 채로 5분 동안 대화할 수 있다면, 그 컴퓨터는 테스트를 통과
○ 앨런 튜링이 1950년에 이 테스트를 발명
⑵ 딥러닝의 정의
① 수식화 : DNN(deep neural network)은 다음과 같은 수식으로 나타낼 수 있음
yn = f(xn-1 · wi) + b
○ yn : n번째 은닉층에 있는 뉴런들의 벡터의 출력 벡터
○ xn-1 : (n-1)번째 은닉층에 있는 뉴런들의 벡터의 출력 벡터
○ wi : 뉴런 i의 가중치 벡터
○ b : 바이어스 벡터
○ f : 활성화 함수
② 차원 : 벡터의 크기를 나타냄. 예를 들어, v = (a1, ..., an)의 차원은 n
③ 입력(inputs) : 입력 벡터는 입력으로 주어진 데이터를 나타내며 벡터 x = (x1, ···, xℓ)으로 표현
④ 가중치(weights) : i 번째 노드와 j 번째 노드를 연결하는 가중치는 ωij로 표현
○ 뉴럴 네트워크에서는 뇌의 시냅스(synapses)를 표현, ωij들은 행렬 W를 이룸
⑤ 출력(outputs) : y = (y1, ···, yn) = y(x, W)
⑥ 목표값(targets) : t = (t1, ···, tn), 지도학습 알고리즘은 정답값을 통해서 학습하므로 꼭 필요
⑦ 활성화 함수(activation function) g(·) : 뉴런(neuron)이 가중된 입력값에 대해 활성화되는 것을 결정
○ 임계함수(threshold)
⑧ 오류(error) : 오류를 통해서 알고리즘의 출력값(y)과 실제 목표값(t) 간의 거리를 계산
⑨ 매개변수(parameter)와 초매개변수(hyperparameter)
○ 매개변수는 측정되거나 데이터로부터 학습됨
○ 매개변수는 종종 학습된 모델의 일부로 저장됨
○ 초매개변수는 학습을 위해 임의로 설정하는 값
○ 초매개변수의 종류에는 학습률(learning rate), 의사결정나무의 깊이(depth), 신경망에서 은닉층(hidden layer)의 수 등이 있음
⑶ DNN의 특징
① 비선형 사상(nonlinear transformation)의 근사
② 다양한 은닉층
③ 딥러닝 피드 포워드(feed forward) : 별도의 백워드 피드백 루프 없이 입력층 → 은닉층 → 출력층으로 연산이 실행되는 것
④ 백워드 학습 : 출력층 → 은닉층 방향으로 연산 실행 방향과 반대 순서로 네트워크 가중치가 갱신됨
⑷ 피처 선택
① 피처의 수가 적이지면 계산 복잡도가 낮아지고, 과적합의 가능성도 줄어듦
② 방법 1. 도메인 지식을 활용한 선택
③ 방법 2. 피처 결합을 통한 축소 : PCA 등
④ 방법 3. 기준/랭킹 시스템을 통한 선택
○ filter-based 방법 : 통계적 기준에 따라 피처를 선택. 속도가 빠르고 계산이 간단하여 대규모 데이터에 유리함
○ wrapper-based 방법 : 모델을 여러 번 학습시키면서 최적의 피처 조합을 찾는 방식. 계산 비용이 많이 듦. 과적합 위험이 있음
⑸ 예제 : MNIST (즉, 손으로 쓴 숫자들) 데이터에 딥러닝 모델 적용하기
import tensorflow as tf
from tensorflow.keras import layers, models
# Load the MNIST dataset
mnist = tf.keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
# Normalize the pixel values of the images to be between 0 and 1
train_images, test_images = train_images / 255.0, test_images / 255.0
# Define a simple sequential model
def create_model():
model = models.Sequential([
layers.Flatten(input_shape=(28, 28)), # Flatten the 2D image to a 1D array
layers.Dense(128, activation='relu'), # First hidden layer with 128 neurons and ReLU activation
layers.Dropout(0.2), # Dropout layer to reduce overfitting
layers.Dense(10, activation='softmax') # Output layer with 10 neurons for 10 classes and softmax activation
])
return model
# Create the model
model = create_model()
# Compile the model
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# Train the model
model.fit(train_images, train_labels, epochs=5)
# Evaluate the model
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Test accuracy: {test_acc}')
⑹ 종류
① 종류 1. 지도 학습(supervised learning)
○ 정의 : 문제-정답 쌍 {(xi, yi)}로부터 x → y로의 사상(map)을 학습하는 방식
○ 예 : 조건부 확률, 회귀함수, supervised classification
○ 1-1. semi-supervised learning
○ 문제-정답 쌍이 주어져서 x → y로의 사상을 학습하는 것은 supervised learning과 같으나 정답 레이블이 일부만 된 경우
○ 1-2. imitation learning
○ supervised learning이 입력과 출력의 관계를 학습하는 것이라면, imitation learning은 입력과 출력 사이의 관계를 배우기 위해 다른 예제 데이터를 사용
○ 1-3. 메타 러닝(meta learning)
○ 다른 머신러닝 알고리즘의 결과 혹은 학습 과정(learning)을 학습하는 방식
② 종류 2. 비지도 학습(unsupervised learning)
○ 정의 : label이 없는 feature vector x가 주어졌을 때 그 feature vector x의 구조(underlying structure)를 파악하는 것
○ 예 : 클러스터링, 차원 축소, 토픽 모델링, DIP(deep image prior), style transfer
○ (구별개념) prior learning
○ prediction model 등을 생성하기 위해 일반적인 CNN 신경망이 수많은 데이터셋을 통해 미리 학습을 하는 것
○ prior learning은 training / prediction와 같이 진행되는 경우에 필요함
○ 이와 달리, DIP 등은 self-taught manner로 작동하므로 prior learning을 필요로 하지 않음
③ 종류 3. 강화 학습(reinforcement learning)
○ 정의 : 특정 상태에서 하에서 어떤 행동을 취했을 때 얻어지는 reward인 π(action | state)가 주어져서 각 state에서 최선의 행동이 무엇인지 학습하는 방식
○ 정답의 단서가 reward 형태로 묵시적으로 제공됨
④ 종류 4. 자기주도적 학습(self-supervised learning)
○ 정의 : toy example처럼 스스로 문제 및 정답지를 만들어서 진행하는 기계 학습
○ supervised learning과의 공통점: test / training dataset을 구분
○ unsupervised learning과의 공통점 : 정답지를 모델이 만들어냄
○ 4-1. 자기 연산 학습(auto-associative learning) : 오토인코더(autoencoder)라고도 함
○ 정의 : 입력 데이터를 최대한 압축시킨 후, 압축된 데이터를 다시 본래의 형태로 복원시키는 신경망
○ 인코더(encoder) : 입력층에서부터 은닉층으로의 인공 신경망
○ 디코더(decoder) : 은닉층에서부터 출력층으로의 인공 신경망
○ 인코더와 디코더가 함께 트레이닝 됨
○ 효과 1. 데이터 압축 : 은닉층이 입력층보다 더 작은 개수의 노드를 가지면, 이 네트워크는 입력 데이터를 압축 가능
○ 효과 2. 데이터 추상화 : 복잡한 데이터를 다차원 벡터으로 변환하여 입력 데이터 분류 및 재조합을 가능케 함
○ 이러한 다차원 벡터를 은닉층, 피처(feature)라고도 함
○ 재조합 알고리즘으로는 대표적으로 PCA 알고리즘이 있음
○ 4-2. masking 기반
○ 예 : iBOT (masking + distillation)
○ 4-3. distillation 기반
○ 예 : DINO (distillation), iBOT (masking + distillation)
○ 4-4. contrastive learning
○ 정의 : 타겟 데이터와 대조군 데이터를 비교하여 학습하는 방식
○ 정보이론의 surprisal을 응용하여, 손실함수를 -(1/N) × (Σ log Φtarget + Σ log (1-Φcontrol)) (단, Φ는 확률)처럼 정의
○ 예 : SimCLR, MoCo, BYOL
○ 4-5. foundation model
○ 정의 : inductive way로 작동하는 머신러닝 모델로, 필연적으로 self-supervised model이어야 함
○ inductive way의 의미 : (apple, 사과), (banana, 바나나) 등이 주어져 있을 때 (melon, ?)을 맞출 수 있다는 의미
○ (구별개념) 생성형 모델(generative model) : 새로이 예제 데이터를 생성하는 모델을 통틀어 지칭
○ foundation model은 생성형 모델일 수도 있고, 아닐 수도 있음
○ DIP(deep image prior)는 생성형 모델이지만 foundation model은 아님 : inductive way로 작동하지 않기 때문
○ foundation model은 LLM, LMM, diffusion model로 구분됨
○ 패러다임의 전환 : 머신러닝 (2000년대, feature-centric) → 딥러닝 (2010년대, model-centric) → 파운데이션 모델 (2020년대, data-centric)
Figure. 1. 패러다임의 전환
○ 4-5-1. LMM(large lange model) 및 LMM(large multimodal model)
○ 4-5-2. diffusion learning
○ 원본 이미지로부터 의도적으로 노이즈를 부여한 뒤 노이즈 이미지로부터 원본 이미지를 생성하는 모델
○ 생성형 모델 : 이로부터 다양한 형태의 AI 이미지를 생성할 수 있음
○ diffusion learning은 inductive way하게 작동하므로 DIP와 차이가 있음
○ chemoinformatics에도 diffusion model이 사용되고 있음 (e.g., DiffPack, RFdiffusion)
○ 4-6. 전이학습(transfer learning)
○ 학습된 모형을 기반으로 최종 출력층을 바꾸어 재학습하는 알고리즘
○ 최초 학습 시 의도한 테스크와 다른 새로운 테스크에 사전 학습 모델을 적용할 수 있음 (예 : Geneformer)
○ 반드시 self-supervised learning 방식일 필요는 없음 : 예를 들어, supervised learning으로 구현한 Step2Heart
○ 다른 task에까지 inductive way로 작동하려면 self-supervised learning을 수행해야 함
⑤ 이밖에도 여러 종류가 있음
○ representation learning
○ active learning
○ online learning, incremental learning, never-ending learning
○ curriclum learning : 쉬운 단계에서 어려운 단계로 학습시키는 방법
○ few-shot learning, one-shot learning
○ multi-instance learning, mult-label learning, distributional learning
○ metric learning, kernel learning
○ federated learning : 분산된 데이터셋에서 모델을 트레이닝하는 것. 데이터 프라이버시를 보존하고, 여러 소스의 데이터를 효율적으로 이용할 수 있다는 장점이 있음
⑺ 응용
① 게임 : Chess, AlphaGo, StarCraft
② 챗봇 : Watson, Siri, Alexa, Google Assistant
○ 왓슨(Watson) : TV 프로그램에서 인간 참가자를 이긴 최초의 AI 시스템
③ 이미지 분석 : TikTok, Snapchat
④ 추천 시스템 : Spotify (음악), Netflix (영화), Youtube (비디오), TikTok (숏 비디오)
⑤ 자율주행 : Waymo, Tesla
⑥ 생물학 연구 : Alphafold, Alphafold2
2. 머신러닝 알고리즘 평가 [목차]
⑴ 가중치 공간
Figure. 2. 가중치 공간에서의 두 뉴런의 위치
⑵ 차원의 저주
① 초구 (Hyper-sphere)
○ 정의 : 임의의 n 차원에서 원점으로부터 거리가 1인 점들의 집합
○ 초구의 부피는 n > 2π 이후로 차원이 증가함에 따라 부피가 0으로 수렴
○ Vn = (2π/n) Vn-2
○ 시사점 : 차원이 증가함에 따라 점점 많은 데이터가 단위초입방체에 들어간다는 의미
② 차원의 저주(curse of dimension)
○ 데이터의 차원이 증가할수록 데이터의 분포 분석 또는 모델 추정에 필요한 샘플 데이터가 기하급수적으로 증가하는 현상
○ 이유 : 동일한 개수의 데이터의 밀도는 차원이 증가할수록 급속도로 희박해지기 때문
⑶ 오버피팅 (Overfitting)
① 오버 트레이닝
Figure. 3. 오버피팅의 효과로 노이즈까지 일반화한 함수
○ 머신러닝에서 오버 트레이닝(over-training)은 언더 트레이닝(under-training)만큼이나 위험
○ 인공신경망을 오버 트레이닝하면 오버핏하게 되며, 데이터의 오류와 부정확성조차 학습
○ 예측의 정확도가 떨어짐
② 오버피팅 회피 전략
○ 인공신경망이 오버핏되기 전에 학습 과정을 멈추는 전략
○ 매 학습마다 에러 텀을 입력하는 전략
⑷ 신경망 평가
① 정의 : 샘플 밖의 데이터를 통해 인공신경망이 얼마나 잘 일반화되었는지를 평가하는 것
② 데이터셋
○ 트레이닝 데이터(training data) : 주어진 샘플에서 트레이닝에 사용되는 데이터
○ 테스팅 데이터(testing data) : 학습모델을 평가하기 위해 이용되는, 트레이닝에서 사용되지 않은 데이터
○ 밸리데이션 세트(validation set) : 다른 표본집단에서 가져온 세 번째 데이터. 오버피팅을 확인하기 위함
○ 트레이닝 데이터와 테스팅 데이터는 in-sample data로 분류됨
○ 밸리데이션 세트는 out-of-sample data로 분류됨
③ 데이터 세트 선택
○ 충분한 데이터가 있을 시 : 트레이닝:테스팅:밸리데이션을 50:25:25, 60:20:20, 50:30:20으로 적용함
○ 충분한 데이터가 부족 시 : 특정 데이터를 트레이닝, 테스팅, 밸리데이션으로 중복해서 이용. 크게 3가지가 있음
④ 크로스 밸리데이션(cross validation, rotation estimation, out-of-sample testing)
○ 정의 : 주어진 데이터를 resampling 하여 training set, testing set, validation set을 할당하는 것
○ 종류 1. exhaustive cross-validation : 주어진 조건에서 모든 가능한 resampling에 대하여 하는 크로스 밸리데이션
○ 1-1. 리브원아웃(leave-one-out, LOOCV) :m-fold cross-validation보다 오버핏팅 할 수 있음
○ 1-2. 리브섬아웃(leave-some-out)
○ 종류 2. non-exhaustive cross-validation
○ 2-1. 멀티폴드(multi-fold) : m-fold cross validation이라고도 함
Figure. 5. m-fold cross validation
Figure. 6. m-fold cross validation
○ 1st. 주어진 샘플을 m개의 파트로 분류
○ 2nd. m-1개의 파트는 파라미터를 계산하는 데 이용
○ 3rd. 나머지 1개의 파트는 퍼포먼스를 확인하는 데 사용
○ 4th. 이를 서로 다른 조합에 대해 m번 반복
○ 5th. 평균을 취하여 최종 추정량을 결정
○ 일반적으로 10-fold cross validation이 사용됨
○ 2-2. holdout method
○ 2-3. repeated random sub-sampling validation
○ 응용 1. early stopping : 모델이 주어진 데이터를 overfit하지 않게 할 수 있음
Figure. 7. validation과 early stopping
○ 응용 2. hyperparameter tuning : 사용자에 의해 설정된 파라미터를 hyperparameter라고 함
○ 응용 3. feature subset problem
⑸ 혼동 행렬(confusion matrix)
Table. 1. 혼동 행렬
① 7은 C1으로 분류돼야 할 문제에서 C1으로 예측한 횟수를 나타냄
② 정확도(accuracy) = (7+8+9) ÷ (1+2+3+4+5+6+7+8+9) = 24/45
⑹ 정확도 지표
① 참 긍정(true positive) : 실제값이 true이고 측정값이 true인 경우. (주석) 진짜 포지티브란 의미
○ #TP = 7+8+9 = 24
② 거짓 긍정(false positive) : 실제값이 false이고 측정값이 true인 경우. (주석) 가짜 포지티브란 의미
○ #FP = 1+2+3+4+5+6 = 21
③ 참 부정(true negative) : 실제값이 false이고 측정값이 false인 경우. (주석) 진짜 네거티브란 의미
○ #TN
④ 거짓 부정(false negative) : 실제값이 true이고 측정값이 false인 경우. (주석) 가짜 네거티브란 의미
○ #FN
⑤ 정확도(accuracy) =(#TP + #TN) ÷ (#TP + #FP + #TN + #FN)
○ 오차비율(error rate) = 1 - 정확도
⑥ 민감도(sensitivity; true positive rate, TPR) 혹은 재현율(recall) = #TP ÷ (#TP + #FN)
○ positive, negative의 의미를 거꾸로 뒤집으면 민감도가 특이도가 됨
⑦ 특이도(specificity) = #TN ÷ (#TN + #FP)
○ positive, negative의 의미를 거꾸로 뒤집으면 특이도가 민감도가 됨
⑧ 정밀도(precision) 혹은 양성예측치(positive predictive value, PPV) = #TP ÷ (#TP + #FP)
⑨ 음성예측치(negative predictive value, NPV) : TN / (TN + FN)
⑩ 거짓 긍정률(FDR, false discovery rate, false positive rate) : FP / (TN + FP) = 1 - specificity
⑪ F1 지표(F1 score) = 2 × 정밀도 × 재현율 ÷ (정밀도 + 재현율) = #TP ÷ [ #TP + (#FN + #FP)/2 ]
○ 정밀도와 민감도를 하나로 합한 성능평가 지표
○ 0 ~ 1 사이의 범위를 가짐
○ 정밀도와 민감도 양쪽이 모두 클 때 F1 지표도 큰 값을 가짐
⑫ 카파 통계량(kappa statistic, Cohen's kappa)
○ K : 카파 상관계수
○ Pr(a) : 예측이 일치할 확률
○ Pr(e) : 예측이 우연히 일치할 확률
○ 두 관찰자가 측정한 범주 값에 대한 일치도를 측정하는 방법
○ 0 ~ 1의 값을 가지며 1에 가까울수록 모델의 예측값과 실제값이 일치하며, 0에 가까울수록 불일치
○ 정확도 외에 카파 통계량을 통해 모형의 평가 결과가 우연히 나온 결과가 아니라는 것을 설명
⑬ Matthew correlation coefficient (MCC)
① 일반적으로 threshold를 조절하면 sensitivity와 specificity가 반대 경향을 보임
Figure. 8. threshold에 따른 sensitivity와 specificity의 추이
② 수신자 특성 곡선(ROC curve, receiver operating characteristic curve)
○ 정의 : 가로축을 1 - specificity (= FDR), 세로축을 sensitivity로 할 때 시각화한 그래프
○ 가장 이상적인 것은 민감도 1, 특이도 1인 경우
○ AUC(area under the curve; AUROC, area under the ROC curve) : 값의 범위는 0 ~ 1. 1에 가까울수록 response가 좋음
Figure. 10. AUC 계산 과정
Figure. 11. AUC 계산 과정
③ concordance index : AOC curve에서 area under curve를 의미
④ ROC가 랜덤인 경우 concordance index = 0.5
⑤ concordance는 1을 넘지 못함
⑥ AUPRC
○ AUROC를 계산할 때 sensitivity, specificity 대신 precision, recall을 이용하는 것
○ 양성 사례(클래스 1)와 음성 사례(클래스 2)의 수의 균형이 한쪽으로 치우쳐 있으면, AUC보다 AUPRC가 선호되는 지표
⑻ 데이터 입력에 대한 요인
① GIGO(garbage in garbage out) : 무가치한 데이터를 넣으면 무가치한 데이터가 나온다는 의미
② 불균형 데이터 세트
③ 이상치(outlier), 결측치(missing value)
입력: 2018.06.09 10:00
수정: 2024.04.02 16:01
'▶ 자연과학 > ▷ 알고리즘·머신러닝' 카테고리의 다른 글
【알고리즘】 16강. CNN 신경망 (0) | 2021.11.21 |
---|---|
【알고리즘】 15강. 다층 퍼셉트론 (0) | 2021.11.21 |
【알고리즘】 4강. 데이터 시각화 (0) | 2021.10.28 |
【알고리즘】 1-1강. 정렬 알고리즘 실험 (0) | 2021.10.01 |
【알고리즘】 3강. 자료구조 (0) | 2021.09.22 |
최근댓글