1. 程式人生 > >最優化學習筆記(五)——牛頓法(多維資料)

最優化學習筆記(五)——牛頓法(多維資料)

    在最優化學習系列中,第一次就說的是牛頓法,但是那是在一維搜尋上的,它其實就是將函式fx處利用泰勒公式展開,得到它的近似函式,進而求解最小值。本節內容主要說明牛頓法在多維資料上的迭代公式。最優化學習筆記中講到的最速下降法是一種速度比較快的優化方法,但是最速下降法只用到了函式的一階導數,這種方法並不總是最高效的。而這裡說的牛頓法用到了二階導數,它的效率可能比最速下降法更優。
    當目標函式f:RnR上二階連續可微時,將函式fx(k)處進行泰勒展開,並且不考慮三階及以上的項,那麼可得到函式f的二階近似項:

f(x)f(x(k))+(xx(k))Tg(k)+12(xx(k)
)TF(x(k))(xx(k))
=q(x)

其中,g(k)=f(x(k)),F(x(k))f(x(k))黑塞矩陣,將q應用區域性極小點的一屆必要條件:
0=q(x)=g(k)+F(x(k))(xx(k))
如果F(x(k))>0, 則函式q的極小值點為:
x(k+1)=x(k)F(x(k))1g(k)

     需要說明的是,在上述過程中,需要求解一個n維的線性齊次方程組,這對效率很有影響,應該設計一個更為高效的方法。如果黑塞矩陣是非正定的,那麼牛頓法也將存在問題,後邊也將會針對問題提出相應的修正方法。

相關推薦

最優化學習筆記()——牛頓資料

    在最優化學習系列中,第一次就說的是牛頓法,但是那是在一維搜尋上的,它其實就是將函式f在x處利用泰勒公式展開,得到它的近似函式,進而求解最小值。本節內容主要說明牛頓法在多維資料上的迭代公式。最優化學習筆記中講到的最速下降法是一種速度比較快的優化方法,但是最

CODE學習筆記——自動操作: 累加與計數

咳,還是篇幅問題,自動操作還是用兩篇文章寫吧。 目錄 加法器實現累加 之前的加法器執行加法時需要手動輸入兩個數,運算結果不能儲存,現在我們有了鎖存器,可以嘗試著進行累加計算了; 鎖存器儲存開關斷開,不儲存結果;反之儲存; 第二排開關閉合,進行累加;否則

數據機構與算之美學習筆記:B+樹第48講

存儲空間 計算 數據庫 數據行 劃分數 需求 散列 動態 不可 一、解決問題的前提是定義清楚問題 通過對一些模糊需求進行假設,來限定要解決問題的範圍 根據某個值查找數據,比如 select * from use where id=1234; 根據區間值來查詢某些數據比

jquery 深入學習筆記之中的一個 事件綁定

color 動態 name his pan mouseover this pre con 【jquery 事件綁定】 1、加入元素事件綁定 (1) 加入事件為當前元素 $(‘p‘).on(‘click‘,function(){ //code here ..

【C語言】學習筆記7——指針與數組

一個 聲明 %d mage 分享圖片 技術分享 pan 最好 include 1. 聲明一個指向多維數組的指針 int (* pz) [2]; //pz指向一個內涵兩個int類型元素的數組 int * pax[2]; //pax 是一個內含兩個指針元素的

學習筆記-C語言5演算法設計提高

演算法複雜度是指演算法在編寫可執行程式後,執行時所需要的時間資源和記憶體資源。演算法設計一般更在意時間和計算資源的開銷,而對空間資源則不太介意。 1. 二分查詢 二分查詢又稱折半查詢,首先陣列中的元素時按升序排列,將陣列中間位置的關鍵字與查詢關鍵字比較: 1)如果兩者相等,則查詢成功

Haskell 學習筆記-20:除法 Division, UVa 725

看了幾本 Haskell 教程,我覺得這些書都沒有站在程式設計師的角度安排內容順序。其實對於大部分程式設計師來講,腦子裡就是 C 語言的基本套路。因此, Haskell 的教程應該從 C 語言相近的方式開始課程。等我用 Haskell 開發一個應用系統後,考慮編寫一本真正的入門教程。今天

git學習筆記1-剛剛入門霜之小刀

git學習筆記1-剛剛入門(霜之小刀) 歡迎轉載和引用,若有問題請聯絡 若有疑問,請聯絡 Email : [email protected] QQ:2279557541 1、git中檔案的狀態 這個一開始我都挺難理解的,因為我以前是使用sv

資料結構學習筆記------紅黑樹附c++程式碼

1、紅黑樹簡介 紅黑樹是二叉查詢樹的一種,其增刪改查的統計效能要優於AVL樹,查詢、插入、刪除演算法的複雜度都為O(log(n))。先附上紅黑樹這種資料結構的性質: 性質1、節點是紅色或黑色。 性質2、根節點是黑色。 性質3、每個葉節點(是指的空節點,nil節點)是黑色的。 性質4、

資料結構學習筆記------並查集附cf例題

並查集是將原始的資料集S看成一個森林,每棵樹代表一個集合。初始時,每個資料看成一顆只有根節點的樹,根據具體要求,將若干樹合併起來組成若干個含有節點較多的樹,每棵樹就是一個集合。此資料結構可以方便的對資料集S進行:(1)查詢其屬於哪個集合(2)將一個集合合併到另一個集合的操作。要注意的是,

Java 核心技術學習筆記_卷1_第9版 基礎知識 002實踐出真知

第 1 章 Java程式設計概述 1. Java語言特性 (1)簡單性         1)語法上拋棄了C++很多晦澀的特性         2)基本直譯器及相關類支援僅需要40KB ; 增加基礎的標準類庫和對執行緒的支援,需要增加175KB (2)面向物件

Java 核心技術學習筆記_卷1_第9版 基礎知識 004實踐出真知day 1

第3章 Java的基本程式設計結構 1.   從一個簡單Java應用程式開始介紹Java程式語言的使用規範 public  class FirstSample {       public  static  void   main(String[] args)

資料結構學習筆記Day2-單鏈表用java實現

一、首先說一下線性表 1. 什麼是線性表,線性表的邏輯特性? 1)有一個頭(表頭),有一個尾(表尾) 2)表頭與表尾之間的元素有且只有一個前驅元素,有且只有一個後繼元素 2.線性表有兩種儲存方式? 順序表和連結串列 3.順序表和連結串列的區別? 1)順序表是一邊

《Oracle PL/SQL例項精講》學習筆記19——批量SQL第三部分

本章內容: 1. FORALL語句(使用FORALL語句、SAVE EXCEPTIONS選項、INDICES OF選項、VALUES OF選項) 2. BULK COLLECT語句 3. 在SQL語句中繫結集合 基本概念: 1. BULK COLLECT子句: T

redis 學習筆記(3)-master/slave主/從模式

類似mysql的master-slave模式一樣,redis的master-slave可以提升系統的可用性,master節點寫入cache後,會自動同步到slave上。 環境: master node: 10.6.144.155:7030 slave node:

斯坦福CS231n 課程學習筆記--線性分類器Assignment1程式碼實現

最近學習了斯坦福的CS231n(winter 2016)系列課程,收穫很大,作為深度學習以及卷積神經網路學習的入門很是完美。學習過程中,主要參考了知乎上幾位同學的課程翻譯,做得很好,在這裡也對他們表示感謝,跟課程相關的很多資源都可以在該專欄中找到。推薦大家把每個

資料結構學習筆記-迴圈連結串列C語言實現

  迴圈連結串列的概念主要就是讓單鏈表的尾節點的指標不為空並且指向頭節點。像這樣的迴圈連結串列和普通單鏈表除了判斷條件幾乎沒有任何區別,判斷條件就是從p->next是否為空改為p->next是否等於頭節點,如果等於頭節點則迴圈結束。#include <std

C++標準模板庫學習筆記之序列容器vector、array

序列容器以線性序列的方式儲存元素。五種標準的序列容器:array<T,N>,vector<T>,deque<T>,list<T>,forward_list<T>。Arrayarray<T, N>是一個有N

學習筆記——Unity3D記憶體優化貼圖優化

要學會如何優化Unity3D的貼圖,首先要了解Unity3D圖片上的各項設定大概是幹嘛的,修改之後會導致什麼樣的變化。另外,貼圖資源在Unity3D中佔用的記憶體大小不等於檔案本身的大小,而是與貼圖資源的設定有關,不論你放入的是PNG,PSD還是TGA,它們都會被自動轉換成Unity自己的Textu

Spring學習筆記 使用Static Factory靜態工廠類建立Bean

普通定義Bean並且進行初始化的方法一般通過property(屬性)的setter方法或者構造方法進行。例如 <bean id="beanName" class="com.csdn.net.arvin.BeanClass" > <construct