中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

可以做問卷賺錢的網(wǎng)站免費網(wǎng)站誰有靠譜的

可以做問卷賺錢的網(wǎng)站,免費網(wǎng)站誰有靠譜的,火車頭 wordpress接口,網(wǎng)絡(luò)公司注冊條件文章目錄 權(quán)重初始化方法Xavier初始化(Xavier initialization)Kaiming初始化,也稱為He初始化LeCun 初始化正態(tài)分布與均勻分布Orthogonal InitializationSparse Initializationn_in和n_out代碼實現(xiàn) 權(quán)重初始化方法 Xavier初始化(X…

文章目錄

    • 權(quán)重初始化方法
      • Xavier初始化(Xavier initialization)
      • Kaiming初始化,也稱為He初始化
      • LeCun 初始化
      • 正態(tài)分布與均勻分布
      • Orthogonal Initialization
      • Sparse Initialization
      • n_in和n_out
      • 代碼實現(xiàn)


權(quán)重初始化方法

Xavier初始化(Xavier initialization)

是一種用于初始化神經(jīng)網(wǎng)絡(luò)權(quán)重的方法,也稱為Glorot初始化。更有效地傳播信號并減少梯度消失或梯度爆炸的問題。適用于激活函數(shù)為tanh或sigmoid的情況。

Xavier初始化的計算方法如下:

  1. Glorot(或 Xavier)初始化
    • 適用于激活函數(shù)如sigmoid和tanh。
    • 初始化公式: σ = 2 n in + n out \sigma = \sqrt{\frac{2}{n_{\text{in}} + n_{\text{out}}}} σ=nin?+nout?2? ?
      其中, n in n_{\text{in}} nin? 是輸入單元數(shù), n out n_{\text{out}} nout? 是輸出單元數(shù)。

對于單個神經(jīng)元的權(quán)重w,從均勻分布正態(tài)分布中隨機采樣,具體取決于所選擇的激活函數(shù):

在這里插入圖片描述

  1. 如果使用tanh激活函數(shù),從均勻分布采樣:
    • 采樣范圍:[-sqrt(6 / (n_in + n_out)), sqrt(6 / (n_in + n_out))]
    • 其中n_in是上一層的輸入節(jié)點數(shù)量,n_out是當前層的輸出節(jié)點數(shù)量。

在這里插入圖片描述

  1. 如果使用sigmoid激活函數(shù),從正態(tài)分布采樣:
    • 均值:0
    • 方差:sqrt(2 / (n_in + n_out))
    • 其中n_in是上一層的輸入節(jié)點數(shù)量,n_out是當前層的輸出節(jié)點數(shù)量。

Kaiming初始化,也稱為He初始化

  1. He 初始化
    • 適用于ReLU及其變種(如LeakyReLU)激活函數(shù)。
    • 初始化公式: σ = 2 n in \sigma = \sqrt{\frac{2}{n_{\text{in}}}} σ=nin?2? ?

這種初始化方法主要用于修正線性單元(Rectified Linear Units,ReLU)激活函數(shù)的神經(jīng)網(wǎng)絡(luò)。

與Xavier初始化適用于tanh和sigmoid等S型激活函數(shù)不同,Kaiming初始化專門針對ReLU激活函數(shù)的特性進行優(yōu)化。ReLU是一個常用的非線性激活函數(shù),它在輸入大于零時保持不變,在輸入小于等于零時輸出為零。

Kaiming初始化的計算方法如下:

對于單個神經(jīng)元的權(quán)重w,從均勻分布或正態(tài)分布中隨機采樣,具體取決于所選擇的激活函數(shù):

  1. 如果使用ReLU激活函數(shù),從正態(tài)分布采樣:

    • 均值:0
    • 方差:sqrt(2 / n_in)
    • 其中n_in是上一層的輸入節(jié)點數(shù)量。
  2. 對于帶有ReLU激活的卷積層,可以使用相同的初始化方法,只是需要考慮卷積層的輸入通道數(shù)量(即n_in)。

LeCun 初始化

  • 適用于Sigmoid激活函數(shù)。
  • 初始化公式: σ = 1 n in \sigma = \sqrt{\frac{1}{n_{\text{in}}}} σ=nin?1? ?

正態(tài)分布與均勻分布

  • 使用較小的標準差(如0.01)從正態(tài)分布中采樣權(quán)重。
  • 使用較小的范圍(如-0.01到0.01)從均勻分布中采樣權(quán)重。

Orthogonal Initialization

  • 使用正交矩陣初始化權(quán)重。這種初始化方法對于某些任務(wù)和模型架構(gòu)可能很有益。

Sparse Initialization

  • 將大部分權(quán)重初始化為0,只初始化一小部分非零的權(quán)重。

n_in和n_out

n_inn_out分別表示神經(jīng)網(wǎng)絡(luò)層的輸入節(jié)點數(shù)量和輸出節(jié)點數(shù)量。這些節(jié)點也稱為神經(jīng)元,它們是網(wǎng)絡(luò)的基本組成部分。

  • n_in:代表上一層(前一層)的節(jié)點數(shù)量,也就是當前層的輸入數(shù)量。在神經(jīng)網(wǎng)絡(luò)中,每個神經(jīng)元都會接收來自上一層所有節(jié)點的輸入,這些輸入被加權(quán)和后傳遞給當前神經(jīng)元的激活函數(shù)。因此,n_in指的是上一層與當前層之間的連接數(shù)量。

  • n_out:代表當前層的節(jié)點數(shù)量,也就是當前層的輸出數(shù)量。每個神經(jīng)元會將經(jīng)過激活函數(shù)處理后的結(jié)果傳遞給下一層所有節(jié)點,形成下一層的輸入。因此,n_out指的是當前層與下一層之間的連接數(shù)量。

代碼實現(xiàn)

#include <iostream>
#include <Eigen/Dense>
#include <random>
#include <cmath>Eigen::MatrixXd glorotInitialize(int rows, int cols);
Eigen::MatrixXd heInitialize(int rows, int cols);
Eigen::MatrixXd lecunInitialize(int rows, int cols);
Eigen::MatrixXd normalDistributionInitialize(int rows, int cols, double std_dev=0.01);
Eigen::MatrixXd uniformDistributionInitialize(int rows, int cols, double limit=0.01);
Eigen::MatrixXd orthogonalInitialize(int rows, int cols);
// Sparse Initialization需要額外參數(shù)來確定稀疏度,這里我們使用一個簡化版本,指定一個非零的權(quán)重數(shù)。
Eigen::MatrixXd sparseInitialize(int rows, int cols, int nonZeroCount);//1. **Glorot (Xavier) Initialization**:Eigen::MatrixXd glorotInitialize(int rows, int cols) {std::random_device rd;std::mt19937 gen(rd());double limit = sqrt(6.0 / (rows + cols));std::uniform_real_distribution<> dis(-limit, limit);Eigen::MatrixXd matrix(rows, cols);for(int i = 0; i < rows; i++) {for(int j = 0; j < cols; j++) {matrix(i, j) = dis(gen);}}return matrix;
}//**He Initialization**:Eigen::MatrixXd heInitialize(int rows, int cols) {std::random_device rd;std::mt19937 gen(rd());double std_dev = sqrt(2.0 / rows);std::normal_distribution<> dis(0, std_dev);Eigen::MatrixXd matrix(rows, cols);for(int i = 0; i < rows; i++) {for(int j = 0; j < cols; j++) {matrix(i, j) = dis(gen);}}return matrix;
}//3. **LeCun Initialization**:Eigen::MatrixXd lecunInitialize(int rows, int cols) {std::random_device rd;std::mt19937 gen(rd());double std_dev = sqrt(1.0 / rows);std::normal_distribution<> dis(0, std_dev);Eigen::MatrixXd matrix(rows, cols);for(int i = 0; i < rows; i++) {for(int j = 0; j < cols; j++) {matrix(i, j) = dis(gen);}}return matrix;
}//4. **Normal Distribution Initialization**:Eigen::MatrixXd normalDistributionInitialize(int rows, int cols, double std_dev) {std::random_device rd;std::mt19937 gen(rd());std::normal_distribution<> dis(0, std_dev);Eigen::MatrixXd matrix(rows, cols);for(int i = 0; i < rows; i++) {for(int j = 0; j < cols; j++) {matrix(i, j) = dis(gen);}}return matrix;
}//5. **Uniform Distribution Initialization**:Eigen::MatrixXd uniformDistributionInitialize(int rows, int cols, double limit) {std::random_device rd;std::mt19937 gen(rd());std::uniform_real_distribution<> dis(-limit, limit);Eigen::MatrixXd matrix(rows, cols);for(int i = 0; i < rows; i++) {for(int j = 0; j < cols; j++) {matrix(i, j) = dis(gen);}}return matrix;
}//6. **Orthogonal Initialization**:
Eigen::MatrixXd orthogonalInitialize(int rows, int cols) {// 創(chuàng)建一個隨機矩陣std::random_device rd;std::mt19937 gen(rd());std::normal_distribution<> dis(0, 1);Eigen::MatrixXd randomMatrix(rows, cols);for(int i = 0; i < rows; i++) {for(int j = 0; j < cols; j++) {randomMatrix(i, j) = dis(gen);}}// 使用QR分解獲得正交矩陣Eigen::HouseholderQR<Eigen::MatrixXd> qr(randomMatrix);Eigen::MatrixXd orthogonalMatrix = qr.householderQ();// 如果您需要一個具有特定維度的正交矩陣(例如rows != cols),您可以選擇一個子矩陣return orthogonalMatrix.block(0, 0, rows, cols);
}//7. **Sparse Initialization**:Eigen::MatrixXd sparseInitialize(int rows, int cols, int nonZeroCount) {Eigen::MatrixXd matrix = Eigen::MatrixXd::Zero(rows, cols);std::random_device rd;std::mt19937 gen(rd());std::uniform_real_distribution<> dis(-1, 1);for(int i = 0; i < nonZeroCount; i++) {int r = rand() % rows;int c = rand() % cols;matrix(r, c) = dis(gen);}return matrix;
}
int main() {int rows = 5;int cols = 5;// Glorot InitializationEigen::MatrixXd weights_glorot = glorotInitialize(rows, cols);std::cout << "Glorot Initialized Weights:" << std::endl << weights_glorot << std::endl << std::endl;// He InitializationEigen::MatrixXd weights_he = heInitialize(rows, cols);std::cout << "He Initialized Weights:" << std::endl << weights_he << std::endl << std::endl;// LeCun InitializationEigen::MatrixXd weights_lecun = lecunInitialize(rows, cols);std::cout << "LeCun Initialized Weights:" << std::endl << weights_lecun << std::endl << std::endl;// Normal Distribution InitializationEigen::MatrixXd weights_normal = normalDistributionInitialize(rows, cols);std::cout << "Normal Distribution Initialized Weights:" << std::endl << weights_normal << std::endl << std::endl;// Uniform Distribution InitializationEigen::MatrixXd weights_uniform = uniformDistributionInitialize(rows, cols);std::cout << "Uniform Distribution Initialized Weights:" << std::endl << weights_uniform << std::endl << std::endl;// Sparse Initializationint nonZeroCount = 10; // As an example, set 10 weights to non-zero valuesEigen::MatrixXd weights_sparse = sparseInitialize(rows, cols, nonZeroCount);std::cout << "Sparse Initialized Weights with " << nonZeroCount << " non-zero values:" << std::endl << weights_sparse << std::endl;return 0;
}
http://www.risenshineclean.com/news/8903.html

相關(guān)文章:

  • 深圳建網(wǎng)站哪個公怎樣無貨源開網(wǎng)店
  • 文化廳網(wǎng)站建設(shè)審核報告單百度客服轉(zhuǎn)人工
  • 濟南公司網(wǎng)站建設(shè)體驗式營銷案例
  • 建設(shè)網(wǎng)站產(chǎn)品圖片顯示不全千鋒教育學費多少
  • 網(wǎng)站建設(shè)免費書廣東知名seo推廣多少錢
  • 百度付費推廣seo公司上海
  • 公司注銷網(wǎng)站備案申請表網(wǎng)站推廣和優(yōu)化系統(tǒng)
  • 自己買一臺服務(wù)器做自己的網(wǎng)站市場seo是什么
  • 建設(shè)項目社會招標上那個網(wǎng)站網(wǎng)絡(luò)推廣哪個平臺效果最好
  • 平安建設(shè)宣傳音頻免費下載網(wǎng)站微網(wǎng)站建站平臺
  • 網(wǎng)站建設(shè)后期服務(wù)收費標準口碑營銷的成功案例
  • 網(wǎng)站建設(shè)業(yè)務(wù)員論壇漳州seo網(wǎng)站快速排名
  • 可以做pos機的網(wǎng)站關(guān)鍵詞排名怎么查
  • tripod wordpressseo免費課程視頻
  • 如何做自助網(wǎng)站百度如何收錄網(wǎng)站
  • 沈陽建設(shè)工程信息網(wǎng) 最佳中項網(wǎng)公眾號seo排名優(yōu)化
  • 網(wǎng)絡(luò)服務(wù)器設(shè)備福清市百度seo
  • 國家企業(yè)信用信息公示網(wǎng)官網(wǎng)查詢seo平臺有哪些
  • 網(wǎng)站建設(shè)饣金手指科杰十二西安百度
  • 十大黃臺軟件app下載如何提高搜索引擎優(yōu)化
  • css怎么做響應(yīng)式網(wǎng)站排名優(yōu)化外包公司
  • 凡科建站的怎么取消手機網(wǎng)站怎樣建立自己的網(wǎng)站平臺
  • 哪些網(wǎng)站可以做ppt賺錢域名注冊網(wǎng)
  • stanley工具網(wǎng)站開發(fā)品牌策略
  • 室內(nèi)設(shè)計學校排行榜合肥正規(guī)的seo公司
  • 英文版網(wǎng)站案例廣州營銷課程培訓班
  • 根據(jù)網(wǎng)站日志做seoseo就業(yè)前景
  • 醫(yī)院網(wǎng)站建設(shè)情況百度競價是什么意思?
  • 免費營銷網(wǎng)站制作模板搜索引擎的網(wǎng)址有哪些
  • 溫江建網(wǎng)站免費推廣網(wǎng)站有哪些