# Why **logistic regression** : refers to a classifier that classifies an observation into one of two classes **multinomial logistic regression** : is used when classifying into more than two classes # linearly separable **線性可分(Linearly Separable)**: 如果存在一組權重 𝑤 能夠使模型在所有訓練數據上都沒有或只有很少的分類錯誤(在某個可接受的錯誤閾值內),那麼這個問題就是線性可分的。 這意味著可以找到一條直線(或一個平面,在高維空間中)來將不同類別的數據點完全分開。 **非線性可分(Non-linearly Separable)**: 如果無法找到任何一組權重 𝑤 能夠使模型在所有訓練數據上達到可接受的錯誤率,那麼這個問題就是非線性可分的。 這意味著沒有一條直線(或平面)可以完全分開不同類別的數據點,需要使用非線性分類器或其他方法來處理這種情況。 **Use a classification function to compute output** logistic regression: sigmoid multinomial logistic regression: softmax Perceptron : y=sign(w⋅x+b) 使用階梯函數作為激活函數,輸出為 -1 或 1。 在訓練數據可線性分割時,Perceptron 保證能夠找到一條決策邊界。 對於不可線性分割的數據,Perceptron 可能無法收斂。 Logistic Regression : p=σ(w⋅x+b) 使用 sigmoid 函數將輸出轉換為 0 到 1 之間的概率值。 可以應用於不可線性分割的數據集,通過概率來進行分類決策。 損失函數為交叉熵損失函數,優化過程更穩定且可收斂。 # Bias 不加 bias 的分類線(面)就必須過原點,這顯然是不靈活的。 有了 bias 就可以上下左右移動線了。神經網路是一樣的道理。 Bias的好處在於:可以使得神經網路Fit的範圍得到左右的調整 # Gradient Descent Our goal with gradient descent is to find the optimal weights: minimize the loss function we’ve defined for the model Loss : 均方誤差(Mean Squared Error, MSE):用於回歸問題,衡量預測值和實際值之間的平均平方誤差。 交叉熵損失(Cross-Entropy Loss):用於分類問題,衡量預測的概率分布與實際分布之間的差異。 **Stochastic Gradient Descent (SGD), Batch GD, and Mini-batch GD** 1.批量梯度下降(Batch Gradient Descent): 每次迭代使用整個訓練數據集。批次大小 𝐵=𝑁(訓練樣本數)。 2.小批量梯度下降(Mini-batch Gradient Descent): 每次迭代使用一部分訓練數據。批次大小 1<𝐵<𝑁 3.隨機梯度下降(Stochastic Gradient Descent, SGD): 每次迭代使用一個訓練樣本。批次大小 𝐵=1 **Iteration, epoch, batch size?** 1. Stochastic Gradient Descent (SGD) 批次大小 (Batch Size, B): 1 每個 epoch 的迭代次數 (Iterations per Epoch, n): N/B = 1000/1 = 1000 總參數更新次數 (Total Parameter Updates): (N/B) * E = 1000 * E 例子: 每個 epoch 需要 1000 次迭代(因為每次只用一個樣本)。 如果總共訓練 E 個 epochs,則參數更新次數為 1000 * E。 2. Batch Gradient Descent (BGD) 批次大小 (Batch Size, B): 1000 每個 epoch 的迭代次數 (Iterations per Epoch, n): N/B = 1000/1000 = 1 總參數更新次數 (Total Parameter Updates): (N/B) * E = 1 * E = E 例子: 每個 epoch 只需 1 次迭代(因為使用所有樣本)。 如果總共訓練 E 個 epochs,則參數更新次數為 E。 3. Mini-batch Gradient Descent (MBGD) 批次大小 (Batch Size, B): 100 每個 epoch 的迭代次數 (Iterations per Epoch, n): N/B = 1000/100 = 10 總參數更新次數 (Total Parameter Updates): (N/B) * E = 10 * E 例子: 每個 epoch 需要 10 次迭代(因為每次用100個樣本)。 如果總共訓練 E 個 epochs,則參數更新次數為 10 * E。 ------------------------- 假設: 資料集有 1000 筆數據 batch size = 100 epoch = 10 那麼: 一個 epoch 有 1000 / 100 = 10 次 iteration 10 個 epoch 就會有 10 x 10 = 100 次 iteration 模型會看完整資料集10次,學習10次 ------------------------- Batch Gradient Descent : 使用時機: 資料集較小:當資料集的大小足夠小,可以完全載入內存並且計算成本可接受時。 模型訓練穩定性要求高:需要較高的梯度計算精度和穩定的參數更新,避免過度震盪。 計算資源充足:擁有足夠的計算資源來處理整個資料集的梯度計算。 Mini-batch Gradient Descent : 使用時機: 中等大小資料集:當資料集較大但不至於無法載入內存,可以分成多個小批次進行訓練。 計算效率和收斂速度平衡:需要在計算效率和收斂速度之間取得平衡。 硬體資源有限:可以利用現代硬體(如GPU)的並行計算能力來加速訓練過程。 Stochastic Gradient Descent : 使用時機: 數據集非常大:當數據集非常大,無法完全載入內存,且需要快速更新模型參數。 在線學習:模型需要在線更新,即隨著新數據的到來即時更新模型。 模型訓練速度要求高:需要快速的參數更新和即時的模型改進。 在optimization,generalization效果比較好 **實務上選擇使用哪種梯度下降方法時,需要考慮多種因素,包括資料集的大小、硬體資源、訓練時間要求以及模型的收斂性質**