# Learning to Answer Yes/No ## A Simple Hypothes is Set: the ‘Perceptron’ 在這個模型中,使用者的特徵被抽象為一個 N 維的特徵向量,符號化表示為 x = [x₁, x₂, ..., xn],其中每個 xᵢ 代表著特定特徵的數值表現。這些特徵在模型中透過與對應的權重 wᵢ 進行點積運算,從而導出線性組合總和 ∑(wᵢ * xᵢ)。 線性組合的總和再經過一個事先定義的閾值,得到一個量 h(x) = ∑(wᵢ * xᵢ) - 閾值,該值反映了使用者特徵的權重加權綜合評分。 當 h(x) 大於等於 0 時,該模型會將使用者的分數增加 1,表示使用者已經達到預定的分數閾值。一旦使用者的分數達到指定閾值,系統將觸發卡片發送機制,向使用者發送卡片作為成就或獎勵的象徵。 總結而言,該系統運用感知器的思想,通過特徵向量與相對應權重的線性組合,計算使用者特徵的綜合評分,並藉由特定的分數閾值來决定是否向使用者發送卡片,實現了一種以數值驅動的自動化決策機制。  ## 門檻值轉換公式 在此模型中,我們運用內積的性質,將閾值轉換為向量相乘的形式,並將特徵向量與權重向量的加權總和視為兩個向量的內積,以精簡計算公式。 假設 x 代表顧客的資料向量,包含特徵數據,而 x₀ 則為一維常數項。同樣地,w 是特徵權重向量,w₀ 表示常數項的權重。 我們通過 x 與 w 的內積運算,即 x · w,獲得使用者特徵向量和特徵權重向量的加權總和。這個內積值將與 x₀ 和 w₀ 之間的內積,即 x₀ · w₀,相加。這種處理方式將向量相乘的概念與計算結合,以更簡明的內積運算表示整個計算過程。  ## 線性分類器 如果是分類問題的話,寫出來的式子會像回歸方程式。  # 設計演算法算岀一個理想的線 ## 如何設計一條適合的線 1. 先有一條線在手上,慢慢學習 2. 從gO出發 ## 演算法設計方式 1. 一開始有一個w,某個點得出來後做修正 2. wt+1←wt+yn(t)xn(t) * 正確答案要的符號是正的,把x轉回來 * 正確答案要的符號是負的,把x轉出去 3. 更新到不在犯錯的時候 4. 有幾種更新方式: * a full cycle of not encountering mistakes(常見的方法) * naïve cycle(1,···,N) * precomputed random cycle  ## PLA會不會停下來? 1. yn=sign(WfXn) 2. 看說Wf跟wt接不接近(內積的值越大,代表越接近)  ### PLA要處理向量長度的問題 向量內積的增大可能來自於向量的長度增加,但這樣的情況並未考慮在權重更新過程中的限制。 事實上,在更新過程中,只有在權重向量 w_t 與特徵向量 x_n 的內積小於 0 時,我們才會進行權重更新。因此,下面的推導公式中,第二項項目必然小於等於 0。這意味著,權重向量 w_t+1 只受到後方所標註的那個項目的更新所影響。 進一步考慮,我們將輸出 y_n 與最大特徵值 x_n 的平方進行比較。這就意味著我們在正規化過的兩個向量進行內積,如果其結果超過某個閾值,則表示這兩個向量越來越接近。 由於正規化後的向量內積的最大值為 1,當更新過程進行到最後,感知器學習算法將自然停止。這是因為向量內積長度的極限是 1,我們無法再進一步對權重進行有效的調整。  ## 好處和壞處 * Pros:simple to implement, fast, worksin any dimension d * Cons: * ‘assumes’ linear separable D to halt * property unknown inadvance(no need for PLA if we knoww f) ## 如何找一條線 1. 找一條犯的錯誤最少 目前沒有辦法解決這個問題:  2. 找一個差不多的線解決這個問題: * 口袋演算法: * 用隨機的更新方式 * 每次找到PLA後,就跟口袋的比較,找到比較好的就丟掉原本的,留下比較好的  --- 資料來源:https://www.csie.ntu.edu.tw/~htlin/mooc/
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up