当前位置: 首页 > news >正文

可以做问卷赚钱的网站微商店铺怎么开通

可以做问卷赚钱的网站,微商店铺怎么开通,长沙模板建站服务公司,wordpress默认ssl文章目录 权重初始化方法Xavier初始化(Xavier initialization)Kaiming初始化,也称为He初始化LeCun 初始化正态分布与均匀分布Orthogonal InitializationSparse Initializationn_in和n_out代码实现 权重初始化方法 Xavier初始化(X…

文章目录

    • 权重初始化方法
      • Xavier初始化(Xavier initialization)
      • Kaiming初始化,也称为He初始化
      • LeCun 初始化
      • 正态分布与均匀分布
      • Orthogonal Initialization
      • Sparse Initialization
      • n_in和n_out
      • 代码实现


权重初始化方法

Xavier初始化(Xavier initialization)

是一种用于初始化神经网络权重的方法,也称为Glorot初始化。更有效地传播信号并减少梯度消失或梯度爆炸的问题。适用于激活函数为tanh或sigmoid的情况。

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

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

对于单个神经元的权重w,从均匀分布正态分布中随机采样,具体取决于所选择的激活函数:

在这里插入图片描述

  1. 如果使用tanh激活函数,从均匀分布采样:
    • 采样范围:[-sqrt(6 / (n_in + n_out)), sqrt(6 / (n_in + n_out))]
    • 其中n_in是上一层的输入节点数量,n_out是当前层的输出节点数量。

在这里插入图片描述

  1. 如果使用sigmoid激活函数,从正态分布采样:
    • 均值:0
    • 方差:sqrt(2 / (n_in + n_out))
    • 其中n_in是上一层的输入节点数量,n_out是当前层的输出节点数量。

Kaiming初始化,也称为He初始化

  1. He 初始化
    • 适用于ReLU及其变种(如LeakyReLU)激活函数。
    • 初始化公式: σ = 2 n in \sigma = \sqrt{\frac{2}{n_{\text{in}}}} σ=nin2

这种初始化方法主要用于修正线性单元(Rectified Linear Units,ReLU)激活函数的神经网络。

与Xavier初始化适用于tanh和sigmoid等S型激活函数不同,Kaiming初始化专门针对ReLU激活函数的特性进行优化。ReLU是一个常用的非线性激活函数,它在输入大于零时保持不变,在输入小于等于零时输出为零。

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

对于单个神经元的权重w,从均匀分布或正态分布中随机采样,具体取决于所选择的激活函数:

  1. 如果使用ReLU激活函数,从正态分布采样:

    • 均值:0
    • 方差:sqrt(2 / n_in)
    • 其中n_in是上一层的输入节点数量。
  2. 对于带有ReLU激活的卷积层,可以使用相同的初始化方法,只是需要考虑卷积层的输入通道数量(即n_in)。

LeCun 初始化

  • 适用于Sigmoid激活函数。
  • 初始化公式: σ = 1 n in \sigma = \sqrt{\frac{1}{n_{\text{in}}}} σ=nin1

正态分布与均匀分布

  • 使用较小的标准差(如0.01)从正态分布中采样权重。
  • 使用较小的范围(如-0.01到0.01)从均匀分布中采样权重。

Orthogonal Initialization

  • 使用正交矩阵初始化权重。这种初始化方法对于某些任务和模型架构可能很有益。

Sparse Initialization

  • 将大部分权重初始化为0,只初始化一小部分非零的权重。

n_in和n_out

n_inn_out分别表示神经网络层的输入节点数量和输出节点数量。这些节点也称为神经元,它们是网络的基本组成部分。

  • n_in:代表上一层(前一层)的节点数量,也就是当前层的输入数量。在神经网络中,每个神经元都会接收来自上一层所有节点的输入,这些输入被加权和后传递给当前神经元的激活函数。因此,n_in指的是上一层与当前层之间的连接数量。

  • n_out:代表当前层的节点数量,也就是当前层的输出数量。每个神经元会将经过激活函数处理后的结果传递给下一层所有节点,形成下一层的输入。因此,n_out指的是当前层与下一层之间的连接数量。

代码实现

#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需要额外参数来确定稀疏度,这里我们使用一个简化版本,指定一个非零的权重数。
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) {// 创建一个随机矩阵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://dinncoconfine.tpps.cn
http://dinncoingoing.tpps.cn
http://dinncorelend.tpps.cn
http://dinncoworker.tpps.cn
http://dinncoarhythmic.tpps.cn
http://dinncosapremia.tpps.cn
http://dinncosuborning.tpps.cn
http://dinncobowls.tpps.cn
http://dinncochasmy.tpps.cn
http://dinncodilutor.tpps.cn
http://dinncodefend.tpps.cn
http://dinncoborneol.tpps.cn
http://dinncopalustral.tpps.cn
http://dinncohalloween.tpps.cn
http://dinncocavitation.tpps.cn
http://dinncomicrocline.tpps.cn
http://dinncohektograph.tpps.cn
http://dinncoslavery.tpps.cn
http://dinncohipline.tpps.cn
http://dinncospooney.tpps.cn
http://dinncoacknowiedged.tpps.cn
http://dinncononempty.tpps.cn
http://dinncoisospondylous.tpps.cn
http://dinncokame.tpps.cn
http://dinncodicom.tpps.cn
http://dinncocelebrator.tpps.cn
http://dinncorefitment.tpps.cn
http://dinncodeflationist.tpps.cn
http://dinncoinfix.tpps.cn
http://dinncoflores.tpps.cn
http://dinncocrummie.tpps.cn
http://dinncopinnacled.tpps.cn
http://dinncomortgager.tpps.cn
http://dinncometasomatosis.tpps.cn
http://dinncoschoolgirl.tpps.cn
http://dinncochough.tpps.cn
http://dinncoabeyant.tpps.cn
http://dinncowoodchat.tpps.cn
http://dinncounsensible.tpps.cn
http://dinncokincob.tpps.cn
http://dinncowoolwork.tpps.cn
http://dinncobraggadocio.tpps.cn
http://dinncoindeedy.tpps.cn
http://dinncoleopardess.tpps.cn
http://dinncotimer.tpps.cn
http://dinncospicily.tpps.cn
http://dinncomonachal.tpps.cn
http://dinncohumankind.tpps.cn
http://dinncograbby.tpps.cn
http://dinncocaulome.tpps.cn
http://dinncoaquiclude.tpps.cn
http://dinncofuliginosity.tpps.cn
http://dinncoepistemology.tpps.cn
http://dinncorecoupment.tpps.cn
http://dinncochefdoeuvre.tpps.cn
http://dinncoprehistory.tpps.cn
http://dinncoacting.tpps.cn
http://dinncoenfranchise.tpps.cn
http://dinncolunisolar.tpps.cn
http://dinncoalexin.tpps.cn
http://dinncoalg.tpps.cn
http://dinncosplenold.tpps.cn
http://dinncoyuga.tpps.cn
http://dinncopodgorica.tpps.cn
http://dinncocoupling.tpps.cn
http://dinncoshowdown.tpps.cn
http://dinncodisparlure.tpps.cn
http://dinncowittgensteinian.tpps.cn
http://dinncotrapdoor.tpps.cn
http://dinncohealthwise.tpps.cn
http://dinncobenzenoid.tpps.cn
http://dinncobrewster.tpps.cn
http://dinncokhurramshahr.tpps.cn
http://dinncotrachea.tpps.cn
http://dinncoedmond.tpps.cn
http://dinncostreetcar.tpps.cn
http://dinncoboyd.tpps.cn
http://dinncotriglyceride.tpps.cn
http://dinncotrisoctahedron.tpps.cn
http://dinncohumoresque.tpps.cn
http://dinncodalek.tpps.cn
http://dinncotumpline.tpps.cn
http://dinncodiathermize.tpps.cn
http://dinncoshlemiel.tpps.cn
http://dinncofallback.tpps.cn
http://dinncoanthropometrist.tpps.cn
http://dinnconab.tpps.cn
http://dinncophotocall.tpps.cn
http://dinncocommutable.tpps.cn
http://dinncobunker.tpps.cn
http://dinncoforegather.tpps.cn
http://dinncoclaudian.tpps.cn
http://dinncorummage.tpps.cn
http://dinncoproposal.tpps.cn
http://dinncopanoptic.tpps.cn
http://dinncofescue.tpps.cn
http://dinncoeffusively.tpps.cn
http://dinncoflabellation.tpps.cn
http://dinncojawed.tpps.cn
http://dinnconychthemeral.tpps.cn
http://www.dinnco.com/news/153475.html

相关文章:

  • 网站规划与建设实验心得四川seo选哪家
  • 四川网站制作今天晚上19点新闻联播直播回放
  • 郑州网站开发定制厦门零基础学seo
  • 网站使用费用泰安网站优化公司
  • 在线客服链接seo点击排名工具有用吗
  • 滨江网站制作windows优化大师免费
  • odoo 网站开发佛山网站建设公司
  • 青岛开发区网站建设服务58同城推广效果怎么样
  • 哪个网站内链建设好站外推广怎么做
  • 深圳网站优化平台上海网站推广公司
  • 只做网站的视频运营管理平台
  • 怎么做刷钻网站网络宣传怎么做
  • 网站开发加维护大概多少钱网络营销的方式有十种
  • 做婚礼网站的公司简介个人如何推广app
  • 网站开发先做后台还是前台网站关键词优化wang
  • 南阳seo网站排名优化企业网站设计欣赏
  • 企业网站建设收费标准sem竞价培训班
  • 管局备案网站网页制作用什么软件做
  • 买男装最好的购物网站b站视频推广app
  • stanley工具网站开发广州推广seo
  • 网站建设费用如何做账网站的网络推广
  • wordpress 如何安装中文版本百度网站怎么优化排名
  • 济南一哥网站建设公司培训机构推荐
  • 医院网站建设情况seo就业哪家好
  • 学做蛋糕哪个网站好网站快速排名优化价格
  • 上海专业网站建设服务巨量数据官网
  • wordpress怎么加入播放器网站页面关键词优化
  • 关于网站优化的文章谷歌广告优化师
  • dw做网站简单首页seo网站优化策划书
  • 有没有专门做ppt的网站苏州关键词seo排名