<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 在機器學習中擁抱隨機性 > 原文: [https://machinelearningmastery.com/randomness-in-machine-learning/](https://machinelearningmastery.com/randomness-in-machine-learning/) ### _為什么你會得到不同的結果_ _算法的不同運行_ _具有相同的數據?_ 應用機器學習是一個突破和思維方式轉變的掛毯。 了解隨機性在機器學習算法中的作用是其中一項突破。 一旦你得到它,你會看到不同的東西。全新的亮點。比如在一種算法和另一種算法之間進行選擇,超參數調整和報告結果。 你也會開始看到各地的濫用行為。犯罪無支持的表現聲明。 在這篇文章中,我想輕輕地睜開你的眼睛,看看隨機數在機器學習中的作用。我想給你一些工具來接受這種不確定性。給你一個突破。 讓我們潛入。 (_特別感謝徐章和Nil Fero推薦這篇文章_) ![Embrace Randomness in Applied Machine Learning](img/f2cca9b91c060aff80b9963099544ec8.jpg) 在應用機器學習中擁抱隨機性 [Peter Pham](https://www.flickr.com/photos/136807076@N07/24137339992) 的照片,保留一些權利。 ## 為什么結果與同一數據不同? 很多人都會問這個問題或者這個問題的變體。 **你并不孤單!** 我每周都會收到一封電子郵件。 以下是發布到Q&amp; A網站的類似問題: * [為什么每次運行算法時都會得到不同的結果?](http://stats.stackexchange.com/questions/56362/why-do-i-get-different-results-each-time-i-run-my-algorithm) * [交叉驗證對同一數據](http://stats.stackexchange.com/questions/144387/cross-validation-gives-different-result-on-the-same-data)給出不同的結果 * [人工智能中的隨機性&amp;機器學習](http://stackoverflow.com/questions/5891727/randomness-in-artificial-intelligence-machine-learning) * [為什么收斂后每次運行的權重都不同?](https://www.researchgate.net/post/Why_are_the_weights_different_in_each_running_after_convergence) * [兩臺計算機上具有相同學習數據和相同測試數據的相同神經網絡會產生不同的結果嗎?](https://www.quora.com/Does-the-same-neural-network-with-the-same-learning-data-and-same-test-data-in-two-computers-give-different-results) ## 機器學習算法使用隨機數 機器學習算法利用隨機性。 ### 1.數據收集的隨機性 通過訓練不同的數據,機器學習算法將構建不同的模型。這取決于算法。模型與不同數據的差異稱為模型方差(如[偏差 - 方差權衡](http://machinelearningmastery.com/gentle-introduction-to-the-bias-variance-trade-off-in-machine-learning/))。 因此,數據本身就是隨機性的來源。數據集合中的隨機性。 ### 2.觀察順序的隨機性 觀察結果暴露于模型的順序會影響內部決策。 有些算法特別容易受此影響,如神經網絡。 在每次訓練迭代之前隨機混合訓練數據是一種好習慣。即使你的算法不易受影響。這是一種最佳實踐。 ### 3.算法中的隨機性 算法利用隨機性。 可以將算法初始化為隨機狀態。例如人工神經網絡中的初始權重。 在確定性方法的訓練期間以平局(和其他內部決策)結束的投票可能依賴于隨機性來解決。 ### 4.采樣的隨機性 我們可能有太多的數據無法合理使用。 在這種情況下,我們可以使用隨機子樣本來訓練模型。 ### 5.重采樣的隨機性 我們在評估算法時進行抽樣。 我們使用諸如將數據分成隨機訓練和測試集之類的技術,或者使用k-fold交叉驗證來對數據進行k隨機分割。 結果是對看不見的數據的模型(以及用于創建它的過程)的表現估計。 ### 毫無疑問 毫無疑問,隨機性在應用機器學習中起著重要作用。 **應該控制我們可以控制的隨機性。** ## 獲取免費算法思維導圖 ![Machine Learning Algorithms Mind Map](img/2ce1275c2a1cac30a9f4eea6edd42d61.jpg) 方便的機器學習算法思維導圖的樣本。 我已經創建了一個由類型組織的60多種算法的方便思維導圖。 下載,打印并使用它。 ## 隨機種子和可重復的結果 在數據集上運行算法并獲取模型。 如果給出相同的數據,你能再次獲得相同的模型嗎? 你應該能夠。它應該是建模項目列表中的高要求。 通過使用與隨機數完全相同的**代碼**,**數據**和**序列,我們實現了應用機器學習的再現性。** 使用假裝隨機數生成器在軟件中生成隨機數。這是一個簡單的數學函數,可以為大多數應用程序生成一系列隨機數。 這個數學函數是確定性的。如果它使用相同的起始點稱為種子數,它將給出相同的隨機數序列。 **問題解決了。** **主要是。** 通過在我們構建的每個模型之前修復隨機數生成器的種子,我們可以獲得可重現的結果。 實際上,這是一種最佳實踐。 我們應該這樣做,如果還沒有。 實際上,我們應該為每個我們比較的算法和我們嘗試的每種技術提供相同的隨機數序列。 它應該是我們運行的每個實驗的默認部分。 ## 機器學習算法是隨機的 如果機器學習算法給出了具有不同隨機數序列的不同模型,那么我們選擇哪種模型? 哎喲。有磨擦。 我不時被問到這個問題,我喜歡它。 這是一個跡象,有人真正了解所有這些應用機器學習的東西 - 或即將到來。 * 運行不同的算法... * 不同的隨機數給... * 不同的型號...... * 不同的表現特征...... 但差異在一定范圍內。 這種差異的奇特名稱或范圍內的隨機行為是隨機的。 機器學習算法在實踐中是隨機的。 * 期待它們是隨機的。 * 期望有一系列模型可供選擇,而不是單一模型。 * 期望表現是范圍而不是單個值。 **這些是你必須在實踐中解決的非常真實的期望。** 你能想到什么策略來解決這些期望? ![Machine Learning Algorithms Use Random Numbers](img/03c0ec5512e7fab5509cac540dddc10a.jpg) 機器學習算法使用隨機數 照 [Pete](https://www.flickr.com/photos/comedynose/3786642240/) ,保留一些權利。 ## 解決隨機算法不確定性的策略 值得慶幸的是,學術界長期以來一直在努力應對這一挑戰。 您可以使用兩種簡單的策略: 1. 減少不確定性。 2. 報告不確定性。 ### 減少不確定性的策略 如果我們在每次運行算法時都得到不同的模型,我們能做什么? 我們多次嘗試運行算法并收集一系列表現指標。 如果我們使用 _k_ - 交叉驗證,我們已經這樣做了。我們構建 _k_ 不同的模型。 我們可以增加 _k_ 并構建更多模型,只要每個折疊中的數據仍然代表問題。 我們還可以重復我們的評估過程 _n_ 次,以便在我們的績效衡量指標中獲得更多數字。 **這種策略稱為隨機重復或隨機重啟。** 隨機優化和神經網絡更為普遍,但一般情況下也是如此。試試吧。 ### 報告不確定性的策略 切勿使用單個數字報告機器學習算法的表現。 如果你這樣做,你很可能犯了一個錯誤。 你已經收集了大量的績效指標。使用此人口的統計數據。 **這種策略稱為報告摘要統計。** 結果的分布很可能是高斯分布,因此一個很好的開始是報告表現的均值和標準差。包括觀察到的最高和最低表現。 In fact, this is a best practice. 然后,您可以在執行模型選擇時比較結果度量的總體。如: * 在算法之間進行選擇。 * 在一種算法的配置之間進行選擇。 您可以看到這對您遵循的流程有重要影響。例如:選擇在問題上使用哪種算法,以及調整和選擇算法超參數。 傾向于統計顯著性測試。統計測試可以確定一組結果測量值之間的差異是否與第二組結果顯著不同。 同時報告其重要性。 這也是一種最佳實踐,遺憾的是沒有足夠的采用。 ## 等等,最終模型選擇怎么樣? 一旦我們選擇了算法和配置,最終模型就是在整個訓練數據集上準備的模型。 這是我們打算用于預測或部署到運營中的模型。 我們還得到了具有不同隨機數序列的不同最終模型。 我有一些學生問: > 我應該創建許多最終模型,并在保留驗證數據集中選擇具有最佳精度的模型。 “_沒有_”我回答說。 這將是一個脆弱的過程,高度依賴于所提出的驗證數據集的質量。您正在選擇針對少量數據樣本進行優化的隨機數。 **聽起來像是過度擬合的秘訣。** 總的來說,我會依賴從上述策略中獲得的減少和報告不確定性的信心。我經常拿第一個模型,它和其他模型一樣好。 有時您的應用程序域會讓您更加關心。 在這種情況下,我會告訴你建立一個模型集合,每個模型都使用不同的隨機數種子進行訓練。 使用簡單的投票合奏。每個模型進行預測,并將所有預測的平均值報告為最終預測。 使合奏盡可能大。我認為10,30或100是很好的圓形數字。 也許繼續添加新模型,直到預測變得穩定。例如,繼續直到預測的方差在某些保持集上收緊。 ## 摘要 在這篇文章中,您發現了隨機數為應用機器學習不可或缺的原因。你無法逃脫它們。 您了解了可用于確保結果可重復的策略。 您了解了在選擇模型和報告結果時可以用來接受機器學習算法的隨機性的技術。 有關可重復使用的結果在機器學習和技術中的重要性的更多信息,請參閱帖子: * [默認重現機器學習結果](http://machinelearningmastery.com/reproducible-machine-learning-results-by-default/) 您對機器學習中的隨機數或此帖有任何疑問嗎? 在評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看