前情回顾

机器学习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. 19.linux文件属性

    1.linux文件属性 ls -lih i查看文件inode,h查看文件大小 文件总共10个属性 inode索引节点编号(唯一的) 文件类型和权限,第一个字符为类型,后面字符为权限 硬链接的数量 文件 ...

  2. 扒一扒那些教程中不常被提及的JavaScript小技巧

    1.过滤唯一值 Set类型是在ES6中新增的,它类似于数组,但是成员的值都是唯一的,没有重复的值.结合扩展运算符(...)我们可以创建一个新的数组,达到过滤原数组重复值的功能. const array ...

  3. hdfs文件写入kafka集群

    1. 场景描述 因新增Kafka集群,需要将hdfs文件写入到新增的Kafka集群中,后来发现文件不多,就直接下载文件到本地,通过Main函数写入了,假如需要部署到服务器上执行,需将文件读取这块稍做修 ...

  4. 从后端到前端之Vue(一)写个表格试试水

    目录: 1.脚本式开发. 2.工程化开发 3.工程化和脚本的区别 4.来个table试试水 4,1.目标 4.2.思路 4.3.设计与编码 4.4.效果 5.业务分离 6.功能拓展——个性化设置    ...

  5. vue+element项目中使用el-dialog弹出Tree控件报错问题

    1. 按正常的点击按钮,显示dialog弹出的Tree控件,然后把该条数据下的已经选中的checkbox , 用setCheckedNodes或者setCheckedKeys方法选择上 , 报下面这个 ...

  6. vue组件之间的传值——中央事件总线与跨组件之间的通信($attrs、$listeners)

    vue组件之间的通信有很多种方式,最常用到的就是父子组件之间的传值,但是当项目工程比较大的时候,就会出现兄弟组件之间的传值,跨级组件之间的传值.不可否认,这些都可以类似父子组件一级一级的转换传递,但是 ...

  7. vs2010 安装项目完成桌面快捷方式无法定位程序文件夹 解决方法

    本文转载自http://www.cnblogs.com/jasonxuvip/archive/2012/07/13/2589952.html 软件打包工具有很多种,让人不知道选那个方便自己使用,Tig ...

  8. c++小游戏——俄罗斯方块

    #include<cstdio> #include<windows.h> #include<ctime> int a[24][17],i,j,tim=800,ti= ...

  9. thinkphp项目阿里云ECS服务器部署

    [日记]thinkphp项目阿里云ECS服务器部署   项目本地开发告一段落.准备上传到服务器上测试 技术组成 thinkphp+mysql+阿里ECS  代码管理方式git 一.阿里ECS服务器配置 ...

  10. gRPC in ASP.NET Core 3.0 -- Protocol Buffer(1)

    现如今微服务很流行,而微服务很有可能是使用不同语言进行构建的.而微服务之间通常需要相互通信,所以微服务之间必须在以下几个方面达成共识: 需要使用某种API 数据格式 错误的模式 负载均衡 ... 现在 ...