Course1-Week1:機器學習簡介
文章目錄
- Course1-Week1:機器學習簡介
- 1. 課程簡介
- 1.1 課程大綱
- 1.2 Optional Lab的使用 (Jupyter Notebooks)
- 1.3 歡迎參加《機器學習》課程
- 2. 機器學習簡介
- 2.1 機器學習定義
- 2.2 有監督學習
- 2.3 無監督學習
- 3. 線性回歸模型
- 3.1 線性回歸模型
- 3.2 代價函數
- 4. 梯度下降法
- 4.1 梯度下降法
- 4.2 用于線性回歸的梯度下降
- 筆記主要參考B站視頻“(強推|雙字)2022吳恩達機器學習Deeplearning.ai課程”。
- 該課程在Course上的頁面:Machine Learning 專項課程
- 課程資料:“UP主提供資料(Github)”、或者“我的下載(百度網盤)”。
好文:
- 2023吳恩達機器學習: 上班族35 天學完~學習筆記 (1.1 監督學習)——系列文章
- 入門機器學習/深度學習要多長時間?
1. 課程簡介
1.1 課程大綱

??和國內大部分課程結構不同,本套機器學習課程分為3個Course,每個Course又分為若干個Week,如上圖所示。筆記的結構與課程大綱相同,由于每個Week中又包含10~20節不等的講解視頻,所以單篇筆記就包含單個Week的內容。本篇筆記就對應了課程的Course1-Week1(上圖中深紫色)。
1.2 Optional Lab的使用 (Jupyter Notebooks)
??為了幫助同學們在學習過程中更直觀的理解機器學習中的概念,本套課程同步包含一系列實驗。這些實驗無需初學者有什么數學或代碼基礎,但需要使用 “Jupyter Notebooks” 打開。Jupyter Notebooks 是當今機器學習和數據科學從業者最廣泛使用的工具,是進行編寫代碼、實驗、嘗試的默認環境。所以為了使用這些課程資料,需要我們在自己的瀏覽器中搭建 Jupyter Notebooks 環境,并用來測試一些想法。下面是配置環境(安裝Anaconda)、打開課程資料的方法:
- 配置Jupyter Notebook環境:參考“輔助筆記-Jupyter Notebook的安裝和使用”。
- 打開課程資料(如下圖):使用“Anaconda Prompt”
cd
到存放課程資料的目錄,然后jupyter notebook
打開即可。注1:課程資料下載見“UP主提供資料(Github)”、或者“我的下載(百度網盤)”。
注2:課程資料中包含課程中的實驗、Quiz、PPT,可自行查閱。


1.3 歡迎參加《機器學習》課程
機器學習是一門讓計算機在 沒有明確編程 的情況下學習的科學。機器學習已經出現在生活的方方面面:
- 消費者應用領域:
- 搜索引擎的排名機制。
- 社交軟件為圖片添加標簽。
- 流媒體服務推薦機制,比如B站的“首頁通知書”。
- 語音助手返回的答案,如問Siri附近的餐廳有哪些。
- 郵箱自動識別垃圾郵件。
- 工業領域:
- 優化風力渦輪機發電。
- AI醫學影像診斷。
- Landing AI將計算機視覺應用到工廠中,幫助檢查流水線產品質量等。
機器學習廣泛應用的原因:
- 很多場景無法寫出顯式程序。大多數情況下,我們不知道如何編寫顯式程序執行更有趣的事情,如網絡引擎的推薦結果、識別人類語言、醫學診斷、自動駕駛。我們所知道的唯一做這些事情的方法就是讓機器學會自己做。
- AGI(Artifical General Intelligence, 通用人工智能)的創造應該要用到某種“學習算法”。通俗來說,AGI就是一個和正常人類智力相當的人工智能。“AGI”這種概念令廣大AI研究者興奮,雖然預計大概還需要50~500年才能實現,但大多數AI研究者認為最接近該目標的方法就是使用某種“學習算法(learning algorithms)”,雖然可能需要深入研究人類大腦的工作方式來尋找靈感,但機器學習算是進入AI領域的第一步。
注:學習算法(learning algorithm),是機器學習算法、深度學習算法等具備學習能力的算法的統稱。
??本門課程廣泛介紹了現代機器學習,包括監督學習(多元線性回歸、邏輯回歸、神經網絡和決策樹)、無監督學習(聚類、降維、推薦系統)以及人工智能和機器學習創新(評估和調整模型、采用以數據為中心的方法來提高性能等)在硅谷的最佳實踐。具體將:
- 使用流行的機器學習庫 NumPy 和 scikit-learn 在 Python 中構建機器學習模型。
- 構建和訓練用于預測和二元分類任務的監督機器學習模型,包括線性回歸和邏輯回歸。
2. 機器學習簡介
2.1 機器學習定義
??Arthur Samuel 在1950s就編寫出了可以進行自我學習的跳棋程序(checkers playering program)。下面是他給出的“機器學習”的定義(非正式定義):
英文:Field of study that gives computers the ability to learn without being explicitly programmed. – Arthur Samuel (1959)
翻譯:使計算機能夠在沒有明確編程的情況下學習的研究領域。
Question:
If the checkers program(跳棋程序) had been allowed to play only ten games (instead of tens of thousands) against itself, a much smaller number of games, how would this have affected its performance?
× Would have made it better
√ Would have made it worse啟示:一般情況下,學習的機會越多,算法的表現越好。
本節課將學習很多機器學習算法,內容包括:
- 有監督學習(Supervised learning):實際應用中,有監督學習使用最廣泛,并取得了最快速的進步和創新。Course1、Course2聚焦于有監督學習。
- 無監督學習(Unsupervised learning):Course3聚焦于無監督學習。
- 強化學習(Reinforcement learning)”:由于應用沒有前兩者廣泛,所以本課程沒有簡單介紹。
- 使用“學習算法”的實用建議(很重要):“學習算法”本身只是一種工具,比工具本身更重要的是 如何正確使用這些工具。即使是某些大公司中最熟練的機器學習團隊,可能也會因為最開始找錯了算法方向而導致多年的成果付諸東流。所以本課程不僅會講解機器學習算法,同時也會介紹最熟練的機器學習工程師是如何構建系統的,以及一些機器學習應用的最佳案例。
注:學習算法(Learning Algorithm),是機器學習算法、深度學習算法等具備學習能力的算法的統稱。
2.2 有監督學習
??“有監督學習”指的是學習從 輸入 x x x(一個或多個) 映射到 輸出 y y y 的算法。有監督學習算法的關鍵在于首先要提供正確的樣本示例供算法學習,然后算法便可以針對未見過的輸入,輸出相應的預測結果。下面是一些有監督學習的在現實生活中的示例:
- 垃圾郵件過濾器:email --> 垃圾郵件?(0/1)
- 語音識別:語音 --> 文本
- 機器翻譯:英文 --> 中文
- 廣告投遞:廣告、用戶信息 --> 用戶點擊?(0/1)
- 自動駕駛:圖片、雷達信息 --> 其他車輛位置
- 視覺檢測:手機圖片 --> 有缺陷?(0/1)
“有監督學習”中兩類最常見的典型問題就是 回歸(Regression) 和 分類(Classification)。兩者的主要區別在于:
- 回歸問題:要預測的結果有無窮種可能,比如在一段范圍內都有可能的數字取值。
- 分類問題:只有有限種可能的輸出結果,比如前面提到的判斷某個郵件是否為垃圾郵件。
注1:任何預測數字的“有監督學習”模型,就是解決所謂的“回歸問題”。
注2:在“分類問題”中,輸出“類別”的英文是class
或category
,兩者可以混用。下面將給出這兩個問題的示例。
回歸問題示例:房價預測
??“房價預測”就是根據房子的面積計算價格。下圖中的“紅叉”就是預先提供的有正確映射關系的樣本,“藍色擬合線”就相當于算法學習輸入樣本,最后通過擬合線得到房價便是“預測”,這便是“有監督學習”的完整流程。注意到這個回歸問題的輸出(房價)可以是任意數字,于是便有無窮種可能。

- 直線擬合:根據擬合直線,可以預測房屋面積 750 feet 2 750\text{feet}^2 750feet2 對應的價格大約為 $$150k$。
- 曲線擬合:根據擬合曲線,可以預測房屋面積 750 feet 2 750\text{feet}^2 750feet2 對應的價格大約為 $$200k$。
分類問題示例:乳腺癌檢測
??乳腺癌檢測問題就是根據輸入的一系列信息,如腫瘤塊的大小、患者年齡、腫瘤塊的厚度、細胞大小的均勻性、細胞形狀的均勻性等,來判斷是否為惡性腫瘤(0表示良性/1表示惡性)。下面給出“單輸入的乳腺癌檢測”、“兩輸入的乳腺癌檢測”示意圖:
單輸入的乳腺癌檢測:輸入是“腫瘤的大小”,輸出是“良性”、“惡性-類型1”、“惡性-類型2”。
兩輸入的乳腺癌檢測:輸入是“腫瘤的大小”、“患者年齡”,輸出是“良性”、“惡性”。


2.3 無監督學習
無監督學習:
Data only comes with inputs x x x, but not output labels y y y. Algorithm has to find structure in the data.
??在“有監督學習”之后,“無監督學習”也被廣泛應用起來。“無監督學習”不是要找映射關系,而是想要從 沒有標記的數據集 中發現一些有趣的東西,比如這個數據集中有什么 可能的模式或結構。無監督學習的主要類型有:
- 聚類(Clustering):將相似的數據點分成一組。
- 異常檢測(Anomaly detection):。有非常多的應用,比如在金融系統的詐騙檢測中,異常時間、異常交易可能是欺詐。
- 降維(Dimensionality reduction):在盡可能丟失少的信息的前提下,將大數據集壓縮成小得多的數據集。
Question:
Of the following examples, which would you address using an unsupervised learning algorithm?
× Given email labeled as spam/not spam, learn a spam filter.
√ Given a set of news articles found on the web, group them into sets of articles about the same story.
√ Given a database of customer data, automatically discover market segments and group customers into different market segments.
× Given a dataset of patients diagnosed as either having diabetes or not, learn to classify new patients as having diabetes or not.知識點:有監督學習給數據和標簽,重點在于對新輸入預測出標簽;無監督學習只給數據,重點在于自行分組。
下面給出“聚類”的3個示例,后續會再介紹“異常檢測”和“降維”這兩種無監督學習的示例:
聚類算法示例1:新聞分類
??“谷歌新聞”的任務就是將每天數十萬的新聞進行聚類,找到提到相似詞的文章并將其分組。很酷的是,聚類算法可以自己計算出哪些詞暗示了這些文章屬于同一個組,并且谷歌新聞的員工也沒有事先告訴算法有哪些組。如下圖所示,panda、twin、zoo都是相似的詞,這些文章被歸為一類。

聚類算法示例2:基因分類
??下圖所示的基因圖譜,每一列表示一個人的全部基因,每一行表示一種基因,不同的顏色表示該基因的活躍程度,這些基因包括瞳孔顏色、身高、不愛吃西藍花/包菜/萵苣等。聚類算法僅根據這些基因數據,將人進行分組,進而找出“基因上很相似的人”。

聚類算法示例3:客戶分群
??還有一個很常見的聚類算法示例就是,根據客戶信息數據庫,將不同的客戶劃分進不同的細分市場,以便更有效的服務客戶。比如深度學習團隊“dot AI” 想知道 dot AI社區 中的人們,參加課程、訂閱通知、參加AI活動等的動機是什么。于是通過調研團隊便發現了擁有不同動機的人,比如:提升技能、發展事業、緊隨AI潮流、或者哪個都不是。這個例子中調研團隊就相當于無監督學習算法。

本節Quiz:
- Which are the two common types of supervised learning? (Choose two)
A.Classification √
B.Clustering
C.Regression √- Which of these is a type of unsupervised learning?
A.Regression
B.Classification
C.Clustering √
3. 線性回歸模型
3.1 線性回歸模型
??本節將通過“線性回歸模型”(Linear Regression Model)介紹“有監督學習”的整個過程,這也是本課程的第一個模型。下面是常用的機器學習術語:
- Training Set(數據集):用于訓練模型的數據集。
- x x x:input variable(輸入變量) / feature(特征) / input feature(輸入特征),也就是“特征值”。
- y y y:output variable(輸出變量) / target variable(目標變量),也就是“目標值”。
- m m m:表示訓練樣本的數量。
- ( x , y ) (x,y) (x,y):單個訓練樣本。
- ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)):第 i i i 個訓練樣本。上標加括號是為了和求冪次區別開來。
- y ^ \hat{y} y^?:表示對 y y y 的估計或預測。

- 以前把 f f f 叫做hypothesis(假設),但是老師不建議這種叫法,而是稱之為function(函數)。
??上圖給出了整個“有監督學習”的流程,也就是“learning algorithm”根據輸入的“訓練集”得到一個 函數模型 f f f,于是便可以通過 f f f 來對 輸入 x x x 進行預測 輸出 y ^ \hat{y} y^?。而“線性回歸模型”就是假設 函數模型 f f f 為一條直線,因為簡單易用,這可能是世界上使用最廣泛的學習算法,后續也會在其他機器學習模型中見到線性回歸模型。
??“線性回歸”只是解決回歸問題的方法之一,其他方法會在Course2中會介紹。現在以上一小節“房價預測”問題舉例,若使用“線性回歸模型”假設 f f f 就是一條直線,于是該模型就可以寫成
f w , b ( x ) = w x + b f_{w,b}(x)=wx+b fw,b?(x)=wx+b
表示函數 f f f 以 x x x 為函數輸入,其輸出 y ^ \hat{y} y^? 取決于 w w w 和 b b b 的值。
- w w w、 b b b:模型的參數(parameter)。
- f w , b ( x ) f_{w,b}(x) fw,b?(x)通常會簡寫為 f ( x ) f(x) f(x)。

3.2 代價函數
??顯然,雖然現在已經構建好了“線性回歸模型”,但是過訓練集的直線有無數種,如何找出 與訓練數據最擬合的線 還不明確,于是本節就來介紹 代價函數(cost funtion)。在機器學習中,代價函數用于 衡量模型的好壞,最簡單、最常用的代價函數是“平均誤差代價函數”(Squared error cost function):
J ( w , b ) = 1 2 m ∑ i = 1 m ( y ^ ( i ) ? y ( i ) ) 2 = 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) ? y ( i ) ) 2 \begin{aligned} J(w,b) &= \frac{1}{2m} \sum_{i=1}^{m}(\hat{y}^{(i)}-y^{(i)})^2\\ &= \frac{1}{2m} \sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)})^2 \end{aligned} J(w,b)?=2m1?i=1∑m?(y^?(i)?y(i))2=2m1?i=1∑m?(fw,b?(x(i))?y(i))2?
- w w w、 b b b:模型的參數。
- i i i:訓練樣本的標號。
- m m m:訓練樣本的總數。
- y ( i ) y^{(i)} y(i):第 i i i 的樣本的真實目標值。
- y ^ ( i ) \hat{y}^{(i)} y^?(i):對 y ( i ) y^{(i)} y(i) 的預測目標值。
- 除以 2 m 2m 2m:按照慣例,機器學習中的平均代價函數會除以 2 m 2m 2m 而非 m m m,這是為了使后續的計算更加簡潔。
??現在來直觀的看一下,最小化代價函數如何找到與訓練數據最擬合的線。首先簡化模型,設置參數 b = 0 b=0 b=0,并假設訓練數據只有三個點。下圖給出了不同的 w w w 所對應不同的 代價 J ( w ) J(w) J(w),顯然在 w = 1 w=1 w=1 處代價最小,直線也最擬合:
min ? w J ( w ) = 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) ? y ( i ) ) 2 = 1 2 m ∑ i = 1 m ( w x ( i ) ? y ( i ) ) 2 \begin{aligned} \min_{w} J(w) &= \frac{1}{2m} \sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)})^2\\ &= \frac{1}{2m} \sum_{i=1}^{m}(wx^{(i)}-y^{(i)})^2 \end{aligned} wmin?J(w)?=2m1?i=1∑m?(fw,b?(x(i))?y(i))2=2m1?i=1∑m?(wx(i)?y(i))2?

??那回到剛才的問題中,同時將 w w w和 b b b 都考慮在內,并引入更多的訓練數據,便可以得到下面的代價函數示意圖。為了更好的將代價函數可視化,同時使用“等高線圖”和“3D圖”來展示不同的 w w w和 b b b 所對應不同的 代價 J ( w , b ) J(w,b) J(w,b)。“3D圖”類似一個“碗”,顯然在“碗”的底部,代價函數最小:

上圖見課程資料:C1_W1_Lab04_Cost_function_Soln.ipynb
- bug1:ModuleNotFoundError: No module named ‘ipympl’
解決辦法:新打開一個“Anaconda Prompt”輸入conda install ipympl
,然后重啟內核重新運行即可。注:圖片很多,運行后會有點卡,若加載不出來圖片可以嘗試重新運行。
本節Quiz:
- For linear regression, the model is f w , b ( x ) = w x + b f_{w,b}(x)= wx + b fw,b?(x)=wx+b. Which of the following are the inputs, or features, that are fed into the model and with which the model is expected to make a prediction?
× m m m
× ( x , y ) (x,y) (x,y)
√ x x x
× w w w and b b b.- For linear regression, if you find parameters w w w and b b b so that J ( w , b ) J(w, b) J(w,b) is very close to zero, what can you conclude?
× This is never possible - there must be a bug in the code.
√ The selected values of the parameters w w w and b b b cause the algorithm to fit the training set > really well.
× The selected values of the parameters w w w and b b b cause the algorithm to fit the training set > really poorly.
??雖然現在距離完成“線性回歸問題”非常接近了,但是上述是通過人眼來直觀的尋找代價函數的最小點,實際上要畫出有足夠多細節的3D圖需要計算大量的 J ( w , b ) J(w,b) J(w,b),而很多 J ( w , b ) J(w,b) J(w,b)點 都是沒用的,這顯然不劃算。下一節就來介紹如何通過計算有限的 J ( w , b ) J(w,b) J(w,b)點 來找到代價函數最小點。
4. 梯度下降法
4.1 梯度下降法
??梯度下降(Gradient Desent)常用于尋找某函數(比如代價函數)的最大值、最小值。梯度下降不僅用于線性擬合,也用于訓練如神經網絡(Course2)等深度學習模型、以及一些最大型、最復雜的人工智能模型。下面以前面的 min ? w , b J ( w , b ) \min_{w,b} J(w,b) minw,b?J(w,b) 來舉例,梯度下降算法的步驟為:
- 選擇初始點,一般在取值范圍內選取簡單的整數,如 w = 1 , b = 0 w=1,b=0 w=1,b=0。
- 沿著 J J J 的“負梯度”方向,不斷迭代計算 w w w、 b b b。之所以沿著“負梯度”方向,是因為沿該方向下降速度最快(steepest descent, 最速下降)。如下:
w = w ? α ? ? w J ( w , b ) b = b ? α ? ? b J ( w , b ) \begin{aligned} w &= w - \alpha \frac{\partial }{\partial w} J(w,b)\\ b &= b - \alpha \frac{\partial }{\partial b} J(w,b) \end{aligned} wb?=w?α?w??J(w,b)=b?α?b??J(w,b)?
- α \alpha α:學習率(Learning rate),用于控制步長。通常為介于0~1之間的一個小的正數,如0.01。
- ? ? w J ( w , b ) \frac{\partial }{\partial w} J(w,b) ?w??J(w,b):代價函數對 w w w 的偏導數(Partial Derivative),其取負值表明的方向可以使 J J J 下降。
- ? ? b J ( w , b ) \frac{\partial }{\partial b} J(w,b) ?b??J(w,b):代價函數對 b b b 的偏導數,意義同上。
注意:上面是 同時更新(Simultaneously update),也就是使用舊的 ( w , b ) (w,b) (w,b) 直接分別計算出新的 w w w、 b b b;而不是先更新 w w w,再使用這個新的 w w w 計算新的 b b b。
- 直到 w w w和 b b b的負梯度 都為 0 0 0(或者 0 0 0的鄰域內),即可認為找到 J J J 的最低點。
??下面兩張圖很直觀的給出了整個梯度下降法的過程。在下左圖中,首先固定 b = 0 b=0 b=0,只分析 w w w 對代價函數 J ( w ) J(w) J(w) 的影響。可以發現,若當前 w w w在最低點右側,由于“負梯度”小于0,于是下一個 w w w將向左移動;反之若當前 w w w在最低點左側,由于“負梯度”大于0,下一個 w w w將向右迭代。只要選擇合適的學習率 α \alpha α,最終就可以找到最低點所在的 w w w。在下右圖中,則進一步同時考慮 w w w和 b b b,可以發現每次也是沿著“負梯度”下降最快的方向,最終可以到達最低點所在處。這個迭代的過程就是“梯度下降”,類似于“下山”的過程。


注意點1:學習率
學習率 α \alpha α 的選取將會對梯度下降的效率產生巨大影響。若 α \alpha α 選取的不好,甚至會導致無法實現梯度下降。
- α \alpha α 選取的太小,會導致下降的速度非常慢(意味著需要計算很長時間),但最終也會收斂(converge)到最小值。
- α \alpha α 選取的太大,很可能會導致在極值點附近反復橫跳甚至越來越遠,也就是不會收斂甚至發散(diverge)。
- α \alpha α 選取的合適,越接近代價函數極小值,梯度越來越小,就會導致步長越來越小。


注意點2:多個極值點
??在前面的討論中,一直使用平方誤差項作為代價函數。對于 平方誤差項 的代價函數,都是“凸函數”或“凸面”。但若代價函數非凸時,可能就會存在不止一個極值。如上圖1-1-13中,不同的起始點,就會導致不同的收斂速度或極值。所以 代價函數盡量要選擇凸函數。
4.2 用于線性回歸的梯度下降
??介紹完梯度下降法,現在來總結一下,將前面的線性回歸模型、代價函數、梯度下降算法結合起來,按照下面公式不斷迭代直至其收斂:
Linear?regression?model : f w , b ( x ) = w x + b Cost?function : J ( w , b ) = 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) ? y ( i ) ) 2 Gradient?descent repeat?until?convergence : { w = w ? α ? ? w J ( w , b ) = w ? α m ∑ i = 1 m [ ( f w , b ( x ( i ) ) ? y ( i ) ) ? x ( i ) ] b = b ? α ? ? b J ( w , b ) = b ? α m ∑ i = 1 m ( f w , b ( x ( i ) ) ? y ( i ) ) \begin{aligned} \text{Linear regression model} &: \quad f_{w,b}(x) = wx+b\\ \text{Cost function} &: \quad J(w,b) = \frac{1}{2m} \sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)})^2\\ \begin{aligned} \text{Gradient descent} \\ \text{repeat until convergence} \end{aligned} &: \left\{\begin{aligned} w &= w - \alpha \frac{\partial }{\partial w} J(w,b) = w - \frac{\alpha}{m} \sum_{i=1}^{m}[(f_{w,b}(x^{(i)})-y^{(i)})·x^{(i)}] \\ b &= b - \alpha \frac{\partial }{\partial b} J(w,b) = b - \frac{\alpha}{m} \sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)}) \end{aligned}\right. \end{aligned} Linear?regression?modelCost?functionGradient?descentrepeat?until?convergence??:fw,b?(x)=wx+b:J(w,b)=2m1?i=1∑m?(fw,b?(x(i))?y(i))2:? ? ??wb?=w?α?w??J(w,b)=w?mα?i=1∑m?[(fw,b?(x(i))?y(i))?x(i)]=b?α?b??J(w,b)=b?mα?i=1∑m?(fw,b?(x(i))?y(i))??
從“等高線圖”的角度來看,梯度下降法的迭代過程可能如下圖紅色箭頭所示,從起始點不斷收斂到最小值,并且注意到這個過程也是越來越慢的:

??最后說明一下,由于在使用梯度下降法求解問題的過程中,每次迭代都會使用到所有的訓練集數據計算代價函數及其梯度,所以這個梯度下降的過程稱為“批量梯度下降(Batch gradient descent)”。當然本問題較為簡單,在其他數據更為復雜的模型中,為了簡化梯度下降法的計算量,每次只使用訓練集的子集。
本節Quiz:
- Gradient descent is an algorithm for finding values of parameters w and b that minimize the cost function J ( w , b ) J(w,b) J(w,b).
repeat?until?convergence : { w = w ? α ? ? w J ( w , b ) b = b ? α ? ? b J ( w , b ) \text{repeat until convergence}: \left\{\begin{aligned} w &= w - \alpha \frac{\partial }{\partial w} J(w,b) \\ b &= b - \alpha \frac{\partial }{\partial b} J(w,b) \end{aligned}\right. repeat?until?convergence:? ? ??wb?=w?α?w??J(w,b)=b?α?b??J(w,b)?When ? J ( w , b ) ? w \frac{\partial J(w,b)}{\partial w} ?w?J(w,b)? is a negative number (less than zero), what happens to w w w after one update step?
× w w w stays the same
× It is not possible to tell if w w w will increase or decrease.
× w w w decreases.
√ w w w increases.
- For linear regression, what is the update step for parameter b b b?
× b = b ? α m ∑ i = 1 m [ ( f w , b ( x ( i ) ) ? y ( i ) ) ? x ( i ) ] b = b - \frac{\alpha}{m} \sum_{i=1}^{m}[(f_{w,b}(x^{(i)})-y^{(i)})·x^{(i)}] b=b?mα?∑i=1m?[(fw,b?(x(i))?y(i))?x(i)]
√ b = b ? α m ∑ i = 1 m ( f w , b ( x ( i ) ) ? y ( i ) ) b = b - \frac{\alpha}{m} \sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)}) b=b?mα?∑i=1m?(fw,b?(x(i))?y(i))