機器學習知識總結系列-機器學習中的優化算法總結(1-4)

文章目錄

    • 1.梯度下降
      • 1.1批量梯度下降(BGD)
      • 1.2隨機梯度下降(SGD)
      • 1.3 小批量隨機梯度下降(MSGD)
      • 1.4 比較:
      • 1.5 動量算法(momentum)
      • 1.6 Nestrov Momentum
    • 2. 自適應方法
      • 2.1 自適應學習率算法(AdaGrad)
      • 2.2 均方根反向傳播算法(RMSprop)
      • 2.3 Adadelta
      • 2.4 自適應矩估計優化算法(Adam)
    • 3.牛頓法
      • 3.1 牛頓法
      • 3.2 擬牛頓法
    • 總結

幾乎所有的的機器學習問題最終都將轉換為一個最優化問題,而一般回轉換為最小化問題
傳統的解析方法在機器學習的優化問題中常常不適用,通常使用的是迭代優化的問題,需要確定兩個關鍵點:1.下降的方向 2.確定下降的步長
參考博客

1.梯度下降

每次都沿著目標函數的負梯度方向進行下降,更新參數

1.1批量梯度下降(BGD)

BGD 采用整個訓練集的數據來計算 cost function 對參數的梯度
在這里插入圖片描述

1.2隨機梯度下降(SGD)

和批量梯度下降(BGD) 的一次用所有數據計算梯度相比,隨機梯度下降(SGD)每次更新時對每個樣本進行梯度更新,
對于很大的數據集來說,可能會有相似的樣本,這樣 BGD 在計算梯度時會出現冗余, 而 SGD 一次只進行一次更新,
就沒有冗余,而且比較快,并且可以新增樣本。

缺點
隨機梯度下降(SGD)因為更新比較頻繁,會造成 cost function 有嚴重的震蕩,此外隨機梯度下降(SGD)對噪聲比較敏感;批量梯度下降(BGD)可以收斂到局部極小值,當然 隨機梯度下降(SGD)的震蕩可能會跳到更好的局部極小值處。;當我們稍微減小 learning rate,隨機梯度下降(SGD)和批量梯度下降(BGD)的收斂性是一樣的。

1.3 小批量隨機梯度下降(MSGD)

MBGD 每一次利用一小批樣本,即 n 個樣本進行計算, 這樣它可以降低參數更新時的方差,收斂更穩定,

另一方面可以充分地利用深度學習庫中高度優化的矩陣操作來進行更有效的梯度計算。
和 SGD 的區別是每一次循環不是作用于每個樣本,而是具有 n 個樣本的Batch。

缺點

  • 1.選擇合適的學習率非常困難。太大會使得手斂波動大,太小使得手斂速度慢
  • 2.所有的參數使用相同的學習率。對于不經常出現的特征的參數希望更新快些,對于常常出現的特征則希望跟新慢一些
  • 3.sgd容易收斂到局部最優解,并且在某些會受到鞍點影響;通過合適的初始化和step size設置下,鞍點影響可以降低。

minibatchSGD是梯度下降方法中較常用的方法,而且性能比其他兩種都要好一些。但是仍然存在很多的問題,于是就有后面的那些改進的方法。

1.4 比較:

在這里插入圖片描述

1.5 動量算法(momentum)

在這里插入圖片描述
在這里插入圖片描述

1.6 Nestrov Momentum

在這里插入圖片描述

2. 自適應方法

2.1 自適應學習率算法(AdaGrad)

在這里插入圖片描述

2.2 均方根反向傳播算法(RMSprop)

在這里插入圖片描述

2.3 Adadelta

在這里插入圖片描述

2.4 自適應矩估計優化算法(Adam)

在這里插入圖片描述
在這里插入圖片描述

3.牛頓法

3.1 牛頓法

在這里插入圖片描述
在這里插入圖片描述

3.2 擬牛頓法

在這里插入圖片描述

總結

在這里插入圖片描述

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

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

相關文章

Python(19)-字符串、Unicode字符串

高級數據類型--字符串、Unicode字符串1.字符串的定義2.字符串的長度、計數、Index3.字符串常用方法3.1判斷類型3.2查找和替換3.3文本對齊3.4去除空白字符.strip()4.字符串的拆分和拼接5.字符串的切片6.跨行字符串7.包含轉義字符r8.字符串的分割與連接9.Unicode字符串字符串-不變…

機器學習中的距離和損失函數

文章目錄13.1 距離度量13.2 損失函數13.1 距離度量 距離函數種類:歐式距離、曼哈頓距離、明式距離(閔可夫斯基距離)、馬氏距離、切比雪夫距離、標準化歐式距離、漢明距離、夾角余弦等常用距離函數:歐式距離、馬氏距離、曼哈頓距離…

Python(20)-高級數據類型的公共方法

高級數據類型的公共方法1內置函數2高級數據類型切片3運算符,*,in4完整的for循環公共方法是列表,元組,字典,字符串都能使用的方法1內置函數 內置函數:不需要import導入模塊,就可以直接使用的函數…

redis——為什么選擇了跳表而不是紅黑樹?

跳表是個啥東西請看這個文章。 我們知道,節點插入時隨機出一個層數,僅僅依靠一個簡單的隨機數操作而構建出來的多層鏈表結構,能保證它有一個良好的查找性能嗎?為了回答這個疑問,我們需要分析skiplist的統計性能。 在…

機器學習公式推導

文章目錄線性回歸邏輯回歸線性判別分析PCAk-means決策樹svm隨機深林GBDTxgboost強化學習MapReduce線性回歸 邏輯回歸 對于分類問題:輸出0/1,超過[0,1]沒有意義,使用sigmoid函數 **代價函數:**使用L2平方差,由于模型函…

Python綜合應用(1)--名片管理系統開發

第一個綜合應用-名片管理系統1框架搭建2完善功能綜合應用,名片管理系統 歡迎界面,不同選項,1.新建名片,2.顯示全部,3 查詢名片(查到之后可以修改名片信息),0 退出系統 程序開發流程…

springboot1——spring相關入門

spring 隨著我們開發,發現了一個問題: A---->B---->C---->D 在A中創建B的對象調用B的資源 在B中創建C的對象調用C的資源 在C中創建D的對象調用…

大數據學習(06)-- 云數據庫

文章目錄目錄1.什么是云數據庫?1.1 云計算和云數據庫的關系1.2 云數據庫的概念1.3 云數據庫的特性1.4 云數據庫應用場景1.5 云數據庫和其他數據的關系2.云數據庫產品有哪些?2.1 云數據庫廠商概述2.2 亞馬遜云數據庫產品2.3 Google云數據庫產品2.4 微軟云…

Python(21)--變量進階

變量的進階使用1變量引用2可變、不可變數據類型3局部變量和全局變量4.Tips本系列博文來自學習《Python基礎視頻教程》筆記整理,視屏教程連接地址:http://yun.itheima.com/course/273.html在博文:https://blog.csdn.net/sinat_40624829/articl…

HTTP 響應代碼全集

HTTP 響應狀態代碼指示特定 http 請求是否已成功完成。響應分為五類:信息響應(100–199),成功響應(200–299),重定向(300–399),客戶端錯誤(400–499)和服務器錯誤 (500–599)。狀態代碼由 section 10 of RFC 2616定義 信息響應 …

機器學習知識總結系列-機器學習中的數學-矩陣(1-3-2)

矩陣 SVD 矩陣的乘法狀態轉移矩陣狀態轉移矩陣特征值和特征向量 對稱陣 正交陣 正定陣數據白化矩陣求導 向量對向量求導 標量對向量求導 標量對矩陣求導一.矩陣1.1 SVD奇異值分解(Singular Value Decomposition),假設A是一個mn階矩陣&#xf…

阿里Java編程規約(注釋)提煉

【強制】類、類屬性、類方法的注釋必須使用 Javadoc 規范,使用/**內容*/格式,不得使用 // xxx 方式。 說明:在 IDE 編輯窗口中,Javadoc 方式會提示相關注釋,生成 Javadoc 可以正確輸出相應注釋;在 IDE 中…

Python面試題-交換兩個數字的三種方法

Python實現兩個數字交換解法1解法2解法3a6 b100 解法1 使用其他變量,最通用的方法 ca ab bc 解法2 不使用其他變量,利算法節省內存空間 aab ba-b aa-b 解法3 python 專有 a,b(b,a) #等號右邊是一個元組 或者可以寫為: a,bb,a print(a,b)

面試中海量數據處理總結

教你如何迅速秒殺掉:99%的海量數據處理面試題 前言 一般而言,標題含有“秒殺”,“99%”,“史上最全/最強”等詞匯的往往都脫不了嘩眾取寵之嫌,但進一步來講,如果讀者讀罷此文,卻無任何收獲&…

redis——舊版復制

Redis 的復制功能分為同步(sync)和命令傳播(command propagate)兩個操作: 同步操作用于將從服務器的數據庫狀態更新至主服務器當前所處的數據庫狀態。命令傳播操作用于在主服務器的數據庫狀態被修改, 導致…

Linux(3)-網-ifconfig,ping,ssh

終端命令網-ping,ssh1. ifconfig -a2. ping3. ssh3.1安裝3.2 連接3.3 配置登入別名防火墻端口號,todo1. ifconfig -a 查看IP地址, 還可以用于配置網口。 ifconfig -a 2. ping ping命令: 檢測到IP地址的連接是否正常。命令開始后由本機發送數據包a&…

redis——相關問題匯總

什么是redis? Redis 本質上是一個 Key-Value 類型的內存數據庫, 整個數據庫加載在內存當中進行操作, 定期通過異步操作把數據庫數據 flush 到硬盤上進行保存。 因為是純內存操作, Redis 的性能非常出色, 每秒可以處理…

一文搞定面試中的二叉樹問題

一文搞定面試中的二叉樹問題 版權所有,轉載請注明出處,謝謝! http://blog.csdn.net/walkinginthewind/article/details/7518888 樹是一種比較重要的數據結構,尤其是二叉樹。二叉樹是一種特殊的樹,在二叉樹中每個節點…

無數踩坑系列(1)--Brightness Controller

Brightness Controller1.嘗試找回系統自帶亮度調節條1.1 配置grub文件,無效1.2 使用命令調節屏幕亮度,無效2.安裝應用程序Brightness Controller2.1許多博文都寫出了如下方案,無效:2.2 github 手動安裝https://github.com/LordAmi…

springboot2——MyBatis入門

原生缺陷: 數據庫dao層操作缺陷: ①jdbc的增刪改查代碼的冗余過大,查詢的時候需要遍歷。 ②Sql語句和數據庫相關參數和代碼的耦合性過高。 解決:使用Mybatis 業務層缺陷: ①業務層和數據…