【報道】谷歌正式開源 Hinton 膠囊理論代碼,即刻用 TensorFlow 實現吧
簡介:雷鋒網
隸屬於深圳英鵬信息技術有限公司,專註於移動互聯網與智能硬體的未來,在新媒體業務上為讀者提供關於移動互聯網、硬體創業以及軟硬體結合開發的第一手資訊與行業深度解讀。雷鋒網的「PR+IR+BD」服務模式為互聯網公司、傳統消費電子企業以及新興的軟硬體創業者提供了營銷傳播以及資源對接的服務支持,推動軟硬體創業者成為中國主流的創新力量。歡迎原鏈接轉發,付費轉載請前往 雷鋒網的主頁獲取信息,盜版必究。敬請關注和擴散本專欄及同名公眾號,會邀請全球知名學者陸續發布運籌學、人工智慧中優化理論等相關乾貨、知乎Live及行業動態:『運籌OR帷幄』大數據人工智慧時代的運籌學
轉載自雷鋒網AI研習社
雷鋒網(公眾號:雷鋒網) AI 研習社消息,相信大家對於「深度學習教父」Geoffery Hinton 在去年年底發表的膠囊網路還記憶猶新,在論文 Dynamic Routing between Capsules 中,Hinton 團隊提出了一種全新的網路結構。為了避免網路結構的雜亂無章,他們提出把關注同一個類別或者同一個屬性的神經元打包集合在一起,好像膠囊一樣。在神經網路工作時,這些膠囊間的通路形成稀疏激活的樹狀結構(整個樹中只有部分路徑上的膠囊被激活)。這樣一來,Capsule 也就具有更好的解釋性。
在實驗結果上,CapsNet 在數字識別和健壯性上都取得了不錯的效果。
日前,該論文的第一作者 Sara Sabour 在 GitHub 上公布了論文代碼,大家可以馬上動手實踐起來。雷鋒網 AI 研習社將教程編譯整理如下:終於盼來了Hinton的Capsule新論文,它能開啟深度神經網路的新時代嗎?
所需配置:
- TensorFlow(點擊 http://www.tensorflow.org 進行安裝或升級)
- NumPy (詳情點擊 http://www.numpy.org/ )
- GPU
執行 test 程序,來驗證安裝是否正確,諸如:
python layers_test.py
快速 MNIST 測試:
下載並提取 MNIST tfrecord 到 $DATA_DIR/ 下:
https://storage.googleapis.com/capsule_toronto/mnist_data.tar.gz
下載並提取 MNIST 模型 checkpoint 到 $CKPT_DIR 下:
https://storage.googleapis.com/capsule_toronto/mnist_checkpoints.tar.gz
python experiment.py --data_dir=$DATA_DIR/mnist_data/ --train=false
--summary_dir=/tmp/ --checkpoint=$CKPT_DIR/mnist_checkpoint/model.ckpt-1
快速 CIFAR10 ensemble 測試:
下載並提取 cifar10 二進位文件到 $DATA_DIR/ 下:
https://www.cs.toronto.edu/~kriz/cifar.html
下載並提取 cifar10 模型 checkpoint 到 $CKPT_DIR 下:
https://storage.googleapis.com/capsule_toronto/cifar_checkpoints.tar.gz
將目錄($DATA_DIR)作為 data_dir 來傳遞:
python experiment.py --data_dir=$DATA_DIR --train=false --dataset=cifar10
--hparams_override=num_prime_capsules=64,padding=SAME,leaky=true,remake=false --summary_dir=/tmp/ --checkpoint=$CKPT_DIR/cifar/cifar{}/model.ckpt-600000 --num_trials=7
CIFAR10 訓練指令:
python experiment.py --data_dir=$DATA_DIR --dataset=cifar10 --max_steps=600000
--hparams_override=num_prime_capsules=64,padding=SAME,leaky=true,remake=false --summary_dir=/tmp/
MNIST full 訓練指令:
- 也可以執行--validate=true as well 在訓練-測試集上訓練
- 執行 --num_gpus=NUM_GPUS 在多塊GPU上訓練
python experiment.py --data_dir=$DATA_DIR/mnist_data/ --max_steps=300000
--summary_dir=/tmp/attempt0/
MNIST baseline 訓練指令:
python experiment.py --data_dir=$DATA_DIR/mnist_data/ --max_steps=300000
--summary_dir=/tmp/attempt1/ --model=baseline
To test on validation during training of the above model:
訓練如上模型時,在驗證集上進行測試(記住,在訓練過程中會持續執行指令):
- 在訓練時執行 --validate=true 也一樣
- 可能需要兩塊 GPU,一塊用於訓練集,一塊用於驗證集
- 如果所有的測試都在一台機器上,你需要對訓練集、驗證集的測試中限制 RAM 消耗。如果不這樣,TensorFlow 會在一開始佔用所有的 RAM,這樣就不能執行其他工作了
python experiment.py --data_dir=$DATA_DIR/mnist_data/ --max_steps=300000
--summary_dir=/tmp/attempt0/ --train=false --validate=true
大家可以通過 --num_targets=2 和 --data_dir=$DATA_DIR/multitest_6shifted_mnist.tfrecords@10 在 MultiMNIST 上進行測試或訓練,生成 multiMNIST/MNIST 記錄的代碼在 input_data/mnist/mnist_shift.py 目錄下。
multiMNIST 測試代碼:
python mnist_shift.py --data_dir=$DATA_DIR/mnist_data/ --split=test --shift=6
--pad=4 --num_pairs=1000 --max_shard=100000 --multi_targets=true
可以通過 --shift=6 --pad=6 來構造 affNIST expanded_mnist
論文地址:https://arxiv.org/pdf/1710.09829.pdf
GitHub 地址:https://github.com/Sarasra/models/tree/master/research/capsules
雷鋒網 AI 研習社編譯整理。
附重塑AI的膠囊網路論文解讀:
騰訊視頻
如果你是運籌學/人工智慧碩博或在讀,請在下圖的公眾號後台留言:「加微信群」。系統會自動辨認你的關鍵字,並提示您進一步的加群要求和步驟,邀請您進全球運籌或AI學者群(群內學界、業界大佬雲集)。
運籌學|控制論|優化理論愛好者,歡迎加qq群:686387574
人工智慧愛好者,歡迎加qq群: 685839321
數據科學|分析愛好者,歡迎加qq群:130414574
最後敬請關注和擴散本專欄及同名公眾號,會陸續發布運籌學、人工智慧中優化理論相關乾貨及行業動態:『運籌OR帷幄』大數據和人工智慧時代下的運籌學 - 知乎專欄
推薦閱讀:
※人工智慧會毀滅人類嗎?
※利用AWS學習深度學習 For Udacity P5(第二篇:AWS 註冊)
※為什麼計算機、人工智慧不是萬能的
※探索「意識」的起源:從RNA世界假說到人類大腦糾纏網路
※人工智慧在不同產業的應用