목차 :
- Torch의 텐서 라이브러리 소개
- 계산 그래프 및 자동 차별화
- 딥 러닝 빌딩 블록 : 아핀 맵, 비선형 성 및 목표
- 최적화 및 훈련
- Pytorch에서 네트워크 구성 요소 생성
- 단어 임베딩 : 어휘 의미론 인코딩
- 예 : N- 그램 언어 모델링
- 운동 : 단어 임베딩을 배우기위한 지속적인 단어
- 시퀀스 모델링 및 장기 기간 메모리 네트워크
- 예 : 부품 연설 태깅을위한 LSTM
- 연습 : 문자 수준 기능으로 LSTM 태그를 보강합니다
- 고급 : 동적 툴킷, 동적 프로그래밍 및 BILSTM-CRF
- 예 : 명명 된 엔티티 인식을위한 BI-LSTM 조건부 랜덤 필드
- 운동 : 차별적 태깅을위한 새로운 손실 함수
이 튜토리얼은 무엇입니까?
다른 튜토리얼이 많이 있지만 모두 세 가지 문제 중 하나가있는 것 같습니다.
- 컴퓨터 비전 및 Conv Nets에 대한 많은 내용이 있으며, 대부분의 NLP와 관련이 없습니다 (Conv Nets는 NLP 문제에 멋진 방법으로 적용 되었음에도 불구하고).
- Pytorch는 새롭고 NLP 튜토리얼을위한 많은 딥 러닝은 오래된 프레임 워크에 있으며 일반적으로 Pytorch와 같은 역동적 인 프레임 워크에는 전혀 다른 맛이 없습니다.
- 예제는 RNN 언어 모델을 넘어서지 않고 Lingusitic 구조 예측을 할 때 할 수있는 멋진 것들을 보여줍니다. Pytorch의 동적 그래프는 구조 예측을 가장 큰 강점 중 하나로 만들기 때문에 이것이 문제라고 생각합니다.
구체적으로, 저는 Georgia Tech의 자연 언어 처리 수업에 대한이 튜토리얼을 작성하여 깊은 전환 구문 분석에 대한 수업에 쓴 문제 세트를 완화하고 있습니다. 문제 세트는 일부 고급 기술을 사용합니다. 이 튜토리얼의 의도는 기본 사항을 다루는 것입니다. 학생들은 문제 세트의 더 어려운 측면에 집중할 수 있습니다. 목표는 기본부터 시작하여 언어 구조 예측으로 올라가는 것입니다. 다른 Pytorch 튜토리얼에는 거의 완전히 결여되어 있다고 생각합니다. 일반적인 딥 러닝 기본 사항에는 짧은 박람회가 있습니다. 주제 더 많은 NLP- 특이 적은 더 심층적 인 토론을 받았지만, 전체 설명이 바퀴를 재창조하고 너무 많은 공간을 차지할 것이라고 생각했을 때 다른 출처를 언급했지만.
의존성 구문 분석 문제 세트
위에서 언급했듯이, 여기에는 Pytorch에서 고성능 의존성 파서를 구현하는 문제 세트가 있습니다. 수업에 특정한 것들을 무시한다면 유용 할 수 있기 때문에 여기에 링크를 추가하고 싶었습니다. 몇 가지 메모 :
- 코드가 많기 때문에 문제 세트의 시작은 주로 내 코드가 관련 데이터를 나타내는 방식과 사용해야하는 인터페이스에 익숙해지는 것이 었습니다. 나머지 문제 세트는 실제로 파서의 구성 요소를 구현하는 것입니다. 우리는 전에 수업에서 딥 러닝을하지 않았기 때문에 글을 쓸 때 엄청난 양의 의견과 힌트를 제공하려고 노력했습니다.
- 전달 가능한 모든 전달 가능에 대한 단위 테스트가 있으며 NoSetest로 실행할 수 있습니다.
- 이 문제를 클래스에서 사용하기 때문에 솔루션을 게시하지 마십시오.
- 동일한 repo에는 문제 세트를 보완하기위한 서면 소스를 찾고 있다면 Shift-Reduce Dependency Parsing 섹션이 포함 된 일부 메모가 있습니다.
- 새로운 학기가 시작될 때 위의 링크가 작동하지 않을 수 있습니다.
참조 :
- 나는 CMU의 Chris Dyer와 Graham Neubig와 Bar Ilan University의 Yoav Goldberg가 제공 한 Dynet에 대한이 튜토리얼에서 EMNLP 2016에서 깊은 구조 예측에 대해 많은 것을 배웠습니다. Dynet은 특히 C ++를 사용하고 동적 타이핑을 피하려는 경우 훌륭한 패키지입니다. 최종 BILSTM CRF 연습과 캐릭터 수준 기능 연습은이 튜토리얼에서 배운 것입니다.
- 구조 예측에 관한 훌륭한 책은 노아 스미스의 언어 구조 예측입니다. 딥 러닝을 사용하지는 않지만 괜찮습니다.
- 내가 알고있는 최고의 딥 러닝 서적은 딥 러닝입니다. NLP 초점은 없지만 현장에 대한 주요 기여자이며 매우 포괄적입니다. 온라인으로 무료이지만 선반에있을 가치가 있습니다.
수업 과정:
튜토리얼에는 인기있는 모델 (CBOW)을 구현하거나 내 모델 중 하나를 증강시키는 몇 가지 연습이 있습니다. 캐릭터 수준 기능 운동은 특히 매우 사소하지만 매우 유용합니다 (정확한 숫자를 인용 할 수는 없지만 실험을 수행 한 적이 있으며 일반적으로 문자 수준 기능은 정확도가 2-3%증가합니다). 그들은 단순한 운동이 아니기 때문에 곧 직접 구현하여 리포지션에 추가 할 것입니다.
제안 :
실수를 찾거나 추가하는 데 유용한 특정 모델이 있다고 생각되면 GitHub 문제를여십시오.