【李宏毅机器学习笔记】5、Logistic Regression
【李宏毅机器学习笔记】5、Logistic Regression
------------------------------------------------------------------------------------------------------
【李宏毅深度强化学习】视频地址:https://www.bilibili.com/video/av10590361?p=6
课件地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html
-------------------------------------------------------------------------------------------------------
按照之前课程的内容,机器学习分为三步:
- 定义模型(function set)
- 找出损失函数
- 找出最好的function
所以Logistic Regression这里,还是以这三步来走。
Step 1: 定义Function Set
在上一篇笔记,给出了 ,如果这个概率大于0.5,则代表 x 属于 ,否则属于 。
同样,在上一篇笔记中,将由贝叶斯公式化为sigmoid function 。
这里以作为我们的模型(function set)。这个function set里由于不同的w和b就会形成不同的function。
上图可以看出,Logistic Regression和Linear Regression的区别在于 :
- Logistic Regression多了sigmoid的步骤,所以最终的输出只会在 ( 0,1 ) 之间。
Step 2: Goodness of a Function
training data如图,有N个数据,分别是从到 。每个数据都对应一个label,表示 x 属于哪一类。
现在,将这些training data看成是从这个函数产生的。
代表在某一组参数 w和b 下, 产生这些 training data 的几率。(这里是考虑的是二分类)
我们的目标就是,找到一组最好的参数 和,这两个参数能使达到最大值。
举个最极端理想的例子,产生这些training data的几率是1,这就意味着给任意个数据 x,都能得出 x 的正确分类(准确说是输出概率,从这个概率找到正确的分类)。
刚才说要找一组最好的参数 和,使达到最大值。这件事可以看成找一组最好的参数 和,使达到最小值(给加 ln 是为了计算更方便,不会对结果产生影响)。
给加 ln 后,根据ln 的特性,如图,原来相乘变相加。
这时的公式虽然变成相加,但是还是没办法写成 累加的格式。
为了做到这一点,将属于Class 1 的 x 的目标值y^\hat都设为1,将属于Class 2 的 x 的目标值y^\hat都设为0。此时的每一项就可以替换成右边很长的式子,右边的式子就等价于左边的式子。如下:
以第一项为例子,Class 1 的 x 的目标值 y^\hat 以1代进去,后面代进去变成0,所以右边的式子化简后和左边的式子是一样的。
这时就能表示如图所示的 累加的格式。
画蓝线的部分就是两个伯努利分布之间的cross entropy 。如果两个分布一样的话,cross entropy就等于0。这式子可以看成是损失函数。
分布p看成training data,分布q是预测的结果。就是它们的 cross entropy 。
图中是Logistic Regression和Linear Regression的损失函数的对比。
Logistic Regression为什么不用和Linear Regression一样的损失函数的原因等下会讲。
Step 3: Find the best function
第三部就是gradient descent,去更新参数。
对求 w 的偏导,就是对画蓝线的两项(和)求偏导。计算过程如上图所示。
未完待续