干货|吴恩达Coursera课程教你学习神经网络二!


上一周的课程中讲了神经网络的结构以及正向传播(feed forward)过程,了解了神经网络是如何进行预测的,但是预测的结果怎么和真是结果进行比较以及发现了错误如何修改还没有提及。

这一周的课程中,介绍了cost function作为结果比较的标准以及backpropagation方法作为错误修改的方式。

1
 Cost Function

Linear regression使用平方差来表示结果之间的差距:

Logistic regression使用negative log来表示结果之间的差距:

Neural network实际上就是k个Logistic regression的一个集合,所以其cost function也是negative log的一个集合。整个网络产生的error其实就是每一个Logistic regression产生的error的和。

2
 Backpropagation

在Logistic regression中,模型是向着error的负梯度方向更新的,所以需要计算cost function的梯度,这在Neural Networks中也是如此,只不过这次的权值θ多了一些,需要一层一层慢慢求解了。

假设神经网络有4层:

先来回顾一下,一条训练数据的正向传播的情况,这次我们不把bias直接加到矩阵中去了,把它拿出来,令为b(i),是一个列向量:

至此,所有的偏导都求完了,总结一下:

3
Gradient Checking

如果梯度计算不正确,那整个模型都错了。最惨的是,在训练了几个小时之后发现梯度算错了。所以梯度计算完之后,需要验算一下对不对。

梯度可以如下约等于:

验算过程如下:

4
Random Initialization

模型中权重和偏置的初始值可以随便设成任何数字,但是设置成什么样直接决定了模型收敛的快慢和程度,进而影响模型的performance。

把权重和偏置初始化为0非常不好。因为在前向传播过程中,全部初始化成0,则结果就是0,在得到残差之后,反向传播过程中,残差根据权重进行分配,因为权重全部为0,所以隐藏层的残差为0,即权重不更新,所以不能全部初始化成0,权重为0的神经元是死掉的,是不会更新的。

另外全部初始化成同样的数字也是不好的,模型将一直以同样的方式更新这些神经元。反向传播过程中,残差根据权重进行分配,因为权重都相同,所以权重的更新也是相同的,所以网络中的每一个神经元都是一样的。

一般从均匀分布中随机初始化权重和偏置,比如:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue预加载动态生成runtime.js_预渲染 prerender-spa-plugin 避坑指南

预渲染原理在webpack打包结束并生成文件后(after-emit hook),会启动一个server模拟网站的运行,用puppeteer(google官方的headless 无头浏览器浏览器)访问指定的页面route,得到相应的html结构&am…

使用 .NET CLI 构建项目脚手架

前言在微服务场景中,开发人员分配到不同的小组,系统会拆分为很多个微服务,有一点是,每个项目都需要单元测试,接口文档,WebAPI接口等,创建新项目这些都是重复的工作,而且还要保证各个…

.net 垃圾回收机制

尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变…

《自然》杂志:中国人越来越沉迷于对着一个叫“区块链”的东西胡言乱语

起初,《自然》杂志以为在2018年春节前后中国发生了一场瘟疫,但很快就改变了这一看法。除了精神亢奋无法入睡,那里的人们身体还算健康。不过,他们越来越沉迷于对着一个叫“区块链”的东西胡言乱语,根本停不下来。因为教…

python if 跳出_Python保留字简单释义

作者:小小程序员链接:https://zhuanlan.zhihu.com/p/87393696来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Guido van Rossum在1991年正式对外发布Python版本,现在已成为最流行的语言…

敏捷个人:提供更多文档下载,并转载一篇敏捷个人读书笔记

这两周一直忙着OpenExpressApp的自动化测试支持了,对于敏捷个人最近在思考作为新手如何学习的问题,后期我会写篇blog与大家分享一下。在敏捷个人项目中我发布了敏捷个人-认识自我,管理自我.pdf,有很多朋友之前看过&…

大数据揭秘:低学历者发财的概率有多大?结果很吃惊

先看两幅图:Table 1: Mean Earnings by Highest Degree Earned, $: 2009 (SAUS, table 232)Table 2: Unemployment Rates by Educational Attainment图一是美国社会收入和最高学历的关系,图二是美国社会失业率和受教育程度的关系,数据来自SAU…

Win10 Terminal + WSL 2 安装配置指南

自从 Windows Terminal 正式发布后就再没有用过 Windows 系统自带的终端了。主要是 Terminal 简洁且灵活,更重要的是支持特殊字体,通过一些简单的配置可以使得终端看起来更舒适养眼。自从 Win 10 有了 Linux 子系统(WSL)&#xff…

如何快速解剖数据背后隐藏的信息

1946年2月16日,是一个值得纪念的日子。在这一天,人类历史上真正意义上的第一台电子计算机诞生了,此后计算机便随着科技的发展以强大的生命力飞速发展着。而作为用来定义计算机程序的形式语言——编程语言也紧跟计算机其后蓬勃发展&#xff0c…

来,Consul 服务发现入个门(一看就会的那种)

前言在微服务架构中,对于一个系统,会划分出多个微服务,而且都是独立开发、独立部署,最后聚合在一起形成一个系统提供服务。当服务数量增多时,这些小服务怎么管理?调用方又怎么能确定服务的IP和端口&#xf…

mysql数据库的安装和配置文件_MySQL 数据库安装与配置详解

目录一、概述MySQL 版本:5.7.17客户端工具:NavicatforMySQL** 二、MySQL 安装**安装条件:如果 Windows Server 2003 在安装.net framework4.0 安装过程中报错: net framework 4.0 安装时提示产生阻滞问题:运行安装程序前&#xff…

Magicodes.IE Excel合并行数据导入教程

说明Magicodes.IE.Excel目前已支持合并行单元格导入,如本篇教程所示。安装包Magicodes.IE.ExcelInstall-PackageMagicodes.IE.Excel添加Dto参考示例代码如下所示:public class MergeRowsImportDto {[ImporterHeader(Name "学号")]public long…

D轮融资1亿美金,6亿美金估值,3位计算机学霸如何带领海归团队创造业内神话?!

顺为资本在创始合伙人雷军及许达来的带领下成功领投了51Talk、丁香园、爱奇艺、一起作业等超级公司有近20家公司估值超过10亿美元如今顺为资本为何愿意投资这家公司?酷家乐6年破6亿美金的公司估值17年全年营收超3亿有着设计师300万这家以家居云设计为核心的创业公司…

Navicat

作为Oracle, MySQL, Sqlite, PostgreSQL的统一客户端,Navicat无疑是最方便简洁的,而且界面非常友好。导入导出支持的格式也很全。 在连Oracle的时候,会报错说字符集不支持。只要手工指定OCI就好,方法如下: 在OCI libra…

分布式链路追踪框架的基本实现原理

目录分布式追踪分布式系统分布式追踪分布式追踪有什么用呢什么是分布式追踪Dapper分布式追踪系统的实现跟踪树和 spanJaeger 和 OpenTracingOpenTracing 数据模型Span 格式TraceOpenTracingJaeger 结构SpanOpenTracing API分布式追踪什么是分布式追踪分布式系统当我们使用 Goog…

mysql外键约束创建及删除_MySQL中的外键的创建,约束和删除

一、外键的创建语法一:后续添加方法alter table 表名 add constraint 约束名 foreign key(当前表中约束的字段) references 主表表名(要约束的字段名);alter table student add constraint fk_class_student foreign key(cls_id) class(cls_id) on update cascade o…

不爱读书怎么办?用这个新奇的方法,熟知137亿年来的地球通史

今天,小木为模友们挑选的小荐货:《地球通史墙书》第一次接触《地球通史》墙书的时候,虽然“地球通史”的概念非常吸引我,但“墙书”的叫法怎么听都像是一个噱头,所以小木一直有些莫名的排斥,直到在小天把试…

测试驱动开发简介

本文节选自《测试驱动的面向对象软件开发》 第1章第4节“测试驱动开发简介” TDD核心的循环是:写一个测试;写一些代码让测试通过;重构代码,使被测试特征的实现尽可能简单。重复这个过程,如图1-1所示。 图1-1基本TDD循环…

在 .NET 中使用 Flurl 高效处理Http请求

简介官方介绍,Flurl是一个现代的,流利的,支持异步的,可测试的,可移植的,URL增强和Http客户端组件。Url构建现在有一个登录的接口,地址如下:https://www.some-api.com/login?nameLee…