机器学习的简单逻辑回归的Advanced Optimization

Learning Course: One variable logistic regression optimization

单变量(只有一个特征)的用于分类的逻辑回归的cost function的最小值求解, here:

x=[x1;x2]; y={0,1};

theta=[theta(1);theta(2)]

由于分类中的y值需为0-1之间的数值,因此这里的cost function不同于线性回归的cost function。

hθ(x)=g(θTx), where g(x)= 1/(1-exp(-x)); thus hθ(x) = 1/(1-exp(-θTX));

Thus Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x)), 

因为当实际y =1时,上述方程 cost = −ylog(hθ(x)), 因此在预测y值接近1时,方程值趋近于0,即使cost value趋近于零,反之,预测值接近于0时,cost value趋近于无穷大;对于y=0的推理也是同理。

然后 repeat θj :=θj - alpha*∂(J(θ))/∂(θj);

因此此处的优化即使找到一个theta使得cost function,即我们的目标方程的最小值。

 

以下用一个简化的例子来计算目标方程的最小值

例如 cost function 为 J(theta) = (theta(1)-5)^2+(theta(2)-5)^2

先构建出我们的目标函数

function [jVal,gradiant] = costfunction(theta)
jVal = (theta(1)-5)^2+(theta(2))-5)^2;
gradiant = zeros(2,1);
gradiant(1) = 2*(theta(1)-5);
gradiant(2) = 2*(theta(2)-5);
end

 然后我们使用optimization的函数

options = optimset('GradObj','on','MaxIter',100);
initialTheta = zeros(2,1);
% MaxIter定义最大迭代步数,100即定义为100步
% GradObj指定义的梯度 [optTheta,fval,exitFlag] = fminunc(@costfunction,initialTheta,options); % optTheta export our optimal Theta value % fval export our final objective function value % exitFlag 返回算法的终止标志;
% 大于零时为计算收敛,等于零时表示超过最大迭代次数(所以该增加maxiters),小于零时代表不收敛
% options是一个结构,里面有控制优化过程的各种参数

  这里对 'on'的理解我不是特别明白,根据解释

Hessian

If 'on', function uses user-defined Hessian, or Hessian information (when using HessMult), for the objective function. If 'off', function approximates the Hessian using finite differences.

L

fmincon, fminunc

 

 

这里的fminunc函数是matlab或者octave里已定义的函数,其功能是无约束(x的值域无约束)最优化问题求解,fminisearch和fminuc都可用于最小值求解,以下为简单总结:

1.以上两个函数都用于非线性多元函数最小值求解(因此注意求解的x的维度)

2. fminisearch适合阶次低,但是断点多的函数

3. fminunc适合高阶连续函数,因此当阶数大于等于2时,使用fminunc效果更好,但注意函数需连续。

以下为fminunc函数的一般调用格式:

x = fminunc(fun,x0);

x为返回的使函数值最小的x值,x0为优化的初始值,fun为我们定义的目标函数,也可以用@fun来调用定义函数,如下

x = fminunc(@fun,x0);

本篇博客的目的是为了总结吴恩达老师的机器学习课程,以便帮助自己更好的学习,如有错误之处,还请指出讨论以便改正。

 

转载于:https://www.cnblogs.com/chantervin/p/6061723.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java float f1=0.5_Java Math类静态float copySign(float f1,float f2)与示例

数学类float copySign(float f1,float f2)此方法在java.lang包中可用。此方法用于返回第一个浮点参数以及第二个浮点参数的符号。这是一个静态方法,因此也可以使用类名进行访问。在此方法中,我们传递了两个参数作为参数:第一个参数…

Sentinel介绍与使用

一、Sentinel简介 Sentinel是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。 二:Sentinel 功能和设计理念 流量控制 流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而…

电脑知识:BIOS和UEFI的对比介绍

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

缓存更新的套路

看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作&#xf…

怎样获取当前页面值php,想要得到当前页面的所有url参数信息怎么用PHP来实现?...

本篇文章主要给大家介绍怎么使用php获取完整url。首先给新手小白们简单介绍下什么是url。百度百科上是这么解说的,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯…

@PostConstruct注解学习,最详细的分享教程

该注解可以实现在运行工程时,自动运行该注解下的方法; PostConstruct是java自带的注解,指的是在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如数据…

电脑知识:分享实用的电脑维护小常识

目录 常识1:杜绝直接拔电脑电源强行关机 常识2:不要用电池玩游戏 常识3:开不了机可以尝试插拔内存条 常识4:电脑散热的处理方法 常识5:避免在电脑工作时拔插头 今天小编就为大家带来一些电脑日常实用中的维护小知识&am…

Sentinel实现黑白名单控制详细教程来了

一:新建一个IpRequestOriginParser类,实现RequestOriginParser接口,配置如下 public class IpRequestOriginParser implements RequestOriginParser {/*** Parse the origin from given HTTP request.** param request HTTP request* return …

php获取服务器名称,PHP 获取服务器详细信息

获取系统类型及版本号: php_uname() (例:Windows NT COMPUTER 5.1 build 2600)只获取系统类型: php_uname(s) (或:PHP_OS,例:Windows NT)只获取系统版本号: php_u…

D. Anton and Chess 模拟题 + 读题

http://codeforces.com/contest/734/problem/D 一开始的时候看不懂题目,以为象是中国象棋那样走,然后看不懂样例。 原来是走对角线的,长知识了。 所以我们就知道,王有八个方向,所以每个方向选一个来做代表就行了。 那么…

电脑知识:常见电脑蓝屏代码识别与处理方法

电脑蓝屏怎么办? 相信大家都遇到过蓝屏的问题, 有时候电脑用着用着就突然蓝屏了, 或者某天开机突然蓝屏了…… 电脑蓝屏的原因非常的多, 到底是什么引起的呢? 收集了一些最常见的几种蓝屏代码, 大家只需要如…

sentinel的@SentinelResource注解使用

客户自定义限流处理逻辑 创建ExceptionUtil类用于自定义限流处理逻辑 自定义限流处理类: ExceptionUtil 二:新增 SentinelResource注解 配置 SentinelResource(value “hello2”, blockHandler “exHandler”, blockHandlerClass {ExceptionUtil.class}) 通过…

PHP写猜数字,PHP算法之猜数字

小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answ…

总结一年来的前端学习心得

到今天,前端学习刚好满一年。我也顺利从非计算机专业转到前端。对于前端学习,自己也是摸着石头过河,中间也有过困惑和迷茫。本文主要讲述自己一年来对于前端学习的心得体会,希望能对学习前端的人提供一些帮助。 前端主要分为三部分…

办公技巧:10个WORD神操作,值得收藏

目录 1、F4键 2、Ctrl字母快捷键 3、巧用“文档比较” 4、巧用替换功能 5、特殊字体保存 6、Word表格随心粘 7、去除超链接 8、Word图片轻松移 9、截图 10、格式刷不停 在日常办公当中, Word文档就是我们最常用的软件之一。用它我们写论文、写方案、写小说等等。 但…

MYSQL学习:GROUP BY分组取最新的一条记录

日常开发当中,经常会遇到查询分组数据中最新的一条记录,比如统计当前系统每个人的最新登录记录、外卖系统统计所有买家最新的一次订单记录、图书管理系统借阅者最新借阅书籍的记录等等。今天给大家介绍一下如何实现以上场景的SQL写法,希望对大…

@SentinelResource注解实现热点限流

下图中请求url中param参数为axb,如果QPS超过5,就会限流 一:如下代码 RestController public class ParamController {GetMapping("/param")SentinelResource(value "param", blockHandler "exHandler")p…

[LeetCode] 4Sum II 四数之和之二

Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] B[j] C[k] D[l] is zero. To make problem a bit easier, all A, B, C, D have same length of N where 0 ≤ N ≤ 500. All integers are in the range of…

php的正则表达式函数,php中常用的正则表达式函数

php中常用的正则表达式函数* preg_match()* preg_match_all()* preg_replace()* preg_filter()* preg_grep()* preg_split()* preg_quote()接下来对比讲解:讲解中 $pattern 通常表示正则表达式$subject 通常表示目标处理数据定义一个方法 方便查看数据类型&#xff…

硬件知识:固态硬盘4K对齐知识介绍

目录 1、什么是4K对齐呢? 2、怎么查看硬盘是否4K对齐呢? 3、怎么4K对齐呢? 现在大家基本都有一个固态硬盘,而在固态硬盘分区中4K对齐是非常重要的。 1、什么是4K对齐呢? “4K对齐”就是符合“4K扇区”定义格式化过的硬…