吳恩達《機器學習》學習筆記

本筆記資料來源于 http://www.ai-start.com/ml2014/,該筆記來自于https://blog.csdn.net/dadapongi6/article/details/105668394,看了忘,忘了看,再看一遍。
時間統計:2024.2.29 5個番茄鐘,從week1開始,看完了week5反向傳播算法。

week1

特征縮放是什么?

week3

http://www.ai-start.com/ml2014/html/week3.html

線性回歸和邏輯回歸是同一個算法嗎?

線性回歸是回歸任務;
邏輯回歸是logistic regression是2分類,是一個分類任務。在線性回歸后又加了一個sigmoid函數,把線性回歸的值映射到0-1之間。
在這里插入圖片描述

代價函數為什么不使用誤差的平方和,而是使用交叉熵?

這個圖太形象了,使用誤差的平方和會讓loss函數是非凸的,導致loss函數會有很多局部最小值!
在這里插入圖片描述

正則化為什么可以防止過擬合?

防止參數過大。
在這里插入圖片描述

week4

神經網絡的矩陣參數含義

假設一個神經網絡輸入x是3維向量,輸出a是10維向量,則神經網絡的矩陣W就是(10x3),也就是神經網絡的參數量
a=Wx。如下圖所示,每個神經元跟輸入的所有神經元都建立了連接。
由此可見,單純的神經元線性層確實只是線性變換。
在這里插入圖片描述

神經網絡相比線性回歸和邏輯回歸的優勢是什么?

隱藏層的輸出表示更高維度的feature,相對于輸入表達的更多。
在這里插入圖片描述

神經網絡表示and or 非 同或(XNOR)

這個是真牛逼,我就想不到。當你神經網絡是一個函數,對于一個and函數來說,它的輸入就是2維的x1,x2,所以這個線性網絡只需要三個參數。
在這里插入圖片描述
同或XNOR表示
在這里插入圖片描述

多分類輸出,有多少個類別,就輸出多少個神經元,最后神經元的真值是onehot向量。
在這里插入圖片描述

week5

訓練神經網絡的流程

  1. 參數的隨機初始化
  2. 利用正向傳播方法計算所有的h(x)
  3. 編寫計算代價函數Loss的代碼
  4. 利用反向傳播方法計算所有偏導數
  5. 利用數值檢驗方法檢驗這些偏導數
  6. 使用優化算法來最小化代價函數

反向傳播算法(直觀理解,吳恩達視頻講解)比較清晰。

什么是反向傳播算法?誤差從最后一層,一層層往前傳播;而前向傳播指的是輸入的數據,從前往后一層層往后傳播,誤差的傳遞公式看下圖,其實就是梯度反傳?
sigmoid函數求導 f’(x) = f(x)*(1-f(x))

問題1 反向傳播公式怎么推導出來的?

吳恩達老師說自己了解也不是很深入,但是不影響他使用。大家也是一樣,不用太糾結。
從反向傳播公式中可以看出loss的反向傳播用到了上一層的梯度。
在這里插入圖片描述

問題2 神經網絡參數初始化不能為0?

為0的話會導致第二層所有激活值都是零。

week6

怎么判斷欠擬合和過擬合?

隨著訓練次數的增加,訓練集和驗證集的loss趨于相同,且都比較大 。
欠擬合的情況下,增加數據到訓練集不一定能有幫助。 比如用一個直線方程去擬合曲線方程,無論怎么增加數據都是沒用的。
過擬合加數據肯定有用。
在這里插入圖片描述

如何選擇網絡

選擇比較大的神經網絡并采用正則化的方法,要比采用小的神經網絡更好。因為小的網絡容易欠擬合,而大的網絡可以通過正則化適應數據。

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

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

相關文章

【PyTorch][chapter 19][李宏毅深度學習]【無監督學習][ GAN]【理論】

前言: 生成對抗網絡(Generative Adversarial Nets,GAN)是一種基于對抗學習的深度生成模型。 2014年,蒙特利爾博士 lan Goodfellow 發表了論文《Generative Adaversarial Networks》, 一經提出便成為了學術…

Python CGI編程

文章目錄 什么是CGICGI架構Web服務器支持及配置CGI程序示例CGI環境變量GET和POST方法GET方法POST方法區別注意事項 使用POST方法傳遞數據1. 創建HTML表單2. 編寫CGI腳本3. 配置服務器4. 提交表單5. 服務器處理請求注意事項 通過CGI程序傳遞checkbox數據創建HTML表單編寫CGI腳本…

二維碼門樓牌管理系統技術服務:門牌編設規則詳解

文章目錄 前言一、門牌編設規則解讀二、區間編號與分段編號策略三、多出入口建筑物的門牌編設 前言 隨著城市化的快速推進,門樓牌管理成為城市管理中不可或缺的一環。二維碼門樓牌管理系統的引入,不僅提升了管理的效率,也為市民提供了更為便…

波奇學Liunx:信號的產生,保存,處理

信號的產生,信號的保存,信號的處理 在操作系統中進程接受到信號會保存,產生 進程必須識別和能夠處理信號,處理信號是進程的內置功能 進程收到信號時不一定會立即執行,所以進程必然有一套識別,保存&#xff…

Leetcode 3066. Minimum Operations to Exceed Threshold Value II

Leetcode 3066. Minimum Operations to Exceed Threshold Value II 1. 解題思路2. 代碼實現 題目鏈接:Leetcode 3066. Minimum Operations to Exceed Threshold Value II 1. 解題思路 這一題的話只需要排序之后按照題目條件逐一進行執行直至滿足條件即可。 唯一…

Pytorch中,dim形象化的確切意義是什么?

在Pytorch中涉及張量的操作都會涉及“dim”的設置,雖然也理解個大差不差,但是偶爾還是有點犯迷糊,究其原因還是沒有形象化的理解。 首先,張量的維度排序是有固定順序的,0,1,2,.....…

(1)預處理

我們需要的文件結構如上 main.cpp add.h add.cpp add.h 這里使用riscv的工具鏈編譯為.i文件,需要使用-E,就是只進行預處理,我們可以得到兩個.i文件即main.i和add.i main.i 這里看到main.i里頭文件全部替換,然后多了三萬多行 所以…

Leetcode 3068. Find the Maximum Sum of Node Values

Leetcode 3068. Find the Maximum Sum of Node Values 1. 解題思路2. 代碼實現 題目鏈接:3068. Find the Maximum Sum of Node Values 1. 解題思路 這一題雖然標記為一道hard的題目,但其實就是一個腦筋急轉彎的題目。 我們只需要想明白一點即可&…

4G/5G執法記錄儀、智能安全帽走國標GB28181接入海康、宇視等大平臺,也可走平臺與平臺對接,以下級平臺級聯到上級大平臺

AIoT萬物智聯,智能安全帽生產廠家,執法記錄儀生產廠家,智能安全帽、智能頭盔、頭盔記錄儀、執法記錄儀、智能視頻分析/邊緣計算AI盒子、車載DVR/NVR、布控球、智能眼鏡、智能手電、無人機4G補傳系統等統一接入大型融合通信可視指揮調度平臺VM…

Vue3和ElementPlus封裝table組件

最近學習vue3.2并自己在寫一個項目,然后發現好幾個頁面都是列表頁,重復寫table和column也是覺得累,學習的項目列表頁不算多,要是公司項目就不一樣了,所以就想著自己封裝一個table組件,免去大量重復工作和co…

滑動窗口

題目 思路 對于一個數組區間的最值,可以開辟一個隊列記錄(當然這里不能叫隊列只是和隊列相似,習慣性叫法)。 每個區間的最值等于隊首元素。掃描數組時,如果該元素大于隊尾元素(取最大值時)將該隊尾元素出隊…

Effective C++ 學習筆記 條款07 為多態基類聲明virtual析構函數

有許多種做法可以記錄時間,因此,設計一個TimeKeeper base class和一些derived classes作為不同的計時方法很合理: class TimeKeeper { public:TimeKeeper();~TimeKeeper();// ... };class AtomicClock : public TimeKeeper { /* ... */ }; …

DM數據庫學習之路(二十)DM8基于主備集群技術的兩地三中心集群部署及測試(全網最詳細)

DM兩地三中心介紹 摘要 金融行業對數據的可靠性和連續性有著極其嚴格的要求,任何數據丟失或服務中斷都可能導致嚴重的經濟損失。針對這一問題,基于達夢主備集群技術的兩地三中心解決方案能夠切實有效解決業務數據的可靠性和連續性需求。該方案通過構建兩個數據中心和一個災備…

MyBatis標簽獲取數組或者集合長度的方法

1、判斷列表長度&#xff1a; <if test"list ! null and list.size() > 0">... </if> 可結合in條件使用&#xff1a;SELECT * FROM users<where><if test"idList ! null and idList.size() > 0">id IN<foreach item"…

leetcode熱題100學習計劃-鏈表-相交鏈表

思路 兩條鏈表長短不一&#xff0c;找公共交點必須先對齊。記錄兩個鏈表各自長度&#xff0c;長的向短的看齊&#xff0c;長的先走多出來的那么一截&#xff0c;之后兩者一起走&#xff0c;直到相遇或抵達末尾 代碼 /*** Definition for singly-linked list.* public class …

解密Lawnchair:打造個性化極致的Android桌面體驗

解密Lawnchair&#xff1a;打造個性化極致的Android桌面體驗 1. 簡介 Lawnchair是一款知名的Android桌面定制工具&#xff0c;旨在為用戶提供個性化極致的桌面體驗。作為一個開源項目&#xff0c;Lawnchair融合了簡潔、靈活和強大的特點&#xff0c;讓用戶能夠自由定制其Andro…

Python | Conda安裝包報錯:PackagesNotFoundError

Conda在下載安裝包時報錯&#xff1a; PackagesNotFoundError: The following packages are not available from current channels:- XXXXXX&#xff08;包名&#xff09;有如下兩種解決方法&#xff1a; 方法一&#xff1a;將conda-forge添加到搜索路徑上 在命令行運行下方指令…

深入理解C語言:開發屬于你的三子棋小游戲

三子棋 1. 前言2. 準備工作3. 使用二維數組存儲下棋的數據4. 初始化棋盤為全空格5. 打印棋盤6. 玩家下棋7. 電腦下棋8. 判斷輸贏9. 效果展示10. 完整代碼 1. 前言 大家好&#xff0c;我是努力學習游泳的魚&#xff0c;今天我們會用C語言實現三子棋。所謂三子棋&#xff0c;就是…

Android 開發環境搭建的步驟

本文將為您詳細講解 Android 開發環境搭建的步驟。搭建 Android 開發環境需要準備一些軟件和工具&#xff0c;以下是一些基礎步驟&#xff1a; 1. 安裝 Java Development Kit (JDK) 首先&#xff0c;您需要安裝 Java Development Kit (JDK)。JDK 是 Android 開發的基礎&#xf…

TS總結10、ts的 class 類型(配置項strictPropertyInitialization、非空斷言)

一、簡介 1.類(class)是面向對象編程的基本構件,封裝了屬性和方法 1.1、屬性的類型:類的屬性可以在頂層聲明,也可以在構造方法內部聲明,如果不給出類型;TypeScript 會認為x和y的類型都是any;如果聲明時給出初值,可以不寫類型,TypeScript 會自行推斷屬性的類型; c…