AI 머신러닝 딥러닝/CS231

cs231n 4강~ 5강 [추가]

newbeverse 2025. 4. 6. 20:13

맨 오른쪽이 1인 이유 : df/df = 1 (identity function) 

 

왜 da, dL의 위치가 왼쪽과 오른쪽으로 결정된 것인가요? : 임의로 했다고함. 그리고 dL/da을 구하는 것이라고함.

우리는 dL/da을 다음과 왼쪽 사진과 같이 체인룰로 나타낼 수 있음. 

 

 

dL을 구하려면, local gradient를 구하면 된다고 함.

 

 

 

따라서 dL은 -1/x^2 을 통해서 구할 수 있고 왼쪽과 같이 

1.37의 제곱 분의 -1값 

 

 

 

0.20 이라는 값을 sigmoid function을 통해 굉장히 손쉽게 얻을 수 도 있었다.

 

KNN - none parameter approach는 1class 1classifier

Neural Network - parametic approach는 1class miult-classfier 

 

5강 


이전에 썻던 모델의 가중치를 가져와서, 추가로 학습시키는 방식이 finetuning이며 이는 가능하다.

 

무한하게 많은 데이터를 돌리는건 무리다. -언급-

 


앞으로할것 요약(전에 배웠던것과 유사..)


optimization 

산에서 눈을 가리고 최적의 경사를 찾아내려오는 과정과 같다.

여러 방법이 존재


AI의 역사

미분이 불가 -> backpropergation 이 불가하다는 뜻 (나중엔 가능해짐. 단 데이터가 커지고, 딥해지면 작동을 안했음.. 제2의 암흑기)

20년 만에 backpropergation이 동작 가능했음 -> 극복 가능 이유: RBM(?)을 이용해서 소규모 데이터를 선행학습을 시키는 것을 반복해서 성공하여, 큰 그룹으로 묶어주는 방법으로 진행함. (제프리힌턴 교수)

나중에 밝혀지지만, 이 방법을 이해하게되면서 꼭 필요한 과정이 아닌 것들을 제거하므로써 효휼적으로 변함.

2010년부터 제대로된 녀석이 나오고부터 폭발적 변화가 시작. (GPU, 데이터 폭발적으로 늘어남 등등)

 


Activation Function

(1) sigmoid

\

3가지 단점으로 인해서 더 이상 사용되지 않음.

1. x값이 왼쪽, 오른쪽 끝으로 갈수록, 기울기는 0에 가까워 지므로 뉴런을 죽일 수 있음.

2. 시그모이드 결과가 모두 0 이상 이기때문에, 속도가 느려질 수 있음.

 지그제그로 가면서, 속도가 느려짐. (확실하지 않음)

3. exp() 함수를 사용한다는 뜻은 큰 비용이 드는 행위임.

(2) tanh 

마찬가지로 x값이 매우크거나 작을떄 gradient가 0이된다.

 

(3) Relu

activation fuctions 이라고 하면 많이 쓰이는 것.

문제 :

1) 0보다 작으면 g가 0이됨

2) 운이 나쁘게 데이터가 dead zone에서 시작하게되면 업데이트가 멈춤.

운이 나쁘게 데이터가 dead zone에서 시작하게되면 업데이트가 멈춤.

 

약간 더 진화한 버전으로 나온 녀석

핵심은 0.01x 때문에 값이 0이하일 때 기울기가 0이 아니므로, 뉴런이 죽지 않음.

 

여기서 한번더 더 진화된 녀석

최소값일때, x의 기울기를 몇으로 갖게할지  ai가 정해줌.

 

(4) ELU

단점 : exp()함수를 사용해서 비용이 큼.

 

(6) maxout "neuron"

문제 : w1, w2 두개의 연산을 해야한다.

 

 

결론

특별한 경우:

1) relu

2) 좀더 중요한경우 leaky maxout elu

3) tanh 는 가급적 사용 x

4) sigmoid 는 더이상 사용하지않으나 가끔씩 확인가능


 데이터 전처리

zero-centered data는 일반적으로 해주고, nomarlized data는 일반적으로 해주지 않음.

이미지의 경우 0~255의 데이터는 해당 범위안에들어있기 떄문에 해줄 필요없다고 보면됨.

주성분 분석

pca (주성분 분석) : 데이터를 비상관화 하여 차원을 줄이는 것

whitening : 인접한 pixel간의 중복성을 줄여줌.

이 것들도 이미지 분석에 대해서는 큰 의미가 없음. 사용도 잘 안함.

 

zero centered만 신경쓰면됨.

32 x 32 x 3의 이미지의 경우, 이미지의 경우 rgb 3가지 채널을 가지는데, mean값을 뺴주는 방식 진행.

alex net 같은경우 오렌지 블랍(?)을 뺴주는 것


Weight initialization 가중치 초기화  (중요)

모든 가중치가 0일 경우 모든


학습 속도를 가속화 시키면서도, 안정화 시키는 목적

각 레이어들을 거치면서 입력값 분포가 불안정화되는 것이 문제라고 생각했기 때문 -> 각 batch을 지날때마다 입력값을 nomalize해주자. 

수식의 내용은 정규분포를 적용해주기 위함.

N by D 로 되어있는 Input x가 있을때, 오른쪽 아래 식을 통해 정규화를 해준다.

Batch normalization 의 판단도 학습에 의해 가능하다.

 

첫번째 단게에서는 nomalize 하고, 두번째 단계에서 정규화 할 기회를 줌.

 

한가지 주의해야 하는 것은 traning 할때와 test 할때 다르게 동작함 -> mean과 varience(?)를 미리 학습함


Babysitting the Learning process

순서

1. zero centered

2. choose the architecture - 몇개의 노드를 둘것인지.

train 중 overfitting이 일어나는 것은 좋은 것(?)

learning rate를  아주 작은 값으로 설정했을때 -> loss가 거의 변하지 않을 수 있음 -> 그럼에도 불구하고 training 정확도가 증가할 경우가 있음.

이유 : learning rate가 작기 떄문에 loss는 거의 줄지 않지만, score는 이미 학습이 되었기 떄문에 정확한 클래스를 선택하게 됨. 실제로 loss 가 감소하지 않지만 training 정확도가 올라가는 현상이 발생함.

 

반대로 learning rate를 아주 큰 값으로 설정했을때 ->

loss 는 infinite가 나오게 됨. (inf)

 

이런  learning rate를 통해서 알수 있는것 -> 적절한 learning rate 의 적정수치를 알 수 있게됨.


croess - validation 전략

 

1. 반복을 너무 여러번 하지 않는다.

돌려 봤더니, validation accuracy가 48%가 나오는 것을 볼 수 있다 -> 정확도가 상위이므로 그 언저리로 두번째 단계로 넘어가면 된다. 2번으로 넘어감.

2. 

이 값이 우리가 설정한 값의 범위에 아주 가까운 값에 가까움. 

의 -3을 조정할 필요가 있음 -4, -5 로 넉넉하게.

 

hyper parameter의 최적값을 구하는 경우 grid search는 사용하면 안된다.

등간격으로 진행하게 되면 최적화된 hyperparameter을 놓칠 ㅅ ㅜ있다.

 

 

하이퍼파라미터를 찾기위해서 dj가 mixing 작업을 하기듯 찾아나가야해야함.

 

첫번째 monitoring이 되어야하는 것은 loss function이다.

 

이런 경우는 왜 생길까? -> 초기화가 잘 못된것이다.

위 그래프 설명:  gradient가 흘러가지 않고, loss가 정체된다. 그러다 어느 순간 threshhold값을 지나가면서 학습이 진행되는 모습.

 

모 교수가 개선을 한 것이다.

 

강화 학습의 경우 위와 같은 그래프를 그린다. why? -> 계속해서 환경과 상호작용하면서, 강화되기 떄문에, 환경이 바뀜 -> 적응하기위한 노력 -> loss 낮아짐 -> 환경이 바뀜 -> 적응하기위한노력 -> loss 낮아짐 의 결과물

 

accruacy : loss 외의 두번쨰로 모니터링 해야하는 대상

ex) 빨간색 방식이 고양이를 80퍼센트로 인지함. 아래 초록색보다 좋음.

겝이 아주 크다면? overfitting 이되고 있다고 의심. -> 방지를 위해 regularization strength를 높혀줘야한다. 

만약 gap이 전혀 없다면 바뀐 모델의 능력이 없다는 뜻.

 

track ratio of weight updates / weight magnitudes : 세번쨰로 모니터링 해야하는 대상

전반적으로 1/1000 수준이 이상적이라고 함.

 


결론

 

 

반응형