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

没有变

来直接看李大大手撸的积木,可以瞻仰一下~