对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 ...
随机推荐
- 【转载】SQL注入
"SQL注入"是一种利用未过滤/未审核用户输入的攻击方法("缓存溢出"和这个不同),意思就是让应用运行本不应该运行的SQL代码.如果应用毫无防 ...
- SQL Server 审计
审计(Audit)用于追踪和记录SQL Server实例或数据库中发生的事件,审计主要包括审计对象(Audit)和审计规范(Audit Specification),创建审计首先需要创建一个SQL S ...
- scala读取parquet文件
import org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport org.apache.spark.sql.SQL ...
- C# 4.0 新特性dynamic、可选参数、命名参数等
1.dynamic ExpandoObject熟悉js的朋友都知道js可以这么写 : 1 var t = new Object(); 2 t.Abc = ‘something’; 3 t.Valu ...
- C#实现DirectShow技术开发准备
DirectShow组件在“C:\WINDOWS\system32”目录下的Quartz.dll动态库中,要使C#代码引用COM对象和接口,必须将COM类型库转换为.NET框架元数据,从而有效地创建一 ...
- 浅谈Verilog HDL代码编写风格
消失了好久,没有写文章,也没有做笔记,因为最近再赶一个比赛,时间很紧,昨天周六终于结束了,所以趁着周末这会儿有时间,写点东西,记录下来.首先我学习FPGA才一年多,我知道自己没有资格谈论一些比较深层次 ...
- Django 入门案例开发(中)
昨天已经描述了如何搭建Django的开发环境,今天描述业务流程,具体我们要实现一个什么样的业务: 以下的业务都是假设的(网上书店 页面做的low): 1.用户注册及登录业务: 这是一个网上书店阅读 ...
- ERP中文档权限设置:只能浏览不能下载?如何实现
文档中心的文件夹授权只能是对岗位或者用户授权(这个跟我们的[[url=]用户及权限[/url]]下面的授权方式还不太一样)比如:要将文档中心的文件夹[公司文档]授权给用户A和用户B 授权逻辑: 软件界 ...
- HTML5开发在2017年发展趋势如何?
随着移动互联网行业的飞速发展,人们借助于网络相互传达获取的信息越来越广泛,互联网前端开发中HTML5是最受关注的热点,HTML5让开发者和用户重新的对网页有了新的认识,从浏览器到APP都在受h5带来的 ...
- TFboy养成记 多层感知器 MLP
内容总结与莫烦的视频. 这里多层感知器代码写的是一个简单的三层神经网络,输入层,隐藏层,输出层.代码的目的是你和一个二次曲线.同时,为了保证数据的自然,添加了mean为0,steddv为0.05的噪声 ...