版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
深度学习(一)多层感知器王秋月中国人民大学信息学院Slidesadaptedfromthoseof李宏毅什么是深度学习?【Wikipedia的定义】Deeplearningispartofabroaderfamilyofmachinelearningmethodsbasedonartificialneuralnetworks.人工智能机器学习深度学习MLPCNNRNN深度学习发展简史(一)1943年,WarrenMcCullock和WalterPitts提出第一个脑神经元的抽象模型1958年,FrankRossenblatt基于MCP神经元模型提出第一个感知器学习算法1969年,MarvinMinsky和SeymourPapert出版了《Perceptron》一书,分析了感知器模型的局限性1986年,D.E.Rumerlhart,G.E.Hinton和R.J.Williams发表论文,阐释并推广了反向传播算法(BackPropagation,BP)深度学习发展简史(二)2006年,Hinton等人提出一种可以实现快速学习的深度信念网络(DBN)2009年,GPU被用于训练深度神经网络2012年,AlexNet在ImageNet图像识别竞赛中达到83.6%的Top5精度2015年,微软的ResNet以96.43%的Top5精度,超过人类水平(94.9%)2016年,AlphaGo击败围棋世界冠军LeeSedol2017年,AlphaGoZero以100:0击败AlphaGo2017年,IBM将语音识别错误率降到5.5%(人类5.1%)人脑神经元人工神经网络(ANN)…偏置(bias)权重(weights)神经元(Neuron)………一个简单函数激活函数(Activationfunction)人工神经网络(ANN)神经元(Neuron)1-2-112-114Sigmoid函数0.98权重(weights)偏置(bias)激活函数(Activationfunction)人工神经网络(ANN)不同的连接将产生不同的网络结构
各神经元有不同的权重和偏置机器学习≈寻找一个函数语音识别图像识别下围棋人机会话“Cat”“Howareyou”“5-5”“Hello”“Hi”(用户说)(系统回应)(下一步落子)第一步:构建神经网络第二步:确定学习目标第三步:学习!深度学习三部曲深度学习很简单……第一步:构建神经网络第二步:确定学习目标第三步:学习!深度学习三部曲第二步:定义函数的优度第一步:给出函数集合第三步:选择最优函数全连接前馈网络Sigmoid函数1-11-21-1104-20.980.12全连接前馈网络1-21-1104-20.980.122-1-1-23-14-10.860.110.620.8300-221-1全连接前馈网络1-21-1100.730.52-1-1-23-14-10.720.120.510.8500-22
00这是一个函数.输入向量,输出向量给定网络结构,就定义了一组函数输出层隐含层输入层全连接前馈网络InputOutputLayer1…………Layer2……LayerL…………………………y1y2yM深度即有多个隐含层神经元输出层(多类分类器)…………………………………………y1y2yM输出层隐含层输入层特征抽取替代了特征工程=多类分类器Softmax
案例应用:手写数字识别输入输出28x28=784……墨水→1无墨水→0……y1y2y10每一维表示预测为一个数字的概率是1是2是0……0.10.70.2图像是“2”案例应用:手写数字识别Machine“2”…………y1y2y10是1是2是0……一个函数……输入:784维向量输出:10维向量神经网络输出层隐含层输入层案例应用:手写数字识别InputOutputLayer1…………Layer2……LayerL……………………“2”……y1y2y10是1是2是0……包含一个可用于手写数字识别的函数的集合你需要构建一个神经网络结构以包含一个好的可用于手写数字识别的函数.第一步:构建神经网络第二步:确定学习目标第三步:学习!深度学习三部曲第二步:定义函数的优度第一步:给出函数集合第三步:选择最优函数训练数据准备训练数据:图像及其标签学习目标定义在训练数据之上“5”“0”“4”“1”“3”“1”“2”“9”学习目标28x28=784…………………………墨水→1无墨水→0……y1y2y10y1
值最大学习目标是:……输入:y2
值最大输入:是1是2是0Softmax损失………………………………y1y2y10
“1”……100……损失可以是网络输出值与目标值之间的平方差或交叉熵
目标Softmax尽可能接近一个好的函数应该使所有的训练样例产生的损失尽可能小.给定一组参数整体损失x1x2xRNNNNNN…………y1y2yR
…………x3NNy3
对于所有的训练数据…
整体损失:
尽可能小在函数集中找到使整体损失L最小的一个函数第一步:构建神经网络第二步:确定学习目标第三步:学习!深度学习三部曲第二步:定义函数的优度第一步:给出函数集合第三步:选择最优的函数如何选择最优的函数
枚举所有可能的参数值Layerl……Layerl+1……例如,语音识别:8层,1000个神经元/层1000神经元1000神经元106权重值成百上千万个参数梯度下降法
随机,或者RBM预训练通常已足够好
选取一个初始的w值
梯度下降法
正数负数减小w增大w
梯度下降法
η
称作学习率(learningrate)
重复
梯度下降法
重复
局部极小点整体损失网络参数w的值在平缓处很慢陷入局部极小点
陷入鞍点
局部极小点梯度下降法无法保证全局最小点
不同的起点到达不同的极小点,即不同的结果反向传播算法(Backpropagation)
案例应用:手写数字识别Machine“1”MNIST数据集:/exdb/mnist/28x28Keras:数据加载Keras提供了数据集加载函数:
http://keras.io/datasets/fromkeras.datasetsimportmnist(X_train,y_train),(X_test,y_test)=mnist.load_data()print(X_train.shape)print(X_test.shape)print(y_train.shape)print(y_test.shape)Keras:数据预处理将每个图像矩阵扁平化成一个向量将输入值从[0-255]归一化成[0-1]的值将每个类别值转换成一个10维的0-1向量X_train=X_train.reshape(X_train.shape[0],X_train.shape[1]*X_train.shape[2])X_test=X_test.reshape(X_test.shape[0],X_test.shape[1]*X_test.shape[2])X_train=X_train.astype('float32')X_test=X_test.astype('float32')X_train/=255X_test/=255fromkeras.utilsimportnp_utilsY_train=np_utils.to_categorical(y_train,10)Y_test=np_utils.to_categorical(y_test,10)Kerasy1y2y10……………………Softmax50050028x28第一步:构建神经网络第二步:确定学习目标第三步:学习!fromkeras.modelsimportSequentialfromkeras.layersimportDense,Activationmodel=Sequential()model.add(Dense(500,input_dim=784))model.add(Activation(‘sigmoid'))model.add(Dense(500))model.add(Activation(‘sigmoid'))model.add(Dense(10))model.add(Activation(‘softmax'))model.summary()Keras第一步:构建神经网络第二步:确定学习目标第三步:学习!pile(loss='mean_squared_error',optimizer=‘sgd',metrics=['accuracy'])loss:损失函数如mean_squared_error、categorical_crossentropy…..更多:https://keras.io/losses/optimizer:优化器如sgd、rmsprop、adam……更多:https://keras.io/optimizers/metrics:评价指标更多:https://keras.io/metrics/Keras训练数据(图像)类别标签(数字)第一步:构建神经网络第二步:确定学习目标第三步:学习!model.fit(X_train,Y_train,batch_size=100,epochs=20)后面详细解释小批量优化算法
Mini-batchx1NN……y1
x31NNy31
x2NN……y2
x16NNy16
用第一批数据随机初始化网络参数用第二批数据Mini-batchMini-batch
修改一次参数修改一次参数直到所有批的数据都使用过…一个epoch重复以上过程其实不是最小化整体损失!小批量优化算法
Mini-batchx1NN……y1
x31NNy31
Mini-batch每批里有100个样例数据重复20次model.fit(X_train,Y_train,batch_size=100,epochs=20)用第一批数据用第二批数据
修改一次参数修改一次参数直到所有批的数据都使用过…一个epochKerashttp://keras.io/getting-started/faq/#how-can-i-save-a-keras-model评估和使用训练好的模型:评估:使用:存储和加载训练好的模型:第一步:构建神经网络第二步:确定学习目标第三步:学习!训练好的神经网络score=model.evaluate(X_test,Y_test)print(‘Testloss:',score[0])print(‘Testaccuracy:',score[1])result=model.predict(X_test)完整的程序第14章-手写数字识别.ipynbTestloss:0.089Testaccuracy:0.1495TensorFlow2Keras:/guide/keras/overview深度学习技巧GoodResultsonTestingData?GoodResultsonTrainingData?YESYES深度学习技巧新的激活函数合适的损失函数自适应的学习率、动量Dropout正则化(Regularization)提前终止(EarlyStopping)NONOHardtogetthepowerofDeep…更深一般并不意味着更好!ResultsonTrainingData梯度消失问题更大梯度几乎随机已经收敛学得非常慢学的非常快…………………………………………y1y2yM更小梯度梯度消失问题…………………………………………
……
计算导数的直观方法…
更小梯度LargeinputSmalloutputHardtogetthepowerofDeep…In2006,peopleusedRBMpre-training.In2015,peopleuseReLU.新的激活函数RectifiedLinearUnit(ReLU)更多:https://keras.io/activations/原因:1.快速计算2.符合生物神经元特征3.Infinitesigmoidwithdifferentbiases4.解决梯度消失问题
ReLU0000
ReLU更瘦的线性网络没有小梯度
ReLU–变体
α
也用梯度下降法学习合适的损失函数………………………………y1y2y10损失“1”……100……目标Softmax
平均差交叉熵
哪个更好?
……100=0=0选择合适的损失函数TotalLossw1w2CrossEntropySquareError当使用softmax输出层时,使用交叉熵损失函数/proceedings/papers/v9/glorot10a/glorot10a.pdf
学习率如果学习率太大整体损失在每次修改之后可能并不会降低小心设置学习率η
学习率如果学习率太大小心设置学习率η如果学习率太小训练会太慢整体损失在每次修改之后可能并不会降低学习率
自适应的学习率
导数越小,学习率越大导数越大,学习率越小Adagrad
Adam:RMSProp(改进的Adagrad)+动量难以发现最优的网络参数整体损失网络参数w的值在平缓处很慢陷入局部极小点
陷入鞍点
在物理世界中……动量如何把这一现象加到梯度下降算法中?运动=𝜕𝐿∕𝜕𝑤的负值+动量
动量(Momentum)损失𝜕𝐿∕𝜕𝑤=0仍然不能保证到达全局最优,但增加了一些希望……
动量实际的运动Dropout训练:每次修改参数值前每个神经元有p%的概率退出Dropout训练:每次修改参数值前每个神经元有p%的概率退出训练新的网络网络的结构变了变瘦了!对每个mini-batch,我们重新随机选取退出的神经元Dropout测试:没有dropout如果训练时的退出概率是p%,则所有的权重都乘以(1-p%)
Dropout–直观理解TrainingTestingDropout(腳上綁重物)Nodropout(拿下重物後就變很強)Dropout–直观理解为什么测试时网络的权重应该乘以(1-p)%(dropoutrate)?TrainingofDropoutTestingofDropout
假设退出率是50%
没有退出训练得到的权重
权重乘以1-p%Dropout是一种集成学习集成学习Network1Network2Network3Network4训练一组不同结构的网络TrainingSetSet
1Set2Set3Set4Dropout是一种集成学习集成学习y1Network1Network2Network3Network4Testingdataxy2y3y4averageDropout是一种集成学习训练过程minibatch1……用一个mini-batch训练一个网络网络中的一些参数是共享的minibatch2minibatch3minibatch4M神经元2M可能的网络Dropout是一种集成学习测试数据x测试过程……平均y1y2y3所有的权重乘以1-p%≈y?????示例y1y2y10……………………Softmax50050028x28fromkeras.modelsimportS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大客户经理招聘面试题及回答建议(某大型国企)2025年附答案
- 2026年山西省废水污染物处理行业分析报告及未来发展趋势报告
- 2026年CCD冷却摄像机行业分析报告及未来发展趋势报告
- 2026年中小学教师编制公基真题题库(含答案)
- 2025年7月肺结核与糖尿病共病的治疗管理试题含答案
- (2025年)人力资源考试试题附参考答案
- 2026年安徽淮海实业发展集团面试题及答案
- 2026年试验检测岗前考试试题及答案解析
- 焦作市中站区网格员招聘笔试题库含答案
- 2025年民歌考试试题分析及答案
- 基坑土方回填监理旁站记录表
- 大学生合理膳食与健康
- 多轴加工项目化教程课件 项目二 任务2-1 转动翼的多轴加工
- 【MOOC】电路分析AⅠ-西南交通大学 中国大学慕课MOOC答案
- DB11-T 1894-2021 10kV及以下配电网设施配置技术规范
- AQ/T 2033-2023 金属非金属地下矿山紧急避险系统建设规范(正式版)
- 上海老字号餐饮品牌数字化转型指数研究报告
- 人员密集场所消防安全管理规范
- 新型农业经营主体培育与创新课件
- 免疫调节剂(口腔科临床用药课件)
- 出国留学-话题education英语演讲PPT
评论
0/150
提交评论