深度学习(part1)--机器学习及深度学习基础
學習筆記,僅供參考,有錯必糾
文章目錄
- 深度學習
- 機器學習概述
- 機器學習常用框架--scikit-learn
- 特征處理
- 深度學習原理
- 單感知機
- 多層感知機
- 網絡訓練過程
- 常見激活函數
- 常見損失函數
- 梯度下降
- 深度學習中的3個概念
深度學習
機器學習概述
機器學習常用框架–scikit-learn
- scikit-learn算法地圖
- scikit-learn常用API
sklearn.base:所有估算器的基類;
sklearn.calibration:預測概率的校驗;
sklearn.cluster:該模塊包含了流行的無監督聚類算法;
sklearn.cluster.bicluster:雙聚類算法;
sklearn.covariance:該模塊提供了在給定一組樣本點的情況下穩健地估計特征協方差的方法和算法,協方差估計與高斯圖形模型理論密切相關;
sklearn.cross_decomposition: 交叉分解;
sklearn.datasets: 數據集;
sklearn.decomposition: 該模塊包括各種矩陣分解算法,包括PCA,NMF或ICA. 該模塊的大多數算法可以被視為降維技術;
sklearn.ensemble: 該模塊包含用于分類,回歸和異常檢測的基于集成的方法;
sklearn.exceptions: 該模塊包含scikit-learn中使用的所有自定義警告和錯誤類;
sklearn.feature_extraction:該模塊用于提取原始數據的特征. 它目前包含從文本和圖像中提取特征的方法;
sklearn.feature_selection:該模塊實現了特征選擇算法. 它目前包括單變量濾波器選擇方法和遞歸特征消除算法;
sklearn.gaussian_process:該模塊實現了基于高斯過程的回歸和分類;
sklearn.linear_model:該模塊實現了廣義線性模型. 它包括利用最小角度回歸和坐標下降計算的嶺回歸,貝葉斯回歸,套索和彈性網估計. 它還實現了Stochastic Gradient Descent相關算法;
sklearn.metrics:評價指標. 該模塊包括評分函數,性能指標和成對指標以及距離計算;
sklearn.model_selection:模型選擇. 評估估算器性能,調整估算器的超參數和學習曲線部分;
sklearn.naive_bayes: 樸素貝葉斯. 該模塊主要包含GaussianNB,MultinomialNB和BernoulliNB三種貝葉斯算法;
sklearn.neighbors: 近鄰算法;
sklearn.neural_network: 神經網絡模型. 該模塊包括基于神經網絡的模型;
sklearn.pipeline:管道. 該模塊實現了用于構建復合估計器的實用程序;
sklearn.preprocessing: 預處理和規范化. 該模塊包括縮放,居中,標準化,二值化和插補方法;
sklearn.svm: 支持向量機. 該模塊包括支持向量機算法;
sklearn.tree: 決策樹. 該模塊包括用于分類和回歸的基于決策樹的模型;
sklearn.utils: 工具. 該模塊包括各種工具。
特征處理
對于大多數的機器學習算法和優化算法來說,將特征值縮放到相同區間可以使得獲取性能更好的模型。就梯度下降算法而言,例如有兩個不同的特征,第一個特征的取值范圍為110,第二個特征的取值范圍為110000。在梯度下降算法中,代價函數為最小平方誤差函數,所以在使用梯度下降算法的時候,算法會明顯的偏向于第二個特征,因為它的取值范圍更大。在比如,k近鄰算法,它使用的是歐式距離,也會導致其偏向于第二個特征。
-
常用的特征處理方法
- 歸一化(normalization):通過特征的最大最小值將特征縮放到[0,1]區間范圍內;
- 標準化(standardization):標準化是通過特征的平均值和標準差將特征縮放成 一個標準的正態分布,均值為0,方差為1。
-
sklearn中的標準化以及歸一化方法
標準化:
from sklearn.preprocessing import StandardScaler import numpy as np cps = np.random.random_integers(0, 100, (100, 2)) ss = StandardScaler() std_cps = ss.fit_transform(cps)歸一化:
from sklearn.preprocessing import MinMaxScaler import numpy as np data = np.random.uniform(0, 100, 10)[:, np.newaxis] mm = MinMaxScaler() mm_data = mm.fit_transform(data) origin_data = mm.inverse_transform(mm_data)- sklearn正則化
輸出:
l2: [[ 0.57735027 -0.57735027 0.57735027][ 0.5547002 0. -0.83205029][ 0. 0.70710678 -0.70710678]] l1: [[ 0.33333333 -0.33333333 0.33333333][ 0.4 0. -0.6 ][ 0. 0.5 -0.5 ]]深度學習原理
單感知機
感知機是人工神經網絡中的最小單元,單感知機是最簡單的神經網絡,然而,單感知機無法擬合“異或”運算。
多層感知機
神經網絡又被稱為多層感知機模型。
網絡訓練過程
- 正向傳播
- 反向傳播
- 梯度下降
常見激活函數
- sigmoid函數(Logistic 函數)
特點:(1)它可以將一個實數映射到(0,1)的區間;在特征相差不是特別大時效果比較好.
用法:通常用來做二分.
缺點: 激活函數計算量大(指數運算);反向傳播時容易出現梯度消失(當數據分布在曲線平滑位置時很容易就會出現梯度消失).
- Tanh函數(雙切正切函數)
特點:輸出是以0為中心,取值范圍為[-1,1];以認為是Sigmoid 函數的改進版.
用法:實際中tanh會比sigmoid更常用;循環神經網絡中常用;常用于二分類問題.
缺點:梯度消失;在曲線幾乎水平的區域學習非常的慢.
- ReLU函數(矯正的線性單元)
特點:大于0的部分輸出為y=xy=xy=x,小于0的部分輸出為0;ReLU對于梯度收斂有巨大加速作用,只需要一個閾值就可以得到激活值,從而節省計算量.
用法:深層網絡中隱藏層常用.
缺點:容易得到0值,丟失該神經元對應的相關信息.
- SoftMax
特點: 當有多個輸出的時候通過概率求得那個輸出能夠勝出.
用法: 用于多分類神經網絡輸出;用于多分類問題的最后一層.
缺點:基本只用于多分類問題.
- 線性激活函數(linear函數)
特點: 輸入是什么,輸出就是什么;沒有做任何 非線性變換.
用法: 僅僅用于線性回歸.
缺點:沒有非線性變換,無法得到非線性特征;無法建立非線性模型.
常見損失函數
- Zero-one Loss(0-1損失)
- 交叉熵損失函數
- 均方誤差(MSE)
梯度下降
-
批量梯度下降: 每次迭代使用全部樣本.
-
隨機梯度下降:每次迭代使用1個樣本.
-
小批量梯度下降:每次迭代使用b個樣本(b按照情況設置,一般為10).
深度學習中的3個概念
- Epoch
一個Epoch指將所有數據送入網絡中完成一次前向計算及反向傳播的過程,由于一個Epoch常常太大,計算機無法負荷,通常會將它分成幾個較小的batches。
那么,為什么需要多個epoch呢?在訓練時,將所有數據選代訓練一次是不夠的,需要反復多次才能擬合收斂。
- Batch Size
所謂Batch就是每次送入網絡中訓練的一部分數據,而Batch Size就是每個batch中訓練樣本的數量。
- Iteration
所謂Iteration就是完成一次epoch所需的batch個數。
總結
以上是生活随笔為你收集整理的深度学习(part1)--机器学习及深度学习基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习实验中的编程技术(part4)-
- 下一篇: 魔兽世界怀旧服黑铁残油在哪刷 黑铁残油位