【机器学习集训营三期】第八周深度学习 (优秀学员作业展示)


1.试写您对深度学习的理解,以及它与传统机器学习的关系,相同与不同之处。
对深度学习的理解,以及它与传统机器学习的关系
深度学习是机器学习的特定分支,它源于人工神经网络的研究,深度学习模型的典型例子是前馈深度网络和多层感知机,深度学习可以从原始数据中提取较高层次、较为抽象的特征,将原始数据表示为嵌套的层次概念体系,可以通过简单的概念构建复杂的概念。例如,计算机难以理解像素值集合的图像,将一组图像映射到对象标识的函数非常复杂,如果直接处理,学习和评估次映射似乎是不可能的,深度学习将所需的复杂映射分解为一系列嵌套的简单映射(每个由模型的不同层次描述)来解决这一难题。
深度学习vs机器学习
相同点:
两者都属于人工智能范畴,且深度学习是机器学习的分支,两者都属于学习算法;
两者都从经验中学习,从经验数据中提取特征;
两者都包含有监督学习和无监督学习。
不同点:
相对比机器学习,深度学习可以提取更高层次、更为抽象的特征,例如从图像中提取特征,且深度学习涉及的模型复杂度更高;
深度学习解决了那些对机器学习来说不可能完成的任务,例如语音识别、人脸识别;
机器学习有严格的数学、统计学等理论基础,而深度学习在这方面较为缺乏;
两者解决问题的方式不同,深度学习根据层次化的概念体系来理解世界,而每个概念则通过与某些相对简单的概念之间的关系来来定义,层次化的概念可以让计算机构建较简单的概念来学习复杂概念。

2.简要介绍下您了解的keras框架? 以及进行一个任务的基本流程
keras简介
Keras一个深度学习框架,其后端可以用不同的深度学习框架支撑,比如theano、Tensorflow和微软的CNTK,keras最大的特点是为快速实验而生。Keras的核心数据结构是“模型”,模型是一种组织网络层的方式,keras包括两种模型,即序贯(Sequential)模型和函数式(Functional)模型,序贯模型是多个网络层的线性堆叠,也就是“一条路走到黑”,函数式模型接口是用户定义多输出模型、非循环有向模型或具有共享层的模型等复杂模型的途径。
基本流程
1.引入库,初始化“模型架子”(Sequential模型或者Functional模型);
2.利用序贯模型或函数式模型来构建深度学习网络,序贯模型通过add来添加层,指定输入数据的shape;
3.通过compile来编译模型,指定优化器optimizer、损失函数loss和指标列表metrics;
4.把数据灌进来训练(fit),可指定batch_size和epochs;
5.在测试集上评估效果(evaluate)
6.实际预测(predict)

3.工业界在训练深度学习模型时,采用训练方式多为SGD(mini-batch),请简述这种方式较其它方式的优点?
梯度下降算法是使用最为广泛的参数寻优方法,参数的更新有两种方式:
批量梯度下降算法:遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种方法每更新一次参数都要把数据集里的所有样本都看一遍,计算量开销大,计算速度慢,不支持在线学习,这称为Batch gradient descent,批梯度下降。
随机梯度下降算法:每拿到一个样本就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降,stochastic gradient descent。这个方法速度比较快,但是收敛性能不太好,可能在最优点附近晃来晃去,hit不到最优点。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。
小批的梯度下降(mini-batch gradient decent)是为了克服以上两种方法的缺点而采用的是一种折中手段,优点如下:
这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性;
因为批的样本数与整个数据集相比小了很多,减少了计算量。

4. 请简述神经风格中的BP模型的信号正向传播与误差反向传播的过程?
通常说“BP网络”时,一般是指用BP算法训练的多层前馈神经网络。多层前馈神经网络的每层神经元与下一层神经元全互连,神经元之间不存在同层链接,也不存在跨层链接,其中输入层神经元接收外界输入,隐藏层和输出层神经元对信号进行加工,最终结果由输出层神经元输出。
信号正向传播过程
1.初始化网络权重和阈值,每个神经元的每个连接都有一个权重,且每个神经元都有一个相关联的偏倚(bias),偏倚充当阈值,用来改变神经元的活性;
2.训练样本提供给网络的输入层,输入通过输入神经,不发生变化,即,对于输入层神经元来讲,输出值等于输入值;
3.计算隐藏层或输出层的每个神经元的净输入。隐藏层或输出层的每个神经元的每个连接都有一个权重,对于计算隐藏层或输出层某神经元J,连接该神经元的每个输入(该输入来自于上一层的输出)都乘以其对应的权重,然后求和,即得到该神经元的净输入;
4.计算隐藏层或输出层的每个神经元的输出。隐藏层或输出层的每个神经元取其净输入与偏倚的差,然后将激活函数作用于它,得到输出。
误差反向传播过程
BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。
1.计算输出层的神经元的误差(或称目标);
2.计算隐藏层神经元的误差(或称目标);
3.计算输出层神经元的梯度项,并更新权重和阈值。给定学习率,对于输出层某神经元,利用梯度下降算法,以目标的负梯度方向更新该神经元所连接的权重和关联的阈值;
4.计算隐藏层神经元的梯度项,给定学习率,利用梯度下降算法该层神经元的权重和阈值;
5.重复以上步骤直到达到停止条件。

5. 在什么情况下,会使用到早停法earyly stoping? 使用早停法可以防止什么情况发生?
由于神经网络有强大的表示功能,经常容易早于过拟合,当训练误差持续降低,但测试误差却上升的情况下,可使用早停法。使用早停法可以缓解神经网络的过拟合。
早停法(earyly stoping)将数据分成训练集和验证集,训练集用来计算梯度、更新权重和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。

【机器学习集训营 四期】即将开课,>>>http://www.julyedu.com/weekend/train4
线上线下相授课,BAT专家面对面、手把手教学;工业项目实战辅导 + 一对一面试求职辅导,提供一年GPU云实验平台免费使用
扫码试听
机器学习集训营第四期成.png

【实战项目】
实战项目1 - python基本练习题 与 google python实战题
通过完成基本练习题,加深和巩固对python的认识和理解,挑战来自google的python实战题,熟练完成书写python代码解决各种问题。

实战项目2 - pandas综合练习
通过pandas 100题练习,加深对pandas操作的熟悉度,同时通过对Kaggle案例进行数据处理,掌握实际场景下的数据操作工具。

实战项目3 - 大数据分析处理案例
通过对大文件日志的分析,熟悉hadoop,spark写map-reduce处理海量数据的方法,并对电商数据进行处理,get工业界常用大数据技能。

实战项目4 - sklearn建模与使用
手把手带你get scikit-learn机器学习建模重要点借助于整理的简单资料,get迅速上手建模的技能,并学习如何进行模型调优,一步步优化自己的模型。期间的案例包括数个Kaggle与天池案例。

实战项目5 - Xgboost与LightGBM使用
大部分情况下,为了取得好结果,我们会用集成模型,这个部分,我们设计了多个比赛和工业场景,帮助大家熟悉Xgboost和LightGBM的使用,使用树形Boosting模型达到最佳拟合效果,同时又很好地控制过拟合。

实战项目6 - Caffe&Tensorflow实战
这个部分,将获得激动人心的深度学习库Caffe与Tensorflow搭建网络进行训练的全技能。我们将通过一个景点的图像识别transfer learning,到图像检索,到风格转换,一步步带大家学习库的使用,真正做到使用深度学习库解决实际的图像场景。

实战项目7 - 自然语言处理
针对工业界最大的一块应用场景:自然语言处理,设计了一个专题,我们将获取从文本数据抓取,到Spark/Pandas文本数据分析,到可视化,到多种文本特征抽取,到sklearn机器学习建模,到Spark机器学习建模,到利用深度学习建模的全部技能。

实战项目8 - 分类与推荐实战
我们针对电商最常见的推荐系统,设计了这个专题,从音乐数据抓取,到数据分析可视化,到利用协同过滤、隐语义模型、用户序列建模、learning to rank等方式完成一个推荐系统。

实战项目9 - 图像分类与检索
具体的图像分类与检索案例,在电商服装数据集上,进行分类与检索的实验。将获得图像数据预处理,Tensorflow建模与调优,基本图像检索与高级图像检索技能。
已邀请:

要回复问题请先登录注册

返回顶部