ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Lecture 3~8 | Loss Functions and Optimization---loss function에 대한 단상
    CS231n 2022. 1. 10. 11:39

     

    (X_T * X )_ -1  = X _-1 * X_T_-1 , X _-1 * X_T_-1 * X_T    = X_-1  * I (eigenvector I). = X_ -1 (X의 역행렬) 

    X_ -1 (X의 역행렬)  * y  =  베타_햇 (예상치 파라미터) 

    y = 정답지

    y = X *베타_햇(실제값 *  예상치 파라미터) 

    예상치 파라미터 베타_햇 이 작아져야 합니다!!! 이건 회귀계수 라고도 부름.

    앞으로 햇이 붙은 것은 추정치라고 생각합니다!

     

     

    LOSS 함수의 첫번째 항은 Variance 인데, 이게 최소가 되어야 한다!!

    뒤의 항은 BIAS 로, 베타를 이용해 표현한다! 

    총쏘는데 분산되면 안되니까 분산값은 최소로 하고 베타를 이용해 적이 표적지 다른 데에서 나타나도 표적지만 맞추지않게 바이어스를(거리를) 좀 주는 것이다!

     

     

    https://sjpyo.tistory.com/43

     

    Regularization

    Bias-Variance Trade-off 1) 개요 - 아래의 이미지를 통해 bias와 variance의 직관적인 이해를 할 수 있다. 2) Bias (편향) - high bias, low variance일 경우, 모델이 단순하여 underfitting을 초래하고 train,..

    sjpyo.tistory.com

     

     

    블로그를 가시면 이게 보일것이다

    뭔지몰라 다 패스하실 텐데 이게 제일 핵심적인 이론이다.

    E는 expectation 으로 일반적으로 평균값이다.

    세타_햇 은 모자를 쓰고 있어서 햇으로 부른다.

    세타_햇은 우리가 예측한 값이고

    세타는 정답지 이다

    이것을 빼서 곱해서 다 더하면 expectation(평균!!) 이 나온다 직관적으로 나눠야 하는거 아닌가? 생각이 드신다면

    이미 확률 * 그 값 을 다 더한거기 때문에 확률 자체에서 이미 나눠진 거라고 생각하시면 된다!

    여기에서 식을 좀 수정해서 우리가 예측한 값(가설함수)  의 평균을 예측값에서 빼서 더한다

    이걸 왜 하냐면 평균을 0 으로 만들고 분산을 구하기 위해서이다!!! 마치 영점 조정하는 것이랑 비슷하다!

    정규분포를 만들기 위해서이다! 

    그리고 E 는 세타에 대한 함수라서 세타_햇 의 경우에는 [] 안으로 들어가서 일일이 E를 붙여줄 수 가 있다

    이 글을 다시 끝까지 읽으니 가설함수가 우리가 말하는 세타_햇이다.

    세타_햇은 이상한 골뱅이에 세모 위에 올려져있는 것이다 . 헷갈리실까봐..

     

    일반적으로 Deep Learning에서 network의 Overfitting(과적합) 문제를 해결하는 방법으로 3가지 방법을 제시합니다.

    https://blog.nerdfactory.ai/2021/06/15/Normalization-Theorem-1.html

    https://sci-hub.hkvisa.net/10.1109/IGARSS.2017.8127453

     

    너드팩토리

    너드팩토리에서 운영하는 블로그 입니다.

    blog.nerdfactory.ai

    모든 시그널에는 노이즈가 있다.

    이건 매우 중요한 사실로, 이 노이즈 때문에 통신이론에서는 꽤나 애를 먹기도 한다.

     

    이것을 estimator 는 H-1s 로 주어지는데 H 가 안좋은 데이터일 경우, 

    역변환시 x hat 은 노이즈에 극적으로 취약해진다

    이를 보완하기 위해서 람다항을 집어넣어준다!!!

     

    데이터의 분포가 넓을 경우 , 우리는 주로 L1 을 쓴다!!!

    마치 총의 렌즈가 원형인것과 사각형인 것의 차이이다!!!

    우리는 그곳에서만 총을 발사할수있다고 가정한다.

     

    dot product라는 이름의 이유는,



    v1과 v2를 dot product 할때에 그 기호로 중간에
    v1 . v2 이렇게 dot을 붙여주기 때문이고,
    동시에 scalar product라 불리는 이유는,
    해당 연산의 결과값이 스칼라 값이 나오기 때문입니다.



     

    1. 더 많은 data를 사용

    2. Cross validation

    3. Regularization

    norm :

    딥러닝에서도 손실함수에서 정답과 예측값 사이의 차이를 거리로 나타낼 때에, 이 두 데이터를 좌표로 두고, 그 차이에 대한 길이(크기)를 구할때 사용하는 개념

    오 iOS 에서도 돌아간다니...

    J 는 cost function 이다.

    i 는 점들을 의미하는데, index 을 의미한다.

    스칼라 값이 나와야 y 레이블을 추정가능하기 때문에 (1*n) * (n*1) =1 차원의 스칼라 값이 나오도록 한다(방향성 없는게 스칼라, 방향이 있으면 벡터)

    세타_transpose * 세타는 모든항에 제곱한것과 같다.

    transpose 을 x, y 에 한 것은 각 행마다 차원을 의미하는 것이다.

    이 식에서 J = 의 시그널 항이 데이터를 의미하는데 이 데이터를 뒤의 람다항에 맞추는(fitting ) 것 이 의미라고 한다. !!!

    https://www.youtube.com/watch?v=skOcLw_fXDsn*m * (m*n) = n*n 이다.   

    람다항에 세타가 매개변수로 들어가 있는데 이것을 가능한 낮추는게 우리의 목표이다

    이 람다항은 L1, L2 로 나눌 수 있다!

    shrink your parameter(theta) 을 의미.

     

    이 동영상은 무료입니다

     

     

    이러한 cost function(타원형) 을 NORM 에 맞추는 것(fitting) 이 우리의 목표이다!!!!

    이 그림들을 보면 사각형은 접점이 0 이 될 수 있다! 

    이 것은 분포도를 봐도 알 수 있다!!!

    0 이 되는 지점을 확인 가능하다 (L1 NORM) 

     

    람다항이 숫자가 커지면, 데이터에서 빼는게 람다항이 므로, 당연히 데이터의 중요도가 낮아진다 이것을 특성의 영향 감소!라고 한다

    우리는 Overfitting , 과적합을 막는 것이므로 lambda 항이 0 이면 안된다

    그래서 L1 보다 L2를 선호한다!

    표준정규분포가 0이 안나오기 때문이다!!

    기울기 감소란, 마주치는 점에서의 미분을 하였을 때, 기울기가 감소를 하는 것을 말한다. 람다가 증가하면 저 NORM 의 크기가 커지고( 사각형,원의 크기가 NORM 이다. 벡터와는 다른 점... 거리값인데 방향이 없음!!!) 

    특성 즉 저 타원이 NORM 안쪽으로는 못간다!!! 식으로도 볼 수 있음!!

    그래서 마주치는 영역에서 기울기가 0인점 빼고 보면 NORM 이 커질수록 접선의 기울기가 점점 감소하는 것을 확인가능하다!!

    기울기가 점점 누워지고 있다!!!

     

     

    일단 들어가기전에 L2 정규화 같은 것들이 별로 뉴럴 네트워크에 의미가 없다고 한다

    drop out 을 주로 정규화에 이용한다고 한다

    L2 길이 코드는 이렇게 코딩을 짠다.

    .maximum 은 relu 의 비선형성 을 이루기 위해 수행 한다.

    axis = 1은 열 에 대해서 합을 짠 것이다!!!  

    행에 대해서 합을 짜면 1이 나온다 (의미가 없음)

    .Session() 을 수행해야 그래프 실행 데이터 받아옴.

    그래디언트 크기는 가중치의 크기(행렬 쉐잎 말하는 듯) 와 같다!!!

    넘파이 어레이에서 요즘 가장 많이 나오는 오류 ㅜ 쉐잎 오류다

    자동으로 weight, bias 를 세팅해주는 tf.layers

    Variable 을 쓰면 Gradient 이 텐서 형식으로 이루어 질 수 있다!

     

     

    먼저 가우시안(Gaussian) 분포의 확률밀도함수(probability density function, PDF)는 다음과 같습니다.

    L2 와 모양이 비슷합니다

    여기서 μ는 평균이고, σ는 표준편차입니다. 가우시안 분포의 PDF 그래프를 그리면 종모양처럼 됩니다.

    반대로 라플라스 분포는 다음과 같다

    L1와 모양이 비슷합니다. 

    여기서 μ는 역시 평균이고, b는 스케일(scale) 파라미터입니다. 라플라스 분포에서 분산은 2b2으로 계산하기 때문에, 스케일 파라미터 b는 표준편차와 연관이 있다고 볼 수 있습니다. 라플라스 분포의 PDF 그래프를 그리면 뾰족하고 가파른 산처럼 됩니다. 

    아래사진은 편차(b) 를 크게 해주었을 때의 sparse 하게 퍼진 모습. 두 식을 보면 왜 제곱항이 L2에서 존재하는지 알 수 있다.

    exp 항의 지수에 - 가 있는 것은 수렴하기 위해서이다.

     

    https://gaussian37.github.io/dl-concept-regularization/참고사이트1

     

    L1,L2 Regularization

    gaussian37's blog

    gaussian37.github.io

     

    s_yi 는 그 클래스를 맞춘 경우에 해당한다.

    L_i 에도 i 가 들어가 있듯이 말이다.

    따라서 스코어 벡터는 s 이다.

    스코어 벡터는 우리가 보고있는 3*3 행렬이다.

    이미 입력과 W가 선형곱셈으로 연산이 되어진 값이다.

    hinge loss 를 사용할 때보다 제곱을 해주는 식으로 하게 되면

    오차가 얼마나 큰지 알 수 있다(절대적으로) , 그래서 진짜 동떨어진 재앙같은 오류를 피할 수 있다.

    hinge loss 는 상대적으로 알 수 있을 뿐이다.(위 사진이 hinge loss)

     

    • Regularization : predict function에 복잡도를 조정하는 작업
    •  

    Wx 활성화함수에서 손실을 0 으로 만드는 것은 고유하지 않다. 선형함수이기 때문에 몇배수가 되던지 W * n 도 L = 0 이다.

    과적합 됬을 때의 문제점.

    파란색 곡선보다 가운데 찍 그어놓은 선이 더 test data(사각형)에 맞을 것이다.

     

    - Manhattan Distance 또는  Taxicab norm으로 많이 알려짐

    - 벡터의 요소에 대한 절대 값

    - 벡터 사이의 거리를 측정

    - 벡터의 모든 구성 요소에 동일한 가중치가 적용됨

     

     

    - L1 Regularization, computer vision 영역에서 사용

    0.9 에 루트를 씌워보자 0.948이다

    0.8에 루트를 씌워 보자 0.89이다

    0.7 --> 0.83

    0.6 --> 0.77

     # 이 중간부분에서 바뀌는 것이 많아지는게 보일 것이다. 이게 L2 의 느낌이다. 

    0.4 --> 0.632

    0.3 -->  0.547

     

    - L2 Norm은 가장 직접적인 경로

    - L2 Regularization, KNN알고리즘, K-means 알고리즘에서 사용

    - *고려할 점: 벡터의 각 구성 요소가 제곱이 되어있기 때문에 결과 값의 왜곡 가능성이 있음

    L2 Regularization (Ridge)

    L2 Regularizaiton 은 Ridge 라고도 불리며, 기존 Cost function 뒤에 L2 항을 추가해준 것이다.
    공식은 다음과 같다.

    마찬가지로 위 식을 미분하여 GD 에서 사용하면, 전체적으로 W 값이 작아지도록 한다.

    저번 포스팅에서 시그마로 다 더하면 평균이 된다고 하였다. 1/2m 으로 시그마의 길이를 나눠주어서 평균이 되었다.

    왜 1/2 이 붙냐면,,,, 제곱을 해서 0 이하는 다 없어져서 길이가 1/2이 되었다!

    이 평균이 최소가 되게 만드는 θ를 구하는 것이 Cost Function의 목적이 되겠습니다.

    비용함수 (COST FUNCTION) J(세타)에서 중요한 점은 J(세타)의 값을 최소화시키는 세타를 구하는 것이다.

    왜 미분을 해야 하나... 그 점을 왜 최소화 하나... 그 점 세타를 왜 알아야 하나...

    일단 내가 걷는것으로 나온 거리값은 1 * x,

    오토바이로 타고 계곡 밑까지 가서 나온 거리값 은 3 * x 로 쳐보자

    수단이 세타인 것이다. x 는 나의 시간.

    세타 * x  의 거리값으로 가고 있다 목표는 y 플래그들이다. 

    평균 오차는

    내 좌표와 i번째 플래그들을 찍은 점들을 제곱해서(양수가 되기 위해)

    i 번째 항들을 다 더한 다음 나누는 것이다. (시그마와 나누기의 의미)

    우리의 목적은 계곡까지 가는데 플래그들 사이의 거리의 오차가 제일적게 가는것이다.

    거리가 0 일때 오차가 적다.

    그 지점에서의 속도 는 세타이다.

    이 게 나오면, 속도가 높을 때는 낮추고, 너무 낮을 때는 속도를 높여야 한다!

     

     

     

    비용함수는 실제값과 가설함수의 오차를 최소화하는 매개변수 θ를 찾기위해 사용되는 함수이다.
    데이터를 넣으면 학습 알고리즘은 가설함수 h(hypothesis) 를 제시합니다.
    이때 가설함수란 우리가 기존의 Training set에는 없는 새로운 데이터를 넣었을 때
    그에 대해 예측되는 적절한 output을 제시하는 함수를 말합니다.

    가설함수는 h_세타로 표현한다. 그리고 변수 x 가 안에 들어가 있다.

     

    세타_j 의 제곱은 원과 같다. 1이상은 생각하지 않는다. 발산하므로.

    그렇다면 아까 말했듯이 원의 사분면의 중간부분이 최적이다.

    왜 그러냐면 패널티를 먹여야 하는데, 중간값이 좋지 않겠는가

    시그마 가 j =1 에서 n 까지 간다. n은 무슨 의미인가?

    n 개의 동그라미, 혹은 네모를 의미 하는 것이다.(데이터의 개수) 

    세타의 함수이기 때문에, 이 부분이 중요하다.

     

    https://www.analyticssteps.com/blogs/l2-and-l1-regularization-machine-learning

     

    L2 vs L1 Regularization in Machine Learning | Ridge and Lasso Regularization

    L2 and L1 regularization are the well-known techniques to reduce overfitting in machine learning models.

    www.analyticssteps.com

    이 부분 부터는 다른 블로그말고 전공과목 디지털 통신에서의 내용을 참고하였다. 오류가 있다면 댓글 부탁드린다.

    베이지안 사전 확률 분포 에 따르면   | 기호의 오른쪽을 받았을 때 ,  | 기호의 왼쪽일 확률을 말하는 것이다. 이 확률은 높으면 좋다

    대신 LOSS 의 의미는 작으면 좋다는 뜻이므로, 반대로 생각하도록 한다.. 낮으면 좋다.

    그렇다면 '  | 오른쪽을 보냈을 때 ' 의 확률 에 패널티를 먹여준다.

    그러면 w^2 의 항이 커지게 된다. 

    그렇다면 complexity 즉,  모델의 복잡도는 하락 하게 된다.

    그렇다면 Cost 도 하락하게 된다.

    P(B) = P(A)P(B|A) 인데, P(B A)  =  P(B)/P(A) 이다.

    Cost - lambda*Complexity = P(B)/P(A) 이다.

    이게 낮길 바란다면 ,P(A) 가 높아야 한다.

    P(A) 는 MODEL 의 확률 이다.  

    딜레마이다. 그래서 빼주는 항이 있는 것이다.

    기존 COST 가 1 이어야 했다면, 지금은 COST - lambda*complexity 가 1 이면 되므로

    COST 는 더 높아질 수 있다.

    아니면, cost 가 똑같다면(0 대신 일정의 수가 필요하다고 가정한다면....--> 과적합을 피하기 위해)

    lambda*complexity 가 들어감으로, 낮아지게 되므로, 자동적으로

    P(A) 가 올라가는 게 된다. 모델의 성능이 좋아지는 것이다. 

    P(A|B) 는 P(B) 와 곱해 지면, P(A)P(B|A) 가 된다.

    즉 이 말은 , P(A|B)  = P(A)P(B|A) / P(B) 가 된다.

    베이즈 추정이다.

    B를 보냈을 때 A 일 확률 이므로, 여기에서는 데이터를 보냈을 때 모델일 확률이다.

    이 확률은 모델의 확률 * 모델을 보냈을 때 데이터일 확률 / 데이터일 확률 

    으로 구하면 된다.

     

    https://box-world.tistory.com/6

     

    [머신러닝] 비용함수(Cost Function)란

    시작하며 오늘 포스팅에서는 머신러닝의 기본적인 모델과 함께 가설함수(hypothesis) 와 비용함수 (Cost Function) 를 알아보며 다음 포스팅에서 알아볼 경사 하강 알고리즘을 위한 기초를 다져보겠습

    box-world.tistory.com

    참고 사이트...

     

    몬테카를로 방식

    여기서도 마찬가지로 | 오른쪽을 받았을 때, | 왼쪽일 확률 과 z_t 의 확률을 곱하면 z_t+1의 확률이 나온다. 

    도박으로 유명한 도시 명이라는 듯..

     

     

    비용함수(Cost function)

    비용함수는 원래의 값과 가장 오차가 작은 가설함수 를 도출하기 위해 사용되는 함수입니다.

     

    https://box-world.tistory.com/6

     

    [머신러닝] 비용함수(Cost Function)란

    시작하며 오늘 포스팅에서는 머신러닝의 기본적인 모델과 함께 가설함수(hypothesis) 와 비용함수 (Cost Function) 를 알아보며 다음 포스팅에서 알아볼 경사 하강 알고리즘을 위한 기초를 다져보겠습

    box-world.tistory.com

     

     

    아래 식은 기존 GD 식과 Ridge를 풀어낸 식이다.

    앞 항을 미분하게 되면 분모의 2m 과 분자의 2 가 상쇄, 1/m 이 남게 된다.

    알파 상수를 곱해줌으로서 일정부분을 빼주는 것이다( 앞선 그림에서 평평하게 해준다고 생각 )

    i 는 미분한 것이다.

     

    2) l2 regularization

    Cost function에 제곱한 가중치 값을 더해줌으로써

    편미분 을 통해 back propacation 할 때

    Cost 뿐만 아니라 가중치 또한 줄어드는 방식으로 학습을 한다.

    특정 가중치가 비이상적으로 커지는 상황을 방지하고, Weight decay 가능해짐

    즉, 전체적으로 가중치를 작아지게 하여 과적합을 방지하는 .

    위 식과 아래식은 같다. (풀어낸 것)

    보면, 기존의 GD 에서, 앞에 1 - a * (lambda) / m 이 추가된 것을 볼 수 있는데, 이로 인해, 기존 GD 보다 Θ 가 일정비율로 더 감소하는 것을 알 수 있다. 즉, 위의 Lasso 같이 일부 항의 계수를 0으로 만들어버리지는 않고, 전체적인 wi 값의 절대값을 감소시켜 덜 구불구불하게 하는 것이다. Lasso 보다는 좀 더 구불구불하지만, 일반 GD 보다는 덜 구불구불한 느낌의 그래프를 갖는다.

     

    • 이 문제를 간단히 정리하면 large coefficient로 인하여 overfitting이 발생한 것이라고 할 수 있습니다. coefficient가 크면 클수록 기존 데이터에 최적화 되고 학습이 잘 되지 않기 때문입니다. 그러면 이 문제를 어떻게 해결해야 할까요?

     


    • 뿐만 아니라 L2 Regularization을 사용하면 베이지안 사전 확률 분포 (정규 분포)를 사용하는 것과 동일하며 가중치가 정규 분포의 형태를 이루도록 합니다. (이 글 주제와는 좀 다른 내용이라 따로 식을 유도하지는 않겠습니다.)

    X = x_i 를 받았을 때, Y = y_i 일 확률은 다음과 같다.

    여기서 s = f(x_i;W)를 칭한다.

    지수함수를 붙인 이유는 양수가 되기 위함이라고 한다.

    분모에 시그마가 붙은 이유는 그것을 정규화 시키기 위함이다.

    i 는 정답, j는 i 가 아닌 오답이다!!!

     

    여기서 로그 앞에 마이너스는 통상적으로 앞에 log(1) 이 붙어 있다

    log(1) 은 왜 붙었냐... 10^0 이 1 이기 때문에 log(1)= 0 이다.

    그렇다면 왜 - 냐... log(10)-logP(Y=yi|X=x_i) 는 다음과 같다

    log(10/P(Y=y_i | X=x_i)) 이다.

    로그 안에 들어가서 나누어 주는 것과 같다.

    동영상에서는 단순히 loss 는 낮을수록 좋으므로 - 방향으로 해야 하므로 -를 붙였다고 한다.

    log P 를 최대화 하면 당연히 좋다

    이를 식에 대입해보면 −1log(1)=0이 되기 때문에, 결과적으로 y^ y를 정확하게 예측한 경우의 크로스 엔트로피 함수의 값은 0이 됩니다

    예측한 경우 값은 1 이다. 그런데 이때 log 값은 0 이 된다!!!

    그래서 LOSS 가 - 로그 부터 시작하는 식인 것이다!!!

     

    소프트맥스 함수와 svm 의 차이는

    svm 은 양 극단으로 데이터가 있을 때 그냥 선 찍 긋고 끝내지만

    softmax 는 확률질량함수를 이용해 최대한 분포를 잘 만들고 끝낸다.

    연산량도 exp 함수가 많기 때문에 softmax 함수를 쓴다!

    세타 를 transpose 해서 x 행렬 과 곱한것이 hypothesis 함수(가설함수)이다

     

    계곡을 걸어갈때 무작위로 내가 던져지는 것이 아니라 내가 걸어가면서 기울기를 파악해서 밑으로 내려가는 것처럼 해본다

    well, csv 형태에서 디멘젼이 이렇게 될지 몰랐다

    --> 동영상에서는 간단한 미분식으로 gradient 를 계산가능하니 이러한 짓은 웃긴짓이라 한다

    sgd 는 전체 데이터 셋을 다 더해서 나누는 수고를 계속 해야 하므로 연산량이 많다고 한다

    극좌표로 특성들을 변환시 선형 분류기를 사용할 수 있다..!

    하지만 이건 특징들을 봐야해서 우리는 raw data를 CNN, DNN 에 적용시켜볼 것이다.!

    지금까지 아주 단순한 , 극점1개밖에 없는 조건을 공부하였다

    그런데 극점들이 여러군데 있다면 제일 최저점을 찾아야 의미가 있다!

    따라서 GradientDescent 는 대입을 통해 이러한 문제를 해결한다.

    아래 사진이다 local optima 는 지역 극점을 의미한다.

     

     

    편도함수는 세타_j 에 대해서 수행되므로 다른 변수는 그대로 둔다

    자 세타가 곱해진것이 x(i) 이므로, 이것은 밖으로 빼낸다. 그럼상수인 세타_j 는 없어지고, x(i) 가  밖으로 꺼내지게 되었다!

    그리고 오류^2의 2부분이 앞으로 나와서 1/m 이 되었다!

    이렇게 j = 0 , 1 . ....  에 대해서 cost function 의 j 에 대한 ( respect to theta0,1,2, .. ) 편미분을 수행 해 준다.

    J(theta1,theta2) 의 mininum 을 찾는게 목표이고

    hypothesis 는(가설함수) theta_0 + (theta_1)*x(i) 이다.

    x(i)는 i 번째 x를 의미한다.

    세타는 앞서 말하듯이 다양한 변수를 의미한다.

    내가 타고가는 오토바이 의 속도,  바람의 정도, 내 운전실력... 모든 것이 차원이 될 수 있다.

    이  차원을 잘게 쪼개서 글로벌 미니멈을 찾아보자. 

    사실 global minimum 과 local minimum 은 대학 미적분학에서 1학년때 배우는 내용이지만, 그 중요성을 그때 파악하기가 힘들다.

     

     

    세타에 대해서 편미분을 수행할때의 과정

    1/m 은 세타항이 없으므로, 패스하고 편미분 항이 시그마 안으로 들어간다

    그렇다면 일단 () 에 제곱이 있으므로 2를 꺼내고 그걸 그대로 꺼내놓고 안쪽을 미분한다.

    그렇게 하면 2/m 이 나오는게 보일 것이다.

     

    • BGD(Batch Gradient Descent):  훈련 데이터 세트의 각 예제에 대한 오류를 계산하지만 모든 훈련 예제가 평가된 후에만 모델을 업데이트합니다.
    • Stochastic gradient descent(SGD) : 오류를 계산 하고 훈련 데이터 세트의 각 예제  대한 모델을 업데이트합니다  .
    • Mini-Batch gradient descent : 모델 오류 및 업데이트된 모델 계수를 계산하는 데 사용되는 작은 배치로 훈련 데이터 세트를 분할합니다. (딥러닝 분야에서 가장 많이 사용되는 경사하강법 구현)

    Mini-Batch 경사하강법  SGD 의 견고성  과 BGD 의 효율성  사이의 균형을  찾을 수 있습니다  .

     

    확률적 경사 하강법이 전체 전역 최소값이 아닌 해당 로컬 말단 또는 로컬 최소값을 찾는 문제를 피하는 데 도움이 된다는 것입니다.

    우도함수가 나오는데,

    결합확률밀도함수를 쓸 수 있다는 것은 그 함수( 확률 변수 ) 들이 서로 독립이어야 쓸수 있다.!!!!!

    그렇다는 것은 모두를 곱해서 확률을 구한다는 것인데

     

    그래서 이것들을 다 곱하면 결합확률 밀도함수가 나온다...

     그 확률을 미분해서 세타값을 구해서 최대 우도 를 구하려면 미분시, 극대값이 나와야 한다.

    그렇다면 미분하기 편하게 밑이 e 인 ln 을 (자연 로그) 를 취하도록 한다.

    왜 자연이냐? e 가 미분을 해도 e 이기 때문이다.(자연에서 찾을 수 있는 패턴)

    그렇다면 밑의 식에서 왜 ! e 의 지수에 woxo + w1x1 + w2x2 가 있는지 이해가 될 것이다

    e^ w0x0 * e^w1x1 = e^(w0x0+w1x1) 이기 때문이다!

    모두 이러한 독립성 때문에 그냥 다 곱해준것을 e 를 사용함으로서 다 더해진 식으로 나온것이다!!!

    예시를 하나 소개한다.

     

    예제3. 측정된 데이터 x1,x2,…,xn N(μ,σ2)을 따른다고 했을 때 (μ,σ2)의 MLE를 구하시오.

     

     

    를 만족합니다.

     

    또한 각각의 Xi가 독립이기 때문에 우도를 아래와 같이 쓸 수 있습니다.(확률변수가 i.i.d를 만족하는 것과 지수법칙을 사용하였습니다.)

     

     

    아직 너무 값이 복잡해보입니다. 양변에 자연로그를 취하면 아래와 같이 쓸 수 있습니다.(로그의 성질을 사용하였습니다.)

     

     

    렉쳐4. 

    (1+e^-x)^-1를 미분을 하게 되면 -1(1+e^-x)^(-2) 가 나오게 된다.

    chain rule 때문에

    그리고 거기에서 e^-x를 또 x 에 대해 미분을 해주게 되면 -1  * e^-x 가 나오게 된다.

    -1, -1 은 상쇄가 된다.

    그래서 다음과 같은 식이 나오는 것이다

    이렇게 하면 연산량이 줄어들어서 좋다.고 한다.

    svm loss 는 로지스틱 회귀 보다 연산량이 줄어들어 좋다. (exp 가 없어서)

    빨간색선이 svm loss 이다. 

     

    SGD 쓰느 이유

    !!!

    원래 행렬이 N*N 행렬이라면

    gradient_W 의 왼쪽(행)이 원래행렬의 오른쪽(열)과 사이즈가 같아야 하므로

    이렇게 연산을 하면

    각 원소들의 곱들의 결과들을 다 더해서 gradient 행렬을 만들어 낸다. !!!

     

     

    여담 !!!

    사실 정규분포의 중요성은 Mbti 에서도 나타난다. 아싸 특 나오져

    mbti 는... 유사과학이다

    https://m.blog.naver.com/skepticmgz/222090151202

     

    너무 복잡한 인간, 너무 단순한 MBTI

    MBTI가 인간의 성격을 지나치게 단순화하고 있다는 것은 단 16개의 ‘유형’으로 인간의 성격을 범주화...

    blog.naver.com

    여기를 보시면 알 수 있다.

    'CS231n' 카테고리의 다른 글

    conv 채널 줄이는 법 : 1*1 layer  (0) 2022.01.24
    활성화함수 saturation  (0) 2022.01.24
    cs231n 추가자료 activation map, stride  (0) 2022.01.24
    정리한 파일(cs231n 4강?)  (0) 2022.01.17
    cs231n 보충 자료 모아놓은 글  (0) 2022.01.17
Designed by Tistory.