Loss Function参数求解的方法

老師您在上課的時候提到求解loss function的參數方法是: J對於參數求導得0的解就是能讓J的值最小的參數

但是在接下來的推導並沒有再提到求導得0,請問求導得0和之後的推導有什麼連結?

从理论上来说,能让loss function J等于0的参数解就是我们想要求的结果,但是,在loss function形势复杂的情况下, 比如logistic regression loss function,你直接让某一个导数表达式=0的时候,很难就出参数的解析解,即w的具体表达式。由于这个原因,我们就用gradient descent这种数值解法作为一个alternative solution, 方法是,每次利用导数在某一个点的取值,计算梯度,多次迭代更新之后得到的w, 应该就和前面提到的“导数=0”计算出来的解析式的结果,非常接近了。

加問三個延伸問題:

若求到的最小loss是局部最小而不是全局最小,該如何處理? 怎麼確認是不是全局最小?

上課提到loss的形式沒有很多種, 因為不一定好求解,但如果都不是用解析解,而都是用數值解法,還需要擔心不好求解嗎?

notebook 2中使用的數據是自己生成的,我們知道參數是什麼,拿gradient descent得出來的參數和真實參數比較可以知道結果好不好,但在現實中我們不知道參數應該是什麼,要如何得知結果好? 是不是需要把參數代回J的導數看看是否接近0? 還是有其他方法?

恩这个问题后来咱们在课上讲解过了。这边总结一下:

  1. loss function在构造的时候就要注意: a) 对training data error的描述. b) 对model 泛化能力的描述, i.e. 在testing data上的error表现. c) 可解性. 这也是为什么我们常用的loss function的形式很有限。一般来说,除deep learning model之外,我们遇到的经典模型的loss function都是convex的,即local min就是global min。如果是非convex, 我们可以多次尝试选择不同的initial parameter value, 分别做gradient descent, 取loss 最小值情况下的params, 认为它们很可能是global min.
  2. 需要担心。因为可能它的min value的位置不容易通过数值方法达到。
  3. 现实中的判断的方法使用validation dataset (i.e. model在training阶段没见过的数据)做evaluation。