---
# System prepended metadata

title: 機器學習的種類
tags: [機器學習基石]

---

# 不同值域的 $\mathcal{Y}$

## Binary Classification

$$
\mathcal{Y} \in \left\{-1,+1\right\}
$$

## Multiclass Classification

$$
\mathcal{Y} \in \left\{1,2,...K\right\}
$$

也就是常見的分類問題。

## Regression

$$
\mathcal{Y} = \mathbb{R} \\
or\ \ \mathcal{Y} = [lower,uper] \subset \mathbb{R} 
$$

像是預估得癌症的機率。
從很久以前就在統計中被深度的研究。

## Structured Learning

$$
\mathcal{Y} = \{struct1,struct2,struct3...\} \\
$$

判斷 y 是不是某種結構，例如句子分析中：

$$
\mathcal{Y} = \{PVN,PVP,NVN...\}\text{but not include VVVVV}\\
$$

Structured Learning 算是某種大型的 Multiclass，但是對於 Class 沒有明確的定義。

其他像是蛋白質類型，或是演講的 speech parse tree。

---

:::info
Classification 和 Regression 是基石、重要的基礎。
:::

# 不同類型的 $y_{n}$

## Supervised

每個 x 都有對應的 y。

## Unsupervised

每個 x 都沒有對應的 y。

- unsupervised multiclass classification 又叫做 clustering。
- unsupervised bounded regression 又叫做 density estimation
    - 像是從各種道路結構中，分析出路口的事故機率密度函數
- extreme unsupervised binary classification 又叫做 outlier detection
    - 找出那些少數怪怪的人
    - 像是從網路的 log 中判斷出有沒有闖入者

可以看出相較於監督式，目標比較分散，不同的類型會有不同的目標。

## Semi-supervised

少數的 x 有 y 對應，其他則沒有；機器可以自己學會那些沒有 y 的他的 y 應該會是多少。

## Reinforcement Learning

在學習的時候除了 x,y，還會給予一個「好壞值」。

就像教狗狗坐下的時候，對狗狗來說，他的輸入是聽到的話，但是他的 y 是狗狗做的動作，所以你只能藉由狗狗的動作 y ，給予一個「好壞值」，告訴狗狗到底 y 好不好。

其他例子像是廣告系統，你投放某種廣告，顧客點了廣告，以及到底顧客有沒有從廣告中買東西。

也就是說其實真正的 y 是隱藏性的 implicit。

:::warning
通常來說強化學習的資料具有序列性。
:::

---

:::info
監督式學習是核心的工具。
:::


# 不同原型的 $f$

## Batch

從你手上的全部資料學習

## Online

資料是從網路來的，因此每次都是一筆一筆的來，也就是有序列的 sequentially。

從強化式學習的有序列性質可以發現，強化式學習大多是 Online 的。

## Active

機器會自己問問題。

機器會有技巧的問問題，這樣可以更快的學會。

---

:::info
Batch 是核心。
:::

# 不同定義域的 $\mathcal{X}$

## Concrete Features

資料的內容很具體，帶有人類的智慧；是人類處理過的資料。

$$
\mathcal{X} \subseteq \mathbb{R}^{d}
$$

## Raw Features

資料的內容並不具體，需要想辦法找出其具體的特徵。

例如從手寫數字圖片中分辨出數字；其具體的特徵像是數字的對稱性等等。

需要將資料轉換成 Concrete Features，而這個動作可以是人類做，或是由機器自己做。

人類自己做叫做「特徵工程」；機器自己做的方法，像是「深度學習」。

## Abstract Features

非常非常抽象的資料。

像是給使用者是誰，ID 多少、歌曲名稱，然後要找出該使用者對那首歌的評分。

也就是說要花更大的力氣從中抽取出有用的特徵。

