机器学习、深度神经网络的认识与结论
2015-12-07 20:39
387 查看
0. 深度神经网络的分类
General DLFC:Fully Connected
Sequence Models:
1D 数据
RNN、LSTM
Image
2D、3D
CNN
Unsupervised Learning
Reinforcement Learning
1. iteration vs epoch
iteraton:迭代次数,表达的是样本内部,当分类精度达到饱和或者叫分类精度收敛时,迭代停止,最终执行的迭代次数是不定的。epoch:表达的是样本间,进行一次epoch,对全体样本进行一次学习与训练。当然样本与样本都是相同,也即使用相同样本进行的训练。epoch的次数是固定的,除非发生early stopping。
反映在代码中:
while epoch < epochs: # for j in range(epochs): epoch += 1 for mini_batch_index in range(n_train_batches): iter = (epoch-1)*n_train_batches + mini_batch_index # 迭代次数以mini_batch为单位
2. 关于validation_data
机器学习(监督学习)有关的数据形式:training data
test data
validation data
Instead of using the test_data to prevent overfitting(避免模型过于复杂), we will use the validation_data.
也即我们使用validation_data避免过拟合,而不是使用test_data。
我们不仅通过validation data的使用避免过拟合,更一般地,我们使用validation data进行超参的选择。
3. validation data 与 early stopping
我们在validation data上所做的工作和在test data上做的工作是一样的,那就是在每次epoch(一次epoch,表示对全部数据进行一次训练,当然在对全部数据进行训练时也可采用**S**tochastic **G**radient **D**escent的学习方法)结束之时,计算这次的分类精度。一旦在validation data上的分类精度出现了饱和的情况(也即增高不显著),我们就停止训练。这种策略就叫做early stopping。当然在实际中,我们也并非立刻就能知道何时发生精确率的饱和现象。我们将继续对模型的训练,直到我们有足够的自信确定精确率发生饱和。
相关文章推荐
- 神经网络(14)--具体实现:put it together
- 神经网络-损失函数
- Android学习文档之数据提交到网络
- HttpConnection传递中文乱码
- windows网络编程的一些理论
- VMware虚拟机主机模式上网问题
- Angular 学习笔记——$http
- MySQL字符集设置—MySQL数据库乱码问题 本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-01/31531.htm
- mount 网络文件夹
- http 头信息详解
- TCP/IP详解卷1 读书笔记:第十九~二十章 TCP交互数据流和成块数据流
- https://github.com/diogobaeder/pycket
- Java使用HttpURLConnection上传文件
- 网络虚拟化之FlowVisor:网络虚拟层(上)
- windows server 2012R2发起建立TCP连接特别慢的原因
- Android 基础:http网络通信
- POJ 1149 PIGS
- Golang网络游戏协议处理框架
- Android 一个改善的okHttp封装库
- Android下基于Iptables的一种app网络访问控制方案(二)