이 저장소의 목표는 깨끗하고 읽기 쉬운 테스트 코드를 포함하여 소수의 학습 연구를 재현하는 것입니다.
이 프로젝트는 Python 3.6과 Pytorch로 작성되었으며 GPU가 있다고 가정합니다.
자세한 내용은이 중간 기사를 참조하십시오
requirements.txt 에 나열되어 있습니다. pip install -r requirements.txt 사용하여 설치가 바람직하게는 VirtualEnv에 설치됩니다.
config.py 의 DATA_PATH 변수를 Omniglot 및 Miniimagenet 데이터 세트를 저장하는 위치로 편집하십시오.
데이터를 획득하고 설정을 실행 한 후 폴더 구조는 다음과 같습니다.
DATA_PATH/
Omniglot/
images_background/
images_evaluation/
miniImageNet/
images_background/
images_evaluation/
Omniglot 데이터 세트. DATA_PATH/Omniglot_Raw scripts/prepare_omniglot.py
Miniimagenet 데이터 세트. https://drive.google.com/file/d/0b3irx3uqnobmq1flnxjszudywee/view에서 파일 다운로드, data/miniImageNet/images 및 run scripts/prepare_mini_imagenet.py
데이터 세트를 추가 한 후 루트 디렉토리에서 pytest 실행하여 모든 테스트를 실행합니다.
파일 experiments/experiments.txt 에는 아래에 주어진 결과를 얻는 데 사용한 과수 변수가 포함되어 있습니다.

experiments/proto_nets.py 실행하여 소수의 학습을위한 프로토 리 네트워크의 결과를 재현하십시오 (Snell et al).
논쟁
| 옴니 글롯 | ||||
|---|---|---|---|---|
| K- 웨이 | 5 | 5 | 20 | 20 |
| N- 샷 | 1 | 5 | 1 | 5 |
| 게시 | 98.8 | 99.7 | 96.0 | 98.9 |
| 이 repo | 98.2 | 99.4 | 95.8 | 98.6 |
| 미니 마게 넷 | ||
|---|---|---|
| K- 웨이 | 5 | 5 |
| N- 샷 | 1 | 5 |
| 게시 | 49.4 | 68.2 |
| 이 repo | 48.0 | 66.2 |
차별화 가능한 가장 가까운 이웃 분류기.

experiments/matching_nets.py 실행하여 One Shot Learning의 매칭 네트워크에서 결과를 재현하십시오 (Vinyals et al).
논쟁
CONINE DIVEY METRIC을 사용 하여이 논문의 결과를 재현하는 데 어려움이있었습니다. 그러나 L2 거리 메트릭을 사용 하여이 백서의 결과를 재현하고 약간 초과 할 수있었습니다.
| 옴니 글롯 | ||||
|---|---|---|---|---|
| K- 웨이 | 5 | 5 | 20 | 20 |
| N- 샷 | 1 | 5 | 1 | 5 |
| 출판 (코사인) | 98.1 | 98.9 | 93.8 | 98.5 |
| 이 repo (코사인) | 92.0 | 93.2 | 75.6 | 77.8 |
| 이 repo (L2) | 98.3 | 99.8 | 92.8 | 97.8 |
| 미니 마게 넷 | ||
|---|---|---|
| K- 웨이 | 5 | 5 |
| N- 샷 | 1 | 5 |
| 출판 (Cosine, FCE) | 44.2 | 57.0 |
| 이 repo (Cosine, fce) | 42.8 | 53.6 |
| 이 repo (L2) | 46.0 | 58.4 |

나는 다른 논문들과 일치하기 위해 스트리트 컨볼 루션 대신 Max 풀링을 사용했습니다. 두 번째 주문 MAML을 사용한 미니 마게넷 실험은 하루 종일 달려갔습니다.
experiments/maml.py 실행하여 모델 공유 메타 학습 (Finn et al)의 결과를 재현합니다.
논쟁
NB : MAML N의 경우 K와 Q는 기차와 시험 사이에 고정되어 있습니다. GPU에 맞게 메타 배치 크기를 조정해야 할 수도 있습니다. 2 차 MAML은 훨씬 더 많은 메모리를 사용합니다.
| 옴니 글롯 | ||||
|---|---|---|---|---|
| K- 웨이 | 5 | 5 | 20 | 20 |
| N- 샷 | 1 | 5 | 1 | 5 |
| 게시 | 98.7 | 99.9 | 95.8 | 98.9 |
| 이 repo (1) | 95.5 | 99.5 | 92.2 | 97.7 |
| 이 repo (2) | 98.1 | 99.8 | 91.6 | 95.9 |
| 미니 마게 넷 | ||
|---|---|---|
| K- 웨이 | 5 | 5 |
| N- 샷 | 1 | 5 |
| 게시 | 48.1 | 63.2 |
| 이 repo (1) | 46.4 | 63.3 |
| 이 repo (2) | 47.5 | 64.7 |
괄호 안의 숫자는 1 차 또는 2 차 MAML을 나타냅니다.