이것은 FNN (Feed-Forward Neural Network), 재발 성 신경망 (RNN), 장기 단기 메모리 (LSTM) RNN, 양방향 RNN 및 양방향 LSTM을 지원하는 NNLMS (Neural Networl Language Models) 툴킷입니다. 다중 숨겨진 층이있는 신경망 언어 모델은이 툴킷으로도 구축 할 수 있으며 숨겨진 층의 아키텍처는 다를 수 있습니다. 이 툴킷에는 클래스 기반 방법이 채택되어 신경망 언어 모델의 기차 및 실행 속도를 높이기 위해 클래스 기반 방법이 채택됩니다. 이 툴킷은 C ++를 사용하여 다시 작성하여 여기에서 찾을 수 있습니다.
NNLM의 구성 매개 변수는 다음과 같습니다.
| 이름 | 설명 | 유형 | 필수의 | 기본 |
|---|---|---|---|---|
| AC_FUN 1 | 숨겨진 층에 대한 활성화 기능 | str | 탄 | |
| 알파 | 학습 속도 | 뜨다 | 0.01 | |
| alpha_cut | 개선이 최소값보다 작을 때이 비율의 컷오프 학습 속도 | 뜨다 | 0.75 | |
| 베타 | 정규화 매개 변수 | 뜨다 | 1E-6 | |
| en_bias | 바이어스 용어를 활성화합니다 | 부 | 거짓 | |
| en_direct | 직접 연결을 활성화합니다 | 부 | 거짓 | |
| file_type | 입력 파일의 유형, 이진 및 텍스트, 바이너리의 경우 'b', 텍스트의 경우 't'를 지원합니다. | str | 티 | |
| gate_fun | LSTM RNN의 게이트에 대한 활성화 기능 | str | Sigmoid | |
| gram_order | fnn에 대한 n- 그램의 순서 | int | 5 | |
| hidden_layers 2 | 숨겨진 레이어의 이름과 크기 | 목록 | √ | |
| 입력 _unit 3 | 입력 단위, 지원 단어 또는 문자 'W', Word의 경우 'W', 문자의 경우 'C' | str | w | |
| 반복 4 | 최대 반복 수 | int | 50 | |
| min_improve 4 | 검증 데이터에 대한 엔트로피 개선의 최소한 비율 | 뜨다 | 1.003 | |
| model_name | 언어 모델의 이름을 지정하십시오 | str | - | |
| output_path | 출력 파일이 저장되는 경로 | str | √ | - |
| random_seed | 임의의 생성기를위한 시드 | int | 1 | |
| sentence_end | 문장의 끝을 표시하십시오 | str | < s> | |
| sentence_start | 문장의 시작을 표시하십시오 | str | ||
| test_files | 테스트 파일이 저장되는 경로 | str | √ | - |
| Train_files | 교육 파일이 저장되는 경로 | str | √ | - |
| unknown_word | 알 수없는 단어로 표시하십시오 | str | 오브 | |
| valid_files | 유효성 검사 파일이 저장되는 경로 | str | √ | - |
| vector_dim | 단어 또는 문자에 대한 기능 벡터의 치수 | int | 30 | |
| vocab_size 5 | 교육 데이터에서 배운 어휘의 규모 | int | 10000 |
참고 : 1. 숨겨진 층의 활성화 기능은 tanh , sigmoid , hard_sigmoid , relu 및 gaussian 중 하나 일 수 있습니다.
2. 숨겨진 층은 FNN , RNN , LSTM , BiRNN 및 BiLSTM 중 하나 또는 여러 개일 수 있으며 [ 'rnn', 30), ( 'fnn', 20)과 같은 각 층의 이름과 그 크기를 포함하는 튜플 목록으로 제공되어야합니다. 숨겨진 층이 하나만 있으면 튜플 만 괜찮습니다. 숨겨진 층의 크기는 서로 일치해야합니다.
3. 영어, 프랑스어와 같은 언어의 경우, 단어가 공백과 같은 빈 문자로 분리 된 경우 INPUT_UNITE 는 'w'또는 'c'로 설정할 수 있습니다. 중국어와 같은 다른 언어는 INPUT_UNITE = 'C' 만 작동합니다.
4. 최대 반복 수에 도달하거나 검증 데이터에 대한 엔트로피 개선이 최소 속도보다 두 번 발생하면 교육이 종료됩니다.
5. 훈련 데이터에서 배운 단어 나 문자의 수가 지정된 어휘의 크기를 초과하는 경우, 빈도가 낮은 단어 나 문자는 어휘에 추가되지 않습니다. 반대로 어휘의 크기는 학습 된 단어의 수로 재설정됩니다.
이 툴킷에는 예제가 제공됩니다. 이 툴킷에 내장 된 언어 모델에 대한 자세한 내용은 내 게시물을 참조하십시오.
이 모듈은 MIT 라이센스의 조건에 따라 오픈 소스로 제공됩니다.