post-custom-banner

ref.

https://youtu.be/UdXfsAr4Gjw

https://youtu.be/klFFAndQia8

간단하게 정의하자면 여러가지 Task를 한번에 처리
Ex) 자율주행 자동차의 카메라 -> 신호등, 사람, 차량 등 여러가지 Object를 한꺼번에 detection하는 Task

yiy^i의 shape → (4,. 1)

따라서 label 데이터 yy의 전체 shape = (4, m)

만약에 표지판만을 detection하는 single Task 문제였다면 shape → (1, m)

분리된 4개의 신경망을 train하는것이 좋을까? → No

low feature들을 공유하기 때문에 1개의 신경망을 사용하는것이 조금 더 효율이 좋을것,

각 작업이 가지는 데이터 양이 비슷해야 한다.

충분히 큰 신경망을 가져야 한다.

장점:

  • Knowledge Transfer:
  • Overfitting 감소
  • Computational Efficiency
  • 중요도가 높음

단점:

  • 다른 task에 악영향을 미치는 Y가 존재할 수 있음
  • Task 마다 학습 난이도가 크게 차이나면 수렴하지 않거나 robust하지 않음

GradNorm

3가지 태스크에서 발생한 loss로 부터 구한 Gradient의 scale이 서로 비슷해지게 한다.

여러 Task의 오버피팅 지점이 다르다. → 지점을 비슷하게 맞춰주는 개념

로스의 사이즈 L-2 norm 취해서 사이즈 구함

L-2 norm들에 대한 평균을 낸다. L-2 norm 평균과 L2 norm들의 값이 비슷해지게 (L-1 norm)

이것을 L_grad Loss 이것을 미분해서 학습한다.


결론은 L_grad를 구하는것이 핵심

  1. weight initial
  2. batch xx에 대해 Loss를 구한다
  3. Gradient와 r(?)을 구한다
  4. Gradient의 평균을 구함으로 \bar G를 구한다.
  5. Gradient와 \bar G의 L1 loss / r은 \bar G에 곱해지는 weight?
  6. 방금 구한 L1 loss에 대해 gradient를 구한다.
  7. standard L1 loss gradient 구한다.
  8. w를 L1 gradient로 업데이트
  9. W를 standard L1 gradient로 업데이트
  10. 업데이트된 weight를 renormalize
profile
👏안녕하십니까! 개발자, 데이터 분석가, AI 리서쳐를 꿈꾸는 이경봉 입니다. 항상 발전하며, 팀원들, 고객들과 끊임없이 소통하는 말 많은 개발자가 되는 것이 목표입니다!
post-custom-banner

0개의 댓글