十大機器學習算法:為什麼它們在 2021 年如此重要?

已發表: 2019-06-10
目錄
  • 進入機器學習的兔子洞

  • 現實生活中的應用

  • 機器學習算法是什麼意思?

  • 機器學習的類型

  • 十大機器學習算法

  • 包起來

  • 在2021年,計算機不僅能看到,但他們可以閱讀他們自己的協議

    好吧,讓我們來看看我們實際生活的現代恐怖故事。

    例如,如果有人告訴你很快 30% 的工作將被自動化取代,你會如何反應? 太離譜了,不是嗎?

    這與機器學習算法有什麼關係?

    幸運的是,隧道盡頭有一盞燈。 讓我帶你完成它。

    2021 年,計算機可以:

    • 識別聲音、面孔和筆跡。 (CSI風格……)
    • 自動為圖片添加字幕。
    • 了解如何識別圖像的內容並根據特定特徵對其進行分類。
    • 為你做任務。 (並創建所需的算法來實現它們。)

    當然,名單還在繼續。

    我們每天都在進行網絡搜索、訪問網站和社交媒體。 我們從不問自己這個基本問題:

    AI技術走了多遠?

    開始了!

    技術的成就引發了對人類未來的質疑。

    也許這些事實會給我們一些啟示:

    (來源:未來主義 德澤爾)

    • 在韓國,每100名工人中,平均4.78 名是機器人
    • 埃塞俄比亞88%的員工面臨被機器人失業的風險。
    • 在紐約市,瀕危僱員的比例40.7%
    • 編寫機器學習程序需要9 行代碼。
    • 97%的快餐烹飪工作將被機器取代。
    • 98%的農民將因機器而失業。
    • 機器學習每年可為製藥行業帶來高達10 億美元的收入。
    • 未來 10 年,機器學習預計將取代25%的工作。

    到 2021 年,我們實際上可以在家中擁有一個機器人。

    您可以與JiboTapia進行流暢的對話 他們被稱為社交機器人是有原因的。

    他們會記住您朋友和家人的姓名、面孔和聲音(一點也不可怕!),他們可以照看您的孩子(哦,是的!),如果您在家中發生意外,他們會撥打 911你。 當周圍沒有其他人時,最後一個可能特別有用。 但我們稍後會談到。

    如今,算法可以“自學”語言,甚至可以將英語口語翻譯成中文書面語,同時達到普通中文母語者的流利程度。 遲早,學習外語將不可避免地過時。

    這個怎麼樣:

    我們的智能手機確實在監視我們……我相信您完全知道我在說什麼! 想像一下——在辦公室午餐時你提到(口頭!)你想開始看路西法 回到辦公桌前,你在手機上打開 Pinterest 或 Facebook,他就在那裡——魔鬼本人……(是的,湯姆·埃利斯很夢幻,但這不是重點!)

    推薦系​​統無處不在。 如果您輸入“樂高”的搜索,則彈出並歸類為樂高的相關圖像已被人工智能識別。 換句話說,它們並沒有被人類手動註釋為樂高積木……

    該算法通過查看數百萬張圖像自學這是什麼

    雞皮疙瘩!

    所有這些功能以及更多功能已經被公司利用。

    這裡的含義是:

    首先,計算機自學吧,伙計們! 想想未來所有的機器人工人。 他們將比人類工作者更快地學習和執行任務。

    其次-我知道你是什麼樣的思維- OMG,人類是如此注定!

    很多人都有這樣的反應。

    上個世紀的許多作者都寫過機器人主宰人類的未來。 人工智能正在蓬勃發展,機器人將統治世界並以人類為食。 奇點就在附近。

    好的,這是一個停下來的好地方。

    既然我們已經把它排除在我們的系統之外,讓我們來看看什麼是事實。

    進入機器學習的兔子洞

    我們首先需要一些上下文。

    15,000 年前,世界上最受歡迎的遊戲之一誕生了。 在 12 世紀和 14 世紀之間,這種遊戲被稱為國際象棋

    它有40 種可能結果的10 次方(即 1 末尾有 40 個零)。

    2017 年,谷歌的AlphaZero算法使用機器學習來自學玩和贏得遊戲。

    整個過程,從介紹遊戲到算法,直到它贏得了與 Stockfish 的第一場比賽——世界上最強大的國際象棋引擎之一,經歷了:

    (振作起來!)

    4個小時。

    哎喲!

    是的,我們正處於機器學習革命的邊緣

    回過頭來看,這並不是第一次出現此類中斷。 19 世紀末 20 世紀初的工業革命也確實造成了社會動盪,但最終,人類和機器實現了平衡。

    是的,事情正在發生變化,這實際上是一件好事!

    機器學習軟件能夠以全新的眼光看待問題並在未知環境中導航。

    所以,正如我們即將看到的,這畢竟不是一個恐怖故事。

    更像是一個技術奇蹟。

    現在:

    為什麼分類如此重要?

    首先,機器學習定義是什麼?

    基本上,機器被編程為自學如何生成程序和創建解決方案。 機器學習總是能產生最準確的數字(如果需要的話,還有預測)。

    想想一種可以解決範圍廣泛的完全不同問題的技術。

    這就是它的美妙之處!

    該系統的主要目的是分類 這也稱為計算機視覺 它會自己學會區分。 而世界上可以簡化為看似簡單的分類任務的不同問題的數量,絕對令人難以置信。

    想像一下分類的能力:

    • 好的和壞的國際象棋位置(遊戲)
    • 語法正確和錯誤的句子(翻譯)
    • 一條空蕩蕩的道路,上面有汽車或行人(自動駕駛汽車)
    • 一個健康細胞和一個癌細胞(醫學診斷)

    這就是為什麼許多領域的專家會過時的原因。 您無需成為專家即可創建執行此類任務的代碼。 編寫英漢同聲翻譯程序的傢伙一個字也不會說中文。

    該算法將自學如何成為專家。

    是的,了解它們並了解它們很重要……就像我們一開始了解計算機的方式一樣。

    我們現在對電腦很好。 太好了,我們傾向於將它們擬人化(或者這只是我?)。

    似乎是時候問問自己了:

    所有這些最終將因人工智能和機器學習程序而失業的人會發生什麼?

    你聽說過一種叫做普遍基本收入的小東西嗎?

    它是這樣的:

    未來,公民將獲得不涉及他們從事任何工作的收入。 資金將來自自動化提供的瘋狂效率以及由此帶來的節省。

    無論是這種情況,還是——稍微現實一點的情況——許多新的工作類型將會出現。 在 19 世紀末,美國約有 50% 的人口從事農業。 現在,多虧了強大的機器,只有不到 2% 的人是農民,但有人就業。

    現在,機器學習可以用來做什麼?

    現實生活中的應用

    機器學習可用於從數據庫中推斷出新的事實。

    讓我們來看看一些領域,其中機器學習將有很大區別:

    • 輔助駕駛——當您靠近前面的車輛時,汽車可以自動為您剎車。 因此,在未來的某個時候,人類幾乎會忘記車禍意味著什麼 無人駕駛汽車正在路上。
    • 醫療保健——提高醫療專業人員的效率。 在機器學習的幫助下,疾病識別和診斷將變得更加容易和準確。 例如,程序不僅可以比人類更好地掃描和識別癌症組織的圖像,而且還可以根據龐大的病歷數據庫計算患者的存活率。 (查看Jeremy Howard的作品和他的名為Enlitic 的項目。太棒了!)
    • 藥物發明——在機器學習的幫助下,每個患者都可以接受專為他設計的治療。
    • 農業——農業將通過計算機視覺和機器人控制實現自動化:作物質量和預測、疾病檢測、牲畜福利和生產。
    • 人工智能驅動的語言能力——在不久的將來,我們將能夠使用人工智能進行口頭交流和實時翻譯

    機器學習只是一種工具,在可預見的未來仍將是一種工具。

    所以,無需擔心。 高枕無憂。

    現在我們已經了解了機器學習是什麼,讓我們問下一個問題:

    機器學習算法是什麼意思?

    因此,在我們確定了對我們未來機器學習的重要性和益處之後,讓我們仔細看看使魔法發生的算法。

    解釋機器學習算法的一個好方法是它們與傳統編程進行比較

    傳統編程中,程序員與該領域的專家在一個團隊中工作,為該領域開發軟件。 任務越複雜——代碼越長,編寫起來就越困難。

    機器學習算法的工作方式完全不同。 該算法接收一個數據集作為輸入——以及一個可選的輸出數據集 然後它分析它(或它們)併計算出產生有用結果必鬚髮生的過程。 今天,這是為人類程序員保留的工作。 未來,這種情況也會改變。

    機器學習的類型

    有 4種不同類型的機器學習算法。

    他們來了:

    1. 監督學習

    監督學習算法中的輸入數據被標記,輸出是已知且準確的。 為了使用此類算法,您需要大量標記數據。 這可能並不總是一件容易的事。

    監督算法分為兩類——回歸分類 每個檢查不同的數據集。

    回歸算法是進行預測和預測的算法。 其中包括天氣預報、人口增長和預期壽命估計、市場預測。

    分類算法用於診斷、身份欺詐檢測、客戶保留,以及顧名思義——圖像分類。

    2. 無監督學習

    當輸入數據沒有標記時會發生這種情況。 他們將數據組織成集群結構。 因此,任何輸入數據都可以立即進行分析。

    由於數據未標記,因此無法評估結果的準確性。 也就是說,無監督算法旨在追求的並不是準確性。 算法創建的集群對程序來說並不熟悉。 所以這個想法是輸入數據,分析它,然後把它分組到集群中。

    就像監督算法一樣,它們的無監督算法也分為兩類——降維聚類

    聚類算法本身顯然是這一切的一部分。 將數據按類別分組很有用,因此您不必單獨處理每一部分。 這些算法首先用於客戶細分和有針對性的營銷。

    降維算法用於結構發現、大數據可視化、特徵提取和有意義的壓縮。 如果聚類是硬幣的一面,那麼降維將是另一方面。 通過將數據分組到集群中,算法不可避免地減少了描述數據集的有意義的變量(維度)的數量。

    現在,有一類機器學習算法結合了前 2 類:

    3. 半監督學習

    它代表監督之間標記的數據,並未標記的數據無監督的算法

    半監督算法使用少量標記數據和大量未標記數據。 這可以導致學習準確性的提高。

    就數據收集而言,這也是一個巨大的緩解,因為生成標記數據需要大量資源。

    4. 強化學習

    與前面的 3 種類型不同,強化算法根據數據集選擇動作。 然後他們評估結果並在需要時更改策略。

    在強化算法中,您創建了一個網絡和一個動作循環,僅此而已。 無需創建數據庫,您就有了贏家。 為什麼?

    嗯,是強化算法找出了跳棋、國際象棋和圍棋的遊戲。

    強化學習的工作原理是反複試驗。 該系統將獲得某種獎勵,以幫助它衡量其成功率。 在遊戲的情況下 - 獎勵將是記分牌。 每當系統贏得一分時,它會將其評估為成功移動,並且此移動的狀態變得更高。 它將不斷重複循環,直到所有動作都成功為止。

    這就是我們如何擁有一個可以在 4 小時內掌握國際象棋遊戲的算法。

    現在我們知道了!

    好吧。 讓我們來看看算法本身:

    十大機器學習算法

    現在,在開始之前,讓我們先了解一下機器學習中的核心概念之一。 回歸,當涉及到機器學習回歸算法時意味著該算法將嘗試在兩個變量之間建立關係。

    有許多類型的回歸——線性回歸、邏輯回歸、多項式回歸、普通最小二乘回歸等等。 今天我們只介紹前兩種類型,否則這將更好地出版為一本書,而不是一篇文章。

    正如我們稍後將看到的,前 10 名算法中的大多數都是監督學習算法,最好與 Python 一起使用。

    以下是排名前 10 的機器學習算法列表

    1. 線性回歸

    它是最流行的機器學習算法之一。 它的作用是通過觀察數據擬合線性方程來建立兩個變量之間的關係。

    換句話說,這種類型的算法觀察各種特徵以得出結論。 如果變量的數量大於兩個 - 該算法將被稱為多元線性回歸。

    線性回歸也是在 Python 中運行良好的監督機器學習算法之一 它是一種強大的統計工具,可用於預測消費者行為、估計預測和評估趨勢。 公司可以從進行線性分析和預測未來一段時間的銷售額中受益。

    所以,如果我們有兩個變量,其中一個是解釋性的,另一個是依賴的 因變量代表您想要研究或預測的值。 解釋變量是獨立的。 因變量總是依賴於解釋。

    線性機器學習的重點是查看兩個變量之間是否存在顯著關係,如果存在,則查看它到底代表什麼。

    線性回歸被認為是一種簡單的機器學習算法,因此在科學家中很受歡迎。

    現在,有線性回歸,還有邏輯回歸。 讓我們來看看區別:

    2.邏輯回歸

    這是基本的機器學習算法之一 它是一個只有 2 個狀態或 2 個值二項式分類器- 您可以為其分配輸入數據被壓縮,然後被分析。

    與線性回歸不同,邏輯算法使用非線性函數進行預測。 邏輯回歸算法用於分類而不是回歸任務。 名稱中的“回歸”表明算法使用線性模型並將其納入未來空間。

    邏輯回歸是一種有監督的機器學習算法,與線性回歸一樣,它在 Python 中運行良好。 從數學的角度來看,如果研究的輸出數據預計是生病/健康或癌症/無癌症,那麼邏輯回歸是使用的完美算法。

    與輸出數據可能具有不同值的線性回歸不同,邏輯回歸只能將 1 和 0 作為輸出。

    基於分類響應,有 3 種類型的邏輯回歸。 這些是:

    • 二元邏輯回歸——如果輸出是某種“是”/“否”,這是最常用的類型。
    • 多項式邏輯回歸——當可能有 3 個或更多沒有排序的答案時。
    • 有序邏輯回歸——同樣是 3 個或更多的答案,但有順序。 例如,當預期結果在 1 到 10 的範圍內時。

    讓我們看看另一個很棒的分類算法:

    3. 線性判別分析

    此方法找到特徵的線性組合,將不同的輸入數據分開。 LDA 算法的目的是檢查作為特徵線性聯合的可靠變量。 這是一種很棒的分類技術

    該算法檢查輸入數據的統計質量並為每個類別進行計算。 它測量類的值,然後測量所有類之間的方差。

    在對類之間的差異建模的過程中,該算法根據自變量檢查輸入數據。

    輸出數據包含有關具有最高值的類的信息。 線性判別分析算法最適合在已知類別之間進行分離 當幾個因素需要在數學上進行分類時,我們使用 LDA 算法。

    4. K-最近

    kNN 算法是非常適合初學者的機器學習算法之一 他們根據舊的可用數據進行預測,以便根據不同的特徵將數據分類

    它在監督機器學習算法列表中,主要用於分類。 它存儲可用數據並使用它來衡量新案例中的相似性。

    kNN 中K是一個參數,表示將包含在“多數投票過程”中的最近鄰居的數量。 這樣,每個元素的鄰居“投票”來確定他的類。

    使用 kNN 算法的最佳方法之一是當您有一個小的、無噪聲的數據集並且所有數據都帶有標籤時。 該算法不是一個快速的算法,並且不會自學識別不干淨的數據。 當數據集較大時,使用 kNN 不是一個好主意。

    kNN 算法是這樣工作的:首先,指定參數 K,然後算法生成一個條目列表,即接近新數據樣本。 然後它找到條目的最常見的分類,最後,它對新的數據輸入進行分類。

    在實際應用方面,搜索引擎使用 kNN 算法來確定搜索結果是否與查詢相關。 他們是無名英雄,可以在用戶進行搜索時節省用戶時間。

    接下來是 Tree-Trio:回歸樹隨機森林AdaBoost

    開始了:

    5. 回歸樹(又名決策樹)

    是的,它們被稱為tree ,但既然我們在談論機器學習算法,想像一下它們的根在頂部,樹枝和葉子在底部。

    回歸樹是一種監督學習算法,令人驚訝的是,它在 Python 中運行良好。 (順便說一下,大多數 ML 算法都可以。)

    這些“樹”也稱為決策樹,用於預測建模 就輸入數據的數量而言,它們需要用戶相對較少的努力。

    它們的表示是一棵二叉樹,它們解決了分類問題。 顧名思義,這種類型的算法使用樹狀決策模型。 他們執行變量篩選或特徵選擇。 輸入數據既可以是數字數據,也可以是分類數據。

    請翻譯!

    當然。 每當您做出決定時,您都會過渡到一個新的情況——需要做出新的決定。 您可以採取的每條可能路線都是一個“分支”,而決策本身就是“節點”。 您的初始起點是主節點。

    這就是決策樹算法如何創建一系列節點和葉子。 這裡重要的是它們都來自一個節點。 (相比之下,隨機森林算法產生許多樹,每棵樹都有其主節點。)

    在實際應用方面,回歸樹可用於基於各種因素預測存活率、保險費和房地產價格。

    回歸樹“生長”決策的分支,直到達到停止標準。 它適用於少量輸入數據,否則,您可能會得到有偏差的輸出數據集。

    該算法基於多種算法,決定在何處拆分並從決策中形成新分支。 數據被分成子註釋區域,這些區域聚集在所有可用變量周圍。

    6. 隨機森林

    隨機森林算法是監督機器學習的另一種形式 它產生多個決策樹,而不是像回歸樹那樣只有一個。 節點是隨機分佈的,它們的順序對輸出數據沒有意義。 樹的數量越大,結果越準確。

    這種類型的算法可用於分類和回歸。 隨機森林算法的一個很棒的特性是它可以在大量數據丟失的情況下工作 它還具有處理大型數據集的能力。

    在回歸的情況下,這些算法不是最佳選擇,因為它對模型的作用沒有太多控制。

    隨機森林算法在電子商務中非常有用。 如果您需要確定您的客戶是否會喜歡某雙鞋,您只需收集他們之前購買的信息。

    您包括鞋子的類型、是否有鞋跟、買家的性別以及他們之前訂購的鞋子的價格範圍。 這將是您的輸入數據。

    該算法將生成足夠的樹來為您提供準確的估計。

    不客氣!

    最後一個樹系統算法來了:

    7. AdaBoost

    AdaBoost 是 Adaptive Boosting 的縮寫。 該算法因其創造者在 2003 年獲得了哥德爾獎

    和前兩個一樣,這個也使用了樹的系統。 AdaBoost 中的樹僅產生 1 個節點和 2 個葉子,即stump ,而不是多個節點和葉子

    AdaBoost 算法與決策樹隨機森林有很大不同

    讓我們來看看:

    它產生一個輸出前決策樹算法會用很多變數。 一個樹樁只能使用 1 個變量來做出決定。

    隨機森林算法的情況下,所有的樹對於最終決策同等重要 AdaBoost 算法將某些樹樁設置為優先於其他樹樁。

    最後但並非最不重要的一點,可以說隨機森林樹更混亂 這意味著樹的順序是無關緊要的。 結果並不取決於樹木的生產順序。 相比之下,對於 AdaBoost 算法——順序是必不可少的。

    每棵樹的結果都是下一棵樹的基礎。 因此,如果在此過程中出現錯誤,後續的每一棵樹都會受到影響。

    好吧,那麼這個算法在現實生活中能做什麼呢?

    AdaBoost 算法已經在醫療保健領域大放異彩,研究人員使用它們來衡量疾病風險。 你有數據,但不同的因素有不同的引力。 (想像一下你摔倒在你的手臂上,你的醫生使用一種算法來確定它是否斷了。如果輸入數據同時包含你手臂的 X 光片和你斷掉的指甲的照片……嗯,很明顯哪個殘端會更加重視。)

    現在,我們走出了森林,可以這麼說,讓我們來看看其他 3 種機器學習算法:

    8. 樸素貝葉斯

    當您遇到文本分類問題時,這會派上用場 它是一種機器學習算法,用於處理高維數據集,例如垃圾郵件過濾或新聞文章分類。

    該算法帶有此簽名名稱,因為它將每個變量視為獨立的。 換句話說,它認為輸入數據的不同特徵是完全不相關的。 這使它成為一個簡單而有效的概率分類器。

    名稱中的“貝葉斯”部分指的是發明用於該算法的定理的人,即 – 托馬斯貝葉斯。 正如您可能懷疑的那樣,他的定理檢驗了事件的條件概率。

    概率在兩個級別上計算。 首先,每個類別的概率。 其次,根據給定因素的條件概率。

    9. 學習向量量化

    學習矢量量化算法(LVQ)是一種更高級的機器學習算法

    與 kNN 不同,LVQ 算法代表了一種人工神經網絡算法 換句話說,它旨在重建人腦的神經學。

    LVQ 算法使用一組碼本向量作為表示。 這些基本上是數字列表,與您的訓練數據具有相同的輸入和輸出質量。

    10.支持向量機

    這些是最流行的機器學習算法之一

    支持向量機算法適用於分類的極端情況 含義——當輸入數據的決策邊界不清楚時。 SVM 作為一個邊界,可以最好地隔離輸入類。

    SVM 可用於多維數據集。 該算法將非線性空間轉換為線性空間。 在二維中,您可以將變量可視化為一條線,從而更容易識別相關性。

    SVMs已經在現實生活中的各個領域得到了應用:

    • 在醫學影像和醫學分類任務中
    • 研究人口稠密地區的空氣質量
    • 幫助進行財務分析
    • 在搜索引擎的頁面排名算法中
    • 用於文本和對象識別。

    這聽起來像是 ML 算法的瑞士刀,不是嗎?

    包起來

    人類和計算機可以成功地協同工作。

    研究人員向我們保證,這種夥伴關係可以並且帶來驚人的結果。 機器學習算法已經在以多種方式幫助人類。

    機器學習和人工智能算法最重要的功能之一是分類。

    讓我們再次簡要地看看排名前 10 的機器學習算法:

    • 線性回歸——用於建立兩個變量之間的關係——一個Logistic Regression – 二項式分類器,每個查詢只有 2 個可能的結果。
    • 線性判別分析——最適合在已知類別中對數據進行分類。
    • K-Nearest Neighbor – 將數據分類。
    • 回歸樹——用於預測建模。
    • 隨機森林- 用於大型數據集,並且當大部分輸入數據丟失時。
    • AdaBoost – 二元分類。
    • 樸素貝葉斯– 預測建模。
    • 學習矢量量化——一種人工神經網絡算法。
    • 支持向量機——多維數據集中分類的極端情況。

    所有這些算法(加上尚未到來的新算法)將為人類繁榮的新時代奠定基礎。 它將使普遍的基本收入成為可能(甚至必要),以確保能力較差的人的生存。 (否則誰會反抗並弄亂我們的社會。哦,好吧。)

    好吧,誰能想到一篇關於機器學習算法的文章會如此愚蠢。 嗯,這就是今天的內容。

    一會兒見,伙計們!

    常問問題

    機器學習的局限性是什麼

    機器學習很棒,它揭示了技術的未來。 這是有代價的。 例如,託管機器學習程序的計算機消耗大量的電力和資源。 到目前為止,機器學習的另一個缺點是偶爾的實體消歧。 有時機器無法區分安妮海瑟薇的名字和伯克希爾哈撒韋的股票價值。 每次這位女演員得到一些媒體關注,公司就會賺錢……

    什麼是機器學習算法?

    機器學習是一種計算方法。 “傳統”算法需要程序員來編寫,而機器學習算法基本上是自我訓練。 是的,不開玩笑!

    什麼是最好的機器學習算法?

    這取決於您需要執行的任務。 為手頭的任務選擇最佳算法取決於輸入的大小、質量和多樣性,以及用戶請求的輸出數據類型。

    你如何編寫機器學習算法?

    與其他所有事情一樣,該過程首先要了解您為問題選擇的算法的基礎知識。 您需要諮詢不同的學習資源並選擇最適合您的學習資源。 然後首先將算法分解為小單元。 從一個簡單的例子開始,當你掌握了一些東西時,你就用一個可信的實現來驗證。 然後你就完成了整個過程。 這聽起來可能比實際更難。 但這完全值得一試!