前情回顾

机器学习100天|Day1数据预处理

100天搞定机器学习|Day2简单线性回归分析

100天搞定机器学习|Day3多元线性回归

100天搞定机器学习|Day4-6 逻辑回归

100天搞定机器学习|Day7 K-NN

100天搞定机器学习|Day8 逻辑回归的数学原理

100天搞定机器学习|Day9-12 支持向量机

100天搞定机器学习|Day11 实现KNN

100天搞定机器学习|Day13-14 SVM的实现

100天搞定机器学习|Day15 朴素贝叶斯

Day17,Avik-Jain开始在Coursera深度学习的专业课程,完成第1周和第2周内容以及学习课程中的逻辑回归、神经网络,并用Python实现一个神经网络。

Day4-6我们已经学习过逻辑回归模型。

100天搞定机器学习|Day4-6 逻辑回归

但是当时并没有扩展性的深入探讨,毕竟这个模型十分简单易懂。其实模型之间是有关联的,比如Logistic Regression引出SVM回归模型。

首先,我们再回归一下Logistic Regression

逻辑回归进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类。我们想要的函数应该是,能接受所有的输入然后预测出类别。例如,对于而分类问题,该函数应该返回0或1。

逻辑回归假设函数如下

它对θTX作了一个函数g变换,映射至0到1的范围之内,而函数g称为sigmoid function或者logistic function,函数图像如下图所示。

逻辑回归是用来得到样本属于某个分类的概率,当输入z等于0时,Sigmoid函数值为0.5。随着z的增大,对应的函数值趋近于1;随着z的减小,对应的函数值趋近于0。

然后,我们通过逻辑回归引出SVM

我们发现hθ(x)只与θTX有关,θTX>0,则hθ(x)>0.5.g(z)只不过是用来映射,真实的类别决定权还在θTX。模型达到的目标无非就是让训练数据中y=1的特征θTX>>0,而是y=0的特征θTX<<0。Logistic回归就是要学习得到θ,使得正例的特征远大于0,负例的特征远小于0,强调在全部训练实例上达到这个目标。

上图中间那条线是θTX=0,logistic回顾强调所有点尽可能地远离中间那条线,学习出的结果也就中间那条线。这样我们可以得出结论,我们更应该关心靠近中间分割线的点,让他们尽可能地远离中间线,而不是在所有点上达到最优。

然后,看看逻辑回归的代价函数

当y=1时,并将z=θTx带入其中, 损失函数图像进行少量修改就能得到SVM损失函数图像,取z=1的点作为分界点画一条和逻辑回归很接近的线性图像得到上图中玫红色的直线,称其为Cost1(z)。 y=0,类似地得到Cost0(z)。

从 逻辑回归 处修改后得到的基本公式为:

因为人们在使用逻辑回归和支持向量机时遵循的规则不同,有些地方还需要修改 ,在上述式子中的损失部分和正则化部分都去掉 1/m 项

在逻辑回归中使用λ来平衡样本的损失函数项和正则化项,而在SVM中,使用C来平衡.

最终的SVM的表达式

在这里,当最小化代价函数,获得参数 θ 时,支持向量机所做的是它来直接预测 y 的值等于 1,还是等于 0。所以学习参数 θ 就是支持向量机假设函数的形式。

另:详细过程建议大家观看吴恩达课程原版机器学习公开课

https://www.coursera.org/course/ml

--------------回归正题分割线--------------

神经网络又与逻辑回归什么关系呢?先说结论:

逻辑回归是没有隐藏层的神经网络

逻辑回归引出神经网络的过程,我认为李宏毅的机器学习课程最为巧妙。

首先Logistic回归是有局限性的,对于线性不可分的数据没有办法分类。

比如上面这种情况,就没有办法使用一条直线进行分类。

一个解决方法是可以通过转换特征空间方法解决异或问题,线性不可分的数据在特征转化后可以很好地被红色直线区分开。 但是不能总是通过依赖手工的方法来找到一个好的转换,这就违背了机器学习的本质。

so,Logistic回归可以看做是两层神经元,激活函数是Sigmoid函数的神经网络。左边两个Sigmoid函数作用是特征转换,右边作用是分类。

Logistic回归连接在一起就是深度学习的基本结构。

100天搞定机器学习|Day17-18 神奇的逻辑回归的更多相关文章

  1. 100天搞定机器学习|Day22 机器为什么能学习?

    前情回顾 机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机 ...

  2. 100天搞定机器学习|Day21 Beautiful Soup

    前情回顾 机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机 ...

  3. 100天搞定机器学习|Day33-34 随机森林

    前情回顾 机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机 ...

  4. 100天搞定机器学习|Day35 深度学习之神经网络的结构

    100天搞定机器学习|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机器学习 ...

  5. 100天搞定机器学习|day37 无公式理解反向传播算法之精髓

     100天搞定机器学习(Day1-34) 100天搞定机器学习|Day35 深度学习之神经网络的结构 100天搞定机器学习|Day36 深度学习之梯度下降算法 本篇为100天搞定机器学习之第37天,亦 ...

  6. 100天搞定机器学习|Day7 K-NN

    最近事情无比之多,换了工作.组队参加了一个比赛.和朋友搞了一些小项目,公号荒废许久.坚持是多么重要,又是多么艰难,目前事情都告一段落,我们继续100天搞定机器学习系列.想要继续做这个是因为,一方面在具 ...

  7. 100天搞定机器学习|Day11 实现KNN

    机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机器学习|D ...

  8. 100天搞定机器学习|Day8 逻辑回归的数学原理

    机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机器学习|D ...

  9. 100天搞定机器学习|Day9-12 支持向量机

    机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机器学习|D ...

随机推荐

  1. Disruptor 详解 二

    Disruptor 的大名从很久以前就听说了,但是一直没有时间:看完以后才发现其内部的思想异常清晰,很容易就能前移到其他的项目,所以仔细了解一下还是很有必要的这.篇博客将主要从源码角度分析,Disru ...

  2. EnjoyingSoft之Mule ESB开发教程第三篇:Mule message structure - Mule message结构

    目录 1. 探索Mule Message结构 2. Mule Message的Payload 3. Mule Message的Property 4. Mule Message的Attachment 5 ...

  3. 和朱晔一起复习Java并发(三):锁(含锁性能测试)

    这个专题我发现怎么慢慢演化为性能测试了,遇到任何东西我就忍不住去测一把.本文我们会大概看一下各种锁数据结构的简单用法,顺便也会来比拼一下性能. 各种并发锁 首先,我们定一个抽象基类,用于各种锁测试的一 ...

  4. 洛谷 P2671 求和

    题目描述 一条狭长的纸带被均匀划分出了nn个格子,格子编号从11到nn.每个格子上都染了一种颜色color\_icolor_i用[1,m][1,m]当中的一个整数表示),并且写了一个数字number\ ...

  5. NOIP2018普及T2暨洛谷P5016 龙虎斗

    题目链接:https://www.luogu.org/problemnew/show/P5016 分析: 这是一道模拟题.看到题目,我们首先要把它细致的读明白,模拟题特别考察细节,往往会有想不到的坑点 ...

  6. delegate委托的例子,实现对Form中控件的更新

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. C#窗体实现打开关闭VM虚拟机

    vixclass.cs//定义开机.关机等函数 using System; using System.Collections.Generic; using System.Linq; using Sys ...

  8. 个人永久性免费-Excel催化剂功能第56波-获取Excel对象属性相关自定义函数

    之前零散开发过一些自定义函数获取Excel对象属性,此次再细细地把有价值的属性都一一给开发完成,某些场景下,有这些小函数还是可以比较方便地实现一些通过Excel界面没法轻松获取到的信息. 修复与更新 ...

  9. 个人永久性免费-Excel催化剂功能第53波-无比期待的合并工作薄功能

    合并工作薄.工作表功能,几乎每一款Excel插件都提供,而且系列衍生功能甚至有多达10多个.今天Excel催化剂重拾武器,在现有众多插件没提供到位的部分场景中,给予支持和补充,做到人有我优,人无我有的 ...

  10. Excel催化剂开源第1波-自定义函数的源代码全公开

    Excel催化剂插件从2018年1月1日开始运营,到今天刚好一周年,在过去一年时间里,感谢社区里的许多友人们的关心和鼓励,得以坚持下来,并收获一定的用户量和粉丝数和少量的经济收入回报和个人知名度的提升 ...