人工智能實戰_第六次做業_陳澤寅

16071070 _ 陳澤寅 _ 第六次做業:

1、簡要概述

項目 內容
課程 人工智能實戰2019
做業要求 做業要求
我在這個課程的目標是 可以理解人工智能實踐與理論框架,獨立完成小項目
這個做業在哪一個具體方面幫助我實現目標 理解不一樣參數對於網絡性能的影響,加深對網絡的理解

2、做業內容

a. 將模型準確度調整至>97%網絡

b. 整理造成博客,博客中給出參數列表和對應值app

c. 給出最終的loss降低曲線框架

d. 給出最終準確度結果性能

3、核心代碼

以改變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

  • 學習率:0.5
  • 隱藏層一:128
  • 隱藏層二:64
  • Epoch: 30
  • batch_size:20

咱們獲得最佳的預測正確率爲 98.22%.

4、Loss曲線

五:結論

咱們能夠看出在調整參數的過程當中;適當增長神經元數目;下降學習率;增長循環次數能夠提升測試集正確率;可是在改變參數如循環Epoch的次數,神經網絡神經元個數時,也會致使訓練時間的增大。

相關文章
相關標籤/搜索