文档章节

神经网络和深度学习-第二周神经网络基础-第三节:Logistic 回归损失函数

侯法超
 侯法超
发布于 2017/12/26 21:13
字数 910
阅读 16
收藏 1

本系列博客是吴恩达(Andrew Ng)深度学习工程师 课程笔记。全部课程请查看吴恩达(Andrew Ng)深度学习工程师课程目录

在上一节中,讲解的是logistic回归模型。为了训练回归模型参数w和b,我们需要定义一个成本函数(cost function)。这是上一节中的函数: $$ \begin{equation} \hat{y} = \theta (w^T x + b), \quad where , \theta (z) = \frac{1} {1+e^{-z}}
\quad \label{eq:Sample} \end{equation} $$ 为了让模型通过学习调整参数,需要一个大小为m的训练集: $$ { (x^{(1)}, y^{(1)}) , , ... , (x^{(m)}, y^{(m)}) } $$ 通过训练集,找到参数w和b,最终使得$\hat{y}^{(i)} \approx y^{(i)}$。

符号说明:这里的$\hat{y}$是对一个训练样本x来说的,对于每个训练样本,使用带有圆括号的上标进行引用说明和区分样本。这样,训练样本$x^{(i)}$的预测值是$\hat{y}^{(i)}$,$\hat{y^{(i)}}$是用训练样本$x^{(i)}$通过sigmoid函数作用到$w^T x +b$得到的。

你也可以将$z^{(i)}$定义成$z^{(i)}=w^T x^{(i )} + b$,在这门课里,我们将使用这个符号约定:上标(i)来指明第i个数据样本。

现在我们看看损失函数(或叫作误差函数),它们可以用来衡量算法的运行情况(即衡量你的预测输出值$\hat{y}​$和$y​$的实际值有多近),你可以定义损失为$(\hat{y}-y)^2​$或$\frac {(\hat{y}-y)^2} {2}​$。结果表明你可以这样做,但通常在logistic回归中大家都不这么做,因为你在学习这些参数的时候,你会发现之后讨论的优化问题会变成非凸的,最后会得到很多个局部最优解,梯度下降法可能找不到全局最优值(后面课程会对此做详细讲解)。

误差平方在梯度下降法中不太好用,所以在logistic回归中损失函数如下: $$ l (\hat{y}, y) = - (y \log \hat{y} + (1-y) \log (1-\hat{y})) $$ 我们直观地看一下这个损失函数为何能起作用,之前我们说误差平方越小越好,同样对于这个logistic回归损失函数,我们也希望它尽可能地小。下面举两个例子。当$y=1$时损失函数为$-\log \hat{y}$此时若让损失函数尽可能小让$\hat{y}$尽可能大(但永远不会大于1)。另一种情况,当$y=0$时损失函数为$- \log (1-\hat{y})$,此时若想要损失函数尽可能小,$\hat{y}$尽可能小即可($y=0$)。

最后说一下,损失函数是在单个训练样本中定义的,它衡量了在单个训练样本上的表现。下面我们定义一个成本函数,它衡量的是在全体训练样本上的表现,即所有训练样本的损失函数和: $$ J(w,b)=\frac{1}{m} \sum_{i=1}^m l(\hat{y}^{(i)},y^{(i)}) = -[\frac{1}{m} \sum_{i=1}^m (y^{(i)} \log \hat{y}^{(i)} + (1-y^{(i)}) \log (1-\hat{y}^{(i)}))] $$ 所以损失函数只适用于单个训练样本,成本函数基于参数的总成本,所以,在训练logistic回归模型时,我们要找到合适的参数w和b,让成本函数$J$尽可能地小。

这里logsitic回归可以被看作一个非常小的神经网络,下节会更直观地去理解神经网络能做什么。

© 著作权归作者所有

共有 人打赏支持
侯法超
粉丝 152
博文 57
码字总数 105341
作品 0
大兴
程序员
私信 提问
ng-深度学习-课程笔记-0: 概述

课程概述 这是一个专项课程(Specialization),包含5个独立的课程,学习这门课程后做了相关的笔记记录。 (1) 神经网络和深度学习 (2) 改善深层神经网络:超参数调试,正则化,优化 (3) 结构化...

PilgrimHui
2017/10/09
0
0
《deeplearning.ai》 课程一第二周 | Logistic Regression

deeplearning.ai 是机器学习领域大牛Andrew Ng在Coursera上公布的新的深度学习的课程,相比之前机器学习的课程,本课程更偏重于深度学习的领域。 本文是课程一《Neural Networks and Deep Le...

V怪兽
2017/12/14
0
0
CMU 深度学习导论更新 | 第四讲:反向传播

AI 研习社获得官方授权,汉化翻译CMU 2018 秋季《深度学习导论》课程,9月27日正式上线中文字幕版。 好消息!CMU 深度学习小组在 AI 研习社突破 700 人啦! 扫描二维码 ↓↓↓ 即可加入~ 春风...

雷锋字幕组
11/27
0
0
独家 | CMU 2018 秋季《深度学习导论》中文字幕版今日上线!

AI 研习社获得官方授权,汉化翻译CMU 2018 秋季《深度学习导论》课程,今日正式上线中文字幕版。 CMU 2018 秋季《深度学习导论》为官方开源最新版本,由卡耐基梅隆大学教授 Bhiksha Raj 授权...

雷锋字幕组
09/27
0
0
【DL】Logistic回归:最基础的神经网络[1]

个人认为理解并掌握这个logistic regression是学习神经网络和深度学习最重要的部分,也是最基础的部分,学完这个再去看浅层神经网络、深层神经网络,会发现后者就是logistic重复了若干次(当...

Stack_empty
07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
10
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
17
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
10
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部