下面仅是我的个人认识,说得不正确请轻拍。

(眼下,我仅仅看了一些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 = $('

    ').addClass('pre-numbering').hide();
    $(this).addClass('has-numbering').parent().append($numbering);
    for (i = 1; i ').text(i));
    };
    $numbering.fadeIn(1700);
    });
    });

对deep learning的第一周调研的更多相关文章

  1. 吴恩达《深度学习》-课后测验-第二门课 (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 ...

  2. 课程一(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 ...

  3. 课程一(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 ...

  4. 课程一(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 ...

  5. 课程一(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 ...

  6. 课程一(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 ...

  7. 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第三周:浅层神经网络(Shallow neural networks) -课程笔记

    第三周:浅层神经网络(Shallow neural networks) 3.1 神经网络概述(Neural Network Overview) 使用符号$ ^{[

  8. 课程一(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 ...

  9. 课程一(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 ...

随机推荐

  1. MySQL锁学习之UPDATE

    ##==============================================================================## 学MySQL也蛮长时间了,可一直停 ...

  2. this和static关键字

    this和static关键字 一.关键字this this表示对象自身的引用 this的作用 1.用来区别当前类对象的成员与参数成员 2.用来调用其它构造方法 构造方法: 1.每个类默认情况都有一个默 ...

  3. CLR之委托的揭秘(二)

    杂谈 在开始真正的代码之前,分析一下上周的一些工作内容,发现自己在代码上还是有很多小毛病需要纠正和去更改的,首先之前一直疏于文档的整理,几乎很少去写文档,第二对于接口开发过程中缺少一定的严谨性,很多问 ...

  4. C++语言中的类型(二)

    --分门别类是简化事物最有效的方式. C++语言的强大能力的体现在对程序员自定义数据类型的支持.C++语言主要的一个设计目标就是让程序员自定义的数据类型像内置类型一样好用. 一.自定义数据类型 数据类 ...

  5. Python [习题] 字典扁平化

    习题: 将以下字典扁平化,输出为 target 字典格式source = {'a': {'b': 1, 'c': 2}, 'd': {'e': 3, 'f': {'g': 4}}}target = { ...

  6. 开始python成长之路

    因为某种特殊原因很不幸的得了脱髓鞘 正要去实习 大展身手 甚至公司都选好了 可就在这个节骨眼..得了传说中的脱髓鞘.经过一年的修养 我决定还是要站起来 毕竟一生的时间很长 这一段时间 我都在玩游戏赚钱 ...

  7. 关于IDEA无法引入包和类的情况

    原因:修改一些包结构后,会出现无法将类引入的情况. 通过清理缓存解决:

  8. C语言之循环次数

    #include<stdio.h>int main(){int num,count=0,i=0,ret=0;scanf("%d",&num);while(num ...

  9. Geth控制台使用及Web3.js使用实战

    在开发以太坊去中心化应用,免不了和以太坊进行交互,那就离不开Web3. Geth 控制台(REPL)实现了所有的web3 API及Admin API, 使用好 Geth 就是必修课.结合Geth命令用 ...

  10. 初学时遇到的小问题Your content must have a ListView whose id attribute is 'android.R.id.list'

    问题提出 错误提示:Your content must have a ListView whose id attribute is 'android.R.id.list' 关于解决Your conte ...