今日面試題分享:牛頓法和梯度下降法有什麼不同?

2021-02-19 七月在線實驗室


參考答案:

解析:

牛頓法(Newton's method) 

牛頓法是一種在實數域和複數域上近似求解方程的方法。方法使用函數f (x)的泰勒級數的前面幾項來尋找方程f (x) = 0的根。牛頓法最大的特點就在於它的收斂速度很快。 

具體步驟: 

首先,選擇一個接近函數 f (x)零點的 x0,計算相應的 f (x0) 和切線斜率f  ' (x0)(這裡f ' 表示函數 f  的導數)。 

然後我們計算穿過點(x0,f(x0))並且斜率為f '(x0)的直線和x軸的交點的x坐標,也就是求如下方程的解:

我們將新求得的點的 x 坐標命名為x1,通常x1會比x0更接近方程f  (x) = 0的解。因此我們現在可以利用x1開始下一輪迭代。迭代公式可化簡為如下所示:

已經證明,如果f'是連續的,並且待求的零點x是孤立的,那麼在零點x周圍存在一個區域,只要初始值x0位於這個鄰近區域內,那麼牛頓法必定收斂。 

並且,如果f'(x)不為0, 那麼牛頓法將具有平方收斂的性能. 粗略的說,這意味著每迭代一次,牛頓法結果的有效數字將增加一倍。 

由於牛頓法是基於當前位置的切線來確定下一次的位置,所以牛頓法又被很形象地稱為是"切線法"。牛頓法的搜索路徑(二維情況)如下圖所示:

關於牛頓法和梯度下降法的效率對比: 

a)從收斂速度上看 ,牛頓法是二階收斂,梯度下降是一階收斂,前者牛頓法收斂速度更快。但牛頓法仍然是局部算法,只是在局部上看的更細緻,梯度法僅考慮方向,牛頓法不但考慮了方向還兼顧了步子的大小,其對步長的估計使用的是二階逼近。 

b)根據wiki上的解釋,從幾何上說,牛頓法就是用一個二次曲面去擬合你當前所處位置的局部曲面,而梯度下降法是用一個平面去擬合當前的局部曲面,通常情況下,二次曲面的擬合會比平面更好,所以牛頓法選擇的下降路徑會更符合真實的最優下降路徑。

註:紅色的牛頓法的迭代路徑,綠色的是梯度下降法的迭代路徑。 

牛頓法的優缺點總結: 

優點:二階收斂,收斂速度快; 

缺點:牛頓法是一種迭代算法,每一步都需要求解目標函數的Hessian矩陣的逆矩陣,計算比較複雜。 

本題解析來源:@wtq1993

連結:http://blog.csdn.net/wtq1993/article/details/51607040

題目來源:七月在線官網(www.julyedu.com)——面試題庫——面試大題——機器學習

BAT大咖一對一個性化定製輔導

定製學習路線

保就業  保高薪  先就業  後付費

新一輪金三銀四之際來了

又到了各大企業狂招人的季節

也是跳槽漲薪的最佳時節啦

有意的親們抓緊時間嘍

挑戰高薪,玩轉AI~

長按識別下方二維碼  

查看更多課程詳情

長按識別二維碼

相關焦點

  • 今日面試題分享:什麼是擬牛頓法(Quasi-Newton Methods)?
    什麼是擬牛頓法(Quasi-Newton Methods)
  • 從梯度下降到擬牛頓法:詳解訓練神經網絡的五大學習算法
    而現如今有許多不同的學習算法,它們每一個都有不同的特徵和表現。因此本文力圖描述清楚五大學習算法的基本概念及優缺點,給讀者們闡明最優化在神經網絡中的應用。問題形式化神經網絡中的學習過程可以形式化為最小化損失函數問題,該損失函數一般是由訓練誤差和正則項組成。誤差項會衡量神經網絡擬合數據集的好壞,也就是擬合數據所產生的誤差。
  • 最清晰的講解各種梯度下降法原理與Dropout
    機器學習目標函數,一般都是凸函數,什麼叫凸函數?限於篇幅,我們不做很深的展開,在這兒我們做一個形象的比喻,凸函數求解問題,可以把目標損失函數想像成一口鍋,來找到這個鍋的鍋底。非常直觀的想法就是,我們沿著初始某個點的函數的梯度方向往下走(即梯度下降)。
  • 一分鐘看完梯度下降法
    今天,我想講一下梯度下降法(Gradient Descent),基於線性回歸損失函數的梯度下降法。
  • 技術| 深度解讀最流行的優化算法:梯度下降
    本文旨在讓你對不同的優化梯度下降法的算法有一個直觀認識,以幫助你使用這些算法。我們首先會考察梯度下降法的各種變體,然後會簡要地總結在訓練(神經網絡或是機器學習算法)的過程中可能遇到的挑戰。與此同時,最新的深度學習程序庫都包含了各種優化梯度下降的算法(可以參見如 lasagne、caffe 及 Kera 等程序庫的說明文檔)。但它們的算法則不被公開,都作為黑箱優化器被使用,這也就是為什麼它們的優勢和劣勢往往難以被實際地解釋。 本文旨在讓你對不同的優化梯度下降法的算法有一個直觀認識,以幫助你使用這些算法。
  • 線性回歸和梯度下降的初學者教程
    這就是為什麼我們需要使用梯度下降。梯度下降是一種找到最佳擬合線的工具。在深入研究梯度下降之前,先看看另一種計算最佳擬合線的方法。最佳擬合線的統計計算方法:直線可以用公式表示:y=mx+b。回歸線斜率m的公式為:m = r * (SD of y / SD of x)。
  • 梯度下降—Python實現
    梯度下降是數據科學的基礎,無論是深度學習還是機器學習。深入了解梯度下降原理一定會對你今後的工作有所幫助。你將真正了解這些超參數的作用以及處理使用此算法可能遇到的問題。然而,梯度下降並不局限於一種算法。另外兩種流行的梯度下降(隨機和小批量梯度下降)建立在主要算法的基礎上,你可能會看到比普通批量梯度下降更多的算法。
  • 機器學習:隨機梯度下降和批量梯度下降算法介紹
    機器學習:隨機梯度下降和批量梯度下降算法介紹 佚名 發表於 2017-11-28 04:00:28 隨機梯度下降(Stochastic gradient descent)
  • 10個梯度下降優化算法+備忘單
    學習率調度器vs梯度下降優化主要的不同在於梯度下降優化讓學習率乘以一個因子,該因子是梯度的函數,以此來調整學習率成分,然而學習率調度器讓學習率乘以一個恆為常數或是關於時間步幅的函數的因子,以此來更新學習率。
  • 梯度下降算法詳解
    原創 | CDA數據分析研究院,轉載需授權介紹如果說在機器學習領域有哪個優化算法最廣為認知,用途最廣,非梯度下降算法莫屬。總之梯度下降算法的用處十分廣泛,我們有必要對它進行更加深入的理解。關於梯度下降算法的直觀理解關於梯度下降算法的直觀理解,我們以一個人下山為例。比如剛開始的初始位置是在紅色的山頂位置,那麼現在的問題是該如何達到藍色的山底呢?
  • Batch、Mini-batch和隨機梯度下降的區別和Python示例
    在研究機器學習和深度學習時出現的主要問題之一是梯度下降的幾種類型。在梯度下降的三種類型(Batch梯度下降、Mini-batch梯度下降和隨機梯度下降)中,我應該使用哪一種呢?在這篇文章中,我們將了解這些概念之間的區別,並從梯度下降的代碼實現來闡明這些方法。
  • 隨機梯度下降法介紹及其參數講解
    算法介紹簡單來說,梯度下降就是從山頂找一條最短的路走到山腳最低的地方。
  • 詳解梯度下降算法 正確訓練模型利刃!
    【IT168 資訊】梯度下降是目前最流行的優化策略,目前用於機器學習和深度學習。它在訓練模型時使用,可以與每種算法結合使用,易於理解和實施。因此,每個使用機器學習的人都應該理解它的概念。閱讀完這篇文章後,你將了解梯度下降是如何工作的,它今天使用了哪些類型,以及它們的優點和權衡。
  • 一文讀懂線性回歸和梯度下降
    ,已知房屋面積、臥室數量和房屋的交易價格,如下表:    假如有一個房子要賣,我們希望通過上表中的數據估算這個房子的價格。我們又兩種方式將只有一個樣本的數學表達轉化為樣本為多個的情況:梯度下降(gradient descent)和正則方程(The normal equations)。這裡我們重點講梯度下降。
  • 梯度下降背後的數學原理幾何?
    v=yvouUpxIqts&t=145s一、梯度下降變體:不止一個梯度下降採用機器學習算法實現了三種主要的變體,每個變體在計算效率上各異並且都具有各自獨特的優勢。1、第一種變體:批量梯度下降批量梯度下降(Batch Gradient Descent)可以說是梯度下降變體中最簡單的一種。
  • 【乾貨】機器學習最常用優化之一——梯度下降優化算法綜述
    這篇文章旨在提供梯度下降算法中的不同變種的介紹,幫助使用者根據具體需要進行使用。 這篇文章首先介紹梯度下降算法的三種框架,然後介紹它們所存在的問題與挑戰,接著介紹一些如何進行改進來解決這些問題,隨後,介紹如何在並行環境中或者分布式環境中使用梯度下降算法。最後,指出一些有利於梯度下降的策略。
  • 高效「背誦」面試題的三定法則
    現在,我將總結出一套無敵的面試題「背誦」方法論,分享給在座的各位。不同類型的題目,預示著你需要搭建不同結構的知識體系,你需要提取不同深度的知識重點。 二、制定答題框架 當確定了面試題題目類型以後,就可以開始制定「背誦」框架了,下面舉例說明。
  • 拼多多2020屆數據分析面試題合集
    只答出來並行與二階導5.ID3和C4.5的不同?信息增益和信息增益率;除了這倆還有啥不同?emmmmmm,名字不同嗎?(確實這一塊研究的不深)6.寫一下信息增益和信息增益率吧?寫出來了7.SVM知道嗎?