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

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

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

편향된 데이터에서 확률적 경사 하강법을 사용할 수 있나요?

그..바이어스된 데이터가 있고, 그 바이어스된거를 알고 있다고 할때...예를 들어서 어..가장 최신의 데이터가 중요하다 이렇게 했을때도 스토케스틱 그라디언트 디센트를 쓸 수 있나요?(강연 당시 현장에서 청중이 했던 질문입니다.)

(조경현 교수님 답변)

자 이제 질문을 다시 생각을 해보자면은 지금...여기를 보죠. 이제 스토케스틱 그라디언트 디센트에서 가장 포인트는 이제 그라디언트 정확한 그라디언트를 계산을 못하니까 이제 트레이닝 셋에서 일부를 뽑은 다음에 유니폼하게 뽑은 다음에 뭐 쪼금만 써서 이제 계산을 한다는건데요.
이제 문제는 거기서 아직 가장 어썸션이 트레이닝 이그잼플 각각이 인디펜던트하고 아이덴티컬 디스트리븃 되 있고 그 디스트리뷰션은 이제 실제 데이터 디스트리뷰션 우리가 모르는 뭔가 네쳐럴한 디스트리뷰션이라는 어썸션이 있는거죠.
근데 만약 트레이닝셋이 그렇지 않다. 뭔가 바이어스가 들어있는 경우에는 어떻게 하느냐인데요.
이제 어떤식의 바이어스가 들어가있느냐에 따라서 다 다르겠죠.
예를 들자면 뭐 이러 수 있죠.
그 데이터를 이제 실제 모으기 시작한거예요 문제를 풀기위해서 머신러닝을 하기 위해서 모으기 시작할때 분명하게 예를 들어서 클래시피케이션하는데 발란스가 안맞는 경우가 있죠.
예를 들어서 메디컬 데이터에 관련해가지고 클래시피케이션하면은 문제가 99.9% 이상은 아니면 뭐 훨씬더 많이 제가 이제 연구한 프로젝트중에 하나가 이제 브래스켄설 디텍션 이제 메모그래픽같은거 하는건데 스크리닝이니까요.
그런경우 그냥 사실 99.999%정도는 그냥 헤러티 서브젝이거든요 와서 매년 스크링을 받는거니까요. 아주 쪼그만 경우에 이제 실제 캔서가 있고 하는건데 이제 그럴때는 딱 봤을때 아무생각없이 데이터를 뽑으면은 실제 캔설 케이스가 전혀 없을때가 많으니까 일부러 업샘플링을 하는거죠. 근데 그렇게 되면 바이어스가 들어가는거죠. 그러면 그 바이어스 들어간걸 어떻게 하느냐. 지금 이거를 딱 보시면 이게 뭘한거냐면 몬테카를로 샘플링을 해서 몬테카를로 매소드를 써서 익스펙테이션 어프록시메이션 하는건데요. 몬테카를로 매소드를 꼭 쓸필요는 없죠. 인포어턴트 샘플링같은걸 쓸수도 있겠죠.
지금 바이어스 된 디스트리뷰션이 뭔지 알고 이제 언바이어스된 디스트리뷰션이 대강 이제 정확히 디스프라버블리티 몰라도 언노말라이즈 프라버블리까지 안다 하면은 이제 보정을 해줄수 있는거예요 코렉션을 해줄수있는거죠. 그런경우에는 스토케스틱 그라디언트 디센트를 그대로 쓰면서 이 에스티메이션 어떻게 하는지만 바꿔주면 되죠. 그리고 뭐 이제 그것도 모르는 상황이다 그러면은 근데 진짜 바이어스가 어떤건지 전혀 모르는 상황이면은 할수있는게 벨리데이션셋을 굉장히 조심스럽게 만들어서 얘는 셋이 쪼그마니까 좀더 조심스럽게 이제 내츄럴 디스트리뷰션이랑 같게 만들어서 얼리스타핑을 하는게 사실은 최선이겠죠. 모르니까요 바이어스가 모르면 어떻게 할수가 없어요.