Neural Network

人工智慧 Deep Learning (4)

教學目標

「Deep Learning Specialization」線上專項課程心得分享。

重點概念

首先最近終於完成今年目標之一也就是「Deep Learning Specialization」線上專項課程,總共有五門專業課程分別為:

  1. 類神經網路與深度學習。
  2. 透過調整超參數、正規化和優化改善深度網路。
  3. 結構化機器學習專案。
  4. 卷積類神經網路。
  5. 序列模型。

接著每門專業課程皆有許多測驗題目和程式作業 (註:結構化機器學習專案沒有程式作業),非常花費時間,需要重複看影片好幾次才能夠順利作答,以及程式作業主要是在「The Coursera Jupyter Notebook System」平台中透過 Python 程式語言進行作答,基本上作答只有最核心的部份,並且皆有提供提示以利我們順序作答,至於有哪些程式作業,請參考以下資訊。

類神經網路與深度學習

  1. Logistic Regression with a Neural Network mindset
  2. Planar data classification with a hidden layer
  3. Building your deep neural network: Step by Step
  4. Deep Neural Network Application

透過調整超參數、正規化和優化改善深度網路

  1. Initialization
  2. Regularization
  3. Gradient Checking
  4. Optimization
  5. Tensorflow

卷積類神經網路

  1. Convolutional Model: step by step
  2. Convolutional model: application
  3. Residual Networks
  4. Car detection with YOLOv2
  5. Art generation with Neural Style Transfer
  6. Face Recognition for the Happy House

序列模型

  1. Building a recurrent neural network - step by step
  2. Dinosaur Island - Character-Level Language Modeling
  3. Jazz improvisation with LSTM
  4. Operations on word vectors - Debiasing
  5. Emojify
  6. Neural Machine Translation with Attention
  7. Trigger word detection

再來若是想要直接了解深度學習的實務應用建議可以直接參與「卷積類神經網路」和「序列模型」兩門課程,像是「Art generation with Neural Style Transfer」程式作業就是透過深度學習轉換圖片的風格,或者「Jazz improvisation with LSTM
」程式作業就是透過深度學習轉換音樂的風格,不論哪一個程式作業皆非常有趣。

最後完成「Deep Learning Specialization」線上專項課程總共二十二個程式作業實作,除了更熟練 Python 程式語言之外,更重要的是對於深度學習除了有基本概念之外,更信心動手透過程式實作深度學習相關實務應用,下一步今年目標則是學習更多雲端平台上的深度學習應用。

總結這「Deep Learning Specialization」線上專項課程總共花費了三個月周末假期和平日晚上的時間,當然還有通勤和運動的時間,建議下載 Courera 的專屬 App ,能夠讓我們隨時隨地觀看課程影片和測驗題目非常實用。

Deep Learning Specialization 證書

相關資源

Node.js 資料處理 (2)

基本介紹

教學目標

透過 Node.js 進行類神經網路的機器學習,根據使用者的看劇行為資料進行性別的分類。

前置作業

  1. 完成 Node.js 套件安裝與設置。

套件安裝

1
$ npm install brain --save

使用教學

建立

1
2
var brain = require("brain");
var neural_network = new brain.NeuralNetwork();

訓練

假設每位使用者在一天不同時段 (time) 會看台陸日韓四大類型 (behavior) 的劇集,此時我們有 5% 行為資料有性別的資訊,另外 95% 行為資料沒有性別資訊,因此我們需要透過 5% 去分類 95% 的行為資料。

  • behavior: 1: 台劇 | 2: 陸劇 | 3: 韓劇 | 4: 日劇
  • time: 小時/24
  • female: 女性
  • male: 男性
1
2
3
4
5
6
7
8
9
10
11
12
13
var train_data = [{input: { behavior: 1, time: 0.1 }, output: { female: 1 }},
{input: { behavior: 2, time: 0.4 }, output: { male: 1 }},
{input: { behavior: 3, time: 0.9 }, output: { female: 1 }},
{input: { behavior: 2, time: 0.3 }, output: { female: 1 }},
{input: { behavior: 4, time: 0.4 }, output: { male: 1 }},
{input: { behavior: 3, time: 0.3 }, output: { male: 1 }}];

neural_network.train( train_data, {
errorThresh: 0.001,
iterations: 60000,
logPeriod: 10,
learningRate: 0.3
});

分類

假設有一筆沒有性別的行為資料,已知在晚上九點看韓劇等資訊。

1
2
var output = neural_network.run({ behavior: 3, time: 0.875});
console.log(output);

結果

分析結果小數點第二位四捨五入有 97% 的機率為女性, 3% 機率為男性。

1
{ female: 0.9699016193976642, male: 0.03009528680901112 }

相關資源