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,很稀疏,因此效率低

  • 好处:可以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的更多相关文章

  1. Google TensorFlow深度学习笔记

    Google Deep Learning Notes Google 深度学习笔记 由于谷歌机器学习教程更新太慢,所以一边学习Deep Learning教程,经常总结是个好习惯,笔记目录奉上. Gith ...

  2. TensorFlow——深度学习笔记

    深度学习与传统机器学习的区别 传统机器学习输入的特征为人工提取的特征,例如人的身高.体重等,深度学习则不然,它接收的是基础特征,例如图片像素等,通过多层复杂特征提取获得. 深度学习.人工智能.机器学习 ...

  3. TensorFlow 深度学习笔记 卷积神经网络

    Convolutional Networks 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Is ...

  4. TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络

    转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 全 ...

  5. TensorFlow深度学习笔记 循环神经网络实践

    转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 加 ...

  6. TensorFlow 深度学习笔记 逻辑回归 实践篇

    Practical Aspects of Learning 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有 ...

  7. TensorFlow深度学习笔记 Tensorboard入门

    转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程: https://ww ...

  8. TensorFlow 深度学习笔记 从线性分类器到深度神经网络

    转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 L ...

  9. TensorFlow深度学习笔记 文本与序列的深度模型

    Deep Models for Text and Sequence 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎st ...

随机推荐

  1. gcc常用命令集

    引用:http://developer.51cto.com/art/200609/32317_1.htm 对于GUN编译器来说,程序的编译要经历预处理.编译.汇编.连接四个阶段 假设源程序文件名为te ...

  2. 解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

    因为最近更新的PHP版本,写sql语句,忽然发现不能用了,上网查了一些原因,找到几个方法如下: 1.禁止php报错 display_errors = on 改成 display_errors = of ...

  3. 第一局 ThreeJS-开始

    本文介绍ThreeJS使用的大体流程.(由于水平有限,请大家多多指教.) 1.ThreeJS下载和引入: (1)下载地址:https://github.com/mrdoob/three.js/arch ...

  4. HTML5学习笔记-video

    HTML5 <video> - 方法.属性以及事件 方法 play()——播放 pause()——暂停 load()——加载 canPlayType——检测您的浏览器是否能播放不同类型的视 ...

  5. UVA 12657 Boxes in a Line

    双向链表 注意:如果算法是最后处理翻转情况时,注意指令4翻转后1,2两个指令也要翻转处理: 指令3 中交换盒子要注意两个盒子相邻的情况 #include <iostream> #inclu ...

  6. Oracle EBS-SQL (PO-14):检查供应商信息sql

    select pvs.org_id, pvs.vendor_id, pvs.vendor_site_id, hou.name                                 经营组织, ...

  7. Unix/Linux环境C编程入门教程(28) 日期时间那些事儿

    记得这个专题第一篇我们写过一个程序运行时间的程序,采用库函数提供的clock()模拟做程序测试.本篇介绍的函数也是和时间相关,但是没有clock的细致,而是提供的系统时间和日期. 1.asctime( ...

  8. MFC子窗口和父窗口(SetParent,SetOwner)

    一.概念和区别 在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表.系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口.这个数据结构中有四个数据用来构建list, ...

  9. python 魔法方法之:__getitem__ __setitem__ __delitem__

    h2 { color: #fff; background-color: #7CCD7C; padding: 3px; margin: 10px 0px } h3 { color: #fff; back ...

  10. UVA10869 - Brownie Points II(线段树)

    UVA10869 - Brownie Points II(线段树) 题目链接 题目大意:平面上有n个点,Stan和Ollie在玩游戏,游戏规则是:Stan先画一条竖直的线作为y轴,条件是必需要经过这个 ...