본문 바로가기

딥러닝20

13장. 심층신경망2 1. 평가지표 정확도(accuracy) = (TP+TN) / (TP+FP+FN+TN)정밀도(precision) = TP / (TP+FP)재현율(recall) = TP / (TP+FN)임계값이 높으면 정밀도가 높아지고 재현율이 내려감임계값이 낮으면 재현율이 높아지지만 정밀도가 내려감 F1점수 = 2 x (Recall x Precision) / (Recall+Precision)F1점수는 임곗값이 고정되어 있을때 정밀도와 재현율을 기반으로 계산되므로, 임계값이 다르면 달라질 수 있으므로 F1 점수만으로 모델의 성능을 파악하기는 어렵다. AUROC오른쪽 빨간선아래 구간의 넓이 -> 1일때 가장 좋은 성능, 0.5일때 가장 안좋은 성능모델의 robustness 평가 -> 왼쪽 그래프에서 두 분포 사이의 거리가 멀.. 2024. 5. 15.
12장. 오버피팅을 방지하는 방법 최종 목표: 일반화 오차(generalization error) 최소화오버피팅: 학습 오차가 일반화 오차에 비해서 현격하게 낮아지는 현상언더피팅: 모델이 충분히 데이터를 학습하지 못하여 학습 오차가 충분히 낮지 않은 현상오버피팅으로 인해 학습 데이터에 편향이나 노이즈가 있을 때 이것까지 모델이 학습함으로써 오히려 모델이 일반화 수행이 어려워짐 -> 오버피팅을 피하는 법: 검증데이터셋(validation dataset) 하나의 에포크: 학습(training), 검증(validation)학습과정과 검증과정은 미니배치로 구성된 여러 이터레이션으로 구성검증과정에서는 최적화를 수행하지 않음. 즉, 역전파 계산과 경사하강법 수행 없이 손실 값만 계산 검증손실 값이 줄어드는지 확인하여 오버피팅 여부를 체크 가능 하이.. 2024. 5. 15.
11장. 최적화 하이퍼파라미터: 모델의 성능에 영향을 끼치지만 자동으로 최적화되지 않는 파라미터  1. 모멘텀모멘텀은 시작부터 매번 계산된 그래디언트를 누적하는 형태로 구현(관성을 의미)지역 최소점을 쉽게 탈출할 수 있으며 학습 속도를 가속화할 수 있음 모멘텀 그래디언트: 처음부터 현재까지의 디스카운트 파라미터가 곱해진 그래디언트의 누적 합 하지만 여전히 학습률 튜닝 필요 : 누적된 그래디언트가 파라미터 업데이트에 끼치는 영향도 설정  2. 적응형 학습률학습률을 기본 설정값을 사용하더라도 학습이 잘되는 방법 필요 - 학습률 스케줄링학습률이 크면 학습 후반에 더 나은 손실 값을 얻기 히들고,학습률이 작으면 학습 초반에 너무 더딘 학습을 하게 됨 적응형 학습률: 처음에는 큰 학습률로 가져가되, 현재 에포크의 손실 값이 지난.. 2024. 5. 9.
10. Recurrent Neural Networks RNN: sequential 데이터 학습에 활용 수행하려는 task에 따라 다양한 수의 input과 output을 가짐(one-to-many, many-to-one, many-to-many) RNN에는 hidden state가 추가됨hidden state는 계속해서 업데이트 되지만, 함수 f와 파라미터 W는 매번 동일한 값을 가진다.     (예시) RNN을 이용하여 prefix가 주어졌을 때, 어떠한 문자가 출력되어야 하는 지 예측하는 예시위 예씨의 경우 가장 스코어가 높은 값만 사용하게 되면 올바른 결과가 나오지 않는다.확률분포를 사용해서 샘플링했기 때문에 hello를 만들어낼 수 있었는데, 확률분포에서 샘플링하는 방법을 통해 일반적으로 모델에서 다양성을 얻을 수 있게 된다. RNN은 hidden s.. 2024. 5. 6.
9. CNN Architectures 1. AlexNet (2012)ImageNet classification task 잘 수행, First CNN-based winner1) CONV1227 x 227 x 3 inputfilter: 96개의 11x11 필터(stride:4)(227-11)/4+1=55 -> 55 x 55 x 96파라미터 갯수 : (11*11*3)*96=35K2) MAX POOL1filter: 3x3(stride:2)(55-3)/2+1=27->27 x 27x 96파라미터 갯수: 0 - 비선형함수로 ReLU 사용- Regularization(data augmentation, dropout)- optimization으로 SGD momentum 0.9- Learning rate 1e-2- ConvNet에서 2개 row로 나누는데 (.. 2024. 5. 5.
9장. 심층신경망 1. 심층신경망선형 회귀 또는 로지스틱 회귀는 비선형 문제를 풀 수 없음비선형 데이터를 다루기 위해서 심층신경망이 필요함.심층신경망은 세상에 존재하는 그 어떤 형태의 함수도 근사계산할 수 있음. 심층신경망: 선형계층을 쌓고, 그 사이에 비선형 활성함수를 끼워넣음 2. 역전파(back-propagation)손실함수에 대해 미분을 하여 최적의 가중치 파라미터를 찾아야 하는데,체인룰을 활용하여 효율적인 미분 계산 가능 3. 그래디언트 소실문제(gradient vanishing)입력에 가까운 계층의 가중치 파라미터가 잘 업데이트 되지 않는 문제활성함수 기울기가 1보다 작은데, 작은 그래디언트 값이 계속 곱해져서 생기는 문제 4. ReLU / leaky ReLU그랜디언트 소실 문제를 보완하기 위한 활성함수ReLU.. 2024. 5. 2.
8장. 로지스틱 회귀 선형회귀는 연속형 변수를 예측하지만 로지스틱 회귀는 주로 이진분류를 위해 사용됨 (0또는 1)로지스틱 회귀는 데이터가 어떤 범주에 속할 확률을 0~1 사이 값으로 예측하고, 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류 1. 활성함수선형계층 함수 직후에 -> 활성함수를 넣어주어 전체 모델 구성 대표적인 활성함수: 시그모이드 함수, 탄에이치함수 시그모이드 함수: 0~1탄에이치: -1~1 2. 손실함수 이진분류문제를 푸는 경우 -> 이진 크로스엔트로피(BCE) 손실함수 3. 로지스틱 회귀의 수식 이때, 확률 값의 표현이라고도 볼 수 있다. 4. 실습import pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltfrom sklear.. 2024. 5. 1.
8. Deep Learning Software 1. CPU vs GPU- GPU는 NVIDIA- GPU는 Matrix Multiplication에 강함!- CPU는 GPU보다 훨씬 적은 수의 코어가 있지만, CPU코어가 더 빠름- GPU는 개별적인 RAM을 갖고 있음.- 실제 모델과 가중치는 GPU RAM에 저장되어 있고, train data는 컴퓨터 저장장치에 저장되어 있기 때문에, data를 가져오는데에 시간이 많이 걸린다 -> 해결을 위해 데이터 작으면 RAM에 넣어놓고, HDD보다는 SDD를 사용하고, CPU 다중 스레드를 이용해서 데이터를 RAM에 미리 pre-fetching Programming GPU -> CUDA, OpenCL, UdacitycuDNN을 사용한 CUDA가 매우 강력함 2. Deep Learning Frameworks(T.. 2024. 4. 29.
7. Training Neural Networks 2 1. Optimization : Adam이 성능이 가장 좋고 가장 많이 쓰이는 알고리즘!training 데이터의 loss값 낮추는 것learning rate은 hyperparameter!SGD+Momentum : 가속도 있음 따라서 기울기가 0인 지점(local minima, saddle points)에서도 update가 진행될 수 있다.  (SGD는 mini batch를 사용)여기서 rho는 보통 0.9, 0.99이용 여기서 rho는 보통 0.9, 0.99이용 SGD는 지그재그로 최적화가 되지만(noise 발생), Momentum이 있을 때는 noise를 평균화시켜서 지그재그한 정도가 줄어든다.Nesterov MomentumAdagradRMSProp Adam : RMSProp+MomentumL-BFGS.. 2024. 4. 29.