W,b的初始化和几种激活函数
权重W不能全部初始化为0,原因很简单,我们可以自己在本子上推导一下,假设现有一个含有一个隐藏层,隐藏层含有两个神经元初始输入为两个向量的网络,如果权重初始化全部为0,那么,第一层的输出,会和第二层的输出相等,这样我们反向传播更新权重的时候也会发现,两个W始终相等,所以这种初始化的方法行不通,另外再说b,这里得说一下的就是b是可以被初始化为0的,对训练效果并没有多少影响。那么,w,b到底怎样将他们初始化呢,其实可以用随机数的方法将他们初始化。用python来写就是像这样:
W_1 = np.random.randn((2,2))*0.01 b_1 = np.zero((2,1)) W_2 = np.random.randn((1,2))*0.01 b_2 = 0
第一行代码后面乘一个0.01的作用是在为了防止Z过大,而导致梯度下降得太慢,训练速度太慢。
这里牵扯到几种激活函数了
常见的激活函数有四种,我之前还只知道sigmoid。。
1,sigmoid
2,tanh
3,ReLU(线性整流函数)
4,Leaky RU
在知道这个之前,我一直以为sigmoid是最好用的,之后在看了资料之后才知道tanh其实效果比sigmoid好一点,因为依据他的图像,我们不难发现。他的取值范围在[-1,1],隐藏层的输出限定这之间,可以看成是在0值附近分布,均值为0,有归一的效果,所以作为隐藏层的激活函数的话,tanh比sigmoid好,输出的话,一般还是选sigmoid
但是,这两个函数,任何事都有两面,他们也有不好的时候,那就是在Z过大的时候,这两个函数的函数曲线变得很平稳,导致他们梯度下降的很慢,所以这里又来了后面那两个函数,一个是ReLU,他在Z大于0的 时候,斜率都为1,这样就加快了梯度下降的速度,不过,他的缺点也很明显,他在z小于0时候,斜率恒为0,这是LeakyRU就出来了,他的 另外一部分斜率不为0。
总结,一般分类问题中,我们用sigmoid,不过隐藏层一般用tanh,实际中,一般用后面两个,各有优势,具体用哪个,具体问题具体分析
W,b的初始化和几种激活函数的更多相关文章
- easyUI 初始化的两种方式
easyUI 初始化的两种方式: class方式和js方式: <!DOCTYPE html> <html lang="en"> <head> & ...
- 使用GoldenGate初始化的两种方式
在使用OGG开始增量数据的实时复制之前,一般需要对当前的存量数据进行初始化,如果是同构数据库,则可以使用数据库自带的工具完成,比如Oracle DB中的rman, expdp/impdp等. 其实og ...
- js二维数组定义和初始化的三种方法总结
js二维数组定义和初始化的三种方法总结 方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],[& ...
- 一题多解,ASP.NET Core应用启动初始化的N种方案[下篇]
[接上篇]"天下大势,分久必合,合久必分",ASP.NET应用通过GenericWebHostService这个承载服务被整合到基于IHostBuilder/IHost的服务承载系 ...
- [PyTorch]PyTorch中模型的参数初始化的几种方法(转)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本文目录 1. xavier初始化 2. kaiming初始化 3. 实际使用中看到的初始化 3.1 ResNeXt,de ...
- 【jQuery】初始化的三种方法
JQ初始化方法实际上有两种,由于美元符号可以定义 jQuery,那么就有三种方法可以进行初始化操作,根据个人习惯来选择吧! 第一种 $(document).ready(function(){ // j ...
- java中Map和List初始化的两种方法
第一种方法(常用方法): //初始化List List<string> list = new ArrayList</string><string>(); list. ...
- jQuery页面加载初始化的3种方法
jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(functio ...
- IOS-UIIamge初始化的几种方法的比较
一.imageNamed——方法介绍imageNamed:是UIImage的一个类方法,它做的事情比我们看到的要稍微多一些.它的加载流程如 下:1.系统回去检查系统缓存中是否存在该名字的图像,如果存在 ...
随机推荐
- 693. Binary Number with Alternating Bits
static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...
- HMM(隐马尔可夫模型)不断学习中
HMM(隐马尔可夫模型)是用来描述隐含未知参数的统计模型,举一个经典的例子:一个东京的朋友每天根据天气{下雨,天晴}决定当天的活动{公园散步,购物,清理房间}中的一种,我每天只能在twitter上看到 ...
- Codeforces 1098 简要题解
文章目录 前言 A题 B题 C题 D题 E题 传送门 前言 没错因为蒟蒻太菜了这场的最后一道题也咕掉了,只有AAA至EEE的题解233 A题 传送门 题意简述:给出一棵带点权的树,根节点深度为111, ...
- 2019.01.20 bzoj3999: [TJOI2015]旅游(树链剖分)
传送门 树链剖分菜题. 题意不清差评. 题意简述(保证清晰):给一棵带权的树,每次从aaa走到bbb,在走过的路径上任意找两个点,求后访问的点与先访问的点点权差的最大值. 思路: 考虑暴力:维护路径的 ...
- nginx自动启动脚本
#!/bin/bash#nginx - this script starts and stops the nginx daemin # # chkconfig: - 85 15 # descripti ...
- python3.4用函数操作mysql5.7数据库
#!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "blzhu" """ pyt ...
- zk可视化工具
也是无意中接触到zk,搞得有点头大,之前都是通过crt连通服务后,在服务上通过命令去查看节点下的数据的,十分的不方便,后来发现了可视化工具这玩意儿还真的是好用,看节啊点下的数据啥的一目了然,我用过的有 ...
- pageshow和pagehide事件
Firefox和opera有一个特性,往返缓存:可以在用户使用浏览器的后退和前进按钮时加快页面的转换速度,这个缓存不仅保存了页面的数据,还有DOM和JavaScript的状态. 为了更形象的说明bfc ...
- Write Markdown Syntax Online Document with Sphinx and Pandoc
There is no doubt that we have to write doc while we are developing software. But How do you write d ...
- Alpha阶段敏捷冲刺(四)
1.站立式会议 提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 祁泽文:实现了统计的基本按钮和界面. 徐璐琳:找到&q ...