로그인 바로가기 하위 메뉴 바로가기 본문 바로가기
난이도
기본

딥러닝을 이용한 자연어 처리

임시 이미지 조경현 교수
http://www.boostcourse.org/ai331/forum/139090
좋아요 776 수강생 7827

분류 모델 훈련 완료후, 새로운 클래스가 등장했을 때 어떻게 해결하나요?

제가 챗봇을 운영하면서 좀...질문사항이 있어서...저희는 지금 하이얼아키컬 엘에스티엠을 지금 사용을 하는데 이게 클래스 구분을 통해서 해결을 처음에 클래스 구분을 통해서 얘네들을 이렇게 클래시피케이션을 했어요...근데 이제 클래스 갯수가 갑자기 운영상에서 많이 늘어나면서 모델이 제너레이션해야되는 상황이 많이 발생하는데...운영상의 이슈가 생기더라구요.
그럴때 혹시 이게 애드되면서 자동으로 이게 뭐...모델이 다시 재생성되고 그거에 대한 컴피던스 레벨이 맞춰질 수 있는 그런 것들이 혹시 존재하는지 궁금해서 질문드렸습니다.

(조경현 교수님 답변입니다)

지금 질문을 그니까...지금까지 뭐 클래시피케이션하는거 처음 로지스리벨레션 멀티클래스 클래시피케이션 부터 여기있는 모든 텍스트 클래시피케이션들이 처음에 클래스들이 정해져 있다라고 어썸션을 하고 그게 안바뀐다고 하고 만드는건데 문제는 현실에서는 그렇지 않죠. 클래스들이 추가되는 경우가 많이있죠.
그 단어 추가되는것도 그런게 예를 들어서 뭐 지금까지 뭐 예를 들어서 오토 컴플릿같은거를 만든다고 하면은 지금까지 타이핑한거를 보고 다음 단어가 뭔지를 알아맞춰야 되는데 새로운 단어가 추가되면은 클래스가 마치 늘어나는거랑 같은 효과가 있으니까요.
그런걸 어떻게 해결할까에 대해서 여러가지 방식이 있죠.
가장 단순한거는 아 새로 클래스 추가될때마다 데이타 더 모아서 새로 트레이닝 하는 방식이 있을거구요.
두번째 방식은 이제 뭐 그렇게 데이타를 많이 구하기 힘드니까 새로 클래스가 추가됐을때 이그잼플 몇개만 찾은 다음에 뭐 이쪽에서 웨이펙터가 마치 하나가 더 늘어난샘이니까요 그 웨이펙터 하나늘어난애만 에스티메이션을 다시 할수도 있겠죠. 나머지는 그대로 놔두고.
이게 이런 다이렉티드 에이싸이클 그래프로 봤을때 장점이 그라디언트를 이렇게 백프로파게이션을 할때 전부다를 계산한다음에 업데이트를 할 필요는 없다는거죠. 그냥 이중에 원하는 파라미터 노드만 있으니까 걔만 업데이트를 해줄수도 있을거구요.
근데 또 그렇게 했을때 문제는 과연 그렇다면은 이 엑스의 레프리젠테이션이나 웨잇이 과연 다른 웨잇이나 다른 파라미터랑 제대로 맞게 러닝이 될거냐 진짜 맥시멀하게 옵티멀하게 할수있느냐의 문제가 있으니까요.
그런경우에 또다르게 접근할 수 있는건 특히 클래스가 굉장히 많고 클래스 하나하나의 시멘틱스를 우리가 알고 있다 그리고 의미를 알고있다 하면은 클래스의 티스크립션을 저희가 가질 수가 있겠죠.
예를 들어서 뭐 이미지 클래시피케이션을 할때...할때 보면은 어떻게 보면은 각 클래스마다 딕셔너리 데퍼니션같은게 다 있잖아요. 개면은 개과의 뭐고, 호랑이면은 고양이과의 뭐고...그 디스크립션 자체가 클래스간의 관계를 알려주니까요.
그렇다면은 이런 로지스 리그레션을 한다고 할때 웨잇 벡터를 줘서 이..이 바이널 클래시피케이션을 하는게 아니라 혹시 웨잇 벡터를 다른 디스크립션 텍스트 디스크립션이 있으면은 토큰 레프리젠테이션 센텐스 레프리제이션을 뽑아내듯이 뽑아낼 수 있으냐? 그렇다면은 클래시파이를 만들때 아웃풋에 어떻게 나오는지를 디스크립션이 주어진대로 할수있구요.
그러면 새로운 클래스 나오면은 그냥 단지 새로운 디스크립션이 있는 거죠. 그면 그 디스크립...그 클래스가 기존에 있는것과 비슷하면은 네트웍이 알아서 하겠죠.
이것도 내일...근데 내일 얘기할게 너무 많아져가지고.
근데 이런쪽으로 이제 뭐 Zero-shot, Few-shot Learning 쪽을 보시면은 그걸로 구글링을 쫌 해보면은 많이 나올거구요. Jason Weston이 한 2008년 9년에 Wasabi라고 해서 만들었던 걔가 실제로 해보면은 잘됩니다.