Lec-8 "hello world" from deep learning - Machine learning (台大李宏毅)
本文为台大李宏毅的机器学习入门课程笔记。
第八章: 开始动手搭积木!
重点:
- 介绍Keras
- forward pass
- backward pass
其实用Keras就相当于 theano 和tensorFlow的interface,所以可以直接用~
Step 1 Build Model
- 第二层就不用再强调input了,因为肯定是上一层的输出
- Dense 就是fully connected layer
Step 2 Define loss function
这里可以看到,选择cross entropy作为loss function,当然也可以根据需求去用其他的loss function
Step 3 Training
optimizer其实都是在做gradient descent,有些方法不需要给它learning rate,有些要给.
什么是batch 和 epoch
其实在做优化的时候,并不是真的在最小化total loss,而是把整个training set 划分成好多个batch,这些batch 是随机抽取等量的样本而成。比如总共有100个training data,要把它们分成20个batch,那么每个batch 中就包含随机抽取的不重复的5个training data。
在训练的时候,实际上是先用第一个batch,然后计算在这个batch中的loss,并将参数update;再用第二个batch,再优化一次,update 一次参数……一直到所有batch都用过一遍了,这就叫做一个epoch。
在速度上,发现当batch size越大的时候,速度越快。这个原因是因为用到了GPU,GPU的平行运算对于越大的batch size就会比较有效率。但是它也是有上限,是由硬件的上限来限制的。
其他功能
存储model
evaluation
预测
其中,evaluation有两个维度,第一个维度就是loss(这个loss 是由给定的loss function去计算的),第二个维度是accuracy(正确率)
Keras 2.0
升级之后的keras与原来的有些许不同,但是大体来说流程没有变,就是一些参数的名称变了而已。
Step 1
原来的输出unit个数现在变成units
Step 2
没有变
Step 3
没有变
来直接看李大大手撸的积木,可以瞻仰一下~