# 1.2 Examples of Machine Learning Applications ## 1.2.1 Learning Associations <font color = "snake">basket analysis</font>: 找出消費者買不同商品之間的關聯性 > 如果買了 $X$ 商品的消費者通常也會買 $Y$ 商品,然後今天有個消費者買了 $X$ 但還沒買 $Y$,他就是一個潛在的會購買 $Y$ 的消費者。 為了要找到這個關聯性的規則,我們會用到條件機率 ==$P(Y|X)$== 其中, $X$ 是某個顧客已經買的某個或某些商品 $Y$ 是要 condition on $X$ 的商品 例子: > $P(chips|beer) = 0.7$ > > 的意思是買啤酒的人又買洋芋片的機率是 $0.7$ 因為我們可能想區別不同類型的消費者,再去估計各個類型的機率,我們多加一個 $D$ $\Rightarrow$ ==$P(Y|X,D)$== 這個 $D$ 代表的是一些++顧客的 attributes++ 所成的集合。 > 舉例來說,$D$ 可能是性別、年紀⋯⋯。 ## 1.2.2 Classification 例子: 在銀行貸款給人之前,必須先預測這個人不把所有金額歸還的可能性。 透過一個人的一些 data,例如收入、存款、職業、年紀⋯⋯,銀行會去計算他的經濟能力,還有貸款給他的風險。 $\rightarrow$ 銀行藉由過去貸款給其他有類似 data 的人,以及他們有沒有還錢的紀錄,希望能找到某個 general 的 rule,來判斷++一個人的 attributes++ 以及++貸款給他的 risk++ 之間的關聯性。 也就是說,一個 machine learning 的 system 會用過去的 data 去 fit 一個 model,這個 model 就能在有人要借款時去計算風險,進而決定要不要貸款給這個人。 在這個例子裡面,會把顧客分成兩類: 1. low-risk 2. high-risk 顧客的資訊構成 input,而 classifier 會根據這個 input 去 assign 他是這兩類的哪一個。 在透過過去的 data training 之後,我們可能會得到這樣的一個判別式(discriminant):  <font color = "snake">discriminant</font>: a function that separates the examples of different classes. 如果未來和過去的情況類似的話,透過這個 rule,只要我們有 income 和 savings 的資料,我們就能輕鬆判定一個人到底是 low-risk 還是 high-risk。 $\rightarrow$ 有時候,我們可能不是只要做 $0/1$ (low-risk / high-risk) 這樣的判斷,我們可能想去計算機率,也就是前面提到的 $P(Y|X)$,其中: $X$ 是 customer attributes $Y$ 是 $0/1$,代表 low-risk / high-risk  從這個觀點來看 :::success 我們可以把 classification 視為 learning 從 $X$ 到 $Y$ 的 association ::: 假設 given 某個 $X =x$,我們得到 $P(Y=1|X=x) = 0.8$ 代表的意義是當某個人具有 attributes $x$,他是 high-risk $(1)$ 的機率是 0.8 ML 在 pattern recognition 中有許多應用,其中一個是 optical character recognition,也就是從圖像中去辨認 characters。 $\rightarrow$ 這就是一個 ++multiple classes++ 的例子(有許多要辨認的 characters)  - <font color = "grey">課本還給了許多例子,因為我的課本缺頁,剩下一小部分 ML 在其他領域應用的例子省略,直接跳到下一小節。</font>. ## 1.2.4 Unsupervised Learning 在 ==supervised learning== 中,我們的目標是藉由 supervisor 提供的 correct values,去 ++learn 一個 input 和 output 之間的 mapping++。 然而在 ==unsupervised learning== 裡,沒有這樣的 supervisor 去提供 correct values,我們只有 input data,在這樣的情況下,目標變成去++找到 input 中的 refularities++。 在 input space 中,會有一個對應的 structure,使得某些特定的 patterns 會比其他的更容易發生;而我們想要知道哪些通常會發生、哪些通常不會,在統計學裡面這被稱作 <font color = "snake">density estimation</font>。 做 density estimation 的其中一個方法叫做 <font color = "snake">clustering</font>,目標就是從 input 裡面去找到 clusters / groupings。 舉例來說: > 如果有一間公司有他過去顧客的資料,以及這些人和這間公司的交易紀錄,這間公司想知道哪種類型的顧客是常出現的。 > 在這樣的情況下,一個 clustering model 就會把有著類似 attributes 的顧客分到同一個 group,這件事叫做 customer segmentation。 或是 clustering 的另個應用: > image compression > input:用 RGB values 代表的 image pixels > 一個 clutering program 會把有相同顏色的 pixels 歸類到同個 group,而這些 groups 對應到的是這個 image 中常出現的顏色。 > $\rightarrow$ 如果某個 image 的顏色數量很少,我們就能用一個顏色去 code 同個 group 中的 pixels,假設原本用 24 bits 去代表一千六百萬種顏色,但實際上這個 image 會用到的顏色主要只有 64 種,就能讓每個 pixel 改為只用 6 個 bits。 ## 1.2.5 Reinforcement Learning 在很多應用裡面,一個 system 的 output 是一連串的 actions,在這種情況下,單一的 action 其實就沒有那麼重要,真正重要的是要達到目標需要做的那++一連串正確的 actions++(==policy==) $\rightarrow$ 任何一個 intermediate state 都不存在 "best action",如果一個 action 是一個 good policy 的一部分,那我們就會說它是個 good action。 $\Rightarrow$ 在這樣的情況下,一個 ML 的 program 應該要能夠去評估一個 policy 的好壞,然後從過去的 good action sequences 學習怎麼樣去產生一個 policy。 這樣的方法就稱作 reinforcement learning algorithms。 舉個例子: > game playing: > > 玩遊戲的時候,單一一個移動沒有那麼重要,重要的是你一連串的動作怎麼做。 > $\rightarrow$ game playing 在不管是 AI 或是 ML 都是一個重要的研究領域,因為雖然我們很容易就可以去描述一個遊戲,但是很難去把一個遊戲玩好。像是下棋的時候規則雖然少,但因為在每個 state 都有很多可能的 possible moves,所以整個就變得很複雜。 - 其中一個讓 reinforcement learning 更困難的理由是 system 可能是 unreliable 的,而且只有部分的 sensory info。舉例來說,一個配有攝影機的機器人,因為我們沒有完整的資訊(像是沒辦法知道這個機器人在房間裡確切的哪個位置,只能知道它左邊有一面牆),所以任何時間點我們都只能在一個 partially observable state。
×
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