iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 21
0
AI & Data

跟著Google學ML系列 第 21

[Day 21] Multi-Class Neural Networks

Ref.: Multi-Class Neural Networks

之前的文章都在討論是非題,是A或不是A這樣,這邊要開始介紹multi-class的Neural network。
先來看看這個影片,會讓大家比較有感:


這就是今天的重點,讓我們的神經網路可以區分多種不同類型的物件。

One vs. All

基本上概念是原先binary classification的延伸,再訓練的時候就是跑每個binary classification。

During training, the model runs through a sequence of binary classifiers, training each to answer a separate classification question

比方說一張的圖片丟去訓練,會回來的可能是下列結果:

  1. 是貓嗎? No
  2. 是鳥嗎? No
  3. 是狗嗎? Yes
  4. 是糖果嗎? No

可以看出來如果種類太多,就會有效率上的問題。用Neural Network的觀點下去看,就是下面這樣:
one vs all

Softmax

Softmax可以看成之前的logistic regression的延伸,logistic regression回來的是機率,機率總和為1.0。這邊softmax則是讓每個class有一個機率,並且他們的機率總和也要是1。

Class Probability
cat 0.01
bird 0.02
dog 0.95
candy 0.02

也跟上面的圖沒有差太多,就是在output之前套入一個Softmax equation:https://ithelp.ithome.com.tw/upload/images/20181021/20103835Rt2e8KGHNO.jpg

softmax

嚴謹一點定義,上面說的softmax是Full Softmax(class數量少時適用)。
另一種則是Candidate sampling(class數量多時比較有效率),僅針對positive label算所有的機率,並對隨機選幾個negative labels算機率。這種方法在考慮品種的時候可以使用,考慮狗的品種不需要把所有的機率都算進去。

那如果像是本文剛開始的影片,一個圖有多個class要判斷的話呢?這樣的話softmax可能又不是用了,反而需要多個logistic regression去分析它。還記得不要套入softmax equation時其實就是logistic regressions嗎?

程式練習Programming exercise

這次的練習滿貼近生活的,是用Neural Network判斷手寫數字。有興趣可以看一下它怎麼分類、怎麼訓練、怎麼辨識。再回想一下所有的資料不會一開始都這麼美,feature engineering在一開始做了很大部分的努力。

好囉,Machine learning concepts就快結束了,剩下明天的embedding了。


上一篇
[Day 20] Training神經網路
下一篇
[Day 22] Embeddings(上)
系列文
跟著Google學ML30

尚未有邦友留言

立即登入留言