Java教程

李宏毅深度学习——深度学习介绍

本文主要是介绍李宏毅深度学习——深度学习介绍,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Deep Learning近些年来吸引到了很多的关注,并且横跨多领域、横跨多种产品,有非常非常多的应用

深度学习的历史、步骤 

1958年,一开始perception的提出引起了轰动, 有人说可以利用perception来分辨坦克和卡车,但结果是拍摄坦克卡车的日子不同,一天是雨天一天是晴天,perception只能够抓到亮度而已

1980年,把多个perception接在一起

1986年,发现超过3个hidden layer的效果是不好的

1989年,认为1个hidden layer就足够好了,multi—layer perception的名字臭掉了

2006年, 利用RBM(受限玻尔兹曼机)找初始的值,这是一个重大的突破

2009年,知道要用GPU来加速

2011年,开始得到认可

2012年,赢得了一个比赛

在机器学习中,执行一个算法通常要经过遵循以下三个步骤:(1)定义一个函数集;(2)定义函数的好坏;(3)训练参数,得到不同的函数,并选择最好的函数

Deep Learning同样遵循这三个步骤。具体来说,在第一步中,定义的函数集为一个神经网络(neuron network) 。

定义一个函数集

深度学习的结构

如图所示展示了一个神经网络,它是由许多神经元(neuron)组成的一个系统。每一个神经元的参数为:为每个输入分配一个权重wi,一个常数b,一个函数在运算中,每个神经元执行这样的操作:将每个输入xi乘以权重wi后求和,将得到的值加上b作为函数的输入,输出得到的函数值。将这个神经元的输出将作为下个神经元的输入,依次将这些神经元之间进行连接即得到一个神经网络。定义了这些神经元之间的连接方式,也就定义了函数集。

不同的连接方式会形成不同的网络结构

举一个例子来说明神经网络是如何运作的。下图展示了一个简单的神经网络,神经网络的输入为1和-1,第一个神经元对两个输入的权重分别为1和-2,计算1*1+(-1)*(-2)+1=4,将4作为sigmoid函数的输入,输出(4)=0.98。同理计算其他神将元,最后整个神经网络得到的输出为0.62和0.83.

 输入——>蓝色——>红色——<绿色——>输出

全连接前馈网络

最常见的连接方式——Fully Connect Feedforward Network(全连接前馈网络)

全连接前馈神经网络是一种常见的神经网络连接方式,指的是层与层的神经元之间使用全连接的方式连接,即一层中每个神经元的输出会参与到下一层每个神经元的输入。它的输入是一个N维向量,输出是一个M维向量。输入称为Input Layer,输出结果的一层神经元称为Output Layer,中间其他的层称为Hidden Layer,通常将使用了很多Hidden Layer的方法称为Deep Learing。

 

实际上一个neural network在做的事情就是,一个vector乘上matrix+vector,一连串的矩阵运算,gpu可以加速矩阵运算

特征提取取代了特征工程,上图是多分类的问题

举一个小例子(手写数字识别)

input是每一个小方块是否图颜色了,output是不同数字的几率 

中间有几个layer,每个layer有多少个neuron是不收到限制的,那么该如何决定它们呢?

通过经验+试错+直觉 

从机器学习转化为深度学习,重点从特征工程(抽好的feature)转变成了如何design network structure

语音辨识、影像辨识最早使用深度学习 

定义函数的好坏

 loss是y和y_hat的cross entropy

(1)在function set找一个function来minimizes total loss

(2)找network的参数来minimizes total loss

并选择最好的函数

依然是使用梯度下降的办法

 

 有这些方法来算微分,具体不需要知道

为什么要用Deep Learning(多层Hidden  Layer)

一个已经被证实的理论是,一层Hidden Layer就足以模拟出任何函数,那么为什么还要使用Deep Learning呢?当然是因为Deep Learning的效果更好。如图,同一行的数据使用参数的个数是相似的。可以看出,使用多层Layer的效果明显好于只使用一层的。

 只要hidden neurons够多,可以表示成任何一个function

这篇关于李宏毅深度学习——深度学习介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!