1. 程式人生 > >為何選擇Python作為機器學習語言 機器學習能做些什麼?

為何選擇Python作為機器學習語言 機器學習能做些什麼?

640?wx_fmt=png&wxfrom=5&wx_lazy=1

最近我和一對夫婦共進晚餐,他們問我從事什麼職業,我回應道:“機器學習。”妻子回頭問丈夫:“親愛的,什麼是機器學習?”她的丈夫答道:“T-800型終結者。”在《終結者》系列電影中,T-800是人工智慧技術的反面樣板工程。不過,這位朋友對機器學習的理解還是有所偏差的。機器學習能讓我們自資料集中受到啟發,換句話說,我們會利用計算機來彰顯資料背後的真實含義,這才是機器學習的真實含義。它既不是隻會徒然模仿的機器人,也不是具有人類感情的仿生人。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

現今,機器學習已應用於多個領域,遠超出大多數人的想象,下面就是假想的一日,其中很多場景都會碰到機器學習:假設你想起今天是某位朋友的生日,打算通過郵局給她郵寄一張生日賀卡。你開啟瀏覽器搜尋趣味卡片,搜尋引擎顯示了10個最相關的連結。你認為第二個連結最符合你的要求,點選了這個連結,搜尋引擎將記錄這次點選,並從中學習以優化下次搜尋結果。然後,你檢查電子郵件系統,此時垃圾郵件過濾器已經在後臺自動過濾垃圾廣告郵件,並將其放在垃圾箱內。接著你去商店購買這張生日卡片,並給你朋友的孩子挑選了一些尿布。結賬時,收銀員給了你一張1美元的優惠券,可以用於購買6罐裝的啤酒。之所以你會得到這張優惠券,是因為款臺收費軟體基於以前的統計知識,認為買尿布的人往往也會買啤酒。然後你去郵局郵寄這張賀卡,手寫識別軟體識別出郵寄地址,並將賀卡傳送給正確的郵車。當天你還去了貸款申請機構,檢視自己是否能夠申請貸款,辦事員並不是直接給出結果,而是將你最近的金融活動資訊輸入計算機,由軟體來判定你是否合格。最後,你還去了賭場想找些樂子,當你步入前門時,尾隨你進來的一個傢伙被突然出現的保安給攔了下來。“對不起,索普先生,我們不得不請您離開賭場。我們不歡迎老千。” 圖1.1集中展示了使用到的機器學習應用。

0?wx_fmt=png

圖1-1 機器學習在日常生活中的應用,從左上角按照順時針方向依次使用到的機器學習技術分別為:人臉識別、手寫數字識別、垃圾郵件過濾和亞馬遜公司的產品推薦

上面提到的所有場景,都有機器學習軟體的存在。現在很多公司使用機器學習軟體改善商業決策、提高生產率、檢測疾病、預測天氣,等等。隨著技術指數級增長,我們不僅需要使用更好的工具解析當前的資料,而且還要為將來可能產生的資料做好充分的準備。


機器學習非常重要

在過去的半個世紀裡,發達國家的多數工作崗位都已從體力勞動轉化為腦力勞動。過去的工作基本上都有明確的定義,類似於把物品從A處搬到B處,或者在這裡打個洞,但是現在這類工作都在逐步消失。現今的情況具有很大的二義性,類似於“最大化利潤”,“最小化風險”、“找到最好的市場策略”......諸如此類的任務要求都已成為常態。雖然可從網際網路上獲取到海量資料,但這並沒有簡化知識工人的工作難度。針對具體任務搞懂所有相關資料的意義所在,這正成為基本的技能要求。正如谷歌公司的首席經濟學家Hal Varian所說的那樣:


“我不斷地告訴大家,未來十年最熱門的職業是統計學家。很多人認為我是開玩笑,誰又能想到計算機工程師會是20世紀90年代最誘人的職業呢?如何解釋資料、處理資料、從中抽取價值、展示和交流資料結果,在未來十年將是最重要的職業技能,甚至是大學,中學,小學的學生也必需具備的技能,因為我們每時每刻都在接觸大量的免費資訊,如何理解資料、從中抽取有價值的資訊才是其中的關鍵。這裡統計學家只是其中的一個關鍵環節,我們還需要合理的展示資料、交流和利用資料。我確實認為,能夠從資料分析中領悟到有價值資訊是非常重要的。職業經理人尤其需要能夠合理使用和理解自己部門產生的資料。”
——McKinsey Quarterly,2009年1月

大量的經濟活動都依賴於資訊,我們不能在海量的資料中迷失,機器學習將有助於我們穿越資料霧靄,從中抽取出有用的資訊。



Pyhong語言的優勢

基於以下三個原因,我們選擇Python作為實現機器學習演算法的程式語言:(1) Python的語法清晰;(2) 易於操作純文字檔案;(3) 使用廣泛,存在大量的開發文件。


可執行虛擬碼

Python具有清晰的語法結構,大家也把它稱作可執行虛擬碼(executablepseudo-code)。預設安裝的Python開發環境已經附帶了很多高階資料型別,如列表、元組、字典、集合、佇列等,無需進一步程式設計就可以使用這些資料型別的操作。使用這些資料型別使得實現抽象的數學概念非常簡單。此外,讀者還可以使用自己熟悉的程式設計風格,如面向物件程式設計、面向過程程式設計、或者函數語言程式設計。

Python語言處理和操作文字檔案非常簡單,非常易於處理非數值型資料。Python語言提供了豐富的正則表示式函式以及很多訪問Web頁面的函式庫,使得從HTML中提取資料變得非常簡單直觀。


Python比較流行

Python語言使用廣泛,程式碼範例也很多,便於讀者快速學習和掌握。此外,在開發實際應用程式時,也可以利用豐富的模組庫縮短開發週期。

在科學和金融領域,Python語言得到了廣泛應用。SciPy和NumPy等許多科學函式庫都實現了向量和矩陣操作,這些函式庫增加了程式碼的可讀性,學過線性代數的人都可以看懂程式碼的實際功能。另外,科學函式庫SciPy和NumPy使用底層語言(C和Fortran)編寫,提高了相關應用程式的計算效能。

Python的科學工具可以與繪圖工具Matplotlib協同工作。Matplotlib可以繪製2D、3D圖形,也可以處理科學研究中經常使用到的圖形。

Python開發環境還提供了互動式shell環境,允許使用者開發程式時檢視和檢測程式內容。

Python開發環境將來還會整合Pylab模組,它將NumPy、SciPy和Matplotlib合併為一個開發環境。雖然Pylab還沒有併入Python環境,但是不遠的將來我們肯定可以在Python開發環境找到它。

男怕嫁錯郎,女怕入錯行。對於我們這一代人來說,有幸生於人工智慧的新時代,會一門手藝這個時代非常重要,對於程式設計師來說,想要從事AI和機器學習相關的工作,最好的語言莫過於Python。很多程式設計師參與對於Python和其他幾種流行程式語言的比較,大部分人都承認,Python簡單易學,通俗易懂,符合人性設計,Python和其他語言的比較,正如拼音輸入法與五筆輸入法的比較一樣,一個幾個月集中學習才能初步入門的語言在風雲變幻的技術領域顯然很難快速擴散,廣泛使用。Python對於複雜的人工智慧是一劑清涼劑。 高效的執行在於更加普適的理解,Python的高效就在於有巨大的支撐,又能廣泛被理解,這使得每一項工作獲得的理解力更加強,這是其他語言無法比擬的。僅憑這一點,Python作為AI和機器學習的最佳語言或許有些道理,

而且你也能在網上找到大量的資源。你現在也在考慮從 Python 入門機器學習嗎?本教程或許能幫你成功上手,從 0 到 1 掌握 Python 機器學習,至於後面再從 1 到 100 變成機器學習專家,就要看你自己的努力了。


《python機器學習與深度學習》大綱

1、課程簡介:

課程強調從零開始,動手操作;內容以程式碼落地為主,以理論講解為根,以公式推導為輔。共4天8節,每節各3~3.5小時,講解機器學習和深度學習的模型理論和程式碼實踐,梳理機器學習、深度學習、計算機視覺的技術框架,從根本上解決如何使用模型、優化模型的問題;每次課中,首先闡述演算法理論和少量公式推導,然後使用真實資料做資料探勘、機器學習、深度學習的資料分析、特徵選擇、調參和結果比較。

2、課程目標:

通過課程學習,可以理解機器學習的思維方式和關鍵技術;瞭解深度學習和機器學習在當前工業界的落地應用;能夠根據資料分佈選擇合適的演算法模型並書寫程式碼,初步勝任使用Python進行資料探勘、機器學習、深度學習等工作。

3、課程特點:

課程重視程式碼實踐,使用銀行、金融、運營商等工業界實際資料(資料已脫敏)進行機器學習模型的落地應用。雖然課程堅持推導公式,但更重視機器學習和深度學習的原理與實操;將實際工作中遇到的行業應用和痛點做最直觀切實的展示;重視演算法模型的同時,更強調實際問題中應該如何模型選擇、特徵選擇和調參。

   講授者在中科院做科研,同時在多家企業任職首席或顧問,有豐富的工業經驗,能夠保證聽者儘快瞭解資料探勘、機器學習、深度學習的本質和實踐應用。

4.講師簡介:

鄒博,中國科學院副研究員,天津大學特聘教授,成立中國科學院鄒博人工智慧研究中心(杭州站),在翔創、普開、星河智慧等公司擔任技術顧問,研究方向機器學習、資料探勘、計算幾何,應用於大型氣象裝置的影象與文字挖掘、股票交易與預測、量子化學醫藥路徑尋優、傳統農資產品價格預測和決策等領域。

近一年部分培訓經歷:

0?wx_fmt=png

2017年7月成立中科院鄒博人工智慧研究中心(杭州站)

0?wx_fmt=png

2017年7月10-15日 湖南張家界機器學習和資料探勘高校師資培訓

0?wx_fmt=png

2017年6月12-15日 湖北文理學院本科與研究生人工智慧與機器學習培訓

 0?wx_fmt=png

2017年3月12-15日 杭州電子科技大學研究生資料探勘與機器學習培訓

5.詳細大綱:

第一節:機器學習與Python庫

直譯器Python2.7與IDE:Anaconda/Pycharm

Python基礎:列表/元組/字典/類/檔案

   numpy/scipy/matplotlib/panda的介紹和典型使用

   多元高斯分佈

   典型影象處理

   scikit-learn的介紹和典型使用

   多種數學曲線

   多項式擬合

   快速傅立葉變換FFT

   奇異值分解SVD

   Soble/Prewitt/Laplacian運算元與卷積網路

程式碼和案例實踐:

   卷積與(指數)移動平均線

   股票資料分析

   實際生產問題中演算法和特徵的關係

   缺失資料的處理

   環境資料異常檢測和分析

第二節:迴歸

   線性迴歸

   Logistic/Softmax迴歸

   廣義線性迴歸

   L1/L2正則化

   Ridge與LASSO

   ElasticNet

   梯度下降演算法:BGD與SGD

   特徵選擇與過擬合

   Softmax迴歸的概念源頭

   最大熵模型

   K-L散度

程式碼和案例實踐:

   1.股票資料的特徵提取和應用

   2.泰坦尼克號乘客缺失資料處理和存活率預測

   3.環境檢測資料異常分析和預測

   4.模糊資料查詢和資料校正方法

   5.PCA與鳶尾花資料分類

   6.二手車資料特徵選擇與演算法模型比較

   7.廣告投入與銷售額迴歸分析

   8.鳶尾花資料集的分類

第三節:決策樹和隨機森林

   熵、聯合熵、條件熵、KL散度、互資訊

   最大似然估計與最大熵模型

   ID3、C4.5、CART詳解

   決策樹的正則化

   預剪枝和後剪枝

   Bagging

   隨機森林

   不平衡資料集的處理

   利用隨機森林做特徵選擇

   使用隨機森林計算樣本相似度

   異常值檢測

程式碼和案例實踐:

   1.隨機森林與特徵選擇

   2.決策樹應用於迴歸

   3.多標記的決策樹迴歸

   4.決策樹和隨機森林的視覺化

   5.社會學人群收入預測

   6.葡萄酒資料集的決策樹/隨機森林分類

   7.泰坦尼克乘客存活率估計

第四節:SVM

   線性可分支援向量機

   軟間隔

   損失函式的理解

   核函式的原理和選擇

   SMO演算法

   支援向量迴歸SVR

   多分類SVM

程式碼和案例實踐:

   1.原始資料和特徵提取

   2.呼叫開源庫函式完成SVM

   4.葡萄酒資料分類

   5.數字影象的手寫體識別

   5.MNIST手寫體識別

   6.SVR用於時間序列曲線預測

   7.SVM、Logistic迴歸、隨機森林三者的橫向比較

第五節:聚類

   各種相似度度量及其相互關係

   Jaccard相似度和準確率、召回率

   Pearson相關係數與餘弦相似度

   K-means與K-Medoids及變種

   AP演算法(Sci07)/LPA演算法及其應用

   密度聚類DBSCAN/DensityPeak(Sci14)

   譜聚類SC

   聚類評價和結果指標

程式碼和案例實踐:

   1.K-Means++演算法原理和實現

   2.向量量化VQ及影象近似

   3.並查集的實踐應用

   4.密度聚類的異常值檢測

   5.譜聚類用於圖片分割

第六節:隱馬爾科夫模型HMM

   主題模型LDA

   詞潛入和word2vec

   前向/後向演算法

   HMM的引數學習

   Baum-Welch演算法詳解

   Viterbi演算法詳解

   隱馬爾科夫模型的應用優劣比較

   共軛先驗分佈

   Laplace平滑

   Gibbs取樣詳解

   Metropolis-Hastings演算法

   MCMC

程式碼和案例實踐:

1.敏感話題分析

2.網路爬蟲的原理和程式碼實現

3.LDA開源包的使用和過程分析

4.HMM用於中文分詞

5.檔案資料格式UFT-8、Unicode

6.發現新詞和分詞效果分析

7.高斯混合模型HMM

8.GMM-HMM用於股票資料特徵提取

第七節:卷積神經網路 

卷積神經網路模型介紹

 神經網路結構,濾波器,卷積,池化,啟用函式,反向傳播

 目標分類與識別、目標檢測與追蹤

 經典AlexNet

 高階卷積網路模型:VGG、ResNet、GoogleLeNet、DenseNet

 深度圖片生成網路U-Net

 物體檢測:RCNN,Fast-RCNN,Faster-RCNN, FPN系列

程式碼和案例實踐:

1.如何搭建自己的卷積神經網路

2.遷移學習(Transfer Learning)

3.基於CNN的影象識別

4.實時人臉檢測系統(視訊流處理+識別+定位 RCNN)

5.CNN文字分類

6.卷積神經網路調參經驗分享

第八節:迴圈神經網路

   RNN進階

   RNN基本原理

   LSTM、GRU

   注意力機制(Attention)

   編碼器與解碼器結構

   語言特徵提取:word2vec

   迴圈神經網路進階模型

   搭配CNN使用,組成CNN+LSTM模型

   Bi-LSTM雙向迴圈神經網路結構

   Seq2seq模型

程式碼和案例實踐:

   1.如何搭建自己的迴圈神經網路

   2.圖片標註與圖片問答

   3.智慧對話和閱讀理解

   4.迴圈神經網路調參經驗分享

6.培訓物件:

各高等院校、科研機構大資料相關學科、計算機、軟體、資訊管理、統計等科研人員,在讀高年級本科生及研究生以及有志於python機器學習研究和應用的個人及從業者。

7.時間地點:

2017年12月 7日-2017年12月11日 北京( 7日全天報到)

2018年 1 月24日-2018年 1月28日 上海(24日全天報到)

8.參會費用:

全部課程4900元/人(含培訓費、教材費、證書申報費),機器學習模組(前三天):3900元/人(含培訓費、教材費、證書申報費),食宿以及差旅,費用自理。本次會議由中國管理科學研究院人才戰略研究所主辦,可開具正規發票,以便學員報銷。參加相關培訓學員,可獲得:中國管理科學院人才戰略研究所頒發《機器學習技術與應用管理師》專業技能證書,該證書可作為有關單位專業技術人員能力評價、考核和升職的重要依據。注:請學員自備電子照片1張(註明姓名)以及電子版身份證影印件,請學員自帶膝上型電腦,講師以U盤的形式提供全部教學課件、原始碼、實驗資料、程式設計操作步驟.

請聯絡會務組孫老師:15311617761 qq:930583780索取正式檔案,瞭解具體地點。團購有優惠!

 0?wx_fmt=png