Learning 종류

김명섭·2024년 5월 21일

supervised learning
unsupervised learning(self supervised learning 포함)
semi supervised learning
등이 대표적이지만,

transfer learning
continual learning
federated learning
distributed learning
contrastive learning
joint learning
등 다양한 방법이 있다. 각각 다뤄보겠다.

distributed learning

참고 링크
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=freepsw&logNo=221807767095
(핵심 개념 : divide and conquer)
분산학습으로 데이터, 모델, 파이프라인 등을 여러 GPU에 병렬화(parallelism)해서 처리하는 방식이다.
(보통 병렬 컴퓨팅은 하나의 컴퓨터에서 병렬 연산을 한다는 의미이고,
분산 컴퓨팅은 여러대의 컴퓨터에서 나눠서 한다는 의미라 하는데 병렬화가 적절한 용어인진 모르겠다.)
크게 작업 분할 방식, parameter 동기화 방식, gradient 취합 방식 3가지에 따라 분류할 수 있다.

  • 작업 분할 방식
    model parallelism : 잘 분리하고, 서로 통신을 어떻게 하는지 역전파를 어떻게 하는지 중요.(방식이 여러개가 있다.)
    data parallelism : gradient 평균을 이용.
    (pipe line parallelism)

  • parameter 동기화 방식
    synchronous replication : 분산처리가 모두 끝났을 때 gradient 평균을 사용해 업데이트
    asynchronous replication : gradient 계산이 먼저 끝난 건 먼저 업데이트(worker(gpu)가 많을 수록 유리한 방법)

  • gradient 취합 방식
    all-reduce(parameter server) : server가 모든 gradient를 취합하여 재분배
    ring-allreduce : 모든 gpu를 ring 형태로 구성한뒤 gradient 전달을 통해 공유

continual learning

연속학습으로 새로운 데이터에 대해서 계속 학습을 하는 개념으로
가장 큰 문제점은 치명적 망각(catastrophic forgetting)이다.
이를 해결하는 것이 연속학습의 핵심.

replay method, regularization-based method, parameter isolation method 3가지로 나뉜다.

  1. replay method
    이전 작업의 데이터를 저장하고, 새로운 task에 대한 학습에서 이전 데이터를 다시 사용하는 방법.
    시간적, 공간적으로도 많이 소요되고, 이전 데이터를 매번 가져올 수 있다는 보장이 없다는 단점.

  2. regularization-based method
    모델의 파라미터를 조절하여 이전 작업에 대한 지식을 보존하는 방식
    (활성화함수, 옵티마이저, 학습률 등)
    LwF vs multi-task learning(fine tuning, feature extraction, joint training)

  3. parameter isolation method
    task 간의 파라미터를 분리하여 독립적으로 학습
    (이전의 파라미터들은 학습되지않고 고정되지만, 이전의 파라미터들을 이용해서 최근의 학습을 진행한다.)

  4. 다른 학습과의 비교를 통한 이해를 올리자.

  • transfer learning vs continual learning
    transfer learning은 내가 해결하고자 하는 target task와 관련된 데이터로 사전 학습된 모델을 사용해서 내 task를 잘 해결하고자 하는 것이 목적이기 때문에 continual learning과 다르게 forgetting이 중요하지 않다는 것에서 차이가 있다.
    즉, 사전 학습된 모델의 성능이 유지될 필요가 없다.

  • domain adaptation vs continual learning
    DA는 레이블이 불충분하거나 존재하지 않는 target task를 위해, 레이블이 풍부하고 target task와 관련이 있는 domain을 이용하는 방법이다.
    즉, 전이 학습 중 하나라고 볼 수 있고, 역시나 forgetting이 중요하지 않다는 점에서 차이가 있다.

  • multi task learning vs continual laerning
    위의 예시에서 다뤘듯이 multi task learning은 여러 task를 잘 해결하도록 설계, 학습하는 것으로 continual learning을 통해 multi task에서 가능하게 할 수 있으므로 multi task learning 중 하나라고 볼 수 있다.

  • meta learning vs continual learning
    meta learning은 기존의 적은 데이터로 구별하는 방법 자체를 배우는 것으로, 이전 task 자체를 잘 하는 것을 배운다기보다는 어떤 task가 오더라도 few shot이 있다면 구별해 낼 수 있는 능력을 학습하는 방법으로
    역시나 forgetting이 중요하지 않다.

joint learning

joint training과 혼동해서 쓰는 것 같은데 하나의 모델을 구성하고 훈련할 때 여러개의 task를 동시에 진행하는 모델을 만들고, 학습할 때에도 여러개의 loss를 더해서 경사하강법을 적용하는 방식을 말하는 듯 하다.

profile
ML Engineer

0개의 댓글