




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
五言絕句古詩詞生成深度學習應用技術模型搭建與訓練職業能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08
模型搭建與訓練了解RNN循環神經網絡的相關內容了解長期依賴問題及解決方法了解LSTM長短期記憶神經網絡的結構及實現步驟能夠掌握keras搭建循環神經網絡;能夠掌握模型訓練過程職業能力目標01知識目標技能目標職業能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08
模型搭建與訓練調用處理好的古詩詞文本數據信息,在預訓練模型的基礎上進行模型微調訓練。任務描述任務要求理解循環神經網絡工作原理;學習使用keras框架搭建循環神經網絡;學習利用預處理后的數據實現數據生成器;掌握并實現神經網絡模型訓練過程。任務描述與要求02職業能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08
模型搭建與訓練任務分析同學們想一想循環神經網絡是如何工作的呢?你知道如何解決長期依賴問題嗎?任務分析與計劃03任務計劃表通過上面的思考,你是否對本任務要完成的工作有所了解?讓我們一起來制訂完成本次任務的實施計劃吧!任務分析與計劃03項目名稱五言絕句古詩詞生成任務名稱模型搭建與訓練計劃方式自主設計計劃要求請用8個計劃步驟來完整描述出如何完成本次任務序號任務計劃1
2
3
4
5
6
7
8職業能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08
模型搭建與訓練長期依賴問題204知識儲備RNN循環神經網絡1LSTM長短期記憶神經網絡3RNN基本概念04神經網絡可以當做是能夠擬合任意函數的黑盒子,只要訓練數據足夠,將神經網絡模型訓練好之后,在輸入層給定一個x,通過網絡之后就能夠在輸出層得到特定的y。那么既然有了這么強大的模型,為什么還需要RNN循環神經網絡呢?RNN基本概念04循環神經網絡主要應用于序列數據的處理,因輸入與輸出數據之間有時間上的關聯性,所以在常規神經網絡的基礎上,加上了時間維度上的關聯性,這樣就有了循環神經網絡。對于循環神經網絡而言,它能夠記錄很長時間的歷史信息,即使在某一時刻有相同的輸入,但由于歷史信息不同,也會得到不同的輸出。RNN基本概念04循環神經網絡具有記憶性、參數共享并且圖靈完備,因此在對序列的非線性特征進行學習時具有一定優勢。所有RNN都具有一種重復神經網絡單元的鏈式形式。在標準的RNN中,這個重復的單元只有一個非常簡單的結構,例如一個tanh層。04文本生成原理123將一個長文本序列依次輸入到循環神經網絡;對于給定前綴序列的序列數據,對將要出現的下一個字符的概率分布建立模型;這樣就可以每次產生一個新的字符。04文本生成原理hell-->hello每次輸入到循環神經網絡中一個字符,并計算其概率分布。每個字符的出現概率分布都是基于前面歷史序列得到的。如第二個“l”的概率是通過歷史信息“hel”得出,在輸出層可以通過最大似然或者條件隨機等規則選擇結果,再經過不斷的迭代、優化訓練出文本生成的模型。長期依賴問題204知識儲備RNN循環神經網絡1LSTM長短期記憶神經網絡3104長期依賴問題“thecloudsareinthesky”“IgrewupinEngland…
IspeakfluentEnglish”。21根據前面的詞語來預測下一個單詞需要更多上下文的情況,考慮嘗試預測文本中的最后一個單詞長期依賴問題04
長期依賴是指當前系統的狀態,可能受很長時間之前系統狀態的影響,是RNN中無法解決的一個問題。
因為出現了長期依賴,預測結果要依賴于很長時間之前的信息。不幸的是,隨著距離的增加,RNN無法有效的利用歷史信息。04梯度爆炸01當初始的權值過大,靠近輸入層的隱藏層權值變化比靠近輸出層的隱藏層權值變化更快,就會引起梯度爆炸的問題。02在循環神經網絡中,誤差梯度可在更新中累積,變成非常大的梯度,導致網絡權重的大幅更新,因此使網絡變得不穩定03在極端情況下,權重的值變得非常大,以至于溢出,導致Nan值。網絡層之間的梯度(大于1.0)時重復相乘導致的指數級增長會產生梯度爆炸04梯度消失A當梯度消失出現時,靠近輸出層的隱藏層權值更新相對正常,但是靠近輸入層的隱藏層權值更新變得很慢,導致靠近輸入層的隱藏層權值幾乎不變,仍接近于初始化的權值。B梯度消失會導致靠前的隱藏層幾乎不更新,相當于只是映射層對所有的輸入做函數映射,該神經網絡的學習等價于只有后幾層的隱藏層在學習。04梯度爆炸、消失的解決方法預訓練加微調梯度剪切、正則批規范化激活函數LSTM長短期記憶神經網絡長期依賴問題204知識儲備RNN循環神經網絡1LSTM長短期記憶神經網絡3104LSTM結構
LSTM是RNN的改進版,解決了普通RNN神經網絡訓練過程中出現的梯度消失和梯度爆炸的問題,能夠學習長期的依賴關系。LSTM的核心思想是通過門控狀態來控制傳輸,記住需要記憶的信息,忘記不重要的信息。
LSTM在普通RNN循環結構的基礎上,增加了一些狀態門,用于控制信息傳遞。04LSTM結構
黃色方框類似于CNN中的激活函數操作,粉色圓圈表示點操作,單箭頭表示數據流向,下圖中第四個符號表示兩個向量的連接操作,第五個符號表示向量的拷貝操作,且上圖中的σ表示sigmoid層(該層的輸出時0-1的值,0表示不能通過,1表示能通過)。04LSTM結構
LSTM共三個門:(1)遺忘門。主要是對上一個節點傳進來的輸入進行選擇性忘記,“忘記不重要的,記住重要的”。(2)輸入門。這個階段的輸入有選擇性地進行“記憶”。哪些重要則著重記錄下來,哪些不重要,則少記一些。(3)輸出門。這個階段將決定哪些將會被當成當前狀態的輸出。04LSTM實現步驟步驟1:輸入上一個神經元細胞輸出的隱藏層向量和當前神經元細胞的輸入,并將其連接起來。步驟2:將步驟1中的結果傳入遺忘門中,該層將刪除不相關的信息。步驟3:一個備選層將用步驟1中的結果創建,這一層將保存可能的會加入細胞狀態的值或者說信息。步驟4:將步驟1中的結果傳入輸入門中,這一層決定步驟4的備選層中哪些信息應該加入到細胞狀態中去。步驟5:步驟2、3、4計算結束后,用這三個步驟計算后的向量和上一個神經元細胞傳出的細胞狀態向量來更新當前細胞的細胞狀態。步驟6:結果就被計算完了。步驟7:將結果和新的細胞狀態進行點乘則是當前細胞狀態的隱向量。職業能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08
模型搭建與訓練05任務實施模型數據生成21模型搭建3模型訓練4模型任務準備模型任務準備05安裝該項目所需要的依賴庫:1、環境安裝?
python3?
Tensorflow?
Keras?
h5py?
Numpy模型任務準備05導入該項目所需要的依賴庫:2、依賴環境導入05模型任務準備
random:實現隨機化的依賴庫。
os:實現對文件或目錄進行操作的依賴庫。
keras:Keras是用Python編寫的高級神經網絡API,已集成在tensorflow內。
numpy:Python語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。
LambdaCallback:用于在訓練進行中創建自定義的回調函數。
Model,load_model:Keras模型實例化方法和模型加載方法。
Adam:Adam優化算法是隨機梯度下降算法的擴展式,近來其廣泛用于深度學習應用中,尤其是計算機視覺和自然語言處理等任務。05模型任務準備Input,LSTM,Dropout,Dense:
1.輸入層
a)Input:輸入層,用于實例化Keras張量。
2.常用層
a)LSTM:長短期記憶網絡層,用于解決循環神經網絡在訓練過程中的梯度消失/梯度爆炸問題。
b)Dropout:丟棄層,即根據比例隨機丟棄一些神經元,防止神經網絡在訓練過程中過度依賴某個神
經元,可用于防止過擬合,提升模型泛化能力。
c)Dense:全連接層,全連接層本質就是由一個特征空間線性變換到另一個特征空間。因此,dense層目的是將前面提取的特征,在dense經過非線性變化,提取這些特征之間的關聯,最后映射到輸出空間上。簡單來說,全連接就是把以前的局部特征重新通過權值矩陣組裝成完整的圖。模型任務準備05中已經對數據集進行處理,提取符合要求的五言絕句詩。這里我們使用np.load()函數快速加載save文件夾中預處理后的古詩據。3、數據導入模型任務準備05對一些重要的訓練超參數進行簡單介紹4、訓練超參數配置?
weight_file預訓練權重文件地址?
max_len根據多少字符的內容生成后續字符?
batch_size每次迭代批處理字符數量?
learning_rate設置學習率大小?
log_output日志文件存放地址?
model用于存放載入的模型?
load_pretrain_model設置是否加載預訓練模型,如果想從0開始進行訓練則設置False。05任務實施模型訓練數據生成2模型任務準備1模型搭建3模型訓練4模型訓練數據生成05生成器1、數據生成器定義生成器并不把所有的值放在內存中,它可以迭代的方法分批實時地生成數據,以減小內存負擔。模型訓練數據生成05yield關鍵字1、數據生成器定義yield是一個類似return的關鍵字,不同的是,return在返回值后就結束,而yield返回的是個生成器05模型訓練數據生成函數執行第一次迭代,從開始到達yield關鍵字,然后返回yield后的值作為第一次迭代的返回值,但循環并不終止步驟1后續每次執行此函數都會在先前運行的基礎上,繼續執行函數內部定義的循環,并返回值。步驟2不斷循環直到沒有可以返回的值。步驟3yield工作過程如下:模型訓練數據生成052、文字生成函數定義該函數供類內部調用,輸入用于生成古詩所依據的字符串,通過模型預測下一個文字,再將新文字加入輸入數據用于后續預測,直到返回length長度的預測值字符串05sentence:預測輸入值,傳入用于生成的文字依據。lenth:預測出的字符串長度,由于是生成五言絕句,長度已預設為24。temperature:使用temperature作為指數對所有概率進行處理,并重新統計概率分布,從而調整備選輸出文字的概率,結論如下:<1>當temperature等于1時,模型輸出正常無變化。<2>當temperature小于1時,模型輸出比較開放,將有更多機會選擇其他備選文字。即原
概率大的概率比例將被減小,原小概率備選文字的概率比例將被放大。temperature的值越小這種影響越強。<3>當temperature大于1時,模型輸出比較保守,更加傾向選擇原高概率的備選文字。即原概率大的概率比例將更大,原小概率備選文字的概率比例將被縮小。temperature的值越大這種影響越強。模型訓練數據生成05任務實施模型訓練數據生成2模型任務準備1模型搭建3模型訓練4模型搭建05模型建立通過嵌套的方式逐層搭建而來1、建立模型05Input():輸入層,用于實例化Keras張量。構建的模型輸入需要根據設定的文本依據長度與數據庫字符數量共同決定。LSTM():長短期記憶網絡層,用于解決循環神經網絡在訓練過程中的梯度消失/梯度爆炸問題。Dropout():丟棄層,即在訓練過程中根據比例隨機丟棄一些輸入,丟棄部分對應的參數不會更新。Dense():全連接層,全連接層本質就是由一個特征空間線性變換到另一個特征空間。將前面提取的特征,在dense經過非線性變化,提取這些特征之間的關聯,最后映射到輸出空間上。簡單來說,全連接就是把以前的局部特征重新通過權值矩陣組裝成完整的圖。softmax:把一些輸入映射為0-1之間的實數,并且歸一化保證和為1,因此多分類的概率之和也剛好為1。Model():根據自己的設置創建完全定制化的模型。模型搭建模型搭建05根據模型訓練要求,對LSTM優化器進行配置。2、配置優化器05Adam(learning_rate):其中learning_rate:學習率,已在超參數設置部分定義。將輸出誤差反向傳播給網絡參數,以此來擬合樣本的輸出。本質上是最優化的一個過程,逐步趨向于最優解。pile(optimizer,loss,metrics):用于在配置訓練方法時,告知訓練時用的優化器、損失函數和準確率評測標準。a)optimizer:優化器。b)loss:損失函數。多分類損失函數:二分類交叉熵損失函數binary_crossentropy、多類別交叉熵損失函數categorical_crossentropy。c)metrics:評價指標。提供了6種評價指標,分別是準確率accuracy、二分類準確率binary_accuracy、分類準確率
categorical_accuracy、稀疏分類準確率sparse_categorical_accuracy、多分類TopK準確率top_k_categorical_accuracy和稀疏多分類TopK準確率parse_top_k_categorical_accuracy。模型搭建05任務實施模型訓練數據生成2模型任務準備1模型搭建3模型訓練4模型訓練051、加載與訓練模型將根據超參數配置的預訓練模型地址加載預訓練模型,使用超參數load_pretrain_model控制是否加載預訓練模型,默認為True,即加載預訓練模型并在此基礎上繼續訓練。如果想要體驗從零開始訓練模型,可將參數改為False。05理解模型微調訓練,設置模型參數2、設置訓練過程的模型測試設置測試頻率設置測試日志存放地址模型訓練05利用Python的生成器,逐個生成數據的batch并進行訓練。生成器與模型將并行執行以提高效率。函數返回一個history對象。3、開始模型訓練模型訓練05理解模型微調訓練,設置模型參數3、開始模型訓練設置測試頻率設置測試日志存放地址模型訓練05fit_generator(generator,steps_per_epoch,epochs=1,verbose=1,callbacks=None):利用Python的生成器,逐個生成數據的batch并進行訓練。生成器與模型將并行執行以提高效率。函數返回一個history對象。
a)
generator:生成器函數,所有的返回值都應該包含相同數目的樣本。每個epoch以經過模型的
樣本數達到steps_per_epoch時,記一個epoch結束。
b)
steps_per_epoch:整數,表示一個epoch中迭代的次數,可根據實際情況自定義。常用設置
為數據集樣本數量除以批量大小,表示一次迭代將所有數據訓練一次。當生成器返steps_per_epoch次數據時計一個epoch結束,執行下一個epoch。
c)
epochs:整數,表示數據迭代的輪數,可根據實際需求進行自定義。
d)
verbose:是否在訓練過程顯示訓練信息。
e)
callbacks:在訓練期間應用的回調函數。可以使用回調函數來查看訓練模型的內在狀態和統計。模型訓練054、查看測試日志模型訓練日志文件保存于根目錄下的out文件夾內,點擊日志鏈接快速打開日志文件。基于預訓練模型得到的日志文件中,輸出文本通常都已達到較好的效果。055、模型保存模型訓練測試結果滿意后,將模型保存到本地職業能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08
模型搭建與訓練任務檢查與評價061、請參照評價標準完成自評和對其他小組的互評。2、各組請代表分析本組任務實施經驗。項目名稱1000五言絕句古詩詞生成任務名稱模型搭建與訓練評價方式可采用自評、互評、老師評價等方式說
明主要評價學生在項目學習過程中的操作技能、理論知識、學習態度、課堂表現、學習能力等
評價內容與評價標準序號評價內容評價標準分值得分1理論知識(20%)了解R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥害補償協議書
- 水果店招聘合同協議書
- 簽訂兼職協議書
- 家庭人口多建房協議書
- 紅木轉讓協議書
- 花卉擺租協議書
- 和解協議書調解協議書
- 塑料破碎廠合伙協議書
- 擁有土地使用權協議書
- 美國救援協議書
- 安徽省2024年普通高校招生普通本科批院校投檔分數及名次(物理科目組合)
- 二級建造師繼續教育題庫(帶答案)
- 市場監管投訴舉報培訓
- 《新能源乘用車二手車鑒定評估技術規范 第1部分:純電動》
- 課題申報參考:西藏地方與祖國關系史融入當地高校“中華民族共同體概論”課教學研究
- 【MOOC】《C++程序設計基礎》(華中科技大學)章節作業中國大學慕課答案
- 《南方航空公司匯率風險管理策略案例分析》
- 防范化解矛盾糾紛安全
- GB/T 45072-2024自然保護地名詞術語
- 漁船輪機管理考試復習題及答案
- 品管圈PDCA改善案例-降低住院患者跌倒發生率
評論
0/150
提交評論