P7选修 深度学习介绍

7. 第 1 讲(选修):深度学习介绍_哔哩哔哩_bilibili

P7选修 深度学习介绍_第1张图片

 P7选修 深度学习介绍_第2张图片

P7选修 深度学习介绍_第3张图片 Pytorch 中训练 DNN 的概述,首先是 Define Neural Network、Loss Function、Optimizer,这三步用到了 torch.nn 和 torch.optim 模块。加载数据主要用到 torch.utils.data.Dataset 和 torch.utils.data.DataLoader 模块。反复进行训练和验证,最后得到模型进行测试
 

P7选修 深度学习介绍_第4张图片 

P7选修 深度学习介绍_第5张图片

 手动设计

P7选修 深度学习介绍_第6张图片

P7选修 深度学习介绍_第7张图片P7选修 深度学习介绍_第8张图片  Layer1 的所有输出都与 Layer2 的所有输入连接,所以叫全连接。
Layer1 的输出给 Layer2,Layer2 的输出给 Layer3,所以叫前馈网络。

 

P7选修 深度学习介绍_第9张图片

 

 P7选修 深度学习介绍_第10张图片

P7选修 深度学习介绍_第11张图片

P7选修 深度学习介绍_第12张图片 

神经网络中的矩阵运算

神经网络的计算可以用矩阵操作来表示,如下图是一个计算例子。

P7选修 深度学习介绍_第13张图片

P7选修 深度学习介绍_第14张图片

P7选修 深度学习介绍_第15张图片 

 一个深度神经网络可以表示成一个函数,它的函数表达式如图所示。写成矩阵运算的好处是可以用 GPU 加速,普通的 GPU 只是做矩阵运算比较快(相比 CPU)。P7选修 深度学习介绍_第16张图片

 可以使用GPU加速 ,矩阵运算

P7选修 深度学习介绍_第17张图片

 P7选修 深度学习介绍_第18张图片

 手写体识别例子

P7选修 深度学习介绍_第19张图片

 清晰度16*16,输入是236维,涂黑的地方是1,没有涂黑的地方就是0,output中每一个y是代表每一个输出数字的概率。

P7选修 深度学习介绍_第20张图片

 P7选修 深度学习介绍_第21张图片

 

P7选修 深度学习介绍_第22张图片

P7选修 深度学习介绍_第23张图片

 自己设计layer

每个neual如何设计

P7选修 深度学习介绍_第24张图片

 P7选修 深度学习介绍_第25张图片

 P7选修 深度学习介绍_第26张图片 P7选修 深度学习介绍_第27张图片

 文字处理 正面情绪负面情绪  

深度学习长久来看,具有一定的优势,只是一下子看起来没有那么显著。

它跟传统方法比起来的差异就没有那么惊人,但是还是有进步的。

能不能自动学level structure?其实是可以的,在经验算法中是可以这样的训,可以自动地找出Networks Stucture。不过还没有普及,比如阿法狗没有用这种方法。

能不能自己去设计network Structure?可不可以不要fully connected?可不可以layer1中地第一个连接到layer2中地第三个(可不可以乱写)?

可以,一个特殊的解法就是Convolutional Neural Network(CNN),

P7选修 深度学习介绍_第28张图片

 二、goodness of function

我们已经完成了第一步Neural Network,下面我们进行第二步goodness of function,即定义一个function地好坏。

在neural network里面怎么决定一组参数它地好坏了?就假设给另一组参数

P7选修 深度学习介绍_第29张图片

 

做手写数字图像辨识,有一张image,跟它地label,这张label告诉我们这是一个mortal class classsification地问题

P7选修 深度学习介绍_第30张图片

所以label1告诉我们说 现在地target是一个10维vector,只有它在第一维对应到地数字1的地方,她的值是1,其他地方是0.

P7选修 深度学习介绍_第31张图片

 那就input这张image的piexl:

P7选修 深度学习介绍_第32张图片

 然后通过neuralwork后

P7选修 深度学习介绍_第33张图片

得到一个output: 称之为y;

P7选修 深度学习介绍_第34张图片

target称之为y\widehat{}:

P7选修 深度学习介绍_第35张图片

 接下来计算y和y\widehat{}之间的cos值:

P7选修 深度学习介绍_第36张图片

 接下来调整netural work参数,让Cross Entropy越小越好。

当然整个training data里面不会只有一笔data,有大堆的data。P7选修 深度学习介绍_第37张图片

 第一笔data计算出C^{^{1}}

第二笔计算出C^{^{2}}.;

第三笔计算出C^{^{3}};

P7选修 深度学习介绍_第38张图片

一直到第n笔:

P7选修 深度学习介绍_第39张图片

 最后将所有的cross  entropy值计算求和:

P7选修 深度学习介绍_第40张图片

 然后就是接下来在function set里面找一个function:它可以minimizes total loss L

P7选修 深度学习介绍_第41张图片

 或者是找一组network parameter:将它写成\theta ^{^{*}}:它可以minimize total loss L

P7选修 深度学习介绍_第42张图片

怎么解这个问题呢?怎么找一个minimize total loss L

 引用的方法就是Gradient Descent

在deep learing中用gradient design和linear regression那边什么都没有差别。

\theta中一大堆参数w1,w2,……b1,……,首先给定初始值0.2,-0.1,……,0.3,……;然后计算偏微分;

P7选修 深度学习介绍_第43张图片

 将偏微分集合起来叫grady:

 有了这些偏微分,就可以更新参数:

P7选修 深度学习介绍_第44张图片

 所有的参数减去learing rate:在图中写的是\mu。然后偏微分乘以它得到一个新的参数,然后计算它的gradient:

P7选修 深度学习介绍_第45张图片

 然后再根据gradient再更新参数

P7选修 深度学习介绍_第46张图片

 然后按照这个计算下去就会得到一组好的参数,就做完network training了。

P7选修 深度学习介绍_第47张图片

P7选修 深度学习介绍_第48张图片 P7选修 深度学习介绍_第49张图片

 为什么要deep learning?

P7选修 深度学习介绍_第50张图片

 越deep越低

P7选修 深度学习介绍_第51张图片

 任何一个N维的Netural都可以用一个hidden layer的neural network来表示,只要这个hidden layer的内容足够多,它就可以表示成任何fuction;

P7选修 深度学习介绍_第52张图片

 P7选修 深度学习介绍_第53张图片

 P7选修 深度学习介绍_第54张图片

P7选修 深度学习介绍_第55张图片 

 

 

你可能感兴趣的:(深度学习李宏毅,深度学习,人工智能,python)