1.2 正交化-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
| 1.1 為什么是ML策略 | 回到目錄 | 1.3 單一數字評估指標 |
正交化 (Orthogonalization)
搭建建立機器學習系統的挑戰之一是,你可以嘗試和改變的東西太多太多了。包括,比如說,有那么多的超參數可以調。我留意到,那些效率很高的機器學習專家有個特點,他們思維清晰,對于要調整什么來達到某個效果,非常清楚,這個步驟我們稱之為正交化,讓我告訴你是什么意思吧。
這是一張老式電視圖片,有很多旋鈕可以用來調整圖像的各種性質,所以對于這些舊式電視,可能有一個旋鈕用來調圖像垂直方向的高度,另外有一個旋鈕用來調圖像寬度,也許還有一個旋鈕用來調梯形角度,還有一個旋鈕用來調整圖像左右偏移,還有一個旋鈕用來調圖像旋轉角度之類的。電視設計師花了大量時間設計電路,那時通常都是模擬電路來確保每個旋鈕都有相對明確的功能。如一個旋鈕來調整這個(高度),一個旋鈕調整這個(寬度),一個旋鈕調整這個(梯形角度),以此類推。
相比之下,想象一下,如果你有一個旋鈕調的是 0.1x0.1x0.1x 表示圖像高度, +0.3x+0.3x+0.3x 表示圖像寬度, ?1.7x-1.7x?1.7x 表示梯形角度, +0.8x+0.8x+0.8x 表示圖像在水平軸上的坐標之類的。如果你調整這個(其中一個)旋鈕,那么圖像的高度、寬度、梯形角度、平移位置全部都會同時改變,如果你有這樣的旋鈕,那幾乎不可能把電視調好,讓圖像顯示在區域正中。
所以在這種情況下,正交化指的是電視設計師設計這樣的旋鈕,使得每個旋鈕都只調整一個性質,這樣調整電視圖像就容易得多,就可以把圖像調到正中。
接下來是另一個正交化例子,你想想學車的時候,一輛車有三個主要控制,第一是方向盤,方向盤決定你往左右偏多少,還有油門和剎車。就是這三個控制,其中一個控制方向,另外兩個控制你的速度,這樣就比較容易解讀。知道不同控制的不同動作會對車子運動有什么影響。
想象一下,如果有人這么造車,造了個游戲手柄,手柄的一個軸控制的是 0.3?0.3*0.3? 轉向角-速度,然后還有一個軸控制的是 2?2*2? 轉向角 +0.9?+0.9*+0.9? 車速,理論上來說,通過調整這兩個旋鈕你是可以將車子調整到你希望得到的角度和速度,但這樣比單獨控制轉向角度,分開獨立的速度控制要難得多。
所以正交化的概念是指,你可以想出一個維度,這個維度你想做的是控制轉向角,還有另一個維度來控制你的速度,那么你就需要一個旋鈕盡量只控制轉向角,另一個旋鈕,在這個開車的例子里其實是油門和剎車控制了你的速度。但如果你有一個控制旋鈕將兩者混在一起,比如說這樣一個控制裝置同時影響你的轉向角和速度,同時改變了兩個性質,那么就很難令你的車子以想要的速度和角度前進。然而正交化之后,正交意味著互成90度。設計出正交化的控制裝置,最理想的情況是和你實際想控制的性質一致,這樣你調整參數時就容易得多。可以單獨調整轉向角,還有你的油門和剎車,令車子以你想要的方式運動。
那么這與機器學習有什么關系呢?要弄好一個監督學習系統,你通常需要調你的系統的旋鈕。
確保四件事情,首先,你通常必須確保至少系統在訓練集上得到的結果不錯,所以訓練集上的表現必須通過某種評估,達到能接受的程度,對于某些應用,這可能意味著達到人類水平的表現,但這取決于你的應用,我們將在下周更多地談談如何與人類水平的表現進行比較。但是,在訓練集上表現不錯之后,你就希望系統也能在開發集上有好的表現,然后你希望系統在測試集上也有好的表現。在最后,你希望系統在測試集上系統的成本函數在實際使用中表現令人滿意,比如說,你希望這些貓圖片應用的用戶滿意。
我們回到電視調節的例子,如果你的電視圖像太寬或太窄,你想要一個旋鈕去調整,你可不想要仔細調節五個不同的旋鈕,它們也會影響別的圖像性質,你只需要一個旋鈕去改變電視圖像的寬度。
所以類似地,如果你的算法在成本函數上不能很好地擬合訓練集,你想要一個旋鈕,是的我畫這東西表示旋鈕,或者一組特定的旋鈕,這樣你可以用來確保你的可以調整你的算法,讓它很好地擬合訓練集,所以你用來調試的旋鈕是你可能可以訓練更大的網絡,或者可以切換到更好的優化算法,比如Adam優化算法,等等。我們將在本周和下周討論一些其他選項。
相比之下,如果發現算法對開發集的擬合很差,那么應該有獨立的一組旋鈕,是的,這就是我畫得毛毛躁躁的另一個旋鈕,你希望有一組獨立的旋鈕去調試。比如說,你的算法在開發集上做的不好,它在訓練集上做得很好,但開發集不行,然后你有一組正則化的旋鈕可以調節,嘗試讓系統滿足第二個條件。類比到電視,就是現在你調好了電視的寬度,如果圖像的高度不太對,你就需要一個不同的旋鈕來調節電視圖像的高度,然后你希望這個旋鈕盡量不會影響到電視的寬度。增大訓練集可以是另一個可用的旋鈕,它可以幫助你的學習算法更好地歸納開發集的規律,現在調好了電視圖像的高度和寬度。
如果它不符合第三個標準呢?如果系統在開發集上做的很好,但測試集上做得不好呢?如果是這樣,那么你需要調的旋鈕,可能是更大的開發集。因為如果它在開發集上做的不錯,但測試集不行這可能意味著你對開發集過擬合了,你需要往回退一步,使用更大的開發集。
最后,如果它在測試集上做得很好,但無法給你的貓圖片應用用戶提供良好的體驗,這意味著你需要回去,改變開發集或成本函數。因為如果根據某個成本函數,系統在測試集上做的很好,但它無法反映你的算法在現實世界中的表現,這意味著要么你的開發集分布設置不正確,要么你的成本函數測量的指標不對。
我們很快會逐一講到這些例子,我們以后會詳細介紹這些特定的旋鈕,在本周和下周晚些時候會介紹的。所以如果現在你無法理解全部細節,別擔心,但我希望你們對這種正交化過程有個概念。你要非常清楚,到底是四個問題中的哪一個,知道你可以調節哪些不同的東西嘗試解決那個問題。
當我訓練神經網絡時,我一般不用early stopping,這個技巧也還不錯,很多人都這么干。但個人而言,我覺得用early stopping有點難以分析,因為這個旋鈕會同時影響你對訓練集的擬合,因為如果你早期停止,那么對訓練集的擬合就不太好,但它同時也用來改善開發集的表現,所以這個旋鈕沒那么正交化。因為它同時影響兩件事情,就像一個旋鈕同時影響電視圖像的寬度和高度。不是說這樣就不要用,如果你想用也是可以的。但如果你有更多的正交化控制,比如我這里寫出的其他手段,用這些手段調網絡會簡單不少。
所以我希望你們對正交化的意義有點概念,就像你看電視圖像一樣。如果你說,我的電視圖像太寬,所以我要調整這個旋鈕(寬度旋鈕)。或者它太高了,所以我要調整那個旋鈕(高度旋鈕)。或者它太梯形了,所以我要調整這個旋鈕(梯形角度旋鈕),這就很好。
在機器學習中,如果你可以觀察你的系統,然后說這一部分是錯的,它在訓練集上做的不好、在開發集上做的不好、它在測試集上做的不好,或者它在測試集上做的不錯,但在現實世界中不好,這就很好。必須弄清楚到底是什么地方出問題了,然后我們剛好有對應的旋鈕,或者一組對應的旋鈕,剛好可以解決那個問題,那個限制了機器學習系統性能的問題。
這就是我們這周和下周要講到的,如何診斷出系統性能瓶頸到底在哪。還有找到你可以用的一組特定的旋鈕來調整你的系統,來改善它特定方面的性能,我們開始詳細講講這個過程吧。
課程PPT
| 1.1 為什么是ML策略 | 回到目錄 | 1.3 單一數字評估指標 |
總結
以上是生活随笔為你收集整理的1.2 正交化-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.1 为什么需要 ML 策略-深度学习
- 下一篇: 1.3 单一数字评估指标-深度学习第三课