밑시딥 10회

차보경·2022년 5월 25일
0

생각해보기

1. Optimization과 Optimizer는 어떤 차이가 있을까요?

  • Optimization :
  • Optimizer :

2. 확률적 경사 하강법(SGD)는 어떤 문제가 있을까요?

  • 미등방성 함수인 경우에, minimum을 찾는데 불필요한 움직임이 많음.
  • 계보 : 단점을 개선하는 쪽으로 새로운 옵티마이저를 개발함. -> 기본적으로 속도나 방향을 찾는데 있어서 다른 옵티마이저보다 열세라 개선되는 것들이 계속 나옴.
  • 단점 : 조금씩 보폭을 줄여가면서 자주 갱신하겠다 -> 지그재그로 움직이며 불안정한 학습과정을 보인다. LOCAL MINIMA와 SADDLE PONINT에 빠질 수 있는 치명적인 단점이 있음.
  • 러닝레이트에 영향이 매우 크다, (학습 성공률이 달라짐)

3. Momentum은 어떤 단점이 있을까요?

  • 장점: sgd 보다는 지그재그 정도가 덜한데 이는 x축의 힘은 아주작지만 방향은 변하지않아서 한방향으로 일정하게 가속하기 때문
  • 재승님 : 물리처럼 관성을 가지고 있다
  • 관성 : 한 방향으로 움직이려는 경햐잉 있음, -> 로컬미니마에 빠지는 경우가 적음
  • 단점 : 관성을 받으면 일정부분 가다가 움직이지 않음. 배치사이즈가 작으면 공이 작아서 움직이게 할 수 있음. 하지만 배치사이즈가 크다(빅데이터)면 무거워서 안움직임. 한번 멈추면 움직이게하는데 어렵다.
  • 현호님: 이전 시점들의 GRADIENT영향을 받아 그 힘으로 추가적인 진행을 하는 기법 -> 현재시점에서 이전 시점의 경사들이 누적이 되는 것. 그래서 경사가 한 방향으로 진행되고 컸다 작아지는 경향이 있으니 누적 기울기를 받아 로컬미니마를 지나갈 수 있음. 이전 시점의 누적값을 받는 다는 것이 중요하다.
  • 내려가는 방향에서는 같은 방향으로 힘이 누적되니 최단거리로 가게되고, 반대 방향으로 가는 것은 올라가려는 + 와 반대로 가려는 -의 복합으로 가운데로 가게됨.
  • 재승 :
  • 관련 블로그
  • 단점: global minima 에서도 가속도가 더해져서 추월함(이거 제 의견 아니에요 ㅋ 아까 본 블로그에 이렇게 적혀있더라고요)(제 생각에 이런 문제가 발생할 가능성은 충분히 있지만 중요한 문제일지는 모르겠어요. 미니 배치를 적용하는 과정에서 해결될 문제라고 생각합니다. 그리고 같은 관점으로 바라보면 local minima를 탈출할 수 있는 건 장점이 되겠네요.)

4. AdaGrad의 수식에는 없지만, 코드에서는 1e-7을 추가로 더해주는 이유가 무엇일까요?

  • 이전의 기울기 제곱해서 더해가는 것. NP.SQURT에 0이 있으면 0으로 나눠줄 수 없기 때문에 추가로 더해줘서 함.
  • 컴푸타가 연산하면서 소실되는 가능성이 있음. 소수점 11이하는 0으로 처리함 -> E-7이면 FLOAT자리 1정도임 -> E-7을 더해줘서 0으로 터지지 않게 도와줌

5. Adam도 어떤 문제점이 있을까요?

  • 어지간하면 ADAM쓰라고할정도로 좋긴 함.
  • 모멘텀, 나그, 아다가르드, 알엠엣 프루프 다 합친것.
  • 1차 모멘텀애 대한 추정지(M=모멘텀의 장점), 2차 모멘텀에 대한 추정치(V)
  • 단점 : 아담에서 DECAY를 베타 =0.9를 사용한다고 했다. 베타 2는 디케이르 ㄹ0.99로 사용한다. 글머
  • 베타 1을 0.9를 사용한다고 한다, 그럼 초기 그래디언트에 V제곱한 것을 루트씌워 나눠준다. 베타 1을 쓰면 처음 에포크에 캐쉬값(이전값)이 없다. 현재 그레디언트 값을 캐싱(가져)온다. 초기 베타 1을 주면 1-0.9가되니까 0.1부터 시작하게 됨 -> 초기 업데이트 속도가 느림 대신 충분한 업데이트되면 다른 옵티마이저의 장점을 가져와 쓸 수 있다.
  • 방향에선 더하고 보폭은 제곱을 해서 업데이트를 하기 때문.!
  • 참고 논문

생각해보기

1. 가중치 값이 작아지면 어떤 장단점이 있을까요?

  • 장점 : 가중치 매개변수 값을 작게하여 오버피팅이 일어나지 않음.

  • 단점 : 값이 중요한 값이면 가중치를 크게 줘야하는데, 무조건 작게 나오면 그 값이 반영이 안되서 안좋은 결과를 도출할 수 있음.

  • 모든 hidden layer들이 같은, 또는 대칭적인 가중치 값을 갖는다면 모든 노드의 활성화 함수에 같은, 또는 대칭적인 입력값이 들어간다는 뜻이고, 그러면 나중 역전파 때 모든 가중치의 값이 똑같이 갱신되기 때문에 가중치를 여러 개 둔 의미가 없어짐. 즉, 한 layer의 노드들이 모두 같은 일을 하기 때문에 노드의 낭비가 발생함.

    -가중치가 0이면 변화가 없다는 것 -> 해당값을 계속 갖게 됨

2. 활성화 함수로 Softmax를 사용할 땐 어떤 초기 값을 사용하는 것이 좋을까요?

  • 0~1사이의 값으로 뽑아냄....?
  • S자 곡선이 아니기 때문에 xAVIER 초깃값은 아닌 것 같음...
  • SOFTMAX는 지수함수를 사용하기 때문에 사비에르...!!!
  • SOFTMAX 함수

3. 가중치 매개변수 값을 작게하면 오버피팅이 일어나지 않는 이유가 궁금합니다!

  • 오버피팅이란? 과적합 !
  • 재승님)매개변수가 작으면 학습이 안된다. 그러나 오버피팅 대신 언더피팅 => 학습이 안되는 것.
  • 현호님)제 생각에는 오버피팅이란 전체 샘플에 대해서 학습하지 못한 상태를 말하는데 가중치가 값이 크게 되면 다른 샘플이 들어오는 경우 입력값 변화에 민감하게 반응하기 때문에 다른 테스트 셋에 대한 테스트 결과가 낮게 나올 수 있을 거 같아요.
  • 오버피팅이란? 훈련용에만 치중되어서 테스트데이터는 처리할 융통성이 없는것 = 범용성이 떨어진다. 거기서 조금 벗어나면 틀렸다고 하는 것.!! =>
  • 오버피팅억제법
  • 가중치 감소 방법은 큰 가중치에 대해 그에 상응하는 큰 페널티를 부과하여 오버피팅을 억제하는 방법
profile
차보의 Data Engineer 도전기♥ (근데 기록을 곁들인)

0개의 댓글