
- 機器學習基礎
- ML - 首頁
- ML - 簡介
- ML - 入門
- ML - 基本概念
- ML - 生態系統
- ML - Python 庫
- ML - 應用
- ML - 生命週期
- ML - 所需技能
- ML - 實現
- ML - 挑戰與常見問題
- ML - 限制
- ML - 真實案例
- ML - 資料結構
- ML - 數學基礎
- ML - 人工智慧
- ML - 神經網路
- ML - 深度學習
- ML - 獲取資料集
- ML - 分類資料
- ML - 資料載入
- ML - 資料理解
- ML - 資料準備
- ML - 模型
- ML - 監督學習
- ML - 無監督學習
- ML - 半監督學習
- ML - 強化學習
- ML - 監督學習 vs. 無監督學習
- 機器學習資料視覺化
- ML - 資料視覺化
- ML - 直方圖
- ML - 密度圖
- ML - 箱線圖
- ML - 相關矩陣圖
- ML - 散點矩陣圖
- 機器學習統計學
- ML - 統計學
- ML - 均值、中位數、眾數
- ML - 標準差
- ML - 百分位數
- ML - 資料分佈
- ML - 偏度和峰度
- ML - 偏差和方差
- ML - 假設
- 機器學習中的迴歸分析
- ML - 迴歸分析
- ML - 線性迴歸
- ML - 簡單線性迴歸
- ML - 多元線性迴歸
- ML - 多項式迴歸
- 機器學習中的分類演算法
- ML - 分類演算法
- ML - 邏輯迴歸
- ML - K近鄰演算法 (KNN)
- ML - 樸素貝葉斯演算法
- ML - 決策樹演算法
- ML - 支援向量機
- ML - 隨機森林
- ML - 混淆矩陣
- ML - 隨機梯度下降
- 機器學習中的聚類演算法
- ML - 聚類演算法
- ML - 基於中心點的聚類
- ML - K均值聚類
- ML - K中心點聚類
- ML - 均值漂移聚類
- ML - 層次聚類
- ML - 基於密度的聚類
- ML - DBSCAN 聚類
- ML - OPTICS 聚類
- ML - HDBSCAN 聚類
- ML - BIRCH 聚類
- ML - 關聯傳播
- ML - 基於分佈的聚類
- ML - 凝聚層次聚類
- 機器學習中的降維
- ML - 降維
- ML - 特徵選擇
- ML - 特徵提取
- ML - 向後剔除法
- ML - 前向特徵構造
- ML - 高相關性過濾器
- ML - 低方差過濾器
- ML - 缺失值比率
- ML - 主成分分析
- 強化學習
- ML - 強化學習演算法
- ML - 利用與探索
- ML - Q學習
- ML - REINFORCE 演算法
- ML - SARSA 強化學習
- ML - 演員-評論家方法
- 深度強化學習
- ML - 深度強化學習
- 量子機器學習
- ML - 量子機器學習
- ML - 使用 Python 的量子機器學習
- 機器學習雜項
- ML - 效能指標
- ML - 自動化工作流程
- ML - 提升模型效能
- ML - 梯度提升
- ML - 自舉匯聚 (Bagging)
- ML - 交叉驗證
- ML - AUC-ROC 曲線
- ML - 網格搜尋
- ML - 資料縮放
- ML - 訓練和測試
- ML - 關聯規則
- ML - Apriori 演算法
- ML - 高斯判別分析
- ML - 成本函式
- ML - 貝葉斯定理
- ML - 精確率和召回率
- ML - 對抗性
- ML - 堆疊
- ML - 輪
- ML - 感知器
- ML - 正則化
- ML - 過擬合
- ML - P值
- ML - 熵
- ML - MLOps
- ML - 資料洩露
- ML - 機器學習的商業化
- ML - 資料型別
- 機器學習 - 資源
- ML - 快速指南
- ML - 速查表
- ML - 面試題
- ML - 有用資源
- ML - 討論
機器學習 - 隨機梯度下降
梯度下降是一種流行的最佳化演算法,用於最小化機器學習模型的成本函式。它的工作原理是迭代地調整模型引數,以最小化預測輸出與實際輸出之間的差異。該演算法透過計算成本函式相對於模型引數的梯度,然後沿梯度的反方向調整引數來工作。
隨機梯度下降是梯度下降的一種變體,它為每個訓練樣本更新引數,而不是在評估整個資料集後更新引數。這意味著 SGD 只使用單個訓練樣本計算成本函式的梯度,而不是使用整個資料集。這種方法允許演算法更快收斂,並且需要更少的記憶體來儲存資料。
隨機梯度下降演算法的工作原理
隨機梯度下降透過從資料集中隨機選擇單個訓練樣本並使用它來更新模型引數來工作。此過程會重複進行固定數量的輪次,或者直到模型收斂到成本函式的最小值。
以下是隨機梯度下降演算法的工作原理:
將模型引數初始化為隨機值。
對於每個輪次,隨機打亂訓練資料。
對於每個訓練樣本:
計算成本函式相對於模型引數的梯度。
沿梯度的反方向更新模型引數。
重複直到收斂
隨機梯度下降和普通梯度下降之間的主要區別在於梯度的計算方式和模型引數的更新方式。在隨機梯度下降中,使用單個訓練樣本計算梯度,而在梯度下降中,使用整個資料集計算梯度。
在 Python 中實現隨機梯度下降
讓我們來看一個如何在 Python 中實現隨機梯度下降的例子。我們將使用 scikit-learn 庫在 Iris 資料集上實現該演算法,這是一個用於分類任務的流行資料集。在這個例子中,我們將使用它的兩個特徵(萼片寬度和萼片長度)來預測鳶尾花的種類:
示例
# Import required libraries import sklearn import numpy as np from sklearn import datasets from sklearn.linear_model import SGDClassifier # Loading Iris flower dataset iris = datasets.load_iris() X_data, y_data = iris.data, iris.target # Dividing the dataset into training and testing dataset from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler # Getting the Iris dataset with only the first two attributes X, y = X_data[:,:2], y_data # Split the dataset into a training and a testing set(20 percent) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=1) # Standarize the features scaler = StandardScaler().fit(X_train) X_train = scaler.transform(X_train) X_test = scaler.transform(X_test) # create the linear model SGDclassifier clfmodel_SGD = SGDClassifier(alpha=0.001, max_iter=200) # Train the classifier using fit() function clfmodel_SGD.fit(X_train, y_train) # Evaluate the result from sklearn import metrics y_train_pred = clfmodel_SGD.predict(X_train) print ("\nThe Accuracy of SGD classifier is:", metrics.accuracy_score(y_train, y_train_pred)*100)
輸出
執行此程式碼時,將產生以下輸出:
The Accuracy of SGD classifier is: 77.5
廣告