• 神经网络(13)--具体实现:random initialization


    Θ应初始化为什么值

    当我们是用logistic regression算法时,将θ初始化为0是可以的;但是如果在神经网络里面,将θ初始化为0是不可行的

    若将Θ初始化为0的后果-the problem of symmetry ways

    当Θ初始化为0后,蓝色线上的两个weights是相等的,红色线上的两个weights也是相等的,绿色线上的两个weights也是相等的,这样a1(2)=a2(2),同样δ1(2)2(2),然后对的两个蓝色线上的Θ求导后值也相等,即经过一次update后,a1(2)仍然与a2(2)相等.假设我们有很多个hidden units,则它们的值都是相等的,这样对于output layer来说,是等同于同一个feature的,会引起很大的冗余,引起的问题称为the problem of symmetry ways。

    Θ应如何初始化-symmetry breaking

    rand(10,11)创建一个10*11的矩阵,其中每个数都是在0到1之间的随机数,这个里面的EPSILON与我们之前讲的做gradient checking时的EPSILON是没有关系的,这里用EPSILON表示只是表示一个很接近于0的初始值。



    总结

    1. 通过将Θ初始化为随机的接近于0的随机数矩阵来break symmetry(对称)。
    2. 先通过gradient check来检查back propagation(这个后面是用来计算导数的)是否正确,如若正确,则初始化Θ,通过gradient descent或者advanced algorithmn来寻找使cost function的值最小的Θ的值。
  • 相关阅读:
    docker部署spring boot并接入skywalking【探索篇】
    转载:如何处理一个CVE漏洞?
    转载:JavaScript利器分享之Proj4js
    转载:geoserver 2.18.0 跨域配置
    转载:如何实现OSM地图本地发布并自定义配图
    wsl2搭建ElasticSearch集群
    测试方法
    测试用例
    软件测试分类
    前端html
  • 原文地址:https://www.cnblogs.com/yan2015/p/5026350.html
Copyright © 2020-2023  润新知