1. 程式人生 > >機器學習篇(概述)

機器學習篇(概述)

機器學習概述

人工智慧主要致力於計算機視覺自然語言處理語音識別三大領域!其基礎與核心都是機器學習。

機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能。

機器學習的應用

機器學習已成為新的邊緣學科並在高校形成一門課程。它綜合應用心理學、生物學和神經生理學以及數學、自動化和電腦科學形成機器學習理論基礎。機器學習已經有了十分廣泛的應用,例如:資料探勘、計算機視覺、自然語言處理、生物特徵識別、搜尋引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰略遊戲和機器人運用。與

符號系統耦合的神經網路連線學習將在企業的智慧管理與智慧機器人運動規劃中發揮作用。

機器學習的核心

機器學習包括資料和演算法,但最主要的部分還是資料。機器學習演算法特別是深度學習近年來取得了極大的成功,但是你需要明白的是資料才是使機器學習成為可能的關鍵因素。你可以使用簡單的演算法實現機器學習,但是沒有好的資料你將寸步難行。 

機器學習的主要策略

機械學習、通過傳授學習、類比學習和通過事例學習。學習中所用的推理越多,系統的能力越強。

機器學習的基本結構

表示學習系統的基本結構。環境向系統的學習部分提供某些資訊,學習部分利用這些資訊修改知識庫,以增進系統執行部分完成任務的效能,執行部分根據知識庫完成任務,同時把獲得的資訊反饋給學習部分。

擴充套件1.0:為什麼結合人工智慧 + Python?

現在動不動學人工智慧就要會Python,認為只有會Python,才能學習人工智慧。

這屬於一種誤解,人工智慧的底層核心演算法是完全依賴於C/C++、彙編的,因為是計算密集型,需要非常精細的優化,還需要GPU、專用硬體之類的介面,這些都只有C/C++能做到。所以某種意義上其實C/C++才是人工智慧領域最重要的語言。

Python有非常強大的第三方庫,包裝庫較 java/C/C++, 更加清爽整潔,又快又漂亮。這些特點到了 AI 領域中,就成了 Python 的強大優勢。基本上你想通過計算機實現任何功能,Python官方庫裡都有相應的模組進行支援,直接下載呼叫後,在基礎庫的基礎上再進行開發,大大降低開發週期,避免重複造輪子,還有Python的是可移植性、可擴充套件性、可嵌入性、少量程式碼可以做很多事,這就是為何人工智慧(AI)首選Python"。

(1)設計初衷

Java語言,本質上是為構造大型複雜系統而設計的。這些大型複雜系統,是由人清清楚楚描述和構造出來的系統,其規模和複雜性是外生的,或者說外界賦予的。因此,Java大多數的語言結構對於大資料的處理和 AI 系統的開發顯得使不上勁。就是說,你強的東西這裡用不上,這裡需要的東西你做起來又彆扭。
而 AI 的本質卻是一個自學習、自組織的系統。這個系統的規模和複雜性是一個數學模型在資料的餵養下自己長出來的,是內生的。故 Python 在資料處理方面 顯得簡潔強悍。對比兩個功能相同的 Java 和 Python 機器學習程式,正常人只要看兩眼就能做出判斷,一定是 Python 程式更加清爽痛快。

(2)優缺點

雖然與 java/C/C++ 的執行速度的比較,Python 慢的多,但在開發被頻繁使用的核心程式庫時,大量使用 C 語言跟它配合,結果用 Python 開發的真實程式跑起來非常快,因為很有可能超過 80% 的時間系統執行的程式碼是 C 寫的。

Python 的戰略是要做一種簡單、易用但專業、嚴謹的通用組合語言,或者叫膠水語言,讓普通人也能夠很容易的入門,把各種基本程式元件拼裝在一起,協調運作。

總結:綜上所述,因為要開發一個其他語言到C/C++的跨語言介面,Python是最容易的。而且Python歷史上也一直都是科學計算和資料分析的重要工具,並且Python封裝得夠簡練,連陣列的排列組合都是個簡單的內建功能。所以越高階的語言,內建功能越多。越接近人類語言。

擴充套件2.0:為什麼結合人工智慧 + 大資料?

有人認為將人工智慧與大資料結合在一起是一個很自然的錯誤,其部分原因是兩者實際上是一致的。但它們是完成相同任務的不同工具。

人工智慧與大資料一個主要的區別是大資料是需要在資料變得有用之前進行清理、結構化和整合的原始輸入,而人工智慧則是輸出,即處理資料產生的智慧。這使得兩者有著本質上的不同。

(1)計算方式

  人工智慧是一種計算形式,它允許機器執行認知功能,例如對輸入起作用或作出反應,類似於人類的做法。傳統的計算應用程式也會對資料做出反應,但反應和響應都必須採用人工編碼。如果出現任何型別的差錯,就像意外的結果一樣,應用程式無法做出反應。而人工智慧系統不斷改變它們的行為,以適應調查結果的變化並修改它們的反應。

支援人工智慧的機器旨在分析和解釋資料,然後根據這些解釋解決問題。通過機器學習,計算機會學習一次如何對某個結果採取行動或做出反應,並在未來知道採取相同的行動。

大資料是一種傳統計算。它不會根據結果採取行動,而只是尋找結果。它定義了非常大的資料集,但也可以是極其多樣的資料。在大資料集中,可以存在結構化資料,如關係資料庫中的事務資料,以及結構化或非結構化資料,例如影象、電子郵件資料、感測器資料等。

(2)資料使用

它們在使用上也有差異。大資料主要是為了獲得洞察力,例如Netflix網站可以根據人們觀看的內容瞭解電影或電視節目,並向觀眾推薦哪些內容。因為它考慮了客戶的習慣以及他們喜歡的內容,推斷出客戶可能會有同樣的感覺。

人工智慧是關於決策和學習做出更好的決定。無論是自我調整軟體、自動駕駛汽車還是檢查醫學樣本,人工智慧都會在人類之前完成相同的任務,但速度更快,錯誤更少。

雖然它們有很大的區別,但人工智慧和大資料仍然能夠很好地協同工作。這是因為人工智慧需要資料來建立其智慧,特別是機器學習。例如,機器學習影象識別應用程式可以檢視數以萬計的飛機影象,以瞭解飛機的構成,以便將來能夠識別出它們。

總結:人工智慧應用的資料越多,其獲得的結果就越準確。在過去,人工智慧由於處理器速度慢、資料量小而不能很好地工作。也沒有像當今先進的感測器,並且當時網際網路還沒有廣泛使用,所以很難提供實時資料。人們擁有所需要的一切:快速的處理器、輸入裝置、網路和大量的資料集。毫無疑問,沒有大資料就沒有人工智慧。