項目 | 內容 |
---|---|
課程 | 人工智能實戰2019 |
做業要求 | 做業要求 |
我在這個課程的目標是 | 可以理解人工智能實踐與理論框架,獨立完成小項目 |
這個做業在哪一個具體方面幫助我實現目標 | 理解不一樣參數對於網絡性能的影響,加深對網絡的理解 |
a. 將模型準確度調整至>97%網絡
b. 整理造成博客,博客中給出參數列表和對應值app
c. 給出最終的loss降低曲線框架
d. 給出最終準確度結果性能
以改變epoch爲例學習
if __name__ == '__main__': print("Loading...") n_hidden1 = 128 n_hidden2 = 64 n_output = 10 learning_rate = 0.1 dataReader = LoadData(n_output) n_images = dataReader.num_example n_input = dataReader.num_feature m_epoch = 10 batch_list= [5,10,20,50,100] epoch_list = [10,20,30,40,50] correct = [] n = [10,20,30,40,50] print(n) batch_size = 10 for i in range(5): m_epoch = epoch_list[i] dict_Param = InitialParameters3(n_input, n_hidden1, n_hidden2, n_output, 2) dict_Param = Train(dataReader, learning_rate, m_epoch, n_images, n_input, n_output, dict_Param, forward3, backward3, update3, batch_size) SaveResult(dict_Param) rate = Test(dataReader, n_output, dict_Param, n_input, forward3) correct.append(rate/10000.0) plt.figure() plt.plot(n,correct) plt.xlabel("Epoch") plt.ylabel("correctness") plt.show()
1、嘗試調整學習率測試
標號 | 學習率 | 隱藏層1神經元數 | 隱藏層2神經元數 | epoch次數 | batch_size | 測試集正確率 |
---|---|---|---|---|---|---|
1 | 0.05 | 64 | 32 | 10 | 10 | 0.9712 |
2 | 0.1 | 64 | 32 | 10 | 10 | 0.9748 |
3 | 0.2 | 64 | 32 | 10 | 10 | 0.9749 |
4 | 0.4 | 64 | 32 | 10 | 10 | 0.9705 |
5 | 0.8 | 64 | 32 | 10 | 10 | 0.9607 |
2、嘗試調整batch_size人工智能
標號 | 學習率 | 隱藏層1神經元數 | 隱藏層2神經元數 | epoch次數 | batch_size | 測試集正確率 |
---|---|---|---|---|---|---|
1 | 0.1 | 128 | 64 | 10 | 5 | 0.9768 |
2 | 0.1 | 128 | 64 | 10 | 10 | 0.9784 |
3 | 0.1 | 128 | 64 | 10 | 20 | 0.9771 |
4 | 0.1 | 128 | 64 | 10 | 50 | 0.9675 |
5 | 0.1 | 128 | 64 | 10 | 100 | 0.9544 |
3、調整epoch3d
標號 | 學習率 | 隱藏層1神經元數 | 隱藏層2神經元數 | epoch次數 | batch_size | 測試集正確率 |
---|---|---|---|---|---|---|
1 | 0.5 | 128 | 64 | 10 | 10 | 0.9769 |
2 | 0.5 | 128 | 64 | 20 | 10 | 0.9809 |
3 | 0.5 | 128 | 64 | 30 | 10 | 0.9805 |
4 | 0.5 | 128 | 64 | 40 | 10 | 0.9795 |
5 | 0.5 | 128 | 64 | 50 | 10 | 0.9805 |
將batch_size調整爲20code
標號 | 學習率 | 隱藏層1神經元數 | 隱藏層2神經元數 | epoch次數 | batch_size | 測試集正確率 |
---|---|---|---|---|---|---|
1 | 0.5 | 128 | 64 | 10 | 20 | 0.9749 |
2 | 0.5 | 128 | 64 | 20 | 20 | 0.9803 |
3 | 0.5 | 128 | 64 | 30 | 20 | 0.9822 |
4 | 0.5 | 128 | 64 | 40 | 20 | 0.9798 |
5 | 0.5 | 128 | 64 | 50 | 20 | 0.9807 |
當咱們選取參數爲blog
咱們獲得最佳的預測正確率爲 98.22%.
咱們能夠看出在調整參數的過程當中;適當增長神經元數目;下降學習率;增長循環次數能夠提升測試集正確率;可是在改變參數如循環Epoch的次數,神經網絡神經元個數時,也會致使訓練時間的增大。