본문 바로가기

딥러닝 & 머신러닝/[2020-2] 머신러닝 수업

(12)
머신러닝 과제 (데이터셋 조사, NLLLoss & Cross Entropy Loss) # 데이터셋 조사 MNIST 데이터셋: 0 ~ 9까지의 손글씨 이미지로 구성되어 있으며 크기는 28x28이다. 각각의 픽셀값은 0~255의 정수로 이루어졌고, 회색조 이미지다. 데이터의 레이블은 0 ~ 9의 정수로 이루어져 있다. 학습용 데이터는 60,000개고, 테스트 데이터는 10,000개다. 가장 기본적인 이미지 분류가 이 데이터셋의 목적이다. Fashion-MNIST 데이터셋: 의류, 가방, 신발 등 총 10종류의 패션 이미지들로 구성되어 있으며 크기는 28x28이다. 각각의 픽셀값은 0~255의 정수로 이루어졌고, 회색조 이미지다. 학습용 데이터는 60,000개고, 테스트 데이터는 10,000개다. MNIST 데이터셋과 마찬가지로, 가장 기본적인 이미지 분류가 이 데이터셋의 목적이다. CIFAR..
머신러닝 과제 (활성화 함수 조사) ReLU: 입력값 x가 양수면 그대로 x를 출력하고, x가 음수면 그냥 0을 출력하는 활성화 함수다. 기울기가 1이기 때문에 Gradient Vanishing 문제를 해결하였다. 또한 함수가 간단해서 계산속도가 빨라 효율적이다. 그러나 중심값이 0이 아니고, x가 음수면 그 결과로 전부 0을 출력하기 때문에 몇몇 가중치들이 갱신되지 않는, Dying ReLU 문제가 발생한다. 수식은 다음과 같다. ReLU6: 기존 ReLU 함수의 upper bound를 6으로 고정시킨 활성화 함수다. 테스트 시 ReLU보다 성능이 좋았고, 최적화 관점에서도 더 좋다는 것이 밝혀졌다. 수식은 다음과 같다. ELU: ReLU의 특성을 공유하며, Dying ReLU 문제를 해결하였다. 수식은 다음과 같다. SELU: ELU와..
머신러닝 과제 (옵티마이저, 파이토치 기능 조사) # 옵티마이저 SGD: 전체 데이터의 일부(mini batch)만 보고 loss function 값을 계산해 빠르게 loss function의 최솟값을 찾아나가는 방법. AdaGrad: 많이 변화하지 않은 가중치들은 step size를 크게 하고, 많이 변화했던 가중치들은 step size를 작게 하는 방법. RMSProp: 학습이 진행될수록 가중치 업데이트 강도가 약해지는 Adagrad의 단점을 보완하고자 제안된 방법. 과거의 gradient 값은 잊고 새로운 gradient 값을 크게 반영해서 가중치를 업데이트하는 방법. Adam: RMSProp과 모멘텀(momentum)이라는 개념을 함께 사용함으로써, 진행 방향과 learning rate 모두를 적절하게 유지하면서 가중치를 업데이트할 수 있도록 고..
20201112 머신러닝 수업 - 미니 배치, iteration, epoch : 1000개의 샘플이 있다고 할 때, 100개의 미니 배치 10개로 구성한다고 하자. 이 "미니 배치 한 개를 학습 완료하면 한 번의 iteration이 끝났다"라고 한다. 그리고 모든 미니 배치, 즉 10개의 미니 배치, 즉 "1000개의 모든 샘플을 한 번 학습 완료하면 한 번의 epoch이 끝났다"라고 한다. - softmax 함수 (or classifier) e^x 함수는 입력받은 x의 값이 작으면 더 작게, 크면 더 크게 만드는 성질을 갖고 있다. 즉, 위 그림처럼 여러 가지 입력값이 softmax 함수에 들어왔을 때, 가장 큰 값을 제외한 나머지 값들은 전부 작게 만들어버리는게 softmax의 기능이다. 이때 softmax의 분모는 정규화 기능을..
20200929 머신러닝 수업 목적 함수의 3가지 조건: - J(w) >= 0, 목적 함수의 값이 항상 0보다 크거나 같아야 함. distance 같은 개념. - w가 최적이면, 즉 모든 샘플을 맞히면 J(w) = 0이다. ( = Y를 w가 틀리는 샘플의 집합이라고 한다면 Y = ø) - 틀리는 샘플이 많은 w일수록 큰 J(w)를 가진다. 즉, 제대로 예측하지 못할수록 J(w)의 값이 커진다. 목적 함수한테 있으면 좋은 2가지 조건: - 미분 가능하다. 미분 가능하면 최적화가 쉽고, 목적 함수의 gradient를 이용해서 GD를 쓸 수 있음. - 아래로 볼록(convex)하다. 아래로 볼록, 즉 convex하면 최솟값 찾는게 가능하다. 퍼셉트론의 목적 함수: 델타 규칙의 메커니즘: 델타 규칙 = 퍼셉트론의 학습 규칙 : 입력값 x_k..
20200924 머신러닝 수업 학습(최적화) 시에 독립 변수와 종속 변수: 독립 변수 → 모델의 파라미터(=가중치, bias), 종속 변수 → 모델의 파라미터에 대한 목적 함수의 값(=J(w)) 경사 하강법이 낮은 loss를 찾아가는 원리: Loss 함수(목적 함수)의 gradient의 반대 방향으로 가중치를 업데이트 하는 것 배치와 스토케스틱 방법의 차이: 배치 → 모든 샘플의 gradient를 다 계산해서 평균한 후, 한꺼번에 파라미터(가중치, bias)를 업데이트. 모집단을 잘 반영하고 안정적, 그러나 느림. 스토케스틱 → 한 번에 샘플 하나 또는 몇 개의 gradient를 계산하고 즉시 파라미터를 업데이트. 불안정하지만 빠르고, 나중엔 모집단과 비슷하게 반영됨.
20200922 머신러닝 수업 사후 확률 (posterior): P(y|x), 사건 발생 후의 확률. 사후 확률 추정 → 관측된 특징(x)이 나오기 위한 클래스(y)를 유추하는 것. 사후 확률 추정은 매우 어려워서 베이즈 정리를 이용해 추정. 우도 (likelihood): P(x|y), 특정 분포(파라미터) y에서 x가 발생할 확률. 즉, 우도는 기존에 있는 데이터의 각 클래스(y)별로 어떤 특징(x)에 대한 분포를 의미. 즉, 우도(P(x|y))를 이용하면 어떤 샘플(x)이 들어왔을 때 그 입력이 어떤 분포에 가깝냐(P(y|x))에 따라서 한 클래스(y)로 분류 가능 사전확률 (prior): P(y), 어떤 샘플 x와 무관하게 미리 알 수 있는 확률. 즉 '전체' 데이터의 각각의 클래스의 분포 ex) 전체 데이터 중 P(y=여) =..
20200917 머신러닝 수업 벡터 공간: 기저 벡터들이 span하는 공간. 즉 기저 벡터들의 선형 결합으로 이루어진 벡터들이 존재하는 공간. 고유 벡터의 기하학적 의미: 어떤 벡터 v가 있는데, 어떤 행렬 A가 적용되었을 때 스칼라(λ) 배가 되면 그 벡터가 고유 벡터. Av = λv. 즉, 행렬에 의해 공간의 변형이 일어나도 방향은 유지하는 벡터. 머신러닝에서 행렬 분해(고유값/특이값 분해)의 응용: 특징 공간의 차원을 줄일 수 있다. 여러 특징들이 있을 때 어떤게 더/덜 중요한지 알아낼 수 있다. 확률의 곱 규칙: X, Y가 동시에 일어날 확률. P(X,Y) = P(X|Y)P(Y) 확률의 합 규칙: X 또는 Y만 일어날 확률. 즉, 여러 가지 차원이 있으면 그것들을 한 차원으로 줄일 수 있다. 베이즈 정리를 이용한 분류 문제를 ..