《Neural network and deep learning》学习笔记(一)
Using neural nets to recognize handwritten digits
Learning with gradient descent
对于一个网络,它的代价函数:
\begin{eqnarray} C(w,b) \equiv\frac{1}{2n} \sum_x \| y(x) - a\|^2\end{eqnarray}
其中,w和b为权重和偏置,n为输入样本总数,y(x)为输入样本x所属的类别,也就是groundtruth,a为经过网络计算后得到的向量。另外,C可以称作是二次代价函数,或者均方误差(MSE)。
我们要做的就是尽可能找到一组权重和偏置(w,b)来最小化代价函数,也就是说让预测值越接近groundtruth越好。训练算法采用梯度下降法(gradient descent)。
最小化 C(v)C(v),而 v=v1,v2,…v = v_1,v_2, \ldots,其中用 vv来表示w和b。假设代价函数C有两个分量,v1和v2v1和v2
我们要做的就是找到曲面的最低点,因此要得到C的梯度信息。
\begin{eqnarray} \Delta C \approx \frac{\partial C}{\partial v_1} \Delta v_1 +\frac{\partial C}{\partial v_2} \Delta v_2\end{eqnarray}
注意啊,这里是变化值,不是梯度啊!
然后将上式中的导数部分提出来作为一个向量有: (∂C∂v1,∂C∂v2)T\left(\frac{\partial C}{\partial v_1}, \frac{\partial C}{\partial v_2}\right)^T,那么有:
\begin{eqnarray} \nabla C \equiv \left( \frac{\partial C}{\partial v_1}, \frac{\partial C}{\partial v_2} \right)^T\end{eqnarray} 注意这里就是梯度信息了啊! 然后 v1和v2v_1和v_2也提出来作为一个向量: Δv≡(Δv1,Δv2)T\Delta v \equiv (\Delta v_1, \Delta v_2)^T,然后见证奇迹的时刻到了!
\begin{eqnarray} \Delta C \approx \nabla C \cdot \Delta v\end{eqnarray} 再然后令 Δv=−η∇C\begin{eqnarray}\Delta v = -\eta \nabla C\end{eqnarray},得到:
\Delta C \approx -\eta\nabla C \cdot \nabla C = -\eta |\nabla C|^2 其中, η\eta就是所谓的学习率啦(learning rate)。这样,由于 ∥∇C∥2≥0\| \nabla C \|^2 \geq 0,而且 η\eta为正数,那么就保证了 ΔC≤0\Delta C \leq 0。
\begin{eqnarray} v \rightarrow v' = v -\eta \nabla C\end{eqnarray}按照这种方式逼近全局最小值。
关于learning rate的选取,如果过大会导致 ΔC>0\Delta C > 0,如果过小就会导致 Δv\Delta v变化的太慢。
《Neural network and deep learning》学习笔记(一)相关推荐
- 【web编程技术学习笔记】因特网与万维网简介
目录 Client客户端 Server服务器端 TCP/IP五层协议 IP 查看IP地址的的两种方法 TCP URL 样式一 样式二 DNS URL&DNS HTTP 与因特网有关的组织 IE ...
- 程序员编程技术学习笔记
程序员编程技术学习笔记 看july的博客也有好久了,一直没能好好整理一下自己的学习笔记,开了博客之后更加愿意好好整理一番了.其中不免有些内容在july那里可以找到原文,但是更多的加入了我个人的 ...
- JAVA 网络编程技术学习笔记
目录 一.网络编程基本概念(了解) 1.1 计算机网络 1.2 网络通信协议 1.2.1什么是网络通信协议 1.2.2 OSI七层协议模型 1.2.3网络协议的分层 1.3数据的封装和解封 1.4 I ...
- 《ASP.NET MVC4 WEB编程》学习笔记------Web API 续
目录 ASP.NET WEB API的出现缘由 ASP.NET WEB API的强大功能 ASP.NET WEB API的出现缘由 随着UI AJAX 请求适量的增加,ASP.NET MVC基于Jso ...
- java网络编程技术学习笔记(b站【狂神说Java】网络编程实战讲解)
b站视频链接:[狂神说Java]网络编程实战讲解 文章目录 网络编程 1.1.概述 1.2.网络通信的要素 1.3.IP 1.4.端口 1.5.通信协议 1.6.TCP 文件发送 1.7.UDP 1. ...
- SpringBoot整合第三方技术学习笔记(自用)
SpringBoot整合第三方技术学习笔记 搬运黑马视频配套笔记 KF-4.数据层解决方案 KF-4-1.SQL 回忆一下之前做SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与My ...
- java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)
原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...
- ssm 转发请求_千呼万唤!阿里内部终于把这份SSM框架技术学习笔记分享出来了...
SSM SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项 ...
- 【C#编程基础学习笔记】6---变量的命名
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]6---变量的命名 ----- ...
- 【C#编程基础学习笔记】4---Convert类型转换
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...
最新文章
- python中mode_python中的model模板中的数据类型
- Oracle 被 4000 多名女性员工集体诉讼:因薪资比男性每年少 1.3 万美元
- 9种蔬菜吃不对胜似砒霜
- Spring 学习二-----AOP的原理与简单实践
- 从零开始实现multipart/form-data数据提交
- 【渝粤题库】广东开放大学 微信平台开发与应用 形成性考核 (2)
- Java学习之文件操作
- 蛋疼的strtok函数
- ue4 运行禁用鼠标_从零开始——三:关闭电脑无用服务提高运行速度
- oracle 控制文件在哪里设置_oracle的controlfile控制文件
- WinForm 中自定义文件与自己的应用程序相关联
- [渝粤教育] 西南科技大学 计算机辅助设计 在线考试复习资料2021版
- 教你从零开始学习数据库!
- 银行新一代信息系统项目集群管理实践分享︱秦皇岛银行信息科技部总经理王登峰
- python 横向拼接_python实现横向拼接图片
- 免费下载C++Prime!
- 初识机器学习前导内容_你需要知道的基本概念罗列_以PY为工具 【Python机器学习系列(一)】
- LeetCode简单题643.子数组的最大平均数I
- C语言程序设计摘苹果,陶陶摘苹果(qb编程)怎么做?
- Bat(批处理)文件编写手册(一)