[課程筆記] 機器學習基石 - W2.Learning to Answer Yes/No

目录

Video1: Perceptron Hypothesis Set

回顧上一堂課

A Simple Hypothesis: Perceptron

Video2: Perceptron Learning Algorithm (PLA)

如何從 Hypothesis, H 中,找到合適的函數 g ?

Perceptron Learning Algorithm (PLA)

待解決的一些問題

Video3: Guarantee of PLA

Linear Seperability

PLA Fact

Video4: Non-Separable Data

More About PLA

Learning with Noisy Data

Pocket Algorithm

參考


Video1: Perceptron Hypothesis Set

回顧上一堂課

  • 希望機器能學會預測特定用戶發卡後的表現是 (好/壞)
  • 根據輸入的數據 x_N, y_N,透過演算法 A,從函數集合 H 中,找到合適的函數 g

A Simple Hypothesis: Perceptron

  • 把顧客的各種數據,看成多維特徵 X
  • 可以利用一種函數 H 進行計算,根據函數輸出決定是否要發卡
    • 函數形式: 將特徵 X 乘上權重 W 後加總後減去一閾值,看看數值的正負
    • 不同的 W 會得到不同的 h,因此候選函數集合 H 是由所有可能的 W 所產生的 h 所構成
  • 這種類型的 H ,是一種被稱為 Perceptron 的 Hypothesis
  • 透過將閾值項,合併至 X, W 中,可以得到更加簡潔的向量形式
  • Perceptron 其實就是一種線性分類器,當特徵是二維時可以看得更清楚

Video2: Perceptron Learning Algorithm (PLA)

如何從 Hypothesis, H 中,找到合適的函數 g ?

  • 目標是找到一個與 f 非常接近的 g,但實務上難以達到
  • 退而求其次,只要 g 與 f 在一些數據上的表現接近即可
  • 在 H 中有無限多種 g
  • 一種尋找 g 的方法是,先隨便挑選一個 g,再透過數據慢慢修正

Perceptron Learning Algorithm (PLA)

  • 將現有數據點,一個個輸入 w_0 看結果,當結果錯誤時對 w_0 進行修正
  • 修正的方法是:
    • 希望函數輸出接近 +1: 將 w 向量,往 x 的方向轉動,使 w, x 內積變大
    • 希望函數輸出接近 -1:  將 w 向量,往 x 的反方向轉動,使 w, x 內積變小
  • Cyclic PLA
    • 不斷循環,每次循環都計算所有數據點並做修正
    • 直到循環中所有數據點都能答對,則結束循環

待解決的一些問題

  • 每個循環中的數據點,要按什麼順序取?
  • 經過有限次循環後,函數有辦法在所有數據點上都答對嗎?
  • 如果在所有數據點上都答對了,那函數在我們沒收集到的數據上會有怎樣的表現?

Video3: Guarantee of PLA

Linear Seperability

  • 只有當數據點集合 D 是線性可分時,演算法才有終止的可能
  • 但有終止的可能,是否代表一定能終止呢?

PLA Fact

  • 目標:
    • 假設數據點集合是線性可分,因此可以找到理想函數 w_f
    • 如果可以證明每次修正函數後,函數 g 都會更加接近 f,則可知算法一定會終止
  • 證明:
    • 每次進行修正時,都會更新 w_{t+1} \leftarrow w_t + y_{n(t)}x_{n(t)}
    • 可證明更新後 w_f^Tw_{t+1}  變大了 (但不一定是向量夾角變小,還要考慮向量長度可能增加)
    • 可證明向量長度的增加,一定小於 max\left \| x_n \right \|^2
    • 合併後可證明,兩個向量正規化後間的內積增加了 (夾角變小),函數 g 更加接近 f
    • 也可以知道,在經過幾次的計算後,一定會終止
  • 可證明出,演算法經過多次計算後,一定會終止

Video4: Non-Separable Data

More About PLA

  • 雖然此演算法簡單,但實務上會碰到一些問題
    • 只有當數據是線性可分,演算法才有終止可能,但我們無法知道數據是否線性可分
    • 即使數據是線性可分,但無法知道需要多少次迭代演算法才會終止 (終止前所需的迭代次數,需要在知道 f 情況下才能計算)

Learning with Noisy Data

  • 數據是有雜訊的,即使原始的 f 所生成的數據是線性可分,加入雜訊後也可能改變
  • 如何在數據線性可分的條件未知、甚至是不存在時,找到最佳的函數 g ?
    • 找出在最少數據點犯錯的函數 (目前沒有演算法能有效率的完成)
    • 在現有 PLA 做修正

Pocket Algorithm

  • 每次修正函數時,都會檢查犯錯的數據點是否變少
  • 如果犯錯數據點變少,表示函數變得更好,將函數儲存起來
  • 與PLA 相比,缺點是需要額外時間檢查犯錯數據點數量,以及額外空間儲存目前最佳函數

參考

  1. 機器學習基石上 (Machine Learning Foundations)---Mathematical Foundations | Coursera

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值