对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 ...
随机推荐
- Android-Async-Http 特性简单分析
如下是官方文档描述此库的特点: All requests are made outside of your app’s main UI thread, but any callback logic w ...
- phpstudy APACHE支持.htaccess以及 No input file specified解决方案
APACHE支持.htaccess以及 No input file specified解决方案 你的Apache安装文件夹conf里找到httpd.conf文件 索LoadModule rewrite ...
- 【LuaJIT版】从零开始在 macOS 上配置 Lua 开发环境
前言 这篇文章针对的是基于 LuaJIT 的环境配置.借助于 LuaJIT,Lua 的执行效率可以进一步提升几十倍.如果你不是很清楚自己是需要 Lua 还是 LuaJIT,那么建议你从 LuaJIT ...
- 在微信端使用video标签,播放结束会出现QQ浏览器推荐视频的解决办法(vue)
会出现播放结束显示QQ浏览器推荐视频的原因:(我是vue的项目,而且我是新手,只是单纯的给大家分享一个方法,代码比较low请自动忽略) 因为在x5(QQ浏览器)内核中,把video标签劫持了,只要是检 ...
- HTML知识速递
1.html的定义 超文本标记语言(Hypertext Markup Language,HTML)通过标签语言来标记要显示的网页中的各个部分.一套规则,浏览器认识的规则 浏览器按顺序渲染网页文件,然后 ...
- Python学习--列表和元组
在python中,最基本的数据结构是序列.序列中的每个元素被分配一个序号--即元素的位置,也称为索引.第一个索引是0. python包含6种内建的序列:列表.元组.字符串.Unicode字符串.buf ...
- [转载] http长连接和短连接
转载自http://blog.csdn.net/shine0181/article/details/7799754/ HTTP实现长连接 HTTP是无状态的 也就是说,浏览器和服务器每进行一次HTTP ...
- 图片转换base64数据上传,并且实现预览的简便方法
对于很多新手来说,实现上传图片并且预览功能,都会感到不知所可,然后开始在网站搜索各种各样的图片上传预览插件,但是有的时候我们只是想简单的实现判断格式,以及预览的功能,使用插件的话,会使得项目的资源空间 ...
- Less命名空间
Less命名空间 当我们拥有了大量选择器的时候,特别是团队协同开发时,如何保证选择器之间重名问题?如果你是 java 程序员或 C++ 程序员,我猜你肯定会想到命名空间 Namespaces. Les ...
- Serializable 都这么牛逼了,Parcelable 还要你何用?
一些闲聊 距离上一篇文章似乎又是很久了,看起来也没有很多反馈,催更就更不用说了.哈哈,放弃了. 话说最近公司在招聘一批至少 5 年开发经验的 Android 开发工程师,我也是忙开了花,激动得不行呀. ...