TensorFlow深度学习笔记 从线性分类器到深度神经网络
2016-07-10 22:52
721 查看
Github工程地址:https://github.com/ahangchen/GDLnotes
欢迎star,有问题可以到Issue区讨论
官方教程地址
视频/字幕下载
如果有N个Class,K个Label,需要调整的参数就有(N+1)K个
Linear Model不能应对非线性的问题
Linear Model的好处
GPU就是设计用于大矩阵相乘的,因此它们用来计算Linear Model非常efficient
Stable:input的微小改变不会很大地影响output
求导方便:线性求导是常数
我们希望参数函数是线性的,但整个model是非线性的
所以需要对各个线性模型做非线性组合
最简单的非线性组合:分段线性函数(RELU)
神经网络并不一定要完全像神经元那样工作
Chain Rule:复合函数求导规律
Lots of data reuse and easy to implement(a simple data pipeline)
Back propagation
计算train_loss时,数据正向流入,计算梯度时,逆向计算
计算梯度需要的内存和计算时间是计算train_loss的两倍
增加linear层,layer deeper
Performance: few parameters by deeper
随层级变高,获得的信息越综合,越符合目标
今天我们才有高效的大数据训练方法:Better Regularization
难以决定适应问题的神经网络的规模,因此通常选择更大的规模,并防止过拟合
L2 regularization
在计算train loss时,增加一个l2 norm作为新的损失,这里需要乘一个β(Hyper parameter),调整这个新的项的值
Hyper parameter:拍脑袋参数→_→
l2模的导数容易计算,即W本身
从一个layer到另一个layer的value被称为activation
将一个layer到另一个layer的value的中,随机地取一半的数据变为0,这其实是将一半的数据直接丢掉
由于数据缺失,所以就强迫了神经网络学习redundant的知识,以作为损失部分的补充
由于神经网络中总有其他部分作为损失部分的补充,所以最后的结果还是OK的
More robust and prevent overfit
如果这种方法不能生效,那可能就要使用更大的神经网络了
评估神经网络时,就不需要DropOut,因为需要确切的结果
可以将所有Activation做平均,作为评估的依据
因为我们在训练时去掉了一半的随机数据,如果要让得到Activation正确量级的平均值,就需要将没去掉的数据翻倍
原文链接:http://www.jianshu.com/p/6d2756d33b67
欢迎star,有问题可以到Issue区讨论
官方教程地址
视频/字幕下载
Limit of Linear Model
实际要调整的参数很多如果有N个Class,K个Label,需要调整的参数就有(N+1)K个
Linear Model不能应对非线性的问题
Linear Model的好处
GPU就是设计用于大矩阵相乘的,因此它们用来计算Linear Model非常efficient
Stable:input的微小改变不会很大地影响output
求导方便:线性求导是常数
我们希望参数函数是线性的,但整个model是非线性的
所以需要对各个线性模型做非线性组合
最简单的非线性组合:分段线性函数(RELU)
Neural network
用一个RELU作为中介,一个Linear Model的输出作为其输入,其输出作为另一个Linear Model的输入,使其能够解决非线性问题神经网络并不一定要完全像神经元那样工作
Chain Rule:复合函数求导规律
Lots of data reuse and easy to implement(a simple data pipeline)
Back propagation
计算train_loss时,数据正向流入,计算梯度时,逆向计算
计算梯度需要的内存和计算时间是计算train_loss的两倍
Deep Neural Network
Current two layer neural network:
优化:
优化RELU(隐藏层), wider增加linear层,layer deeper
Performance: few parameters by deeper
随层级变高,获得的信息越综合,越符合目标
About t-model
t-model只有在有大量数据时有效今天我们才有高效的大数据训练方法:Better Regularization
难以决定适应问题的神经网络的规模,因此通常选择更大的规模,并防止过拟合
Avoid Overfit
Early Termination
当训练结果与验证集符合度下降时,就停止训练Regulation
给神经网络里加一些常量,做一些限制,减少自由的参数L2 regularization
在计算train loss时,增加一个l2 norm作为新的损失,这里需要乘一个β(Hyper parameter),调整这个新的项的值
Hyper parameter:拍脑袋参数→_→
l2模的导数容易计算,即W本身
DropOut
最近才出现,效果极其好从一个layer到另一个layer的value被称为activation
将一个layer到另一个layer的value的中,随机地取一半的数据变为0,这其实是将一半的数据直接丢掉
由于数据缺失,所以就强迫了神经网络学习redundant的知识,以作为损失部分的补充
由于神经网络中总有其他部分作为损失部分的补充,所以最后的结果还是OK的
More robust and prevent overfit
如果这种方法不能生效,那可能就要使用更大的神经网络了
评估神经网络时,就不需要DropOut,因为需要确切的结果
可以将所有Activation做平均,作为评估的依据
因为我们在训练时去掉了一半的随机数据,如果要让得到Activation正确量级的平均值,就需要将没去掉的数据翻倍
原文链接:http://www.jianshu.com/p/6d2756d33b67
相关文章推荐
- HTTP返回码总结
- HttpClient--BasicNameValuePair
- Xcode7网络请求报错App Transport Security has blocked a cleartext HTTP
- 使用jsoup获取网络数据
- HTTP/HTTPS自动加密上网方案
- 嵌入式 Linux网络编程(三)——UDP编程模型
- error: The requested URL returned error: 403 Forbidden while accessing https
- 嵌入式 Linux网络编程(二)——TCP编程模型
- http://ftp.gnu.org/gnu/ http://ftp.gnu.org/gnu/libc/
- http://ftp.gnu.org/gnu/ http://ftp.gnu.org/gnu/libc/
- Android第5天,httpclient,多线程断点续传,进度条,xUtils
- TCP链接中主动断开链接netstat观察可能出现的状态流转是:----腾讯2016研发工程师在线模拟笔试题
- 计算机网络(10)-----TCP的拥塞控制
- 网络框架-volley
- 网络状态监测
- TCP、UDP、HTTP、SOCKET
- 网络编程(学习整理)---1--(Tcp)实现简单的控制台聊天室
- 405: HTTP method GET is not supported by this URL
- Android中的HttpURLConnection网络请求方式
- 嵌入式 Linux网络编程(一)——Socket网络编程基础