知識圖譜學習筆記(二)——機器學習基礎

機器學習基礎

1. 機器學習基礎理論與概念

1.1 機器學習概要

機器學習專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。它是人工智能的核心,是使計算機具有智能的根本途徑,其應用遍及人工智能的各個領域,它主要使用歸納、綜合而不是演繹。

機器學習主要是研究如何使計算機從給定的數據中學習規律,從觀測數據(樣本)中尋找規律,并利用學習到的規律(模型)對未知或無法觀測的數據進行預測。

在這里插入圖片描述

訓練數據

模型
線性方法:y = f(x) = w^Tx + b
非線性方法:神經網絡

優化
損失函數:L(y, f(x))
經驗風險最小化:Q(\theta) = \frac{1}{m}\sum_{i=1}^mL(y_i, f(x_i, \theta))
正則化:||\theta||^2

優化目標函數
Q(\theta) + \lambda||\theta||^2

1.2 機器學習問題類型

  • 回歸(Regression):y是連續值,f(x)的輸出也是連續值。這種類型的問題就是回歸問題。對于所有已知或未知的(x, y),使得f(x, \theta)和y盡可能地一致。損函數通常定義為平方誤差。
  • 分類(Classification):y是離散的類別標記(符號),就是分類問題。損失函數一般用0-1損失函數或負對數似然函數等。在分類問題中,通過學習得到的決策函數f(x,\theta)也叫分類器。

1.3 機器學習算法類型

  • 有監督學習:利用一組已知輸入x和輸出y的數據來學習模型的參數,使得模型預測的輸出標記和真實標記盡可能一致。
  • 半監督學習:利用少量已知輸入x和輸出y的數據以及未標注的樣本,來學習模型的參數。
  • 無監督學習:用來學習的數據不包含標注信息,需要學習算法自動學習到一些有價值的信息,例如聚類(clustering)


    在這里插入圖片描述

2. 深度學習和神經網絡基礎

傳統的機器學習:人工特征工程+分類器


機器學習

深度學習:自動學習多尺度的特征表示


深度學習

2.1 感知機 Perceptron

感知機是對生物神經細胞的簡單數學模擬,是最簡單的人工神經網絡,只有一個神經元。

在這里插入圖片描述


感知機參數學習:


2.2 前饋神經網絡 Feed Forward Neural Networks

在這里插入圖片描述

前饋計算

  • L表示神經網絡的層數
  • n^l表示第l層神經元的個數
  • f_l(z)表示第l層的激活函數
  • w^l表示第l層的權重
  • b^l表示第l層神經元的偏置
  • z^l表示第l層神經元的狀態
  • y^l表示第l層神經元的輸出
    z^l = w^l y^{l-1} + b^l
    y^l = f_l(z^l)
    z^l = w^l f_l(z^{l-1}) + b^l
    在這里插入圖片描述

2.3 卷積神經網絡 Convolutional Neural Network

卷積神經網絡是一種前饋神經網絡。局部鏈接,權值共享,采樣。具有平移、縮放和扭曲不變形的特點。


在這里插入圖片描述

全連接存在的問題:權重矩陣參數非常多,訓練效率低下。數據不足時,欠學習。


一維卷積

二維卷積

為了增強卷幾層的表示能力,可以使用K個不同的濾波器來得到K組輸出。每一組輸出都共享一個濾波器。如果我們把濾波器看成一個特征提取器,每一組輸出都可以看成是輸入圖像經過一個特征抽取后得到的特征。因此,在卷積神經網絡中每一組輸出也叫做一組特征映射。

關于CNN的具體講解,推薦學習一下這篇博文一文讓你徹底了解卷積神經網絡里面的基礎知識講解的還是蠻細致的,就是反向傳播的過程講的有些突兀。

下面通過一個例子來了解一下CNN在圖像處理中的應用。
LeNet-5提出時間比較早,是一個非常成功的神經網絡模型。基于LeNet-5的手寫數字識別系統在90年代被美國很多銀行使用。該網絡一共有7層。


在這里插入圖片描述
  • 輸入層:輸入圖像大小為32 X 32 = 1024.
  • C1層:這一層是卷積層。濾波器的大小是55=25,共有6個濾波器,不使用全0填充,步長為1。得到6組大小為2828=784的特征映射。因此,C1層的神經元個數為6784=4704.可訓練參數個數為625+6=156(其中包括6個偏置bias)。連接數為156*784=122304。
  • S2層:這一層為子采樣層,也稱為池化層。由C1層每組特征映射中的22鄰域點次采樣為1個點(4個數的平均值),長和寬的步長均為2,所以本層的輸出矩陣大小為1414*6。
  • C3層:這一層為卷積層。使用16組,共60個濾波器,打下為55=25。濾波器與S2層特征的映射連接關系如下表所示:
    在這里插入圖片描述

    本層不使用全0填充,步長為1,得到16組大小為10
    10=100的特征映射,輸出矩陣為161010。可訓練參數個數為6025+16 = 1516。連接數為1516100 = 151600。
  • S4層:這一層是子采樣層,由22鄰域點次采樣為1個點,步長為2.本層的輸出矩陣大小為55*16。
  • C5層:這是一個卷積層,得到120組大小為11的特征映射。每個特征映射與S4層的全部特征映射相連。有12016=1920個濾波器,大小為55=25,C5層的神經元個數為120,可訓練參數個數為192025+120=48120。
  • F6層:全連接層,有84個神經元,可訓練參數個數為84*(120+1)=10164個。
  • 輸出層:全連接層,輸出層由10個歐式徑向基函數組成。

2.4 循環神經網絡 Recurrent Neural Network

前饋神經網絡和CNN存在如下問題:
1.連接存在于層與層之間,每層的節點之間是無連接的。
2.輸入和輸出的維數是固定的,不能任意改變。無法處理變長的序列數據。
3.假設每次輸入都是獨立的,也就是說每次網絡的輸出只依賴于當前的輸入。

循環神經網絡通過使用自帶反饋的神經元,能夠處理任意長度的序列。

在這里插入圖片描述

循環神經網絡一個非常重要的概念就是時刻。其會對每一個時刻的輸入結合當前模型的狀態給出一個輸出。
在RNN中,每一個時刻會有一個輸入,然后根據RNN當前的狀態提供一個輸出。而RNN當前的狀態是根據上一個時刻的狀態和當前的輸入共同決定的。RNN最擅長解決的問題是與時間序列相關的。RNN要求每一個時刻都有一個輸入,但是不一定每個時刻都需要有輸出。
更直觀的,我們可以得到如下圖所示的循環神經網絡:
在這里插入圖片描述

RNN包括了輸入層、隱藏層和輸出層。假設時刻t時,輸入為,隱層狀態為。不僅和當前時刻的輸入相關,也喝上一個時刻的隱層狀態相關。一般可以使用如下函數:


這里,是非線性函數,可以為sigmod函數或者tanh函數。

長短時記憶神經網絡:LSTM :Long Short-Term Memory Neural Network

LSTM是RNN的一個變體,可以有效解決簡單循環神經網絡的梯度爆炸或消失問題。LSTM的關鍵是引入了一組記憶單元,允許網絡可以學習何時遺忘歷史信息,何時用新信息更新記憶單元。在時刻t時,記憶單元c_t記錄了當前時刻為止的所有歷史信息,并受三個“門”控制:輸入門i_t,遺忘門f_t和輸出門o_t。三個門的元素的值在[0,1]之間。
下圖本別是RNN和LSTM的示意圖:

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

粉色的圈表示逐點(pointwise)操作,例如向量的和,黃色的矩陣表示學習到的神經網絡層。

LSTM核心思想

在這里插入圖片描述

表示細胞的在時刻t的狀態,水平線則表示細胞的狀態信息,它類似于一條傳送帶,直接在整個鏈上運行,只有一些少量的線性交互。信息在上面流轉保持不變會很容易。
若只有上面的那條水平線是無法實現添加或者刪除信息的。
在這里插入圖片描述

LSTM中的門可以選擇性的控制信息的流動,通常由一個sigmoid神經網絡層和一個point wise(或者叫element wise)的乘法操作組成。sigmoid層輸出(一個向量)的每個元素都是一個0和1之間的實數,表示讓對應信息通過的權重。
LSTM中主要包含三種門:遺忘門、輸入門和輸出門。
遺忘門
在這里插入圖片描述

遺忘門的作用是讓LSTM忘記之前沒有用的信息。該結構會根據當前的輸入、上一時刻的狀態和上一時刻的輸出共同決定哪一部分記憶需要被遺忘,表示sigmoid函數。

輸入門
在LSTM忘記了部分之前的狀態后,它還需要從當前的輸入補充最新的記憶,這個過程就是輸入門完成的。實現這個需要兩個步驟:首先,一個叫做“input gate layer”的sigmoid層決定哪些信息需要更新;一個tanh層生成一個向量,也就是備選的用來更新的內容\widetilde{C_t}

在這里插入圖片描述

把遺忘門和輸入門的結果進行整合,對cell的狀態進行更新,可以得到當前時刻的狀態。
在這里插入圖片描述

輸出門

在這里插入圖片描述

最終,我們需要確定輸出什么值。首先,通過sigmoid層來確定細胞狀態的哪個部分輸出出去。接著,我們把cell狀態通過tanh進行處理(得到一個-1到1之間的值)并將它和sigmoid門的輸出相乘,輸出結果。

LSTM的變種

在這里插入圖片描述

GRU(Gated Recurrent Unit)門限循環單元。是LSTM的簡化版本,只有兩個門:重置門和更新門。在這個結構中,把細胞狀態(記憶單元)和隱藏狀態(神經元活性)進行了合并。
更新門z:用來控制當前的狀態需要遺忘多少信息和接受多少新信息。
重置門r:用來控制候選狀態中有多少信息是從歷史信息中得到的

還有雙向循環神經網絡:


在這里插入圖片描述
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容