본문 바로가기

Contact English

【알고리즘】 10강. 딥러닝 개요

 

10강. 딥러닝 개요

 

추천글 : 【알고리즘】 알고리즘 목차


1. 개요 [본문]

2. 머신러닝 알고리즘 평가 [본문]


a. 구글 AI의 모든 것 : A에서 Z까지


 

1. 개요 [목차]

⑴ 인공지능의 의미

데이터 사이언스 ⊃ 인공지능 ⊃ 머신러닝 ⊃ 인공신경망 ⊃ 딥러닝

○ 인공지능(artificial intelligence) : 인간과 유사하게 사고하는 컴퓨터 지능을 일컫는 포괄적 개념

○ 머신러닝(machine learning) : 데이터의 학습을 통해 문제 해결에 적합한 모델을 만들어내는 기법

○ 1959년 Arthur Samuel에 의해 최초로 정의됨

: SVM, adaboost, ANN

○ 인공신경망(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. 머신러닝 알고리즘 평[목차]

가중치 공간

 

출처: 알고리즘 중심의 머신러닝 가이드, 21 p.

Figure. 2. 가중치 공간에서의 두 뉴런의 위치

 

차원의 저주

① 초구 (Hyper-sphere)

○ 정의 : 임의의 n 차원에서 원점으로부터 거리가 1인 점들의 집합

○ 초구의 부피는 n > 2π 이후로 차원이 증가함에 따라 부피가 0으로 수렴

○ Vn = (2π/n) Vn-2

○ 시사점 : 차원이 증가함에 따라 점점 많은 데이터가 단위초입방체에 들어간다는 의미

차원의 저주(curse of dimension)

○ 데이터의 차원이 증가할수록 데이터의 분포 분석 또는 모델 추정에 필요한 샘플 데이터가 기하급수적으로 증가하는 현상

이유 : 동일한 개수의 데이터의 밀도는 차원이 증가할수록 급속도로 희박해지기 때문

오버피팅 (Overfitting)

① 오버 트레이닝

 

출처: 알고리즘 중심의 머신러닝 가이드, 25 p.

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보다 오버핏팅 할 수 있음

 

출처: 이미지 클릭

Figure. 4. leave-one-out]

 

1-2. 리브섬아웃(leave-some-out)

종류 2. non-exhaustive cross-validation

2-1. 멀티폴드(multi-fold) : m-fold cross validation이라고도 함

 

출처: 이미지 클릭

Figure. 5. m-fold cross validation]

 

출처: Gonzalo R. Arce

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하지 않게 할 수 있음

출처: Gonzalo R. Arce

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)

 

 

concordance index 

① 일반적으로 threshold를 조절하면 sensitivityspecificity가 반대 경향을 보임

 

Figure. 8. threshold에 따른 sensitivity와 specificity의 추이

 

② 수신자 특성 곡선(ROC curve, receiver operating characteristic curve)

○ 정의 : 가로축을 1 - specificity (= FDR), 세로축을 sensitivity로 할 때 시각화한 그래프 

 

 

출처 : 이미지 클릭

Figure. 9. ROC curve]

 

○ 가장 이상적인 것은 민감도 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