程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python Data Analysis and Machine Learning 37 - Overview of Neural Networks

編輯:Python

文章目錄

  • 一. 什麼是人工智能
    • 1.1 學習的能力,is the essence of intelligence
    • 1.2 大數據時代,萬物互聯
    • 1.3 李世石 VS 阿法狗
  • 二. 神經網絡概述
    • 2.1 人工智能 VS 深度學習
    • 2.2 Tell the story of the pictures
    • 2.3 無人駕駛汽車
    • 2.4 黑科技:Image Transfer
    • 2.5 圖像分類
      • 2.5.1 挑戰: 照射角度
      • 2.5.2 挑戰:光照強度
      • 2.5.3 挑戰: 形狀改變
      • 2.5.4 挑戰: 部分遮蔽
      • 2.5.5 挑戰: 背景混入
    • 2.6 Image classification routine
  • 三. K近鄰
    • 3.1 KNeighbors Overview
    • 3.2 K 值的選擇
    • 3.3 數據庫樣例: CIFAR-10
    • 3.4 如何計算距離
    • 3.5 nearest neighbor code
    • 3.6 超參數
    • 3.7 KNeighbors Summary
  • 四. 線性分類
  • 五. 損失函數
    • 5.1 Overview of Loss Functions
    • 5.2 正則化
    • 5.3 Loss Function Ultimate Edition
  • 六. Softmax 分類器
    • 6.1 Sigmoid函數
    • 6.2 Softmax 分類器概述
  • 七. 最優化
    • 7.1 Find the lowest point of the hill
    • 7.2 梯度下降
    • 7.3 學習率
    • 7.4 反向傳播
  • 八. 神經網絡
    • 8.1 神經網絡概述
    • 8.2 激活函數
    • 8.3 數據預處理
    • 8.4 DROP-OUT
  • 參考:

一. 什麼是人工智能

1.1 學習的能力,is the essence of intelligence

1.2 大數據時代,萬物互聯

In fact, the birth of artificial intelligence is more difficult to find,大數據時代的來臨,Greatly accelerated the application of artificial intelligence.

1.3 李世石 VS 阿法狗

4:1 李世石慘敗

二. 神經網絡概述

2.1 人工智能 VS 深度學習

隨著數據規模的增加,The bottleneck of traditional artificial intelligence algorithm will appear,At this point, deep learning algorithms should be selected.

2.2 Tell the story of the pictures

These subtitles are written by a deep learning program

2.3 無人駕駛汽車

  1. 物體檢測
  2. 行人檢測
  3. 標志識別
  4. 速度識別

2.4 黑科技:Image Transfer

Content + Style = Interesting thing

2.5 圖像分類

圖像分類是計算機視覺的核心任務.

Suppose we have a series of tags:狗,貓,汽車,飛機...
How can we tell if the picture below is a cat??

一張圖片被表示成三維數組的形式,每個像素的值從0到255
例如:3001003
(最後的3代表顏色 RGB. R代表red,G代表Green,B代表Black)

There are many distractions in computer vision.

2.5.1 挑戰: 照射角度

2.5.2 挑戰:光照強度

2.5.3 挑戰: 形狀改變

2.5.4 挑戰: 部分遮蔽

2.5.5 挑戰: 背景混入

Background mixing is the most troublesome situation at present

2.6 Image classification routine

  1. 收集數據並給定標簽
  2. 訓練一個分類器
  3. 測試,評估

三. K近鄰

3.1 KNeighbors Overview


對於未知類別屬性數據集中的點:

  1. 計算已知類別數據集中的點與當前點的距離
  2. 按照距離依次排序
  3. 選取與當前點距離最小的K個點
  4. 確定前K個點所在類別的出現概率
  5. 返回前K個點出現頻率最高的類別作為當前點預測分類.

概述:
KNN 算法本身簡單有效,它是一種lazy-learning 算法.
分類器不需要使用訓練集進行訓練,訓練時間復雜度為0.
KNN 分類的計算復雜度和訓練集中的文檔數目成正比,也就是說,如果訓練集中文檔總數為n,那麼KNN 的分類時間復雜度為O(n).

3.2 K 值的選擇

距離度量和分類決策規則是該算法的三個基本要素

問題:
該算法在分類時有個主要的不足是,當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K 個鄰居中大容量類的樣本占多數

解決:
不同的樣本給予不同權重項

3.3 數據庫樣例: CIFAR-10

10類標簽
50000個訓練數據
10000個測試數據
大小均為32*32

3.4 如何計算距離

測試結果:
准確率較低

3.5 nearest neighbor code

3.6 超參數

3.7 KNeighbors Summary

問題:

  1. 對於距離如何設定?
  2. 對於K近鄰的K該如何選擇?
  3. 如果有的話,其它的超參數該怎麼設定呢?

交叉驗證:

The right way to pick hyperparameters:

  1. The right way to pick hyperparameters是:將原始訓練集分為訓練集和驗證集,我們在驗證集上嘗試不同的超參數,最後保留表現最好那個.

  2. 如果訓練數據量不夠,使用交叉驗證方法,它能幫助我們在選取最優超參數的時候減少噪音.

  3. 一旦找到最優的超參數,就讓算法以該參數在測試集跑且只跑一次,並根據測試結果評價算法.

  4. 最近鄰分類器能夠在CIFAR-10上得到將近40%的准確率.該算法簡單易實現,但需要存儲所有訓練數據,並且在測試的時候過於耗費計算能力.

  5. 最後,我們知道了僅僅使用L1和L2范數來進行像素比較是不夠的,圖像更多的是按照背景和顏色被分類,而不是語義主體分身.

整體步驟:

  1. 預處理你的數據:對你數據中的特征進行歸一化(normalize),讓其具有零平均值(zero mean)和單位方差(unit variance).

  2. 如果數據是高維數據,考慮使用降維方法,比如PCA.

  3. 將數據隨機分入訓練集和驗證集.按照一般規律,70%-90% 數據作為訓練集.

  4. 在驗證集上調優,嘗試足夠多的k值,嘗試L1和L2兩種范數計算方式.

四. 線性分類

Score for each category

得分函數:

實例:
0.256 - 0.5231 + 0.124 + 2.02 + 1.1 = -96.8

五. 損失函數

5.1 Overview of Loss Functions

從上例可以看到,The final score is not ideal,There is a large difference between the predicted value and the actual value,This introduces a loss function.

從上圖可以看出,The worse the model evaluation is, the worse,The larger the value of the loss function is.

損失函數:

According to the loss function of the above figure,結合下圖的x , w1, w2
會出現 f(x,w1) = f(x,w2)
但是w1Just set the weight value for a variable,而w2weights are set for all variables,Although the score is the same model,But theoretically adding more variables to the model is a better approach.


5.2 正則化

為了解決上面提出的問題,So the regularization penalty term is introduced
understandable understanding λ 就是 w 2 w^2 w2
y(x,w1) = 11 = 1
y(x,w2) = 0.25
0.25 + 0.250.25 + 0.250.25 + 0.25*0.25 = 0.25
此時y(x,w2) The loss function is less thany(x,w1),解決了上面的問題.

5.3 Loss Function Ultimate Edition

六. Softmax 分類器

Softmax 分類器 是 多類別分類,SoftmaxThe output is the probability.

6.1 Sigmoid函數

Sigmoid是符號函數:

x取值范圍是(-∞,+∞),而y的取值范圍是[0-1]
Just our probability values range too[0-1],So it can be matched.

6.2 Softmax 分類器概述

Softmax的輸出(歸一化的分類概率)

損失函數:交叉熵損失(cross-entropy loss)


The picture above is calledsoftmax函數

其輸入值是一個向量,向量中元素為任意實數的評分值

輸出一個向量,其中每個元素值在0到1之間,且所有元素之和為1

七. 最優化

Rough idea:

得到的結果:

7.1 Find the lowest point of the hill

The first position is random,then iterates,找到最低點

跟隨梯度:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-IYJswv5W-1659234249640)(https://upload-images.jianshu.io/upload_images/2638478-2962a7e9f53e5658.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

7.2 梯度下降



Bachsize通常是2的整數倍(32,64,128)


上圖是 while training the networkLOSSValue the visualization results.

7.3 學習率

while training the networkLOSSValue the visualization results

7.4 反向傳播

The result of the function run is biased from the validation set(損失函數大),At this point, the feedback results can be,Adjust weight parameters,盡可能的將 The value of the loss function becomes smaller.




加法門單元:均等分配
MAX門單元:給最大的
乘法門單元:互換的感覺

八. 神經網絡

8.1 神經網絡概述

The important role of regularization term in neural network

The more neurons,The more able to express complex models

8.2 激活函數

The activation function is used to solve Problems with non-linear relationships between predicted outcomes and variables.

The initial activation function isSigmoid,But he will have a problem of gradient disappearance.

So a new activation function is introducedReLUctant
當x<=0的時候,y=0
當x > 0 的時候,y=x

8.3 數據預處理

All-zero value initialization?

8.4 DROP-OUT

The picture on the left is fully connected,模型效果更優,But the model is also more complex,計算量也大.
So there is the picture on the rightDROP-OUT,Remove some unimportant connections,While ensuring the model effect,Minimize unnecessary computation.

參考:

  1. https://study.163.com/course/introduction.htm?courseId=1003590004#/courseDetail?tab=1

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved