[3.2.] Mismatched Training and Dev/Test Set
2022. 7. 20. 00:12
인공지능/DLS
Training and Testing on Different Distributions train과 test의 분포가 다를 때. 옵션1. 두 데이터를 섞고, randomly shuffle - 장점: training/test가 동일한 분포에서 옴 - 단점: dev/test셋의 큰 비율이 여전히 webpage 샘플 --> 비추 옵션2. training set에 mobile app 데이터 일부를 주고, dev/test셋을 모두 mobile app 데이터로 꾸린다 - 장점: 원하는 target으로 설정할 수 있음 - 단점: training/test가 다른 분포에서 옴 --> 하지만 장기적으로는 나은 옵션 Bias and Variance with Mismatched Data Distributions 앞에서 살펴본 ..
[3.2.] Error Analysis
2022. 7. 18. 21:39
인공지능/DLS
Carrying Out Error Analysis 인간 레벨까지 되지 못할 때, 수작업으로 문제를 파악하는 error analysis 강아지 이미지에 에러가 나는 고양이 분류기, 이 문제를 해결하기 위해 강아지 문제에만 몇 개월 동안 집중해도 될까? 잘못 라벨링된 dev set을 보면 100개 중 5개만이 강아지임을 확인할 수 있었음. 그렇게 되면 강아지 문제를 해결한다고 해도 10% 에러를 5% 해결한 9.5% 밖에 안 됨. --> "ceiling on performance" 그런데 만약에 100개 중에 50개가 강아지 사진이었다? 몇 개월을 강아지 문제에 쏟는다고 해도 가치가 있다고 볼 수 있음. 에러율은 50% 해결되어 5% 로감소할 것임 --> simple counting error anaylsi..
[3.1.] Comparing to Human-level Performance
2022. 7. 18. 00:47
인공지능/DLS
Why Human-level Performance? - 빠르게 개선되다가, 인간 레벨을 능가하고 나면 개선 속도가 느려짐 (slope) - 왜? 인간 능력은 bayes optimal error와 크게 멀지 않음 - 뛰어넘을 수 없는 이론적 한계 존재 --> "Bayes Optimal Error" - 성능이 인간 레벨보다 낮을 때: Avoidable Bias you want your algorithm to do not too well training error를 더 낮춰야 할 경우 --> bias 에 집중 이번에는 동일한 에러율에, 인간 레벨이 7.5%라고 해본다 이 경우 training set에는 제법 잘 학습되는 거로 생각할 수 있음 단 dev error와 격차가 있으므로 variance 를 줄이는 데..
[3.1.] Setting Up your Goal
2022. 7. 17. 23:59
인공지능/DLS
Single Number Evaluation Metric to set up a single real number evaluation metric for your problem Precision : 고양이라고 분류했을 때 실제로 고양이일 확률 95퍼센트 Recall : 고양이 이미지 중에서 몇 퍼센트를 고양이로 분류했을까 Precision과 Recall 간의 trade-off가 있을 수 있음 Precision이 좋은 모델 A, Recall이 좋은 모델 B 중에서 뭐가 더 좋을까? 오직 두 개의 evaluation metric을 가지고 좋은 모델을 선정할 수는 있을까? --> Precision과 Recall을 합친 F1 Score : "Average of $P$(Precision) and $R$(Recall..
[3.1.] Introduction to ML Strategy
2022. 7. 17. 23:32
인공지능/DLS
Why ML Stratgy? 정확도를 더 높이는 방법? - 데이터 모으기 - 더 다양한 학습셋 모으기 (다양한 포즈의 고양이 이미지 ...) - gradient descent로 더 오래 학습하기 - gradient descent 대신에 Adam 사용하기 - 더 큰 네트워크 짜기 - 더 작은 네트워크 짜기 - dropout 사용하기 - $L_{2}$ regularization 추가하기 - 네트워크 아키텍처 - 활성화 함수 - hideen unit 개수 - ... quick and effective way to which of all these ideas and maybe even other ideas are worth pursuing and which ones yo ucan safely discard O..
[2.3.] Introduction to Programming Frameworks
2022. 7. 13. 23:54
인공지능/DLS
Deep Learning Frameworks 다양한 딥러닝 프레임워크 중에서 선택하는 팁 - 프로그래밍하기 편한 것 - 빠른 것 - 오픈소스인 것 TensorFlow 아주 간단한 cost function을 상정해보자 $J(w) = w^{2} - 10w + 25$ import!! import numpy as np import tensorflow as tf define the parameter w w = tf.Variable(0, dtype=tf.float32) # variable to optimize optimizer = tf.keras.optimizers.Adam(0.1) # learning rate 0.1 def train_step(): with tf.GradientTape() as tape: cost..
[2.3.] Multi-class Classification
2022. 7. 13. 22:39
인공지능/DLS
Softmax Regression $C$ : 클래스 개수 -> 네 개의 클래스라고 하면 (0, 1, 2, 3) *3은 어디에도 속하지 않는 경우 output layer의 유닛 개수는 클래스 개수와 일치해야 함 ($n^{[L]}=C)$ $\hat{y}$ 는 (4, 1) 차원 -> 하나로 합해야 함 Softmax Layer 마지막 레이어 $L$의 입장에서 생각했을 때, $Z^{[L]} = W^{[L]}a^{[L-1]} + b^{[L]}$로 z값을 구했으면 "softmax activation function"에 통과시켜야 한다 임의의 변수 $t$ 를 설정 $$t = e^{z^{[L]}}$$ * element-wise exponentiation * $z^{L}$는 $(4, 1)$ 차원이므로, $t$도 $(4, ..
[2.3.] Batch Normalization
2022. 7. 12. 23:04
인공지능/DLS
Normalizing Activations in a Network *1주차에서 배웠던 normalizing inputs $$\mu = \frac{1}{m} \sum_{i=1}^{m} x^{(i)}$$ $$x := x - \mu$$ $$\sigma^{2} = \frac{1}{m} \sum_{i=1}^{m} x^{(i)} \star \star 2$$ $$ x /= \sigma$$ - $\star \star 2$ : element-wise squaring 더 깊은 신경망이라면? input features $X$뿐만 아니라, 레이어마다 활성화값이 있음 말하자면, $w^{[3]}$, $b^{[3]}$ 를 더 효율적으로(빠르게) 학습하기 위해 $a^{[2]}$를 normalize 하는 건 어떨까? --> batc..