李宏毅机器学习笔记——08.Keras(Hello_world_of_DL)

现在机器学习的工具进行功能的高度整合,因此一开始说出了用keras——这是一个搭积木的过程。

利用keras从编程实现了机器学习的三个步骤,定义函数、定义lossfuc、求解参数,详细解释了batch和epoch,最后进行了现场show,讲课风格很幽默。

一、几点说明

  1. activation支持的函数有softplus,softsign,relu,tanh, hard_sigmoid,linear等
  2. keras保存model
  3. optimizer,都是基于梯度下降的,选择不同的参数,只是采用不同的方法来觉得learning rate

二、笔记

三、详细笔记

区别:后端是tensor或者theano(微分集),keras是interface(前端)

1525871245865

fully connected layer在keras中用dense表示

1.定义lossfunc

以及算法求解优化方法,这些方法都是基于gradient,大部分具有自适应learning rate的能力。

1525965986972

开始训练,寻找最佳参数,fit函数(类似sklearn),x是(20000,784),20000表示由图片数量,784表示每张图片用28*28=784的像素表示。y用(20000,10),20000表示由图片数量,10表示由10个可能的值,其中只有1个值为1.

1525966170356

2.batch和epoch的理解

顾名思义,batch size表示大小,即是1个mini batch中有多少个example。(假设batch_size=100)。

而其中省略了mini batch的个数,假设为training data数/batch_size,1个mini batch更新1次参数。(假设有20000个数据,那mini batch个数为200个)

epoch个数为重复次数,也即是所有mini batch重复次数,1个epoch要遍历200个mini batch,更新200次参数。

所以后面提到

E.g. 50000 examples

•batch_size = 1, 表示由50000个mini batch,则50000 updates in one epoch,表示SGD

•batch_size = 10, 表示由5000个mini batch,5000 updates in one epoch

batch_size影响性能和速度,因此需要进行调参。batch_size调节适中(更容易收敛),使用10的时候,速度较快。因为使用了并行运算。batch_size不能过大,机器性能更不上,以及表现性能会变差

可以保存model以及作testing

1525967221794

3.新版的keras

1)构造网络架构

可选的激活函数有softplus, softsign, relu, tanh, hard_sigmoid, linear 等

1526398808408

2)配置和训练network

1526399036068

3)预测和评估

1526399199045