Day-07 Logistic Regression 介绍

  • 在前面两天我们已经说完基础的 Regression 跟 Classification 了,为什麽在这里还要提到一个什麽 Logistic Regression?
  • Logistic Regression(罗吉斯回归,这中文实在是太神奇了,我们後面都将用英文称呼),是一个大家在学习机器学习的路途上,一定会接触到的,理由是什麽?就笔者自己认为,他是一个披着 Regression 外皮的 Classification ,因为等等就会发现他的公式竟然长得跟 Linear Regression 一模一样,因此 Logistic Regression 确实有我们必须额外了解的原因,我们等等看下去就知道了

什麽是 Logistic Regression?

  • Logistic Regression 是一种分类模型,利用现有的资料点,尽可能的找出能将所有资料点分离的那条线
  • 我们来看看一张图,


    from: Tommy Huang

  • 原本 Regression 是用来预测一个连续的数值,但是在这边,我们利用 Logistic Regression 来分类资料,且我们从上图可以发现 Linear Regrssion 跟 Logistic Regression 的公式都是一样的
  • 那我们回顾 Classification 那边如何判断资料的二分类?就是找一个机率 https://chart.googleapis.com/chart?cht=tx&chl=%24P_%7Bw%2C%20b%7D(C_1%7Cx)%24 有没有大於 50% 来做个分辨,只要他对於判断区块有超过 50% 的机率,那我们就说我们可以判定他属於第一类或是其他类
  • 那 Logistic Regression 也是一样的概念,只是我们就直接带入数值之後,他是大於零还是小於零


    from: Tommy Huang

  • 等於我们就是利用一个 unit-step function 去直接做判断 https://chart.googleapis.com/chart?cht=tx&chl=%24%24%5Csigma(f(x))%20%3D%20%5Cleft%5C%7B%20%5Cbegin%7Barray%7D%7Br%7D%200%2C%20f(x)%20%5Clt%200%20%5C%5C%201%2C%20f(x)%20%5Cge%200%20%5Cend%7Barray%7D%20%5Cright.%24%24
  • 那这边我们的 https://chart.googleapis.com/chart?cht=tx&chl=%24%5Csigma(f(x))%24 的判断有点太过绝对生硬,也就是他并没有考虑到资料判断上会遇到的问题,什麽意思
  • 我们绘制看看一下如果 https://chart.googleapis.com/chart?cht=tx&chl=%24%24%5Csigma(f(x))%20%3D%20%5Cleft%5C%7B%20%5Cbegin%7Barray%7D%7Br%7D%200%2C%20f(x)%20%5Clt%200%20%5C%5C%201%2C%20f(x)%20%5Cge%200%20%5Cend%7Barray%7D%20%5Cright.%24%24 的话,他的判断曲线会长怎样

  • 这个判断曲线的意思是什麽,是代表了就算资料是 https://chart.googleapis.com/chart?cht=tx&chl=%240.0001%24 或是 https://chart.googleapis.com/chart?cht=tx&chl=%24-0.0001%24 这种我们自己都知道是介於边缘的资料,有极高机率误判,但判断公式仍然会毫不犹豫的给予分辨,这就代表着我们的判断太过武断,且毫无弹性
  • 因此 Logistic Regression 利用对数函数 Sigmoid 来达到更有弹性的输出,我们来看看图片

  • 橘色的线线就是利用对数函数来做输出的,可以发现对於判断界线还有资料判断的状况,更加的平滑,因此判断会更加弹性,例如 https://chart.googleapis.com/chart?cht=tx&chl=%24%5Csigma(0.2)%20%5Csimeq%200.55%24
  • 而 Sigmoid 的公式是什麽呢? https://chart.googleapis.com/chart?cht=tx&chl=%24y%20%3D%20%5Csigma(f(x))%3D%7B1%20%5Cover%201%2Be%5E%7B-f(x)%7D%7D%24 这边不多赘述这个对数函数了,有兴趣的自己去查都可以看到很清楚的解释

Logistic Regression V.S. Linear Regression

  • 在最前面我们有提到过,Linear Regression 跟 Logistic Regression 的公式是一样的,但是判断却是不一样的
  • 我们一样拉到三步骤去做比较

Model

  • Linear Regression 的公式很简单,就是 https://chart.googleapis.com/chart?cht=tx&chl=%24f_%7Bw%2C%20b%7D(x)%20%3D%20%5Csum%5Climits_i%20w_ix_i%20%2B%20b%24
  • 但是 Logistic Regression 前面有提到,是要分类的,因此公式上多了一个部分,就是 https://chart.googleapis.com/chart?cht=tx&chl=%24%5Csigma%24https://chart.googleapis.com/chart?cht=tx&chl=%24f_%7Bw%2C%20b%7D(x)%20%3D%20%5Csigma(%5Csum%5Climits_i%20w_ix_i%20%2B%20b)%24 ,那个 Output 会是 0 or 1
  • 所以这边可以发现公式真的一模一样,唯一差异就是 Logistic Regression 多了一个 Sigmoid,去帮忙分类 0,1

Goodness of function

  • Linear Regression 就是一个很简单的 Loss function,就是 Mean Square Error,https://chart.googleapis.com/chart?cht=tx&chl=%24L(f)%20%3D%20%7B1%20%5Cover%20n%7D%20%5Csum%5Climits_n(f(x%5En)%20-%20y%5En)%5E2%24 也就是去看答案的差异
  • 那 Logistic Regression 呢?是不是也就直接用 Mean Square Error 呢?
  • 其实不能,至於原因我强烈推荐去听 李弘毅老师 的开放式课程,那边有详细的解释
  • 那这边要怎麽办呢?
  • 我们回到 Classification 那边机率的想法,假设我们去计算 https://chart.googleapis.com/chart?cht=tx&chl=%24data_1%24 被分类成 https://chart.googleapis.com/chart?cht=tx&chl=%24class_1%24 机率是 https://chart.googleapis.com/chart?cht=tx&chl=%24P_%7Bw%2C%20b%7D(C_1%7Cx)%24 那我们 w, b 这个参数好不好就是我们前面提过的 https://chart.googleapis.com/chart?cht=tx&chl=%24L(w%2Cb)%20%3D%20f_%7Bw%2C%20b%7D(x%5E1)f_%7Bw%2C%20b%7D(x%5E2)f_%7Bw%2C%20b%7D(x%5E3)...f_%7Bw%2C%20b%7D(x%5EN)%24
  • 那我们假设最好的 https://chart.googleapis.com/chart?cht=tx&chl=%24w%2C%20b%24 这个参数是 https://chart.googleapis.com/chart?cht=tx&chl=%24w%5E*%2C%20b%5E*%24 ,那最佳的那个机率也会是 https://chart.googleapis.com/chart?cht=tx&chl=%24w%5E*%2C%20b%5E*%20%3D%20%5Carg%20%5Cmax%5Climits_%7Bw%2C%20b%7D%20L(w%2C%20b)%24 ,也就是最大的 https://chart.googleapis.com/chart?cht=tx&chl=%24L(w%2C%20b)%24
  • 那最佳的 https://chart.googleapis.com/chart?cht=tx&chl=%24w%5E*%2C%20b%5E*%20%3D%20%5Carg%20%5Cmax%5Climits_%7Bw%2C%20b%7D%20L(w%2C%20b)%24 其实等同於 https://chart.googleapis.com/chart?cht=tx&chl=%24w%5E*%2C%20b%5E*%20%3D%20%5Carg%20%5Cmin%5Climits_%7Bw%2C%20b%7D%20-%20lnL(w%2C%20b)%24,然後每一项 https://chart.googleapis.com/chart?cht=tx&chl=%24-%20lnL(w%2C%20b)(x)%24 可以写成 https://chart.googleapis.com/chart?cht=tx&chl=%24-%5Cbegin%7Bbmatrix%7D%5Chat%20y%5C%20lnf(x)%20%2B%20(1%20-%20%5Chat%20y)ln(1%20-%20f(x))%5Cend%7Bbmatrix%7D%24 ,这行式子就是 Cross-entropy loss function
  • 所以到这里,我们也有 Logistic Regression 的 Loss Function 了,在机器学习三步骤我们只差了一步了,就是 Best Function 了

Find the best function

  • 我们开始微分我们的 cross-entropy loss function,详细的数学运算我们一样跳过,结论就是我们一样用 Gradient Descent 得到了 https://chart.googleapis.com/chart?cht=tx&chl=%24%24w_i%20%5Cleftarrow%20w_i%20-%20%5Ceta%20%5Csum%5Climits_n%20-%20(%5Chat%20y%20-%20f_%7Bw%2C%20b%7D(x%5En))%20x_i%5En%24%24
  • 这边我们赶紧来看当初 Linear Regression 的 Gradient Descent https://chart.googleapis.com/chart?cht=tx&chl=%24%24w_i%20%5Cleftarrow%20w_i%20-%20%5Ceta%20%5Csum%5Climits_n%20-%20(%5Chat%20y%20-%20f_%7Bw%2C%20b%7D(x%5En))%20x_i%5En%24%24
  • 竟然长的一毛毛一样样,唯一的差别就是 Linear Regression 的 https://chart.googleapis.com/chart?cht=tx&chl=%24%5Chat%20y%24https://chart.googleapis.com/chart?cht=tx&chl=%24f_%7Bw%2C%20b%7D(x)%24 是任意实数,而 Logistic Regression 则是介於 0~1 之间的数值
  • 所以到这里我们就可以发现 Logistic Regression 真的就是基於 Linear Regression 的概念,成功达到 Classification 的方法

每日小结

  • Logistic Regression 真的就是披着 Regression 外皮的分类间谍 XDD,他披着预测知名行分类之实
  • Logistic Regression 和 Linear Regression 最大的差异在於多了一个 Sigmoid Function 去做资料的分类,而选择 Sigmoid Function 的原因是因为希望资料的判定能够更有弹性,信心更足
  • 那既然我们发现我们也可以用类 Regression 的概念达到 Classification,那我们明天就来实作 Logistic Regression 试试看...吗?先卖个关子,明天我们要先处里一个我们提过的机器学习大前题

<<:  WordPress Google Search Console 安装教学 让新文章马上列入搜寻名单

>>:  [区块链&DAPP介绍 Day14] Solidity 教学 - interfaces

Day14 流程控制之回圈

循环 -- 就是让电脑重复执行一件事! 而回圈简单来说就是在条件符合的情况下,重复执行某段程序码。 ...

【Day.30】React进阶 - Styled-Components: React的CSS解决方案 | 系列总结

在过去的29天内,除了直接绑在JSX元素上外,我们从来都没有提过要如何在React处理CSS cod...

R语言-5-套件 & 解题去

看起来很废话但是很实际 使用套件前,要先安装套件 安装完成之後要使用套件要先载入套件 library...

Day10-TypeScript(TS)的索引型别(Indexable Type)

今天来介绍TypeScript(TS)的索引型别(Indexable Type), 今天是轻松的一天...

Day.11 搞懂主从架构- 主从复制(Master Slave Replication)

在前一篇我们提到binlog可以当作资料恢复的重要纪录,今天要介绍的是binlog另一个主要功能用...