網頁

2019年6月25日 星期二

Deep Learning with Keras Tutorial – Part 1

關於這個系列

這篇文章是Keras系列深度學習的第一部分。 本系列旨在介紹Keras深度學習庫以及如何使用它來訓練各種深度學習模型。 我們將討論回歸(regression),分類(classification),卷積(convolution),循環網絡(recurrent networks),轉移學習(transfer learning)等主題。 接下來會用範例的方式來學習概念以及如何將它們應用於真實數據集。

在第一篇文章中,我們將介紹Keras及其不同的組件。 我們將了解定義深度學習模型所需的最重要的功能和步驟。



What is Keras?
Keras是一個深度學習框架,提供了一種方便的方法來定義和訓練幾乎任何類型的深度學習模型。 它是用Python編寫的,可以在TensorFlow,CNTK或Theano之上運行。 您可以在商業專案中自由使用它,因為它是在MIT許可下發行的。

What makes Keras so popular?
Keras最重要的特性之一是它的API讓客戶在使用上感到相當友善。 您可以立即開發出最先進的深度學習模型。 因此,它非常適合簡單快速的原型設計。 此外,它支持許多現代深度學習層,如卷積層和循環層。 Keras層可以以非常簡單的方式串連或者以許多不同的組合添加。 關於硬件,您可以在CPU和GPU上運行Keras,並以非常簡單的方式在它們之間切換。

Keras Workflow
為了在Keras建立深度學習項目,您通常會遵循以下工作流程:

1.定義您的訓練數據(training data)
2.定義您的網路(network)
3.選擇以下內容配置學習過程:
(i)損失函數(Loss function)
(ii)優化器(Optimizer)
(iii)度量(Metrics)

4.迭代訓練數據並開始fitting模型




Keras Models
Keras的核心data structure是Model class。 在keras.models下可以找到兩種定義模型的方法:Sequential class和Model class。 Sequential class按順序逐層構建網絡。 Model類允許更複雜的網絡結構,將在之後的文章中會看到。

Model Lifecycle
Keras模型遵循以下生命週期:

1.模型創建
(i)使用Sequential或Model class定義模型
(ii)添加layer
2.指定損失,優化器和指標來配置模型。 這是藉由呼叫compile方法完成的。
3.藉由呼叫fit方法訓練模型。
4.接下來將會有一個訓練好一個模型,可用於evaluation測試數據(testing data )或prediction新數據。

Image result for keras workflow

Core Layers
Keras支撐許多layers來構建我們的神經網絡。 可以從keras.layers訪問它們,下面顯示了我們將要使用的最基本的類別:

Dense:與上一層完全連接的神經元(fully connected neurons)之標準層。 執行output = activation(X * W + bias))

Activation:應用在輸出激活函數(activation function)

Dropout:應用於輸入。 根據predefined probability rate隨機停用一個given layer中的一組神經元。 用於防止overfitting

Conv2D:應用2D卷積來訓練主要在圖像數據集上的一組內核

Flatten:將輸入平化為1D矩陣。 主要用於卷積神經網絡中的特徵提取。

Losses and Optimizers
定義模型後,我們需要選擇一個損失函數和一個優化器。 優化器的工作是找到最小化損失函數的最佳模型參數。

可用的優化器:SGD,RMSprop,Adagrad,Adadelta,Adam,Adamax,Nadam

可用損失函數:平均絕對誤差(mean absolute error),平均絕對百分誤差(mean absolute percentage error),均方誤差(mean squared)。 對數誤差(logarithmic error),squared hinge,hinge,categorical hinge,logcosh,分類交叉熵(categorical crossentropy),稀疏分類交叉熵(sparse categorical crossentropy),二元交叉熵(binary crossentropy),kullback leibler divergence,poisson,餘弦近似(cosine proximity)。

Keras Utils
Keras提供了額外的實用功能,便於構建和檢視模型。 我們將主要使用它們來預處理數據(preprocess data)和檢視模型。 有關更多信息可用功能可以參考官方文檔。

Conclusion
這篇文章是對Keras的簡單介紹。 我們介紹了框架,了解了重要的類,標準工作流和模型生命週期。 在下一篇文章中,我們將學習如何使用Keras訓練線性回歸模型(linear regression model)。


參考
https://www.marktechpost.com/2019/06/11/deep-learning-with-keras-tutorial-part-1/?fbclid=IwAR1Vsum2zo7fM7aiH_b_BE34D3P7Rt3bLo6xNWxV8LcZ-Cw6n-ck7FL_pFc

沒有留言:

張貼留言