Advice for Applying ML
在機器學習中,評估學習演算法是非常重要的一個步驟。我們需要透過調整模型參數,和適當的測試方法來確保模型表現的穩定性。本文將介紹幾個常見的模型評估方法,以及對於避免 overfitting 的方法,例如 regularization 和 cross validation。
在機器學習中,評估學習演算法是非常重要的一個步驟。我們需要透過調整模型參數,和適當的測試方法來確保模型表現的穩定性。本文將介紹幾個常見的模型評估方法,以及對於避免 overfitting 的方法,例如 regularization 和 cross validation。
Logistic regression 是一種分類器,它可以適用於 binary classification problem,也就是只有兩種結果的問題。它也可以用來表示一個事件發生的可能性,我們可以用它來預測出結果是 0 或 1 的機率。
這個章節將介紹如何設計一個機器學習系統,以及如何評估演算法的準確度、防止 overfitting 以及如何利用大量資料來提升演算法的效能。為了解釋這些概念,我們將以一個垃圾郵件分類器為例,詳細解說如何收集資料、撰寫 algorithm 以及如何處理偏斜資料。
機器學習是一門技術,可以讓電腦自動學習、改善和自我改進,讓電腦獲得知識,而不需要明確的程式指示。它涉及到兩種不同的學習:監督式學習和無監督式學習。在監督式學習中,我們會將問題與正確答案一起提供給程式,以便找出兩者之間的關係。可以分為回歸問題和分類問題。而在無監督學習中,不需要知道資料中每個問題對應的解答為何,而是由程式從資料中找出 pattern 和結構,方法通常為利用資料中的變數關係進行分群演算法(clustering algorithm),以及 Non-clustering algorithm,也就是 Cocktail Party Algorithm。
神經網路是為了模擬人類的大腦運作,大腦可以透過一種 learning algorithm 做到聽、說、讀、寫等活動,而神經網路的最小單位為神經元,它可以由 input wires 接收多個輸入,並將處理過的訊息傳送出去透過 output wires。我們可以再加上 bias unit 作為輸入,而處理這些 input 的為 sigmoid (logistic) activation function。當有多層 layer 時,第一層為 input layer,最後一層為 output layer,而中間所有的層統稱為 hidden layer。我們給予 hidden layer 的 nodes 一個名字:activation units,它是經由 input 和 matrix of weights 作用 output 過來的,hypothesis 就是這些 activation units 經由權重矩陣與輸入矩陣相乘後的結果。
這個章節我們會介紹線性回歸,線性回歸是一個非常簡單的機器學習模型,但是它的應用卻非常廣泛,例如:股票預測、房價預測、銷售預測等等,因此線性回歸是一個非常重要的機器學習模型。
Classification 是一個將問題分成兩個類別或以上的問題,而 Logistic Regression 是一種用來解決 Binary Classification 的機器學習模型。它使用 Sigmoid Function 來預測 Positive Class 的機率,並將 Decision Boundary 的間隔值設定為 0.5,以便更好的分辨 0/1。
Logistic Regression 是一種非常常用的 Machine Learning 演算法,主要用於做 Classification 的任務,可以把資料轉換成一個機率。舉個例子,假設我們要預測一個人是否會患有特定疾病,這時候我們就可以使用 Logistic Regression 來把這個問題轉換成一個機率,表示該個人患有該疾病的可能性有多高。
這個筆記對應 Coursera 課程 Machine Learning。 課程由 Andrew Ng 教授主講,是一個非常好的機器學習入門課程。
我們將從建立一個 Spam Classifier 了解設計機器學習系統所需要注意的事情。這個 Classifier 將會教我們如何收集資料、撰寫 algorithm 並如何處理偏斜資料,以及如何利用 precision 和 recall 的概念來評估機器學習系統的準確度。最後,我們也會了解到如何利用大量的資料來提升演算法的準確度。
Model 與 Cost Function 之間有著非常密切的關係,這是由於 Model 是用來預測的結果,而 Cost Function 則是用來計算 Model 預測結果的誤差。因此,Cost Function 將會用於最小化 Model 中出現的誤差,讓 Model 的預測結果越來越精確。
Multivariate linear regression 是指當 linear progression 有多個 features (variables) 時,就可以稱作為 multivariate linear regression。舉例來說,可以使用 size, ages, number of bedrooms, floors 來判斷 house price,此時我們可以將 Hypothesis 寫成:
神經網路已成為解決從圖像識別到自然語言處理等各種問題的重要工具。 因此,理解與神經網路相關的符號 (notation)、成本函數 (cost function) 和反向傳播算法 (backpropagation algorithm) 對於成功訓練和使用至關重要。 在本文我們還將探索反向傳播算法背後的概念,以便我們能夠更好地理解結果的含義。
神經網路是一種重要的機器學習技術,可以從處理複雜的資料分析問題到處理自然語言的問題,它的基礎是神經元 (neuron),神經元是一種單元,可以接受多個輸入,並通過激活函數 (activation function) 的作用給出輸出。神經網路可以有很多層,每層都有著不同的權重 (weight) 矩陣以及 bias unit,它們可以一起組合起來構成一個 hypothesis 來解決問題。訓練神經網路需要了解神經網路的符號、成本函數與反向傳播算法,這些技術可以幫助我們對神經網路的結果有更深入的了解。
有一種方法可以不用透過迭代尋找最小化成本函數 (cost function) 的參數 (parameters),這種方法稱為 Normal equation,只要將訓練集 (training sets) 的特徵 $x$ 與結果 $y$ 轉換為矩陣,就能套用 normal equation 直接得到最佳解。
Parameter learning 是機器學習中的一種技術,它是一種訓練模型的方法,通常通過對參數進行調整來改善模型的性能。參數學習通常與梯度下降法 (Gradient Descent) 相關,因為梯度下降法是更新參數的一種方法,通過不斷更新參數來改善模型性能。例如,可以使用梯度下降法來更新網絡中的參數,以改善網絡的性能。
機器學習中,Overfitting 是一個常見的問題。當我們搜索 Hypothesis 來擬合訓練集時,可能會遇到 Underfit、Just right 和 Overfit 這三種情況。我們將 Overfitting 的定義為:太多的 features 使得求得的 Hypothesis 在 training data 上有很好的分數,但卻不能讓 test set 或真實數據使用。