台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras

本节课主要讲述了如何利用Keras搭建深度学习模型。Keras是基于TensorFlow封装的上层API,看上去要好用不少啊~~~
用Keras搭建深度学习法模型类似搭积木,直接贴PPT了。

Step 1: Define a set of function


上图中model=Sequential()model=Sequential()的作用是宣告一个model,DenseDense表示全连接层。激活函数的选择很多除了sigmoid外,还有softmax、softsign、relu、tanh、hard_sigmoid和linear.

Step 2: Goodness of function


上图中,损失函数采用交叉熵函数。

Step 3: Pick the best function


优化方法有很多,除了adam外,还有SGD、RMSprop、Adagrad、Adadelta、Adam、Adamax和Nadam.(好多竟然是第一次见,我屮艸芔茻。。。。
x_train是二维参数:第1维是有多少个example(比如:有10000张图片);第2维是每张图片有多少个pixel(比如:一张图有784个pixel)。
y_train是二维参数:第1维是有多少个example(比如:有10000张图片);第2维是label向量(手写数字识别是10维的label向量)。
下图形象地展示了两个参数的维度及含义。

Batch的意义

在深度学习的训练过程中,会将一定数量的example组成一个batch送给模型,让其训练,现在详细解释一下。

batch中example的选择是随机进行的,并且是深度学习框架代劳的。自己只需要定义参数就好。

若一个epoch中有100个batch,则一次epoch后会更新100次参数;20次epoch后会更新2000次参数。
若Batch_size=1,则训练的优化算法就成了随机梯度下降(SGD)。
之前的课程中提到过,SGD算法速度较快,采用的较多。那为何不把所有的batch_size都设为1呢?
再说一说batch_size大小对训练过程的影响。

如上图所示,在相同的时间内,batch_size=1或10,在相同时间内更新参数的次数可以认为相同(上图中例均为50000次)。
但是当batch_size=10时,参数更新的更稳定,而且基于并行计算其计算更快,故而把batch_size设为10了。
batch_size更大时,训练速度更快的原因是GPU的并行计算。并行计算主要是针对矩阵运算而言的。

正如上图中所示:SGD和Mini-Batch两种计算方式后者更快。可以认为并行计算10个example和单独计算1个example的时间相同。
既然batch_size越大,计算速度越快,将其设置的无限大行不行?答:不行。原因有二。其一:若batch_size无限大,GPU无法提取运算。虽然并行计算10个和1个时间差不多,但并行计算10000个就和计算1个不一样了…这属于硬件问题;其二:很容易卡到local minima或鞍点位置,导致训练无法进行。

How to use the trained model


后记:不得不说Keras的确容易用好多啊!!!

台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras相关推荐

  1. 台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding

    台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding

  2. 台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction

    台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction 本博客整理自: http ...

  3. 台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning

    台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning 本博客参考整理自: http://blog.csdn.net/xzy_t ...

  4. 台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep?

    台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep? 本博客整理自: http://blog.csdn.net/xzy_thu/article/detail ...

  5. 台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network

    台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network 本博客主要整理自: http://blog.csdn.net/x ...

  6. 台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning

    台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning 注:本博客主要参照 http://blog.csdn.net/xzy_thu ...

  7. 台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation

    台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation 当网络结构很复杂时,会有大量的参数.∇L(θ)\nabla L(\theta)是百万维的向量 ...

  8. 台大李宏毅Machine Learning 2017Fall学习笔记 (7)Introduction of Deep Learning

    台大李宏毅Machine Learning 2017Fall学习笔记 (7)Introduction of Deep Learning 最近几年,deep learning发展的越来越快,其应用也越来 ...

  9. 台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression

    台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression 做Logistic Regression回归,需要3步. Step 1: Funct ...

最新文章

  1. windows 下搭建python虚拟环境
  2. C++类class和结构体struct区别
  3. 暗时间(一)设计你自己的进度条
  4. mysql 导入主键冲突_MySQL 处理插入过程中的主键唯一键重复值的解决方法
  5. python十分钟教程_简洁的十分钟Python入门教程
  6. 【翻译】Prometheus 2.4.0 新特性
  7. 【宇宙探秘】物理角度分析,蚂蚁从万米高空掉下会摔死吗?
  8. python 识别登陆验证码图片(完整代码)_Python 实现简单图片验证码登录
  9. break and continue;
  10. pandas中replace的用法
  11. 异常处理和代码复用在python自动化运维中的使用(eNSP模拟器)
  12. Springboot集成Activiti7
  13. dsp的ad标志位是什么_DSP简简单单学习之AD采样
  14. zen-cart修改 zencart 模板修改
  15. WIN11右键菜单默认展开
  16. 洛谷P4643 [国家集训队]阿狸和桃子的游戏
  17. 2022年河北专接本计算机高数一考试大纲
  18. 学计算机推荐的平板电脑,适合学生的平板电脑_学生平板推荐2020
  19. SEO之网站标题间隔符
  20. 在windows生成SSH秘钥连接linux远程主机

热门文章

  1. 输入课程信息的C语言代码,[源码和文档分享]基于C语言的课程信息管理系统
  2. waf 防火墙限制_Web攻击分类有哪些?防火墙WAF可以抵御哪些攻击?
  3. php7与mysql相关配置_PHP7连接mysql,文件配置问题
  4. python 使窗口前置
  5. 两台服务器身份验证,OAuth 2 从入门到精通(一) - 身份认证服务器
  6. vue.3.0 dom赋值_Vue3.0的几大新特性
  7. hhvm mysql_Ubuntu 14.10 安装 Nginx + MySQL + HHVM + phpMyAdmin [LNMH]
  8. python一些常用方法_收藏整理的一些Python常用方法和技巧
  9. stl标准模板库_如何在C ++ STL(标准模板库)中使用Pair
  10. python字符串转整数_Python连接字符串和整数