機器學習-02(深度學習的基本概念)

機器學習的步驟

1.定義帶有未知參數的函數

線性模型(linear models)具有較大的限制(Model Bias)

? ? ? ? y = b + wx

無論如何更改b或者w,其只會呈現出一條直線,不能滿足更加復雜的現實情況。

我們可以將復雜的函數(分段函數)看作:常數(其大小為實際函數與Y軸的交點)+激活函數(在小于某個數值時,為某個常數,在大于某個數值時,為某個常數)

紅色為Piecewise Linear Curves(分段函數),藍色為Hard Sigmoid(激活函數)

第一激活函數的轉折點設在實際函數的第一個轉角。分段函數的斜率與實際函數的斜率相同。同理第二個激活函數的轉折點設為實際函數的第二個轉角處,斜率相同......

最終實際函數等于f0+f1+f2+f3?

有多個線段組成的函數稱為Piecewise Linear Curves(分段函數),其都可以通過上面的方法組合出來。其轉折的次數越多,需要的藍色函數也越多。

在曲線問題上,我們可以通過微分的思想,在曲線上取足夠多的點,以直代曲,這樣就可以用直線來逼近這條連續的曲線。

所以可以通過分段函數去逼近任何連續的曲線。

激活函數可以使用一段S型曲線(sigmoid funcation)來逼近它

可以簡寫為:y = c sigmoid(b+wx1)

通過不斷調整b、w和c來制造出不同的S型曲線

前面所求的分段函數就是多個激活函數累加之后的結果

i代表激活函數(藍色函數),j代表特征的編號(如j = 10,則取前十天的樣本進行計算)

wij代表在第i個激活函數里面的第j個特征的權重

其中r1、r2 和r3可以簡化為矩陣與向量的加法和乘法:

所以
就可以寫成

其中x是輸入的特征,灰色的b是標量,w為矩陣,_c{^{T}}和綠色的b是向量

將所有的未知參數進行拆分,拼成一個很長的向量統稱為\theta

2.定義來自訓練數據中的損失函數

擁有了新的模型之后,Loss與之前的定義方法還是一樣的,只是符號更改了一下,變為:????????

? ? ? ? L(w,b) ====> L(\theta)? 用\theta來代表所有的未知參數

損失函數(Loss function)所作的事情就是,當\theta為某一個數值的時候,會有多好還是有多不好

計算方法與只有兩個參數的時候類似,假設給定一個\theta值,再輸入一個x,查看估算的y值,計算與真實的\hat{y}(label)之間的差距,以此類推。把所有的誤差加起來就得到了Loss

3.最佳化問題

optimization的演算法還是gradient descent。

尋找一組\theta讓Loss最小,將這一組\theta稱之\theta*。

尋找\theta*:
1.隨機選一個初始值\theta0

2.計算微分,對每一個未知的參數都去計算起對L的微分,之后把微分集合起來組成一個向量g(gradient)。

通常的表示方法:,其中倒三角形的意思是把所有的參數\theta1、\theta2、\theta3等對L做微分,算微分的\theta值為\theta0。

3.更新參數列表

其中兩式相減是因為梯度的方向式函數增長最快的方向,朝著負方向式下降最快的方向。

重復以上的步驟,不斷更新\theta,直至不想繼續更新或者得出\theta?= 0。

在實際操作中,不是使用全部的數據去計算Loss,而是將數據分為多個batch(批)。多次進行計算,算出L1、L2、L3等,之后計算出gradient。

一次查看所有批次稱之為一次epoch,epoch指的是整個訓練數據集通過神經網絡一次的過程。?每一次更新參數稱之為update。、

所以一個epoch并不是更新參數一次。更新次數由batch size決定

例如:

ReLU(另外一種激活函數)

hard sigmoid可以看作式兩個rectifier linear unit的疊加。

ReLU比Sigmoid更優。

Sigmoid或者ReLU等可以叫作Neuron,很多的Neuron可以叫作Neuron Network

過擬合(Overfitting)?

指的是在已知的訓練資料上變好,而在未知的訓練資料上沒有變好。

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

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

相關文章

InspireFace C++ 架構分析

InspireFace C 架構分析 https://github.com/deepinsight/insightface/tree/master/cpp-package/inspireface 1. 項目概述 InspireFace 是一個高性能的人臉識別和分析 SDK,采用 C 開發,提供了完整的人臉檢測、跟蹤、特征提取、活體檢測、屬性分析等功…

【網絡安全】Webshell命令執行失敗解決思路

前言費盡心思上傳了webshell,上傳下載都沒問題,卻發現命令執行總是失敗?最近也打點也遇到了這些問題,網上有部分文章,但都是零碎知識點并且實戰不一定能用,今天就結合我個人經驗剖析webshell上線后cmd命令執…

【機器人】復現 HOV-SG 機器人導航 | 分層 開放詞匯 | 3D 場景圖

HOV-SG 是通過語言指令實現機器人導航的,核心特點是分層結構、開放詞匯、3D場景圖。 來自RSS 2024,大規模、多層次的環境構建精確的、開放詞匯的3 場景圖,并使機器人能夠通過語言指令在其中有效地導航。 論文地址:Hierarchical …

jvm 鎖升級機制

Java 虛擬機(JVM)中的鎖升級機制(也稱為鎖膨脹)是 HotSpot 虛擬機為了優化 synchronized 關鍵字的性能而引入的一項重要技術。它的核心思想是:根據實際遇到的競爭激烈程度,動態地將鎖從開銷最小的狀態逐步升…

金蝶云星空 (9.0版本) ERP的WebApi接口隨機出現SSLException

環境: java-1.8.0-openjdk-1.8.0.131 hutool-all 依賴, 5.8.25版本 項目背景: 發版上線,用的hutool工具類 HttpUtil.createPost() ,請求域名為https://xxx.ik3cloud.com/k3cloud 的金蝶ERP webapi接口 問題&#xff1…

用java,把12.25.pdf從最后一個點分割,得到pdf

要在Java中從文件名 12.25.pdf 的最后一個點(.)分割文件名和擴展名,可以使用 String 類的 lastIndexOf() 和 substring() 方法。以下是一個示例代碼: public class FileNameSplitter {public static void main(String[] args) {St…

UE5 重新編譯插件版本

打開要轉換的UE的安裝目錄,一直找到這個文件 不要雙擊,在地址欄里輸入cmd打開命令行,輸入如下指令 RunUAT.bat BuildPlugin -plugin"E:\OldPlugin\chatbot5.3\chatbot\chatbot.uplugin" -package"E:\NewPlugin"-plugin…

Linux下的調試器-gdb(16)

文章目錄 預備知識(9-2.30.00)快速認識 gdbgdb 的命令1. 更換成 cgdb2. 打和去除斷點3. 逐語句與逐過程4. 使能(激活)斷點 調試思想1. 找到問題(找到問題所在的區域)2. 查看代碼的上下文 補充調試技巧1. wa…

李宏毅NLP-7-計算分數和訓練和測試

文章目錄 分數計算訓練測試 分數計算 插入式序列生成模型的概率計算邏輯,核心是將 “生成序列 h 的過程” 拆解為一系列插入操作,并通過步驟概率的乘積計算總概率 P ( h ∣ X ) P(h∣X) P(h∣X)。以下從 模型框架、步驟分解、概率計算 三個層面解析&…

Python字符與ASCII轉換方法

在Python中,可以使用內置函數 ord() 和 chr() 來轉換字符和ASCII碼: ?獲取字符的ASCII碼? - 用 ord() ascii_code ord(A) # 返回 65 ?將ASCII碼轉為字符? - 用 chr() character chr(65) # 返回 A 示例: # 打印字母A-Z的ASCII碼…

[IMX][UBoot] 10.啟動流程 (6) - bootz 命令啟動 Linux

文章鏈接 UBoot 啟動流程 (1) - 基本流程 UBoot 啟動流程 (2) - 平臺前期初始化階段 - board_init_f UBoot 啟動流程 (3) - UBoot 程序重定位 - relocate_code UBoot 啟動流程 (4) - 平臺后期初始化階段 - board_init_r UBoot 啟動流程 (5) - UBoot 運行階段 - main_loop …

TCP 三次握手協商 MSS 前,如何確定 MSS 值(結合 Linux 內核源碼分析)

文章目錄 一、SYN總結影響 SYN MSS 的因素 二、SYNACK總結影響 SYNACK MSS 的因素 結合 Linux 內核源碼 一、SYN 總結影響 SYN MSS 的因素 套接字選項 TCP_MAXSEG路由選項 advmss出口 MTU 減去 40(TCP 和 IP 的固定首部大小)IPV4_MAX_PMTU - 40(同上) 二、SYNACK 總結影響 SY…

面試150 矩陣置0

思路 我們使用兩個標記集合,分別記錄當矩陣的元素為0的時候的橫、縱坐標。然后在對矩陣元素進行遍歷,如果所在行或者所在列的索引在集合中,對應的矩陣元素修改為0即可 class Solution:def setZeroes(self, matrix: List[List[int]]) -> N…

Element UI 完整使用實戰示例

以下是 Element UI 的完整使用實戰示例,涵蓋從環境搭建、基礎組件使用到項目實戰的全流程,結合多個實際場景和代碼示例: 一、環境搭建與基礎配置 1. 安裝 Element UI 通過 npm 或 yarn 安裝: npm install element-ui --save # …

C# 線程同步(一)同步概念介紹

目錄 1.阻塞(Blocking) 2.阻塞 VS 輪詢 3.線程狀態 到目前為止,我們已經闡述了如何在線程上啟動任務、配置線程以及實現雙向數據傳遞。同時,我們也說明了局部變量是線程私有的,而引用可以通過共享字段在線程間傳遞以…

解決leetcode第3588題.找到最大三角形面積

3588.找到最大三角形面積難度:中等問題描述:給你一個二維數組coords,大小為nx2,表示一個無限笛卡爾平面上n個點的坐標。找出一個最大三角形的兩倍面積,其中三角形的三個頂點來自coords中的任意三個點,并且該…

WIFI 安全測試記錄

之前為實訓課特意買的無線網卡沒用上,但是我怎么可能讓他荒廢。所以用了幾個下午,淺學了WiFi,當然沒找到什么好教材,自己摸索著學的很基礎,主要是當練習了,特此把我此前學習…WiFi密碼實踐過程寫上來。 省流…

android14設置--網絡--Internet副標題修改

收銀機訂制項目 插SIM卡,設備使用數據流量時,設置–網絡–Internet副標題顯示對應SIM卡運營商名稱,客戶要求修改這時的名稱(注意圖標也要同步修改) packages\apps\Settings\src\com\android\settings\network\InternetPreferenceController.j…

Web3區塊鏈有哪些崗位?

Web3區塊鏈領域的崗位豐富多樣,涵蓋技術開發、產品管理、運營、商務等多個方面,以下是具體介紹: - 技術開發類: - 智能合約開發工程師:負責編寫、審計和優化智能合約,常見于DeFi開發,包括抵押…

解決 Spring Boot 對 Elasticsearch 字段沒有小駝峰映射的問題

場景重現在使用 MyBatis/Mybatis-Plus 框架對 MySQL 操作時習慣了字段名小駝峰映射,然而在操作 Elasticsearch 時發現字段名沒有小駝峰映射。解決方法1. 使用 ObjectMapper 手動轉換: 這是最直接也最常用的方法。 在 Spring Boot 應用中使用 ObjectMappe…