对deep learning的第一周调研
下面仅是我的个人认识,说得不正确请轻拍。
(眼下,我仅仅看了一些deep learning 的review和TOM Mitchell的书《machine learning》中的神经网络一章。认识有限。感觉3\4讲得一般。勉强一看。
第五章纯粹是为了做笔记,真的不好表达。看不懂还是看tom的书吧。
)
本文的组织:
1.我对deep learning的整体认识
2.发展简史
3.感知器模型
4.感知器的梯度下降训练方法
5.反向传播算法(BP)
1.我对deep learning的整体认识
deep learning是一类基于人工神经网络的方法总称。
多层神经网络,由输入层、输出层、还有多层隐藏层构成。
一般,在神经网络的输入层输入的是对象的基本表示,隐藏层是对象的还有一种特征表示,低层的隐藏层表示对象的低级特征表示,高层的隐藏层表示对象的高级特征表示,每层的特征表示通过层与层之间系数来表征,神经网络就是从低级特征表示中提取出对象的高级特征的,输出层输出对象的详细类型。拿图像识别的列子来说,迭代训练时,就是从输入层输入图像的像素,然后抽取图像的高级特征,不停地改变神经网络的系数使得输入图像的像素在最后的输出层能够输出图像的正确类型(说的比較牵强)。
2.发展简史
在20世纪40年代,有人依据神经细胞的执行机制提出了感知器模型(单个人工神经元)。到了20世纪60年代,由于单层的感知器模型表征能力不强。研究热度下降。20世纪80年代,有人提出了反向传播算法,实现了多层网络的训练。但一般都是训练3层的网络。由于训练很多其它层时BP就不够用了。人工神经网络,越多层,它的表征能力就越厉害,隐藏层所须要的节点数也就越少。所以人工神经网络的研究又受到限制了。到了2006年,Hinton大神发表了《Deep belief network》这篇文章,提出了分层训练的方法,使得人工神经网络的研究再次火起来。
3.感知器模型
上图就是感知器的最初模型。
它分为输入部分:x1,x2,…,xn和各个输入相应的系数w1,w2,…,wn(亦称权向量)还有阈值w0,以及激活函数o和输出。感知器模型是简单的线性分类模型,当输入的线性组合(w1.x1+w2.x2+…+wn.xn)大于阈值(w0)时,激活函数输出1,否则输出-1。
假设把w0也归为一个输入的系数,那么上图中的公式就能够解释通了。当扔数据进去训练数据,调整好感知器的系数后,感知器就成为一个实用的分类器。例如以下图:激活函数就是那条直线。
感知器模型仅仅能表征线性方差,不能表征非线性函数,注定是要被改进的。
4.感知器的梯度下降训练方法
对感知器的训练的就是学习最合适的系数,使得系数能够最好地表征激活函数,或者说使得感知器相对于某固定的训练样本的误差最小。
用数学来表达是这种:
激活函数表达为:o=w0+w1.x1+…+wn.xn
误差用公式表示。当中,D是训练例子集合,td是训练例子d的目标输出。od是感知器对训练例子d的输出。
那么如今的任务就是调整函数使得E达到最小。
这事实上是一个优化问题。
假设如今仅仅有两个系数w0和w1。那么E和w0和w1的关系例如以下图:
箭头显示该点的梯度的相反方向。指出了在w0和w1平面中沿误差曲面最陡峭的方向。从图中能够看出仅仅要沿着这个方向就能下降就能到误差曲面中误差E最小的那一点。
怎么办?
为了最小化E,从一个随意的初始权向量開始,然后以非常小的步伐改动这个向量。
每一步都沿着误差曲面产生最陡峭下降的方向改动权向量。循环这个过程直到E最小。
梯度求法例如以下图:
每次的改动:当中。
5.反向传播算法(BP)
多个线性单元的连接仍产生线性函数,而我们更希望得到能表征非线性函数的网络。感知器模型是做不到了,可是sigmoid单元能够。sigmoid单元将用作BP算法训练的神经网络的神经元。
与感知器模型不同的是,sigmoid单元的激活函数换了而已。例如以下图
好了。回到BP算法上来。
多层网络,如图:
BP是如何训练多层网络的?
答:还是用梯度下降方法,仅仅只是改进了一下。
BP既然是用梯度下降方法的改进来训练多层网络,那么误差E是如何定义的呢?
答:
当中,outputs是网络输出单元的集合。tkd是训练例子d在第k个输出单元的目标输出值。okd是训练例子在第k个输出单元的实际输出值。对于网络的每一个输出单元(最后一层的单元)k,它的误差项为
对于以上E的定义发问,隐藏层的神经元有目标输出值这么个定义吗?假设没有。那么E有是怎么定义的?
答:对于每一个隐藏单元h。它的误差项为 。由于训练例子仅对网络的输出提供了目标值tk,所以缺少直接的目标值来计算隐藏单元的误差值。因此採取下面间接办法计算隐藏单元的误差项:对受隐藏单元h影响的每一个单元的误差δk进行加权求和。每一个误差δk权值为wkh,wkh就是从隐藏单元h到输出单元k的权值。这个权值刻画了隐藏单元h对于输出单元k的误差应“负责”的程度。
那么。终于每一个权值就能够按这个公式更新了:,当中,
以上说的yita都是学习率。
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
对deep learning的第一周调研的更多相关文章
- 吴恩达《深度学习》-课后测验-第二门课 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)-Week 1 - Practical aspects of deep learning(第一周测验 - 深度学习的实践)
Week 1 Quiz - Practical aspects of deep learning(第一周测验 - 深度学习的实践) \1. If you have 10,000,000 example ...
- 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 1、经常提及的问题
Frequently Asked Questions Congratulations to be part of the first class of the Deep Learning Specia ...
- 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 0、学习目标
1. Understand the major trends driving the rise of deep learning.2. Be able to explain how deep lear ...
- 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 2、10个测验题
1.What does the analogy “AI is the new electricity” refer to? (B) A. Through the “smart grid”, AI i ...
- 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 4、Logistic Regression with a Neural Network mindset
Logistic Regression with a Neural Network mindset Welcome to the first (required) programming exerci ...
- 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 3、Python Basics with numpy (optional)
Python Basics with numpy (optional)Welcome to your first (Optional) programming exercise of the deep ...
- 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第三周:浅层神经网络(Shallow neural networks) -课程笔记
第三周:浅层神经网络(Shallow neural networks) 3.1 神经网络概述(Neural Network Overview) 使用符号$ ^{[
- 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 2、编程作业常见问题与答案(Programming Assignment FAQ)
Please note that when you are working on the programming exercise you will find comments that say &q ...
- 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 0、学习目标
1. Build a logistic regression model, structured as a shallow neural network2. Implement the main st ...
随机推荐
- Selenium WebDriver 中鼠标和键盘事件分析及扩展[转载]
原文:http://www.ibm.com/developerworks/cn/java/j-lo-keyboard/ 概念 在使用 Selenium WebDriver 做自动化测试的时候,会经常模 ...
- NHibernate Criteria中 Restriction与Expression的差别
http://stackoverflow.com/questions/5483393/nhibernate-criteria-restriction-vs-expression 据说是Restrict ...
- 机器学习数学|微积分梯度jensen不等式
机器学习中的数学 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原创文章,如需转载请保留出处 本博客为七月在线邹博老师机器学习数学课程学习笔记 索引 微积分,梯度和Jensen不等式 Tay ...
- 如何优雅的设计React组件
如何优雅的设计 React 组件 如今的 web 前端已被 React.Vue 和 Angular 三分天下,一统江山十几年的 jQuery 显然已经很难满足现在的开发模式.那么,为什么大家会觉得 j ...
- 图片验证码的JAVA工具类
我们平时开发时经常会遇到需要图片验证码,基础的验证码包括了数字.字母.甚至可能有汉字.下面我给出一个简单的工具类. package com..ankang.tony.util; import java ...
- 数组去重+indexOf()应用
说起数组去重大家都不陌生,去重也有好多种方法,这里介绍很好理解的两种. 第一种 首先说一下第一种的逻辑,就是先拿第一个去跟第二个比,再跟第三个比,再跟第四个比--只要发现有相等的,可以用splice( ...
- 在LINQ查询中LINQ之Group By的用法
LINQ定义了大约40个查询操作符,如select.from.in.where.group 以及order by,借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据.Linq有很 ...
- C#自动实现Dll(OCX)控件注册的两种方法
尽管MS为我们提供了丰富的.net framework库,我们的程序C#开发带来了极大的便利,但是有时候,一些特定功能的控件库还是需要由第三方提供或是自己编写.当需要用到Dll引用的时候,我们通常会通 ...
- CocoaPods 安装及使用
1.开启 terminal 2.移除现有 Ruby 默认源 $ gem sources --remove https://rubygems.org/ 3.使用新的源 $ gem sources -a ...
- mysql之ALTER COLUMN、CHANGE COLUMN、MODIFY COLUMN的区别
ALTER COLUMN:设置或删除列的默认值(操作速度非常快) 例子: alter table film alter column rental_duration set default 5; al ...