![[1. Foundations of Deep Learning.pdf]] > 목차에 있는 키워드들로 검색하고, 레퍼런스 참고해서 공부할 것 # Introduction to Deep Learning ## Artificial Intelligence (AI) AI = computational rationality (컴퓨터로 만들어진 합리성) 공학에서의 합리성이란? = 기대되는 합리성을 최대화하기 위한 것 사람처럼 하는 것을 목표로 함. 기계가 사람처럼 잘 하나?를 평가의 척도로 삼음. day one == 엘런튜링 논문 AI(키오스크, rule-based, knowledge bases) ㄴ Machine Learning(기계학습, 기계가 룰까지 설계, 로지스틱 회귀) ㄴ Representation Learning(표현학습, 기계가 개념까지 설계, 표현이 계층적으로 개선) ㄴ Deep Learning ## Deep Learning(=hierarchial representation learning) 인공 신경망 + 빅 데이터 + GPU(계산량 크기 때문) 8페이지 옆에 구조도 보면 됨. 인공신경망을 '깊게' 쌓아서 피처를 여러 단계로 만드는 것 each layer in neural nets = feature representation 각 층은 데이터를 갖고 있을 것임. 각각이 갖고 있는 데이터를 피처라고 부름. 사람이 잘하는 태스크를 하려고 노력함. ## Three waves of DL development ### Cybernetics 뇌를 모방해서 만들면 사람처럼 동작할 것이다! 뇌과학이랑 연관. linear 모델. 데이터를 선 그어서 나누는 느낌? 문제... 못 푸는 문제가 발생함. o x x o -> 이런 거;; ### Connectionism 인지과학이랑 연관. 뇌가 뉴런 하나가 아니네? 연결되어서 뉴런 네트워크를 만들면 되지 않을까? -> 인공신경망을 만드는 작업. XOR 문제가 해결됨. (종이를 반으로 접어서 자른대..;) **장점**: 훨씬 더 다양한 것들을 배워서 합쳐서 잘 출력 **단점** - 모델이 뭘 갖고 있는지 잘 몰라서, 해석하는 데 비용이 듦 -> XAI (설명 가능한 AI) - 많이 쌓으면 되지만, 많이 쌓을 수가 없는 상태 (8-90년대니까) 이러고 이제 AI winter가 옴... 근데 이제 2006년에 딥러닝! ### Deep Learning 예시: RBM, CNN 비지도학습 -> 지도학습 / 강화학습 -> 다시 생성형 모델 나오면서 비지도학습... -> 최근에는 self-supervised learning도 나오고 있음. 라벨이 없음. 근데 데이터를 이용해서 라벨을 만들어내서? 학습하겠다. 이런 것. ## Deep Learning is in its prime time ### three key driving forces 1. 빅 데이터 2. 병렬 컴퓨팅 (GPU) 3. 알고리즘 발전 ## Status quo 1. 사람보다 못함 subhuman 1. 보통의 AI 2. 데이터가 작고 비싼 도메인, 사람 전문가가 비쌈 2. 사람만큼 함 human-level 1. 인식 관련 태스크(사진/음성 듣고 맞추기) 3. 사람보다 잘함 superhuman 1. 구조화된 structured 빅데이터가 있는 도메인 (추천 시스템, 온라인 광고) 2. 인식 관련 태스크(감시), 게임 플레이 -> 사람보다 못한 분야들은 발전이 빠름 (알려주면 되니까) 근데 사람보다 잘하면 발전이 점점 느려질 수밖에 없음. --- # Machine Learning Basics ## Machine Learning (Learning from data) 어떻게 정의? * 경험을 통해 배우고 -> 경험 E * 태스크가 정해져 있어야 함 -> 태스크 T * 공학의 제1원칙 (측정할 수 있어야 개선할 수 있다) -> 성능 측정 P * 만약 T가 P로 측정될 수 있고, E를 통해 발전한다면 학습! common types * supervised 라벨이 있을 때 쓰는 것 * unsupervised 라벨이 없이 알아서 (생성형 AI도 여기 포함) * reinforcement 강화학습 (learning from interaction! 환경-에이전트 상호작용을 통해 학습) * self-supervised 예시는 BERK 모델 * I am a boy * 여기서 뭘 배우고 싶음. 라벨은 없음. * I am a OOO * 모델한테 OOO를 맞춰보라고 함. 라벨을 만들어낸 거. 스스로 지도할 라벨을 만들어서 학습한다. ## Tasks in ML 기본적으로 예시가 존재해서, 예시를 어떻게 처리할지로 생각하면 됨. **예시란?** - 홍길동의 '이름', '나이', '성별', '키' 등등 하나의 레코드를 example. '이름' 같은 게 feature. feature들의 모임이 example. - 추상적인 게 아니고, 010101 이지랄로 데이터화될 수 있는 것. - n차원 공간에 있는 벡터 x (뭔소리지?) - *e.g* 이미지의 피처 = 픽셀 값들 **ML task 예시** 1. classification 분류 2. classification with missing inputs 3. regression 뭐?... classification이랑 차이... 4. transcription 5. machine translation 6. structured output 7. anomaly detection (이상치 탐지) 8. synthesis and sampling 9. imputation of missing values 10. denoising 11. density/pmf estimation ## Data set (a collection of examples) - training set: for fitting -> 학습 - validation set("dev set"): for model selection -> 성능 잼 (성능이 높은 선택지 선택하려고) - test set: for generalization -> 다 만들고 아주 새로운 데이터로 확인하기 위함. 최종 성능. 유명한 개념 : 10-fold cross-validation test set 제외하고 k개로 나눔 -> 처음 걸 validation으로 하고, 나머지 9개를 training. 9개로 학습하고 처음 걸로 validation -> 이러고 모델을 수정함 -> 두번째 걸 validation으로 하고 나머지도 반복... ## Performance measure - specific to task T - *e.g* - 정확도, **에러율 E.** 여기에 집중할 예정 - density estimination - 데이터 셋으로 평가 - 고르기 어려움! (challenges) - 뭘 '잴지' 결정하기 어려움 - 이상적인 measure은 가능하지만 실제로 재는 건 impractical함 ## Central Challenge in ML = Generalization == 이전에 안 다뤘던 예시에 대해서도 잘 다루는 것 1. Generalization error -> 새 예시에서 에러 발생 -> implausible to calculate 2. Training error -> 트레이닝 셋으로 잼 -> bad proxy for Egen 3. test error Etest -> 트레이닝 셋에 안 썼던 테스트셋으로 -> better proxy for Egen ## Two specific objectives 1. 목적: Egen=0 in theory or Etest ~= 0 in practice $E_{gen} \backsimeq 0$ 2. 두 목적으로 나눔 1. $E_{test} \backsimeq E_{train}$ 2. $E_{train} \backsimeq 0$ 3. 목적 1 1. failure: overfitting -> high variance # 찾아볼 것 ## capacity of a model * 너무 간단 -> underfitting(주어진 것도 못 맞춤) / 너무 복잡 -> overfitting(새로운 거 못 맞춤) ## Choosing a model 정답이 될 수 있는 모델이 너무 많음... 그럼 뭘 골라야 하냐? 오컴의 면도날; 1. 오컴의 면도날 1. choose the simplest one 2. 왜? 수식적으로 증명이 됨. VC generalization bound. 1. P(traning 에러랑 test 에러랑 차이가 커지는 나쁜 이벤트) <= VC bound 2. VC bound를 어떻게든 낮출 수 있으면 나쁜 일이 벌어지지 않을 것이다! 1. 왼쪽 (2N어쩌고) N== traning example의 개수 N이 커질수록 0에 수렴함. N이 커져야 함. 2. dvc는 작게 만들어야 함. dvc는 vc dimension?;; == 모델의 complexity 즉, 모델이 단순해져야 함. 3. 즉, 모델은 단순해지고 데이터는 많아져야 함 ## A tradeoff: the main challenge in ML ### approximation-generalization tradeoff / bias-variance tradeoff approximation - variance generalization - bias 1. 이론상: 일반화 에러율을 낮추려면 단순한 게 낫다 2. 현실상: 복잡한 데이터를 다루기 위해서는 복잡한 게 낫다 -> 딜레마가 있음. 그래서 optimal capacity를 찾아야 함. ## Two major weapons to fight the tradeoff 1. Optimization 최적화: bias reduction (better approximation) 1. 에러를 최소화하는 모델 파라미터 찾기 2. Regularization 정규화: variance reduction (better generalization) 1. 노이즈 특성을 잘 이해하면, 노이즈를 안 학습하게 만들 수 있을 거고. 중요한 시그널만 배우니까 성능이 좋아짐! constrains model capacity by reflecting prior knowledge 2. 노이즈 > frequency가 크다 네?? 뭐라고 말했는데 뭔지 못알아들음 ## Optimization examples 1. Newton's method 1. zero-finding 1. 일차함수 $x_{t}$ 에서 $x_{t+1}$ 으로 가면서 function to solve 로 근사... 2. minimization / maximization 1. 이차함수 $x_{t}$ 에서 $x_{t+1}$ 으로 가면서 function to solve 로 근사... min값 찾아서 min값을 맞추는 것임... 2. 한계: 연산량이 너~~ 무 많다. 사실상 구현이 불가능한 방법. 2. 대안: gradient descent 1. 움직이는 건 맞는데, 기울기만큼 이동하겠다! 두번 미분하는 거 연산량 많으니까 상수로 바꿔버리자~ 이런거랴... ## Choosing a model (modern advice) - complex model + effective regularization + big data - training error을 최대한 0으로 만들자! 일단 복잡한 모델 써라... -> 그럼 오버피팅 문제 어떻게 해결? - 데이터가 많으면 해결이 될 거고, - 정규화 regularization 을 잘 하자 ## Big picture quantity of unmodeled data (bias) quantity of modeled noise (variance) 가장 낮아지는 포인트는 중간쯤 잇을 것 ... 그러니까 **optimum**을 찾아야 함~ 모델은 그 사이 어딘가에서 approximation을 하고 있음... overfitting을 너무 심하게 해서 아예 외워버리는 걸 interpolation이라고 함... # Linear Models ## Linear Models - 선형 모델 -> 1차함수 형태 -> 제일 간단 - 복잡한 모델들의 토대가 됨 - 장점이 많다 - 간단함: 구현, 테스트, 해석 쉬움 - generalization 잘 됨: 트레이닝 에러가 테스트 에러랑 거의 비슷. 오버피팅 ㄴㄴ - 확장: nonlinear 확장... , 커널을 씌워서 공간을 휘?... 게해서?... neural nets? 뭐감 ㅏㄴㅎ네요...^^ - 3가지 중요 문제 1. classification 분류 (discrete) 2. regression 예측 (continuous) 3. probability estimation 확률 추론 (*aka* logistic) ## Example: 카드신청 - given: applicant 정보 - decide: 발급 할말? ## Formalization $x \in R^d$ Y: +1을 발급, -1 거절 denotes a binary (yes/no) decision 우리 예시에서는 1. input x feature들 2. 출력은 y: 승인 아님 거절 target function: "정답을 만들어주는 함수" hypothesis 우리의 모델 g: "f랑 어떻게든 따라가는 것. f를 알 수 있는 방법은 없음. 존재한다고만 가정하고..." 데이터셋은 f에 넣어진.. x,y라고 생각... 피처 수 n -> n차원 ## Decision making - 신용점수를 만들 수도 있을 것 - threshold를 만들어서 이상이면 승인, 이하면 거절... 이런 식으로 만들 수 있음 - 왼쪽에 있는 시그마어쩌고 수식이 신용점수 ## The perceptron # 이것도 한 번 더 공부해보기 -threshold를 +b라고 하고, b를 bias라고 부른다고함..^;; 이 모델을 펄셉트론이라고한다~ (a simple linear classifier) weights 랑 x 하나씩 곱해서 더한 것... 그게 hyperplane 위에 있으면 승인 아님 거절~ ㅣ이런 거 parameter 세타... 와 뭔 개서리야 b를 w0x0? 라고한대~;; 1부터 d까지 곱해서더햇는데... 그럼 이제 0? 이 되어서? cooddinate x0 --- 1 와 뭔소린지 전혀모르겟어염 하여튼 맨마지막에 있는 저새끼로 하겠다... ;; 리니어모델에서 제일 중요한 개념. 이걸 시그널이라고 부름. 어떻게 가공하느냐에 따라 바뀜. ### 다른 Linear Models 결국 아까 signal을 기반으로 함. - linear classification / step. h(x) = sign(z) - linear regression / h(x) = z - logistic regression / h(x) = 세타(z) -> 확률추론이라 0부터 1까지~ # Additional Theory and Practice ## Miscellaneous Hadamard product 아 이지랄 모델의 파라미터... 레이어 몇 개 할 건지, 등등 정하는 건 우리가 해줘야 함. 이런 것들은 하이퍼파라미터라고 한다. 파라미터 튜닝: 안에서 바꾸는 것. 정해진 세티엥 대해서 최적의 모델 파라미터를 찾는 것. 하이퍼파라미터 튜닝: 밖에서 바꾸는 것 모델 학습은 nested 형태로 되어 있다. # Additional Theory and Practice ## Information theory 통신 쪽 이론임. A>B 메시지 보낼 때 어떻게 최대한 효율적으로 통신하느냐? 라고 하려면 정보이론이 등장. 어떻게 하면 제일 짧은 길이로 보내느냐? 이진수 코드를 최적화하는 데 쓰임. a,e는 많이 쓰고 z,x는 거의 안 씀 -> 규칙을 정할 때 a,e는 짧게 정하고 z,x는 길게. 자주 나오는 게 더 짧을수록 더 효율적일 것. 이 개념이 정보이론의 기본적 개념임. 머신러닝에도 많이 쓰임. 메시지를 보낸다기보다는 분포를 characterize한다. 분포간 얼마나 유사한지를 잴 때 많이 쓰임. ### Basic intuition 직관적으로 likelihood가 더 낮은 것이 정보량이 많음. 우리가 정보량을 측정할 수 있을까? - 새로운 게 없을 때: 정보량 X - 매우 일어나기 힘든 일들: 정보량 많다 이런 식으로 **정보량** 개념이 정의됨. ### Self-information: 정보량을 숫자로 만든 거 확률이 낮을수록 더 많은 정보량을 주고 싶음. 1/P(x) 이러면 확률이 낮을수록 커짐. 이러면 분모에 뭐가 있어서 계산하기 불편 -> 이래서 log 1/P(x) 로 함. 이러면 더 활용하기 좋음. 그래서 -logP(x)로 information을 정의함. 여기서 로그의 밑은 선택이 가능하다.... 자연로그 e를 쓰거나, 2를 쓴다. 자연로그 e를 쓸 경우: nats 2를 쓸 경우: bits라고 부름. ### Shannon entropy 정보량은 기본적으로 '하나의 사건'에 대한 것. 하나의 사건이 아니라 전체 확률분포에 대해서도 정보량을 구할 수 있을 것임. 각 확률에 대해서 정보량을 구할 수 있을 것임. 직관적: 평균을 냄. 저 식... 을 shannon entropy라고 하겠다. 중요한 개념! H(P)라고 쓰기도 함. 랜덤한 값을 뽑아서 self-information을 구한 평균. 바이너리 분포... 에 대해서 구한 걸 bernoulli distribution... 허허 처음들어보는데요? 확률이 0.5일 때 가장 엔트로피가 커짐. 엔트로피가 작다 = 거의 확정적인 사건들. 균일한 분포를 갖고 있을 때 엔트로피가 크다고 말을 함. ### Kullback-Leibler(KL) divergence (relative entropy) 확률분포가 여럿일 때의 경우. 직관적으로 이해하기.^^ 한국어에 대해서 최적화... 애초에 KL divergence는 Q가 anchor point(설명에서의 한국어) Q에서 대해 최적화된 걸로 P(설명에서의 영어) extra amount of information needed to send a message. 추가로 필요한 정보량을 KL divergence라고 부르겠다. Q가 기준점으로, P를 보낼 때 추가로 드는 정보량! ### Properties of KL divergence 분포의 차이라고 봐도 될 것.... - 0 이상 - p와 q가 같을 때 0이 나온다 (거리 같은 느낌??) - 비슷할수록 작고 - 같으면 0이다 - 두 분포 간의 distance를 잴 때 쓴다. 거리=non negative, symmetric, 어쩌고... - 근데 not-symmetric. P,Q 위치 바뀌면 바뀜. 거리라고 부르지는 않고, divergence라고 부름. 직관적으로는 거리처럼 쓸 수 있다. ### KL divergence 바꾸면 어떻게 될까? application-dependent. 적절히 바꿔서 쓰면 된다. p기준으로 q를 잡을 때... 와 시발 먼소리여.오른쪽: 넘어갈 수가 없게 되었고 한 쪽으로 쏠림. ### Cross-entropy: H(P,Q) P에서 뽑은 x에 대해서 Q의 평균을 내는 것. Q의 확률들을 P에서 뽑은 x로 평균을 냄. shannon 엔트로피 + KL divergence 하면 cross entropy (아래 그림 참고) 추가 정보량 + 원래 정보량이니까 총 정보량! 보통 이 cross entropy를 최소화함. 따라서 우리가 줄이려고 하는 건 결국 P와 Q의 차이. KL을 줄이든 Cross entropy를 줄이든 똑같다. Shannon Entropy는 뭐 줄일 ㄹ수 있는 값이 아님 ㅁ. 모델을 바꿔도 상수다. Q로 바꿀 수 있는 건 KL. P가 정답, Q가 우리의 분포.라고 하면 됨. 이 개념이 사실은 "Maxmimum Likelihood Estimation"과 밀접하게 연결되어 있다. ## Maximum Likelihood Estimation ### Maximum likelihood estimator m개의 example set을 X라고 함. the true but unknown datat generating distribution pdata (원래 데이터 진짜 분포)는 알 수 없지만, example들은 우리가 갖고 있다... pmodel을 통해서 pdata를 잘 따라가도록 하는 걸 원함. 머신러닝 목표. 파라미터를 통해서 모델을 만들게 되는데, 우리 모델의 파라미터 쎄타로 만들어진... 우리모델 pmodel은 같은 스페이스 내에 놓여 있음. 같은 x씀. 진짜 데이터 분포에서 만들어진 실제 분포를 따라가는 게 머신러닝 목표. 수식적으로 쓰면~;; 52/81 Maximum likelihood estimator likelihood를 최대화시키는 모델의 파라미터를 찾겠다. 모델의 확률을 최대화시키는 걸 쎄타ML 여기서 ML은 Maximum likelihood. 가정: pdata라는 진짜 분포에서 샘플링될 때 독립적으로뽑햇다..고 하면 그냥 독립사건이니까 각각 곱해버림. pdata hat에서 뽑겠다.. estimation한 분포를 말함. training data를 가지고;; x라고 하자. 그냥 pdata모르니까 거기서뽑은것들로 평균내겟다 이소리 ㅇㅇ MLE = minimizing the cross entropy === KL divergence = minimizing the dissimilarity between - emperical distribution p hat data - model distribution p model 결국 둘 간의 차이를 줄이겠다. entropy H(p hat data) - 모델 아니고 세계에존재하는...데이터 - 학습 대상이 아니겠죠? 쎄타를 바꿔서 cross entropy 값을 줄일 수 잇겟죠... 결국 두 분포간의 차이가 줄어들것... any loss consisting of a negative log-likelihood (NLL) = is a cross-entropy between - 트레이닝 세트로 만든 empirical distribution - 모델이 정의한 확률분포 결국 우리가 ML을 하는 건 모델 distribution을 진짜 데이터 (p hat data) distribution에 가깝게 만드는 것. 이상적인 건 pdata를 갖고 있는 것이지만, 그건 구할 수가 없는 값임. 대신, 우리는 주어진 pdata의 샘플들을 가지고 가상의 phatdata를 가정해서 학습하게 됨. ### Bottom line ![[스크린샷 2026-03-10 오후 4.17.56.png]] Likelihood를 최소화하거나 KL divergence를 최소화할 때 optimal한 쎄타를 찾아야 한다. ## Manifold Learning ### Modeling assumptions 어떤 assumption과정이 없으면 힘들다... 답이 되는 pmodel찾기 힘듦 너무 커서. 1. smoothness 1. 근처에 있는 비슷한 데이터 => 같은 라벨을 갖고 있다 2. cluster 1. 데이터가 덩어리를 지고 있는데, 덩어리 내에 있는 것들 => 같은 라벨을 갖고 있다 3. manifold 1. 실제로 데이터는 input space(화면 사이즈라고 하면) 고차원에서 상당히 작은 차원에 놓여 있다. ->먼솔? 을 이제 설명한다 ### A manifold == connected region 수학적으로는, 이웃이 되는 Point들의 모임. 실제로는 중요한 정보들을 3차원 공간이 아니라 2차원 사진으로 봐도 담을 수 있다. 복잡한 데이터인데 하나의 값으로 표현할 수 있다... 뭐 이런 거. solid line = underlying manifold ### 의미 그림에서 - **파란 점들** → 실제 관측 데이터 (noise 포함) - **실선** → 데이터가 실제로 놓여 있는 **underlying manifold** 즉 머신러닝 모델이 해야 하는 일은 흩어진 데이터 포인트 → 그 아래에 있는 구조(= manifold)를 추정 입니다. ### 그림을 해석하면 데이터는 **2D 공간**에 있지만 실제로는 1D 곡선(manifold) 위에 놓여 있습니다. 대부분의 공간은 무의미하고, 극히 일부만 의미가 있다... 원하는 포인트 하나를 알고 있다면, 근처에 있는 건 다 유의미해짐. data가 manifold로 존재할 것이다... ### Manifold learning 다행히도, manifold learning덕에 문제가 훨씬 쉬워짐 1. most of n차원 실수공간은 consists of invalid inputs, and 2. 관심 있는 진짜 같은 데이터들은 매우 좁은 manifold 상에만 놓여 있다 ### Extractin manifold coordinates 축... 을 어떻게 찾을 건가? 어떤 방향으로 설정할 것인가? 가 중요해지는... 축을 알면 어떤 데이터를 샘플링할지 알수잇으니까 ... # Development Strategy ## Motivation deep learning: highly iterative process 어케하면 빨리할수잇을까? 하이퍼파라미터 서치를 자동으로 해주는 게 있었다가 사라졌는데... 뭐... 현재까지는 직접 튜닝하면서 실험하고 있음. NAS Neural Architecture search 요즘은 좀 느리게 되고 있다... ## Data breakdown 빅데이터로 할 땐 트레이닝을 98로.... 데이터가 점점 복잡해지고, 그것 때문에 모델 자체 튜닝이 어려워졌음. (현대) 그래서 트레이닝 데이터가 좀 아쉬워짐. 최대한 많이 쓰는 것. 그리고 데이터 자체 개수가 많아져서, 그냥 테스트데이터도 뭐... 좀 줄여도 많으니까 ㄱㅊ! ## Power of big data 데이터가 많아지면 뭐가 줄어드냐... 나쁜 일이 일어날 확률(나쁜 일 = test error - training error)이 낮아진다. 즉 generalization이 잘 된다. generally 퍼포먼스가 발전함. ## How much data? highly dependent on specific problems ㅈㄴ 케바케 goodfellow는 대략~~ 카테고리당 5000개 라벨 샘플이 있으면 잘 된다. 사람만큼 잘하고 싶으면? 적어도 천만개가 있어야 한다.;; 어이;; 데이터가 모자랄 수도 있는데, 이럴 때 취할 수 있는 전략 1. pre-training and/or transfer learning 1. pre-training 의료 이미지라고 치면, 기본 자연사진 넣어서... 선면이런걸... 2. un/semi-supervised: 라벨이 없는.. 걸 사용하게 함 ## When you do not have enough data 1. data augmentation: 데이터 뻥튀기;; 1. rotation, noise, translation 2. simulation: 데이터를 만들면서~ 1. 알파고! 룰이 확실하고 변수가 없으니까... 3. generation: 생성형 모델... 1. diffusion model, GAN -> 이번 학기에 배울 것들 2. 이미지, 텍스트 같이 rule이 없는 것들... ### Match data distribution dev distr, test distr 환경을 좀 비슷하게 해줘서... 성능이 잘 나오게 함... 둘 간의 분포가 비슷해야 함. ## Orthogonalization 헤헤헤헤헤헤헤 끝~ 73페이지부터 끝까지 다음시간에... orthogonal knobs -> more effective control 머신러닝에서는 어떻게 반영되어 있는가? 다양한 상황에서 어떤 걸 건드려서 해결을 할거냐.... train 세트를 잘 못 해서 해결하고 싶다 -> early stopping.. 학습을 하다가 중간에 멈춤... 두가지 효과가 동시에 발생 1. 테스트 데이터에 대해서는 성능이 좋아질 수 있음 (overfitting 방지) 2. training data에 대해서는 피팅이 덜 될 수도 잉씀... 그래서 덜 orthogornal 하다 더 나가서 리얼월드에서 잘 하고 싶다... dev set을 바꾼다(한국데이터 말고 외국데이터) ### Choosing a metric 평가 지표를 고를 때... using a single real number 해야 한다 (반복 절차를 빠르게 할 수 있음) optimizing 정확도 maximize 적당히 만족: satisficing metric ### Referencing human-level performance Bayes error (irreducible error): lowest possible error 휴먼 error 머신 < 사람 : 할 수 있는 것들이 많다 - 사람이 라벨을 단다 - 틀린 것들을 수동으로 개선 - Bias-variance 재서 맞는 모델 튜닝 머신 > 사람: - 위 방법들이 소용이 없음 - 발전시키기 힘듦 training이랑 dev 차이가 없엇으면 좋겠다... generalization... bias 줄이기 training 이랑 bayes... reduce variance 첫 번째 예시: bias를 줄여야 함 reducing bias - 더 복잡한 모델, 더 오래 학습, 더 최적화 - 하이펗파라미터를 바꾸거나 아키텍처를 바꿈 reducing variance - 데이터 더 넣고, 정규화 - 하이퍼파라미터를 바꾸거나 아키텍처를 바꿈