介紹
數據是從社交媒體,金融交易和電子商務平台等來源的前所未有的速度生成的。處理這種連續的信息流是一個挑戰,但它提供了一個及時,準確的決定的機會。實時系統(例如金融交易,語音助手和健康監控系統)依靠連續的數據處理來提供相關和最新的響應。
批處理學習算法(例如KNN,SVM和決策樹)要求在訓練期間將整個數據集加載到內存中。在使用大型數據集時,這變得越來越不切實際,導致重大存儲和內存問題。在使用實時數據時,這些效率也很低。
由於這個問題,我們需要一種在處理大量數據時既有效又準確的算法。在這方面,被動攻擊算法使自己與眾不同。與批處理學習算法不同,它們不必在完整數據集上進行培訓即可進行預測。被動攻擊性算法從即時的數據中學習,消除了將整個數據集存儲或處理存儲在內存中的需求。
學習目標
- 在線學習及其在使用大量數據時的意義。
- 在線學習和批處理學習算法之間的區別。
- 被動攻擊算法背後的數學直覺。
- 不同的超參數及其在被動攻擊算法中的重要性。
- 被動攻擊算法的應用和用例。
- 被動攻擊算法的局限性和挑戰。
- 在Python中實現被動攻擊分類器,以檢測實時REDDIT數據的仇恨言論。
本文作為數據科學博客馬拉鬆的一部分發表。
目錄
- 什麼是在線學習?
- 實時應用程序在線學習的優勢
- 被動攻擊算法簡介
- 鉸鏈損失在被動攻擊學習中的作用
- 被動攻擊算法的數學表述
- 了解侵略性參數(C)
- 正則化在被動攻擊算法中的影響
- 被動攻擊算法的實時應用
- 局限性和挑戰
- 建立仇恨言論檢測模型
- 為實時數據處理設置環境
- 設置預貼BERT模型以標記
- 常見問題
什麼是在線學習?
在線學習,也稱為增量學習,是一種機器學習範式,該模型可以通過每個新數據點進行逐步更新,而不是一次在固定數據集上進行培訓。這種方法允許該模型不斷適應新數據,從而使其在隨著時間的推移隨時間發展的動態環境中特別有用。與傳統的批處理學習方法不同,在線學習可以通過處理新信息到達時實時更新和決策。
批次與在線學習:比較概述
讓我們在下面研究批處理與在線學習比較:
批處理學習:
- 培訓方法:批次學習算法一次在固定數據集上訓練。經過培訓後,該模型將用於預測,直到使用新數據對其進行重新訓練。
- 示例:神經網絡,支持向量機(SVM),K-Nearest鄰居(KNN)。
- 挑戰:再培訓需要從頭開始處理整個數據集,這可能很耗時且計算昂貴。對於大型且增長的數據集,這尤其具有挑戰性,因為即使使用強大的GPU,再培訓也可能需要數小時。
在線學習:
- 培訓方法:在線學習算法使用每個新數據點逐步更新模型。該模型不斷學習並實時適應新數據。
- 優點:此方法對於處理大型數據集和動態數據流更有效。該模型以最少的計算資源進行更新,並且可以快速處理新的數據點,而無需從頭開始重新培訓。
- 應用程序:在線學習對需要實時決策的應用程序有益,例如股票市場分析,社交媒體流和推薦系統。
實時應用程序在線學習的優勢
- 持續適應:在線學習模型適應新數據的到來,使其非常適合隨著時間的推移(例如在欺詐檢測系統中)發展的環境。這樣可以確保模型保持相關性和有效性,而無需從頭開始重新審查。
- 效率:在線學習算法不需要與整個數據集進行完整的重新培訓,從而節省了大量的計算時間和資源。這對於具有有限的計算功率(例如移動設備)的應用程序特別有用。
- 資源管理:通過逐步處理數據,在線學習模型減少了對廣泛存儲空間的需求。處理後可以丟棄舊數據,這有助於有效地管理存儲並保持系統輕巧。
- 實時決策:在線學習可以實現實時更新,這對於依賴最新信息的應用程序至關重要,例如推薦系統或實時股票交易。
被動攻擊算法簡介
被動攻擊算法首先由Crammer等人引入。 2006年,他們的論文名為“在線被動攻擊算法”。這些算法屬於在線學習類別,主要用於分類任務。這些是有效的,因為它們可以逐步從每個數據點學習,調整其參數,然後從內存中丟棄數據。這使得在處理龐大的數據集和實時應用程序時,被動攻擊算法特別有用。此外,它的適應能力可以快速使其在數據分佈可能會隨著時間變化而變化的動態環境中表現良好。
您可能想知道這個不尋常的名字。這是有原因的。該算法的被動部分意味著,如果正確地對當前數據點進行了分類,則模型保持不變,並保留從先前的數據點獲得的知識。另一方面,侵略性部分錶明,如果發生錯誤分類,該模型將大大調整其權重以糾正誤差。
為了更好地了解PA算法的工作原理,讓我們在二進制分類的背景下可視化其行為。想像一下,您有一組數據點,每個數據點屬於兩個類之一。 PA算法旨在找到一個分離的超平面,將數據點分為各自的類別。該算法從對超平面的初始猜測開始。當新的數據點被錯誤分類時,該算法會積極地更新當前的超平面,以確保正確對新數據點進行分類。另一方面,當數據點正確分類時,則無需更新超平面。
鉸鏈損失在被動攻擊學習中的作用
被動攻擊算法使用鉸鏈損失作為其損耗函數,是該算法的關鍵構件之一。這就是為什麼在我們深入研究算法背後的數學直覺之前,要了解鉸鏈損失的運作至關重要。
鉸鏈損失廣泛用於機器學習,特別是用於培訓分類器,例如支持向量機(SVM)。
鉸鏈損失的定義
它被定義為:
- W是模型的重量向量
- xi是第i-th數據點的特徵向量
- yi是第i -th數據點的真實標籤,如果進行二進制分類,則可以是1或-1。
讓我們以二進制分類問題為例,其中目標是區分兩個數據類。 PA算法隱含地旨在最大化決策邊界和數據點之間的邊距。邊緣是數據點和分離線/超平面之間的距離。這與SVM分類器的工作非常相似,SVM分類器也將鉸鏈損失用作其損耗函數。較大的邊距表明分類器對其預測更有信心,並且可以準確區分這兩個類別。因此,目標是盡可能頻繁地達到至少1個邊緣。
理解等式
讓我們進一步分解,看看方程如何有助於達到最大利潤:
- w·xi:這是權重矢量W和數據點XI的點產物。它代表了對分類器預測的信心程度。
- yi *(w·xi):這是分類器的簽名分數或邊距,其中符號由真實標籤yi確定。正值表示分類器預測正確的標籤,而負值表示它預測了錯誤的標籤。
- 1 - yi *(w·xi) :這測量了所需的邊距(1)和實際邊緣之間的差異。
- max(0,1 - yi *(w·xi)):當邊緣至少1時,損耗等於零。否則,損失隨著邊緣赤字而線性增加。
簡而言之,鉸鏈損失會懲罰不正確的分類以及不夠自信的正確分類。當數據點至少用單位邊緣正確分類時,損失為零。否則,如果數據點在邊緣或錯誤分類之內,則損失隨距離邊緣的距離線性增加。
被動攻擊算法的數學表述
被動攻擊性分類器的數學基礎圍繞著維護根據傳入數據點的分類誤差進行更新的權重向量W。這是算法的詳細概述:
給定一個數據集:
步驟1:初始化重量向量w
步驟2:對於每個新數據點(xi,yi),xiis特徵向量和yi是真正的標籤,預測的標籤ŷ_iis計算為:
步驟3:計算鉸鏈損失
- 如果預測的標籤ŷ_i是正確的,邊距至少為1,則損失為0。
- 否則,損失是1和邊緣之間的差異。
步驟4:使用以下更新規則調整重量向量W
對於每個數據點x_i,如果l(w;(x_i,y_i))> 0(錯誤分類或不足):
更新的重量向量w_t 1的給出為:
如果l(w;(x_i,y_i))= 0(用足夠的邊距正確分類):
然後,重量矢量保持不變:
請注意,這些方程在求解約束優化問題後出現,目的是在類之間獲得最大邊緣超平面。這些取自原始研究論文,這些論文的推導超出了本文的範圍。
這兩個更新方程是被動攻擊算法的核心。這些意義可以簡單地理解。一方面,更新需要新的權重值(W_T 1)才能正確地用足夠大的邊距對當前示例進行分類,從而取得了進展。另一方面,它必須保持盡可能靠近較舊的重量(W_T),以保留在上一輪中學習的信息。
了解侵略性參數(C)
侵略性參數C是被動攻擊算法中最重要的超參數。它控制算法在發生錯誤分類時如何更新其權重。
高C值會導致更積極的更新,從而可能導致更快的學習,但也增加了過度擬合的風險。該算法可能對數據中的噪聲和波動過於敏感。另一方面,C值的低值會導致較不積極的更新,從而使算法對噪聲和異常值的強大更強。但是,在這種情況下,適應新信息,減慢學習過程的速度很慢。
我們希望該算法能夠從每個新實例中逐步學習,同時避免過度適合嘈雜的樣本。結果,我們必須努力在兩者之間取得平衡,從而使我們能夠在保持模型穩定性和防止過度擬合的同時進行重大更新。在大多數情況下,C的最佳值取決於特定數據集以及學習速度和穩健性之間所需的權衡。在實際情況下,諸如交叉驗證之類的技術用於獲得C的最佳值。
正則化在被動攻擊算法中的影響
現實世界中的數據集幾乎總是包含一定程度的噪音或不規則性。標籤錯誤的數據點可能導致PA算法在錯誤的方向上大大改變其權重向量。這個單一標記的示例可能會導致隨後的回合中的幾個預測錯誤,從而影響模型的可靠性。
為了解決這個問題,還有一個更重要的超參數有助於使算法對數據中的噪聲和異常值更強大。在錯誤分類的情況下,它傾向於使用更溫和的重量更新。這類似於正規化。基於正則化參數,稱為PA-I和PA-II,該算法分為兩個變體。
這些主要在步長變量τ (也稱為歸一化損耗)的定義上有所不同。對於pa-i,損失被上限為侵略性參數C的值。
這樣的公式以:
對於PA-II,步長或歸一化損失可以寫為:
在被動攻擊性分類器的Sklearlen實施中,該正則化參數被視為損失。可以根據我們要使用的兩個PA-I和PA-II中的哪一個設置為兩個值之一。如果您想使用PA-I變體,則應將損失設置為“鉸鏈”,否則為PA-II,損失設置為“平方 - 鉸鏈”。
差異可以簡單地說明:
- PA-I是一種更具侵略性的變體,它放鬆邊緣約束(邊緣可能小於一個),但在預測不正確的情況下,損失損失。這會導致學習速度更快,但比其對應者更容易出現離群值。
- PA-II是一種更強大的變體,可以四處懲罰損失,使其對嘈雜的數據和異常值更具彈性。同時,這使其更加保守,以適應數據的差異,從而導致學習速度較慢。
同樣,這兩個之間的選擇取決於數據集的特定特徵。實際上,通常建議在選擇任何一個變體之前嘗試具有不同C值的兩個變體。
被動攻擊算法的實時應用
從實時數據處理到自適應系統,在線學習和被動攻擊算法具有廣泛的應用程序。下面,我們研究了在線學習的一些最有影響力的應用。
垃圾郵件過濾
垃圾郵件過濾是文本分類的重要應用,其目標是區分垃圾郵件和合法電子郵件。 PA算法的逐步學習能力在這里特別有益,因為它可以根據新的垃圾郵件趨勢不斷更新模型。
情感分析
情感分析涉及確定在文本中表達的情感,例如推文或產品評論。 PA算法可用於構建實時分析情感的模型,適應新的語,表達和情感趨勢。這在社交媒體監控和客戶反饋分析中特別有用,及時見解至關重要。
仇恨言論檢測
仇恨言語檢測是PA算法可能非常有用的另一個關鍵應用。通過從仇恨言論的新實例中逐步學習,該模型可以適應不斷發展的語言模式和上下文。這對於在Twitter,Facebook和Reddit等平台上保持自動審核工具的有效性至關重要,以確保更安全,更具包容性的在線環境。
欺詐檢測
金融機構和在線服務不斷監視交易和用戶行為,以檢測欺詐活動。 PA算法通過每項新交易更新其模型的能力有助於確定欺詐模式出現的模式,從而為不斷發展的欺詐策略提供了強有力的防禦。
股市分析
金融市場的股票價格高度動態,要求模型快速響應新信息。在線學習算法可以通過從新的市場數據中逐步學習來預測和分析股票價格,從而及時,準確地預測貿易商和投資者。
推薦系統
在線學習算法也可以在大規模推薦系統中使用,以根據用戶互動動態更新建議。這種實時適應性可確保隨著用戶偏好的變化,建議保持相關和個性化。
這些是在線學習算法真正發光的一些領域。但是,它們的能力不僅限於這些領域。這些也適用於其他各個領域,包括異常檢測,醫學診斷和機器人技術。
局限性和挑戰
儘管在線學習和被動攻擊算法在處理流數據並適應快速變化方面具有優勢,但它們也有缺點。一些關鍵局限性是:
- 被動攻擊算法順序處理數據,使它們更容易受到嘈雜或錯誤的數據點的影響。單個離群值可能會對模型的學習產生不成比例的影響,從而導致預測或有偏見的模型。
- 這些算法一次僅看到一個數據實例,這限制了他們對不同數據點之間的總體數據分佈和關係的理解。這使得很難識別複雜的模式並做出準確的預測。
- 由於PA算法實時從數據流中學習,因此它們可能會與最新數據過高,並可能忽略或忘記早期數據中觀察到的模式。當數據分佈隨時間變化時,這可能導致概括性能差。
- 選擇侵略性參數C的最佳值可能具有挑戰性,並且通常需要實驗。高價值提高了攻擊性導致過度擬合,而低價值會導致學習緩慢。
- 評估這些算法的性能非常複雜。由於數據分佈可以隨時間變化,因此在固定測試集上評估模型的性能可能不一致。
建立仇恨言論檢測模型
Twitter和Reddit等社交媒體平台每天都會產生大量數據,使其非常適合測試我們對在線學習算法的理論理解。
在本節中,我將通過使用Reddit的實時數據從頭開始構建仇恨語音檢測應用程序來演示實際的用例。 Reddit是一個以其多元化社區而聞名的平台。但是,這也面臨著有毒評論的挑戰,這些評論可能會受到傷害和虐待。我們將構建一個可以使用REDDIT API實時識別這些有毒評論的系統。
在這種情況下,由於數據量的龐大,培訓一個模型將不可能一次。此外,數據分佈和模式會隨著時間而變化。因此,我們需要無源攻擊算法的幫助,能夠在不存儲內存中將數據從數據中學習。
為實時數據處理設置環境
在開始實施代碼之前,您必須首先設置系統。要使用REDDIT API,如果您還沒有,則必須在Reddit上創建一個帳戶。然後,創建一個REDDIT應用程序,並獲取您的API密鑰和其他憑據進行身份驗證。完成這些先決條件後,我們準備開始創建仇恨言論檢測模型。
代碼的工作流程看起來像這樣:
- 使用“ praw”庫連接到Reddit API。
- 流傳輸實時數據並將其輸入模型。
- 使用BERT模型對數據進行標記,以進行仇恨語音檢測任務。
- 使用被動攻擊性分類器逐步訓練模型。
- 在看不見的測試數據集上測試我們的模型並測量性能。
安裝所需的庫
第一步是安裝所需的庫。
PIP安裝PRAW SCIKIT-LEARN NLTK變形金剛火炬Matplotlib Seaborn opendatasets
要與Reddit合作,我們需要“ praw”庫,即Reddit API包裝器。我們還需要“ nltk”進行文本處理,``scikit-learn“用於機器學習,``matplotlib''和`seaborn''和`seaborn'用於可視化,``transformers''和`transformers''和`torch'用於創建單詞嵌入並加載微調的bert bert bert bert模型,並從kaggle加載數據。
導入庫並設置Reddit API
在下一步中,我們使用“ praw”導入所有必要的庫,並設置與Reddit API的連接。它將幫助我們從Subreddits流式評論。
導入 進口praw 導入火炬 導入NLTK 導入numpy作為NP 導入大熊貓作為pd 導入matplotlib.pyplot作為PLT 進口海洋作為SNS 導入OpEndataset作為OD 來自nltk.corpus導入停止詞 來自sklearn.feature_extraction.text導入tfidfvectorizer 來自sklearn.linear_model導入passiveaggressiveclalsifier 來自sklearn.metrics導入精度,confusion_matrix,classification_report 來自sklearn.model_selection導入train_test_split 從變形金剛導入汽車,AutoModeForSequenceCecrification,AutoTokenizer 從變形金剛導入bertforeSequencecrification,berttokenizer,textClassification pipeline #Reddit API憑據 reddit_client_id = {your_client_id} reddit_client_secret = {your_client_secret} reddit_user_agent = {your_user_agent} #設置Reddit API連接 reddit = praw.reddit(client_id = reddit_client_id, client_secret = reddit_client_secret, user_agent = reddit_user_agent)
要成功設置REDDIT實例,只需用您的憑據替換上述佔位符,就可以使用。
清潔和預處理文本
在處理原始文本數據時,通常有包含符號,主題標籤,land詞等的示例。由於這些對我們的模型沒有實際用途,因此我們必須首先清潔文本才能刪除它們。
#下載停止字 nltk.download('stopwords') stop_words = set(stopwords.words('英語')) #清潔文本並刪除停止詞 def clean_text(文本): text = re.sub(r'http \ s | www \ s | https \ s','',text,flags = re.multiline) text = re.sub(r'\@\ w | \#','',text) text = re.sub(r'\ w',',text) text = re.sub(r'\ d',',text) text = re.sub(r'\ s','',文本) text = text.strip() text =''。 返回文字
上面的代碼定義了輔助功能,該功能通過刪除不必要的單詞,特殊字符和URL來預處理評論。
設置預貼BERT模型以標記
當我們從Reddit流媒體評論時,我們不知道該評論是否有毒,因為它沒有標記。要使用監督分類,我們首先需要標記數據。我們必須實施一個可靠且精確的系統,以標記傳入的原始註釋。為此,我們將使用一個微調的BERT模型進行仇恨言論檢測。該模型將將評論準確地分類為兩個類別。
model_path =“ junglelee/bert-toxic-comment-classification” tokenizer = berttokenizer.from_pretaining(model_path) model = bertforsequencececrification.from_pretrated(model_path,num_labels = 2) pipeline = textClassification pipeline(model = model,tokenizer = tokenizer) #為文本標記的助手功能 def precadive_hate_speech(文本): 預測= pipeline(text)[0] ['label'] 返回1如果預測=='有毒'其他0#1對有毒,0抗毒
在這裡,我們使用變形金剛庫來設置模型管道。然後,我們定義一個輔助函數,以預測給定文本使用BERT模型是有毒還是無毒。現在,我們已經標記了示例以進食我們的模型。
使用bert嵌入將文本轉換為向量
由於我們的分類器將不使用文本輸入,因此需要首先將其轉換為合適的向量表示。為了做到這一點,我們將使用驗證的BERT嵌入,這將使我們的文本轉換為可以將其饋送到模型進行訓練的向量。
#加載驗證的BERT模型和嵌入的令牌 model_name =“基於bert-base-uncund” tokenizer = autotokenizer.from_pretaining(model_name) bert_model = automodel.from_pretrataining(model_name) bert_model.eval() #為獲得bert嵌入的助手功能 def get_bert_embedding(文本): inputs = tokenizer(text,return_tensors ='pt',截斷= true,padding = true) 使用Torch.no_grad(): 輸出= bert_model(**輸入) 返回outputs.last_hidden_state [:,0,:]。 squeeze()。 numpy()
上面的代碼採用一段文本,使用bert令牌化來將其施加,然後將其通過BERT模型將其傳遞以提取句子嵌入。文本現在已轉換為向量。
流式傳輸實時reddit數據並訓練被動攻擊分類器
現在,我們準備實時流式傳輸評論,並培訓分類器以檢測仇恨言論。
#為subreddit的助手功能流式傳輸評論 def stream_comments(subreddit_name,batch_size = 100): subreddit = reddit.subreddit(subreddit_name) remand_stream = subreddit.stream.comments() 批次= [] 在comment_stream中進行評論: 嘗試: #清潔傳入的文字 remand_text = clean_text(comment.body) #使用驗證的BERT模型標記評論 label = predition_hate_speech(comment_text) #將文本和標籤添加到當前批次 batch.append((comment_text,label)) 如果len(batch)> = batch_size: 產量批次 批次= [] 除例外為E: 打印(f'Error:{e}') #指定訓練回合的數量 回合= 10 #指定subreddit subreddit_name ='fitness' #初始化被動攻擊分類器 clf = passiveaggressiveclalsifier(c = 0.1,損失='Hinge',max_iter = 1,Random_state = 37) #流評論並執行增量培訓 對於num_rounds,在枚舉中批處理(stream_comments(subreddit_name,batch_size = 100)): #訓練分類器進行所需數量的回合 如果num_rounds ==圓形: 休息 #分開文字和標籤 batch_texts = [at批次中的項目] batch_labels = [批次中的項目[1]] #將一批文本轉換為bert嵌入 x_train_batch = np.Array([[get_bert_embedding(text)for batch_texts中的文本]) y_train_batch = np.array(batch_labels) #在當前批次上訓練模型 clf.partial_fit(x_train_batch,y_train_batch,class = [0,1]) 打印(在一批{len(batch_texts)}樣品中進行打印。') 印刷(“訓練完成”)
在上面的代碼中,我們首先指定我們要從中進行評論,然後通過10個訓練回合初始化PA分類器的子列數。然後,我們實時流式傳輸評論。對於其中的每個新評論,首先會清理刪除不必要的單詞。然後使用驗證的BERT模型標記並添加到當前批處理中。
我們初始化的被動攻擊分類器將C = 0.1且損耗='鉸鏈',該分類器與算法的PA-I版本相對應。對於每個批次,我們都使用'partial_fit()`方法訓練分類器。這使該模型可以從每個訓練樣本中逐步學習,而不是在處理之前將整個批次存儲在內存中。因此,使模型能夠不斷適應新信息,從而使其非常適合實時應用程序。
評估模型性能
我將使用Kaggle有毒推文數據集評估我們的模型。該數據集包含幾條被分類為有毒或無毒的推文。
#從Kaggle下載數據 od.download(“ https://www.kaggle.com/datasets/ashwiniyer176/toxic-tweets-dataset”) #加載數據 data = pd.read_csv(“ decitic-teweets-dataset/finalbalanceddataset.csv”,usecols = [1,2])[[[“ Tweet”,“ witedicities”]] #分開文字和標籤 test_data = data.sample(n = 100) texts = test_data ['tweet']。應用(clean_text) 標籤= test_data ['毒性'] #將文本轉換為向量 x_test = np.array([get_bert_embedding(文本)文本中的文本]) y_test = np.array(標籤) #做出預測 y_pred = clf.predict(x_test) #評估模型的性能 精度=準確_score(y_test,y_pred) conf_matrix = Confusion_matrix(y_test,y_pred) 打印(“分類報告:”) print(classification_report(y_test,y_pred)) #繪製混亂矩陣 plt.figure(無花果=(7,5)) sns.heatmap(conc_matrix, annot = true, fmt ='d', cmap ='布魯斯', cbar = false, Xticklabels = [“無毒”,“有毒”], yticklabels = [“無毒”,“有毒”]) plt.xlabel(“預測標籤”) plt.ylabel('true標籤') plt.title('混淆矩陣') plt.show()
首先,我們加載了測試集並使用前面定義的`clean_text`方法清潔了它。然後使用bert嵌入將文本轉換為向量。最後,我們使用分類報告和混亂矩陣對測試集進行預測,並評估模型在不同指標上的性能。
結論
我們探討了在線學習算法的力量,重點是被動攻擊算法有效處理大型數據集並適應實時數據而無需完整的重新培訓的能力。還討論了鉸鏈損失,侵略性超參數(C)的作用,以及正則化如何幫助管理噪聲和離群值。在實施使用被動攻擊分類器的仇恨語音檢測模型之前,我們還審查了現實世界中的應用程序和局限性。感謝您的閱讀,我期待著我們的下一個AI教程!
常見問題
Q1。被動攻擊算法的基本原則是什麼?答:被動積極算法背後的基本原理是在做出錯誤的預測時積極更新權重,並在做出正確的預測時被動地保留學習的權重。
Q2。侵略性參數C在PA算法中起什麼作用?答:當C高時,該算法變得更具侵略性,快速適應新數據,從而導致學習速度更快。當C較低時,算法就會變得不那麼侵略性,並進行較小的更新。這降低了過度適合嘈雜樣本的可能性,但使適應新實例的可能性更低。
Q3。被動攻擊分類器與支持向量機(SVM)有何相似之處?答:兩者都旨在最大化決策邊界和數據點之間的邊距。兩者都使用鉸鏈損失作為其損失功能。
Q4。在線學習算法比批處理學習算法有哪些優點?答:在線學習算法可以與大型數據集一起使用,沒有存儲限制,並且很容易適應快速變化的數據,而無需從頭開始重新培訓。
Q5。在什麼情況下,被動侵略算法可以有用?A.被動攻擊算法可用於多種應用中,包括垃圾郵件過濾,情感分析,仇恨言論檢測,實時股票市場分析和推薦系統。
本文所示的媒體不由Analytics Vidhya擁有,並由作者酌情使用。
以上是在線學習和被動攻擊算法指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Segformer:深入研究有效的圖像分割 現代應用需要高級圖像處理功能,圖像分割起著至關重要的作用。 本文探討了Segformer,這是一個在分割圖像方面出色的強大模型

介紹 想像一下,您正在建造一個新的摩天大樓。沒有藍圖,您不會開始,對嗎?同樣,在開發軟件時,擁有正確的框架至關重要。在Python的廣闊世界中,框架AC

介紹 迅速的工程在2024年一直是一個熱門話題,生成的AI迅速發展使學習者在這個競爭性領域中提高技能。掌握及時工程就像擁有電力f的鑰匙

自適應提示:革新與DSPY的AI互動 想像一下您的AI同伴完美理解並回應每個細微差別的對話。這不是科幻小說;這是自適應提示的力量。這項技術動態

介紹 在人工智能中,出現了一項開創性的發展,該發展有望重塑科學發現的過程。與O大學的AI研究的Foerster實驗室合作

介紹 由於該領域的巨大本質以及所需的各種知識和能力,準備AI工作面試可能會具有挑戰性。 AI行業的擴展與不斷增長

Adalflow:用於簡化LLM任務管道的Pytorch庫 由Li Yin率領的Adalflow彌合了檢索功能(RAG)研究與實際應用之間的差距。 利用Pytorch,它解決了EXI的局限性

Microsoft揭幕了PHI-3.5:一個高效且強大的小語言模型的家族 Microsoft的最新一代小語言模型(SLM),PHI-3.5家族,擁有各種基準的卓越性能,包括理性


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6
視覺化網頁開發工具