python&AI

人工智能

三個階段

  • 弱人工智能
    只能完成特定任務(駕駛,翻譯)
  • 通用人工智能
  • 強人工智能
    超越人類

機器學習

Tom Mitchel定義的過程

  1. 任務
  2. 訓練過程
  3. 模型表現

與統計學&計量經濟學關係

  • 機器學習:側重Optimization實現Prediction
  • 統計學:Statistically modeling and inference
  • 計量經濟學:causal inference

分類

  • Supervised learning
    數據已經打標籤
  • Unsupervised learning
    數據無標籤,用於聚類,主成分分析
  • Reinforcement Learning
    屬於無監督學習,與環境交互獲得反饋

基本過程

  1. 建立模型
  2. 確定loss Function
  3. 使用訓練集樣本數據進行訓練和優化求解(梯度下降Gradient Decent)
  4. 使用測試樣本檢驗
  5. 模型應用

應用

  • 線性迴歸(預測問題)
    hθ(x)=θ0+θ1x h_θ(x)=θ_0+θ_1x
    損失函數
    J(θ0,θ1)=1mi=1m(h(x(i))y(i))2 J(θ_0,θ_1)=\frac{1}{m}\sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})^2
  • 邏輯迴歸(分類問題)
    hθ(x)=g(θTx) h_θ(x)=g(θ^Tx)
    g(z)=11+ez g(z)=\frac{1}{1+e^{-z}}
    損失函數
    Cost(hθ(x),y)={log(hθ(x))ify=1log(1hθ(x))ify=0 Cost(h_θ(x),y) =\begin {cases}-\log(h_θ(x))\quad &if\quad y=1\\-\log(1-h_θ(x))\quad &if\quad y=0 \end{cases}

準確度

結果分類

  • True positives
  • False positives
  • False negatives
  • True negateive

檢驗指標

如果檢驗結果太好還要看下樣本是否均衡

  • accuracy
    accuracy=(TP+TN)/(P+N)
  • error rate
    error rate=(FP+FN)/(P+N)
  • precision
    精度 precision=TP/(TP+FP)
  • recall
    查全率 recall=TP/(TP+FN)
  • F1 score
  • Receiver Operating Characteristic

降維方法

  • 主成分分析(PCA)
  • 因子分析
  • 獨立成分分析

非深度學習

SVM

按監督學習方式對數據進行二元分類的廣義線性分類器,其決策邊界是對學習樣本求解的最大邊距超平面(maximum-margin hyperplane).SVM可以通過核方法(kernel menthod)進行非線性分類

Random Forest

利用多棵決策樹對樣本進行訓練並預測的一種分類器,是一種通過建立多個分類器模型,各自獨立學習和預測並將結果合成單一預測的集成學習方法

深度學習

深度學習的本質是降維,適應於未做任何處理的原始數據,但也有以下缺點:

  • 黑盒子,不可解釋性
  • 受限於訓練樣本的侷限性(由於局部樣本,從而局部最優)
  • 只能完成單元工作,無法通用
  • 容易被反向攻擊(欺騙神經網絡)
  • 不能使用其他領域已有的知識
  • 依賴專家設計合理模型

神經網絡

全連接網絡每一層神經元與上一層/下一層所有神經元

激活函數

  • sigmoid
    σ(a)=11+ea \sigma(a)=\frac{1}{1+e^{-a}}
    σ(a)a=σ(a)(1σ(a)) \frac{\partial\sigma(a)}{\partial a}=\sigma (a)(1-\sigma(a))
    取值範圍:(0,1)
  • TanH
    tanh(a)=eaeaea+ea tanh(a)=\frac{e^a-e^{-a}}{e^a+e^{-a}}
    tanh(a)a=4(ea+ea)2 \frac{\partial tanh(a)}{\partial a}=\frac{4}{(e^a+e^{-a})^2}
  • ReLu
    relu(a)=max(0,a) relu(a)=max(0,a)
    relu(a)a={0,ifa01,ifa>0 \frac{\partial relu(a)}{\partial a}=\begin{cases}0,if\quad a\leq0\\1,if\quad a>0\end{cases}
  • softmax
    σi(a)=eaiΣjeaj \sigma_i(a)=\frac{e^{a_i}}{\Sigma_je^{a_j}}
    σi(a)aj=σi(δijσj(a))δij={1,ifi=j0,ifij \frac{\partial\sigma_i(a)}{\partial a_j}=\sigma_i(\delta_{ij}-\sigma_j(a)) \quad \delta_{ij}=\begin{cases}1,if \quad i=j\\0,if\quad i\neq j\end{cases}
    softmax是一個多分類判定函數,輸出結果爲每種分類的概率,通常用於輸出層

傳播

  • Forward propagation
  • Back propagation

概念

  • Hyper-parameters
    超參數:神經網絡訓練過程中不變的參數:網絡層數,每層神經元數量,學習率
  • Adaptive Learning Rate
    自適應學習率:訓練過程中學習率不再是固定的,而是根據梯度大小,學習速度,每個參數的大小變化
  • Adam
    自適應慣性學習率調整:訓練過程學習率自適應調整,且具有慣性特點,可以跳過局部最優點
  • Stochastic Gradient Descent
    隨機梯度下降:SGD
  • Training,validation,test
    訓練集:訓練模型
    驗證集:檢查是否過擬合
    測試集:檢查是否有效
    以上三者一般是8:1:1
  • Epoch,Batch
    全樣本集:
    Batch:
  • underfitting,ideal fit,overfitting
    過擬合:
    一般有以下兩種方案:
  • Early Stopping:訓練集損失函數在下降但是驗證集的損失函數在上升就提前結束
  • Regularization(正則化)
    • 對參數值進行懲罰(參數值計入損失函數)
    • 隨機丟棄一些神經元(Dropout)
  • One-hot
    獨熱編碼:對於一些類別信息,由於不適用加法,而是使用一個向量來表示
    eg: 香蕉[1,0,0],蘋果[0,1,0],橘子[0,0,1]相對於香蕉3,蘋果2,橘子1(會產生香蕉=蘋果+橘子)
    包括年齡也應該使用獨熱編碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章