優化器--牛頓法總結

?

?

---這里記錄下一些關于牛頓法來作為優化器的個人筆記 :)

關于牛頓法,先不說其中的概念,來簡單看一個例子? 不用計算器,如何手動開一個值的平方根,比如計算{sqrt(a) | a=4 } ? 不用程序和代碼如何求?

  ----比較簡單有木有,直接上用公式來套就好了.

      xt = ( xt-1?+ ( a / xt-1?) ) / 2

      我們看 sqrt(4) 這個值的區間在1<=sqrt(4)<=4里,寫成這種形式吧[1,4],我們令x0 = 1,

      x?= ( 1 + (4/1))/2 = 5/2 =2.5

      x = (2.5 + (4/2.5))/2 = 2.05

      x = (2.05 + ( 4 /2.05 ))/2 = 2.0006?

        .....

? ? 于是我們就求出x的近似值為2

那么這個公式是如何得來的呢?

  這個公式其實是依據牛頓法得來的?牛頓法長成什么樣子呢?

    ?就是長成這個樣子,我們發現這個樣子和我們的SGD還是很像的,這兩者的區別記錄在后面吧~。

而牛頓迭代法,這個公式其實就是泰勒級數展開的前幾項 f(x),并使得f(x) =0,求解后的結果,而泰勒級數是采用無限項的來等價表示一個函數,比如:

,那牛頓法采用的是泰勒級數的前幾項 -- 有限的項,來近似表示一個函數f(x).

那么如何上面這個公式是如何通過牛頓法得到的呢?

  上面的題,我們將其轉換車更加通用的一些,比如改為如何求解sqrt(a)??

?------這又等價于sqrt(a)=x ?轉換成--> ?x^2 = a , (a 屬于實數域), ?進一步轉換成--->f(x) = x^2 -a =0

我們知道 f(x) = x^2 - a =0 ,因為只要求某一個點的值,所以我們只需要知道這個點的切線就可以了, 由此我們依據泰勒級數定義,對其進行一階展開,可以知道 f(x) ~g(x) = ?f(x0) + f ' (x0)*(x - x0),我們令g(x)=0

于是我們就得到了 x = x0 - f(x0) / f '(x0);

  然后我們再次化解這個公式:

        x = x0 - (x0^2 - a / 2x0 ) ?= (x0^2 + a) /2x0 ?= (x0 + a/x0)/2

? ? ? 這樣我們就得到了最開始的那個公式了。

但是我們在用牛頓法作為優化器的時候,是要求極小值的啊? 那么如何快速的求出極小值呢?

   我們知道一階導,為曲線切線方向,二階導為切線的切線方向回想一下SGD法,SGD只是在一階導上,進行權值更新,基本上就是處于求切線方向,前進一個步長,然后再矯正,再求當前點的切線,再矯正:

  

?

這種方式就會出現綠線的情況,那么牛頓法就給出另一種思路: 我們再沿著切線方向走的時候,不必按照固定的步長走動,我們可以依據切線的變化率來動態調整行走的步子,于是就有了這個公式:

?當二階導趨近于0的時候,說明一階導有極小值,那么此時就應該讓它接近這個極小值,而loss函數為凸函數 ,f’(x)趨近極小值的時候,f(x)就也就可以快速的接近極小值,而不出現大幅度搖擺,就出現了紅色那條線.

一般來說,對于那種高階多項式采用牛頓法效果會比SGD好些.

?

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

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

相關文章

在命令提示符輸出c語言代碼_您可以在Windows命令提示符中更改輸出緩沖區的大小嗎?...

在命令提示符輸出c語言代碼If you are someone who loves using the Windows Command Prompt, you may have found yourself curious as to why the screen output buffer has such a ‘large’ default size. Can you change it to a smaller (or even larger) size? Today’…

django23:BS4/kindeditor上傳圖片

BS4 Beautiful Soup&#xff0c;Beautiful Soup 是一個可以從HTML或XML文件中提取數據的Python庫.它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式。 安裝 pip3 install beautifulsoup4 使用 from bs4 import BeautifulSoup#html_doc為網頁內容 soup Be…

設計模式——————觀察者模式

工廠模式分為簡單工廠&#xff0c;工廠和抽象工廠&#xff0c;三種工廠的實現是越來越復雜的。 觀察者模式 本質上就是一種訂閱/發布的模型&#xff0c;從邏輯上來說就是一對多的依賴關系。 什么意思呢&#xff1f;好比是一群守衛盯著一個囚犯&#xff0c;只要囚犯一有異動&…

SNMP簡介

SNMP簡介介紹SNMP的定義、目的、版本演進以及受益。 定義簡單網絡管理協議SNMP&#xff08;Simple Network Management Protocol&#xff09;是廣泛應用于TCP/IP網絡的網絡管理標準協議。SNMP提供了一種通過運行網絡管理軟件的中心計算機&#xff08;即網絡管理工作站&#xff…

詳解vue生命周期及每個階段適合進行的操作

VUE生命周期的四個階段 create 創建 -------- 創建vue實例并初始化mount 掛載 -------- 把vue實例和視圖進行關聯update 更新 ------- 監聽數據與視圖的變化destroy銷毀 ------- 銷毀實例生命周期 --- 鉤子函數 vue為上面的4個大的階段提供了一個可編程的接口&#xff0c;我們可…

.Net 7 新編譯器 ILC 簡析

楔子&#xff1a;這個新編譯器的全稱是ILCompiler。是之前CoreRT項目合并過來的&#xff0c;在.Net 7成熟&#xff0c;并且可以產業化應用。本質&#xff1a;ILC編譯器的本質除了構建CLR的所擁有的主要功能&#xff0c;還包含了對LLVM這種意圖取代GCC編譯器的操作&#xff0c;對…

mac 防止 下載 睡眠_如何暫時防止Mac進入睡眠狀態

mac 防止 下載 睡眠Let’s say you start a big download, then go to bed. When you wake up, you realize your Mac went to sleep before finishing its job. Isn’t there some way to stop this? 假設您開始進行大量下載&#xff0c;然后上床睡覺。 當您醒來時&#xff0…

ubuntu安裝chrome driver

首先下載Chrome Driver&#xff08;Firefox Driver的安裝與該步驟相同&#xff09; 鏈接&#xff1a; http://chromedriver.storage.googleapis.com/index.html 接下來在控制臺&#xff08;terminal&#xff09;上操作一下紅色字體的指令&#xff1a; Install Unzipsudo apt-ge…

深入理解Spring異常處理

宜信技術學院1.前言相信我們每個人在SpringMVC開發中&#xff0c;都遇到這樣的問題&#xff1a;當我們的代碼正常運行時&#xff0c;返回的數據是我們預期格式&#xff0c;比如json或xml形式&#xff0c;但是一旦出現了異常&#xff08;比如&#xff1a;NPE或者數組越界等等&am…

基于React開發范式的思考:寫在Lesx發布之際

例子&#xff1a;lesx-example webpack loader: lesx-loader 一些背景 現在前端框架已經呈現出React、Angular、Vue三足鼎立的局勢&#xff0c;對于三者的對比以及技術選型的思考與爭論也被討論了非常多&#xff0c;比如知乎上的這個問題&#xff1a;react.js,angular.js,vue.j…

mac共享單個磁盤_如何與您的所有設備共享酒店的單個Wi-Fi連接

mac共享單個磁盤Many hotels still limit you to one or two Wi-Fi devices per room–a frustrating limitation, especially when traveling with someone else. Connection restrictions can apply anywhere you have to log into a Wi-Fi network via a portal instead of …

Python FastApi:快速建立docker容器/掛載共享文件夾/導入導出

一、目的 a.快速把原有fastapi代碼部署到docker&#xff0c;讓docker在server運行。 b.不涉及docker深入設置。 c.使用python第三方lib少或簡單。 二、步驟 ps:請提前安裝docker 1.新建Dockerfile&#xff0c;放入到項目根目錄 a.Dockerfile沒有后綴. b.準備好requireme…

PHP-FPM 與 Nginx 的通信機制總結

PHP-FPM 介紹 CGI 協議與 FastCGI 協議 每種動態語言&#xff08; PHP,Python 等&#xff09;的代碼文件需要通過對應的解析器才能被服務器識別&#xff0c;而 CGI 協議就是用來使解釋器與服務器可以互相通信。PHP 文件在服務器上的解析需要用到 PHP 解釋器&#xff0c;再加上對…

Android——監聽事件總結

各種監聽事件 1.按鈕 Button&#xff08;1&#xff09;點擊監聽btn_1.setOnClickListener(new View.OnClickListener() { &#xff08;2&#xff09;長按監聽btn_1.setOnLongClickListener(new View.OnLongClickListener() { 2.單選框 RadioGroupradio_gp.setOnCheckedChangeLi…

ChatGPT 大智近妖,從宇宙人生到手搓光刻機,從哄女朋友到寫年終總結我們聊得非常開心,反而讓人越來越憂心...

都說 ChatGPT 要干掉程序員&#xff0c;清理搜索引擎&#xff0c;取代Stack Overflow&#xff0c;還能消滅人類&#xff0c;這些有些言過其實了。ChatGPT 的定位是一個人工智能助理&#xff0c;它說&#xff0c;它的主要目的是通過回答用戶的問題&#xff0c;為用戶提供幫助。在…

如何在Windows Defender中安排掃描

Windows Defender automatically performs background scans during your PC’s idle moments, but doesn’t include an easy way to schedule a full scan. There is a way to do it, though. Windows Defender在PC空閑時自動執行后臺掃描&#xff0c;但是沒有包括安排完整掃…

復習深入筆記02:魔法方法/cookie,session,token/異常

魔法方法 對象生成 1.先調用__new__方法&#xff0c;生成空對象。控制對象生成。 2.當執行“對象類名&#xff08;namelqz&#xff09;”&#xff0c;觸發類的__init__()

比特熊故事匯獨家 | .NET 感恩專場

點擊上方藍字關注我們&#xff08;本文閱讀時間&#xff1a;15分鐘)大家好&#xff01;我是愛吃、愛玩、更愛學習技術&#xff0c;IT界新晉小紅人&#xff0c;開發者的好朋友——比特熊&#xff01;比特熊&#xff1a;本期故事匯是.NET專場&#xff0c;今天一次性邀請到DOTNET領…

Ubuntu Core 給物聯網提供更多安全支持

開發四年只會寫業務代碼&#xff0c;分布式高并發都不會還做程序員&#xff1f; Canonical 是 Ubuntu 的一個桌面環境&#xff0c;該公司目前在云服務業務賺到了錢。因為 Ubuntu Core 為嵌入式設備帶來了 Ubuntu 18.04 長期支持(LTS)代碼庫。Ubuntu Core 的鏡像大小為 260MB&…