吳恩達深度學習筆記:優化算法 (Optimization algorithms)2.9-2.10

目錄

  • 第二門課: 改善深層神經網絡:超參數調試、正 則 化 以 及 優 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)
    • 第二周:優化算法 (Optimization algorithms)
      • 2.9 學習率衰減(Learning rate decay)

第二門課: 改善深層神經網絡:超參數調試、正 則 化 以 及 優 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)

第二周:優化算法 (Optimization algorithms)

2.9 學習率衰減(Learning rate decay)

加快學習算法的一個辦法就是隨時間慢慢減少學習率,我們將之稱為學習率衰減,我們來看看如何做到,首先通過一個例子看看,為什么要計算學習率衰減。

在這里插入圖片描述

假設你要使用 mini-batch 梯度下降法,mini-batch 數量不大,大概 64 或者 128 個樣本,在迭代過程中會有噪音(藍色線),下降朝向這里的最小值,但是不會精確地收斂,所以你的算法最后在附近擺動,并不會真正收斂,因為你用的 α \alpha α是固定值,不同的 mini-batch 中有噪音。

在這里插入圖片描述
但要慢慢減少學習率 α \alpha α的話,在初期的時候, α \alpha α學習率還較大,你的學習還是相對較快,但隨著 α \alpha α變小,你的步伐也會變慢變小,所以最后你的曲線(綠色線)會在最小值附近的一小塊區域里擺動,而不是在訓練過程中,大幅度在最小值附近擺動。

所以慢慢減少𝑎的本質在于,在學習初期,你能承受較大的步伐,但當開始收斂的時候,小一些的學習率能讓你步伐小一些。

你可以這樣做到學習率衰減,記得一代要遍歷一次數據,如果你有以下這樣的訓練集:
在這里插入圖片描述
你應該拆分成不同的 mini-batch,第一次遍歷訓練集叫做第一代。第二次就是第二代,依此類推,你可以將 α \alpha α學習率設為 α = 1 1 + d e c a y ? r a t e ? e p o c h ? n u m α 0 \alpha = \frac{1}{1+{decay-rate} ? {epoch-num}} \alpha_0 α=1+decay?rate?epoch?num1?α0?(decay-rate稱為衰減率,epoch-num 為代數, α 0 \alpha_0 α0?為初始學習率),注意這個衰減率是另一個你需要調整的超參數。

在這里插入圖片描述

這里有一個具體例子,如果你計算了幾代,也就是遍歷了幾次,如果𝑎0為 0.2,衰減率decay-rate 為 1,那么在第一代中,𝑎 =11+1𝑎0 = 0.1,這是在代入這個公式計算 α = 1 1 + d e c a y ? r a t e ? e p o c h ? n u m α 0 \alpha =\frac{1}{1+{decay-rate} ? {epoch-num}} \alpha_0 α=1+decay?rate?epoch?num1?α0?

此時衰減率是 1 而代數是 1。在第二代學習率為 0.67,第三代變成 0.5,第四代為 0.4 等等,你可以自己多計算幾個數據。要理解,作為代數函數,根據上述公式,你的學習率呈遞減趨勢。如果你想用學習率衰減,要做的是要去嘗試不同的值,包括超參數 α 0 \alpha_0 α0?,以及超參數衰退率,找到合適的值,除了這個學習率衰減的公式,人們還會用其它的公式。

在這里插入圖片描述

比如,這個叫做指數衰減,其中 α \alpha α相當于一個小于 1 的值,如 α = 0.9 5 e p o c h ? n u m α 0 \alpha = 0.95 ^{epoch?num} \alpha_0 α=0.95epoch?numα0?,所以你的學習率呈指數下降。

人們用到的其它公式有 α e p o c h ? n u m α 0 \frac{\alpha}{\sqrt{epoch?num}}\alpha_0 epoch?num ?α?α0? 或者 α = k t α 0 \alpha =\frac{k}{\sqrt{t}} \alpha_0 α=t ?k?α0?(𝑡為 mini-batch 的數字)。

有時人們也會用一個離散下降的學習率,也就是某個步驟有某個學習率,一會之后,學習率減少了一半,一會兒減少一半,一會兒又一半,這就是離散下降(discrete stair cease)的意思。

到現在,我們講了一些公式,看學習率𝑎究竟如何隨時間變化。人們有時候還會做一件事,手動衰減。如果你一次只訓練一個模型,如果你要花上數小時或數天來訓練,有些人的確會這么做,看看自己的模型訓練,耗上數日,然后他們覺得,學習速率變慢了,我把𝑎調小一點。手動控制𝑎當然有用,時復一時,日復一日地手動調整𝑎,只有模型數量小的時候有用,但有時候人們也會這么做。

所以現在你有了多個選擇來控制學習率𝑎。你可能會想,好多超參數,究竟我應該做哪一個選擇,我覺得,現在擔心為時過早。下一周,我們會講到,如何系統選擇超參數。對我而言,學習率衰減并不是我嘗試的要點,設定一個固定的𝑎,然后好好調整,會有很大的影響,學習率衰減的確大有裨益,有時候可以加快訓練,但它并不是我會率先嘗試的內容,但下周我們將涉及超參數調整,你能學到更多系統的辦法來管理所有的超參數,以及如何高效搜索超參數。

這就是學習率衰減,最后我還要講講神經網絡中的局部最優以及鞍點,所以能更好理解在訓練神經網絡過程中,你的算法正在解決的優化問題,下個視頻我們就好好聊聊這些問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13376.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13376.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13376.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HP5V80、HP5V105、HP3V28電比例驅動柱塞泵放大器

HP5V80、HP5V105、HP3V28、HP3V45、HP3V60、HP3V80、HP3V125、HP3V140帶電比例控制泵放大器,變排量泵的排量可通過由BEUEC比例放大器輸出到比例電磁閥電流變化而進行調整,控制電流范圍為300mA至800mA(24VDC)或600mA至1600mA(12VDC)。主要適合應用于工程機…

【聯通官網及APP注冊/登錄安全分析報告】

前言 由于網站注冊入口容易被黑客攻擊,存在如下安全問題: 暴力破解密碼,造成用戶信息泄露短信盜刷的安全問題,影響業務及導致用戶投訴帶來經濟損失,尤其是后付費客戶,風險巨大,造成虧損無底洞 …

「AI模型瘦身術」——知識蒸餾技術綜述

使用KD原因 遇到問題:從產業發展的角度來看工業化將逐漸過渡到智能化,邊緣計算逐漸興起預示著 AI 將逐漸與小型化智能化的設備深度融合,這也要求模型更加的便捷、高效、輕量以適應這些設備的部署。 解決方案:知識蒸餾技術 知識…

Logic Pro X for Mac v11.0.0激活版:專業音頻制作軟件

對于音樂創作者來說,一個穩定、高效的工作流程至關重要。Logic Pro X for Mac提供了一系列工作流程優化功能,讓你能夠更快捷、高效地完成音樂創作。從添加音軌、錄制音頻,到混音和編曲,每一個步驟都如絲般順滑。同時,L…

Maven 依賴排查

先從項目去看顯而易見,假如我們有一個項目,父工程中包含一些子工程,如下: 我們想看一下samples-account中的依賴關系,那么我們可以打開 samples-account的pom文件,查看其maven依賴關系圖。 我們可以看到此項…

Java測試框架:分享常用的Java測試框架,如JUnit, TestNG等,包括單元測試,集成測試,性能測試等

單元測試框架 JUnit JUnit簡介 JUnit是一個開源的Java測試框架,用于編寫和執行可重復的測試。它是Java開發人員的一個重要工具,用于進行單元測試、回歸測試和模塊化測試。JUnit提供了一種形式化的方式來編寫測試用例,并通過這些測試用例核實代碼的正確性。具有可預測的測試…

ARM 交叉編譯搭建SSH

一、源碼下載 zlib:zlib-1.3.1.tar.xz openssl:openssl-0.9.8d.tar.gz openssh:openssh-4.6p1.tar.gz 二、交叉編譯 1、zlib 編譯參考這里 2、openssl tar -xf openssl-0.9.8d.tar.gz ./Configure --prefix/opt/ssh/openssl os/compile…

android設計模式-builder模式

builder模式可以看成是鏈式調用,如,是builder不是那個bunder new AlertDialog.Builder(this) .setTitle("對話框") .setMessage("測試") .setIcon(R.mipmap.ic_launcher) …

2024年抖店保證金交多少?保證金常見問題解答,一文解決你所有疑惑

大家好,我是電商花花 新手如果想要開抖音小店,有一個大坑是必須要避開的。 就是我們店鋪開通之后,我們一定要交保證金,如果不交,那就是0元開店。 很多新手聽別人說做抖音小店可以0元開店,不用繳納保證金就…

Voronoi路徑規劃探索

系列文章目錄 提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加 TODO:寫完再整理 文章目錄 系列文章目錄前言Voronoi圖的生成與更新Voronoi路徑規劃探索2.維諾圖Voronoi的生成--避障路徑Voronoi Planner一、生成與更新代價地圖costmap的方式二、生成與更新D…

開箱機選型“避坑”指南:風險識別與應對策略一網打盡

在現代化生產線上,開箱機作為關鍵設備之一,其選型過程的成功與否直接關系到生產效率與成本控制。然而,在選型過程中,往往會面臨諸多風險,如何有效識別并應對這些風險,成為企業關注的焦點。星派將為您詳細解…

JETBRAINS IDES 分享一個2099通用試用碼!DataGrip 2024 版 ,支持一鍵升級

文章目錄 廢話不多說上教程:(動畫教程 圖文教程)一、動畫教程激活 與 升級(至最新版本) 二、圖文教程 (推薦)Stage 1.下載安裝 toolbox-app(全家桶管理工具)Stage 2 : 下…

[解決方法]echarts地圖/圖表縮放,側邊欄導致樣式自適應問題

🔎嘿,這里是慰慰👩🏻?🎓,會發各種類型的文章,智能專業,從事前端🐾 🎉如果有幫助的話,就點個贊叭,讓我開心一下!&#x1f…

百度Comate插件領50京東E卡

給你分享一個AI編碼助手——百度Comate!掃碼參與抽紅包活動,520寵粉!送京東卡!https://url.xffjs.com/sMsP7m 流程如下 點擊:點我傳送 驗證碼登錄賬戶 點擊個人中心 復制License 去idea或者vscode安裝插件 詢問一…

Mysql的語句執行很慢,如何分析呢?

想象一下,MySQL像是一本巨大的電子相冊,里面存放著各種照片(數據)。當你想要找某張照片時,如果相冊沒有整理,你可能需要一張張翻看,這自然就慢了。但如果你給相冊里的照片分了類,貼上…

【Redis】Redis 主從集群(二)

1.哨兵機制原理 1.1.三個定時任務 Sentinel 維護著三個定時任務以監測 Redis 節點及其它 Sentinel 節點的狀態 1)info 任務:每個 Sentinel 節點每 10 秒就會向 Redis 集群中的每個節點發送 info 命令,以獲得最新的 Redis 拓撲結構 2&#xff…

RabbitMQ的基本組件有哪些?

RabbitMQ的基本組件有哪些? RabbitMQ介紹、解耦、提速、削峰、分發 詳解、RabbitMQ安裝 可視化界面講解 RabbitMQ 不生產消息,他是消息的搬運工。 1. Producer: 消息的發布者。 2. Connection:producer/comsumer 和 Message Broker 之間的 TCP 連接。 3…

創建線程的方法(windows)

引用:windows程序員面試指南 windows上常用的創建線程的方法:CreateThread(),_beginthread(),std::thread 1.CreateThread() CreateThread 是 windows 提供的 api,用法如下: HANDLE CreateThread([in, …

JavaGUI---JavaFX---未完結

一、Java事件處理機制的應用 JavaFX:JavaFX是Java平臺上的一個GUI工具包,它提供了一些內置的事件處理機制。 Swing:Swing是Java平臺上的另一個GUI工具包,它也提供了一些內置的事件處理機制。 二、JavaFX和Swing的關鍵區別&…

20232906 2023-2024-2 《網絡與系統攻防技術》第十次作業

20232906 2023-2024-2 《網絡與系統攻防技術》第十次作業 1.實驗內容 一、SEED SQL注入攻擊與防御實驗 我們已經創建了一個Web應用程序,并將其托管在http://www.seedlabsqlinjection.com/(僅在SEED Ubuntu中可訪問)。該Web應用程序是一個簡…