TensorFlow 深度学习笔记 Logistic Classification
Logistic Classification
Github工程地址:https://github.com/ahangchen/GDLnotes
欢迎star,有问题可以到Issue区讨论
官方教程地址
About
simple but important classifier
- Train your first simple model entirely end to end
- 下载、预处理一些图片以分类
- Run an actual logistic classifier on images data
- Connect bit of math and code
Detail
Linear Classifier
之所以这样建模,是因为线性公式是最简单的数学模型,仅此而已。
- Input: X (e.g. the pixels in an image)
- Apply a linear function to X
- Giant matrix multiply
- Take inputs as a big vector
- Multiply input vector with a matrix, W means weights
- b means biased term
- Machine learning adjust weights and bias for the best prediction
- Output: Y, predictions for per output class
- Y is a vector, represents the probability of each label
- 好的预测中,正确的label的概率应当更接近1
- 往往得到的Y一开始不是概率,而是一些具体值(scores/logits),所以需要转换,by:
Softmax回归模型:Wikipedia
Softmax
- 代码 soft_max.py:Softmax实现与应用
- input的score差异越大(可以全部乘10试试),则输出的各项label概率差异越大,反之差异越小
- Softmax只关心几个label之间的概率,不关心具体值
- 机器学习是一个让预测成功率升高的事情,因此是一个让score之间差异增大的过程
One hot encoding
正确预测结果应当是只有一个label成立,其他label不成立。这种情况下,预测概率最大的则是最可能的结果。
Example: take this test
- one hot encoding在label很多的情况下not work well,因为output vector到处都是0,很稀疏,因此效率低
- solved by embeddings
- 好处:可以measure我们与理想情况之间的距离(compare two vectors)
分类器输出:[0.7 0.2 0.1] \<=> 与label对应的真实情况:[1 0 0]
Compare two vectors: cross-entropy
D(S, L) != D(L, S)
Remember: Label don't log, for label zero
小结
找到合适的W和b,使得S和L的距离D的平均值,在整个数据集n中最小。
最小化cross-entropy
D的平均值即是Training loss,求和和矩阵相乘是个大数据的活。
两个参数的误差导致一个呈圆形的loss,所以我们要做的就是找到尽量靠近圆心的weight
机器学习问题变成了一个数值优化
- 解决方法之一:Gradient descent,求导
修改参数,检查误差是否变大,往变小的方向修改,直到抵达bottom。
图中weight是二维的,但事实上可能有极多的weight
下一节实践
如果觉得我的文章对您有帮助,请随意打赏~
TensorFlow 深度学习笔记 Logistic Classification的更多相关文章
- Google TensorFlow深度学习笔记
Google Deep Learning Notes Google 深度学习笔记 由于谷歌机器学习教程更新太慢,所以一边学习Deep Learning教程,经常总结是个好习惯,笔记目录奉上. Gith ...
- TensorFlow——深度学习笔记
深度学习与传统机器学习的区别 传统机器学习输入的特征为人工提取的特征,例如人的身高.体重等,深度学习则不然,它接收的是基础特征,例如图片像素等,通过多层复杂特征提取获得. 深度学习.人工智能.机器学习 ...
- TensorFlow 深度学习笔记 卷积神经网络
Convolutional Networks 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Is ...
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 全 ...
- TensorFlow深度学习笔记 循环神经网络实践
转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 加 ...
- TensorFlow 深度学习笔记 逻辑回归 实践篇
Practical Aspects of Learning 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有 ...
- TensorFlow深度学习笔记 Tensorboard入门
转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程: https://ww ...
- TensorFlow 深度学习笔记 从线性分类器到深度神经网络
转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 L ...
- TensorFlow深度学习笔记 文本与序列的深度模型
Deep Models for Text and Sequence 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎st ...
随机推荐
- GDAL的安装和配置(编译proj.4)
1.下载地址 http://trac.osgeo.org/gdal/wiki/DownloadSource 下面是两个版本: http://pan.baidu.com/s/1bntuXER (1.1 ...
- 3D模型制作
agisoft: http://www.agisoft.com/downloads/installer/ http://pan.baidu.com/s/1dDwA3tf http://pan.baid ...
- JS编程最佳实践
最近花了一周时间把<编写可维护的js> 阅读了一遍, 现将全书提到的JS编程最佳实践总结如下, 已追来者! 1.return 之后不可直接换行, 否则会导致ASI(自动分号插入机制)会在r ...
- 使用PHP自动部署GIT代码
最近在使用Coding的代码托管,顺便设置了WebHook自动部署,过程还是挺艰辛的,主要还是没搞懂Linux的权限控制,不过好在弄好了,分享一下获益最深的一篇文章,供大家参考,原文是英文版的,我的英 ...
- flask-script 安装问题
> 昨天开始看 flask,第二章最后提到使用 Flask-Script 支持命令行选项,但是用书上的方法安装却出现了问题. 错误信息: 注意最后两行: Could not find a ver ...
- windows程序设计读书笔记1——创建窗口
第一个win32程序,简单的创建窗口: #include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ...
- Oracle EBS-SQL (BOM-16):检查多层BOM.sql
select rownum seq_num, lpad(to_char(level), decode(level, 1, 1, level + 1), '.') bom_level, bbm.ASSE ...
- struts2配置文件struts.xml的简介
本文在于总结,深入研究有别人写的很好了,也没必要再去写,将在本文后面附上他们的文章地址: 一.struts2的执行过程: 二.struts2的配置文件struts.xml 下面是其三大部分includ ...
- stream~filestream
http://blog.csdn.net/feliciafay/article/details/6157356 http://blog.csdn.net/feliciafay/article/deta ...
- C#调用C++DLL传递结构体数组的终极解决方案
在项目开发时,要调用C++封装的DLL,普通的类型C#上一般都对应,只要用DllImport传入从DLL中引入函数就可以了.但是当传递的是结构体.结构体数组或者结构体指针的时候,就会发现C#上没有类型 ...