日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(转) 何为机器学习

發布時間:2024/3/26 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转) 何为机器学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

何為機器學習

2016-09-23?FabUnion

在過去的幾年中,Uber無人車,Google阿爾法狗,量化交易,LinkedIn精準的好友推送又或是我們建筑孩子們熟悉的Grasshopper中的Galapagos。機器學習(Machine Leraning)正在切實地改變著我們的生活、學習與工作。

?

?

什么是機器學習?


機器學習是一種可以自動生成分析模型的數據分析方法,通過使用一定的算法多次迭代從現有的數據中進行學習,使計算機能夠在沒有被明確編程的情況下,從數據(Data)中提煉出信息。(SAS)

?

機器學習是一門人工智能的科學,該領域的主要研究對象是人工智能,特別是如何在經驗學習中改善具體算法的性能。(Langley,1996)

?

機器學習是對能通過經驗自動改進的計算機算法的研究(Tom Mitchell,1997)

?

機器學習的學科背景

?

概率論、統計學、逼近論、凸分析、計算復雜性理論、生物學、神經生理學、自動控制、計算機科學等

機器學習的應用領域

?

個人信息識別(廣告推送、信用評級等)

計算機視覺(手寫識別、圖像搜索等)

自然語言處理(垃圾郵件分類、語音識別、自動翻譯等)

生物特征識別

搜索引擎

設備故障預測

網絡入侵檢測

醫學診斷

檢測信用卡欺詐

證券市場分析

DNA序列測序

戰略游戲

機器人

.......

盡管機器學習算法已經被提出了很長時間(1950s),但直到近年來,對大數據使用復雜計算進行處理的機器學習方法才進入快速發展期(越來越快)。其原因是互聯網的快速發展與自媒體時代的到來,可以被學習的數據以指數級的速度增加,而計算機的運算能力也根據摩爾定律高速發展。所以一夜之間:

Google自動駕駛汽車

Amazon Netflix在線推薦

微軟Cotana (Win 10)蘋果 siri

……

紅遍大江南北

因為它是人工智能的核心,是使計算機具有智能的根本途徑。

?

機器學習中常用的學習方法

?

被最廣泛使用的兩大機器學習方法是監督學習(Supervised Learning)和無監督學習(Unsupervised Learning)。大多數的機器學習(大概70%)是監督學習,無監督學習大概占10%-20%。有時也會使用半監督(Semi-supervised)和強化學習(Reinforcement Learning)這兩個學習方法。

?

監督學習 算法利用帶有分類標簽(Label)的實例訓練機器學習模型,例如一系列有關腫瘤良性或惡性(分類標簽)的病人信息(年齡、性別、人種、體重……)的數據。通過將數據標記為“B”(Benign,良性)或“M”(Malignant,惡性)。學習算法收到了一系列有著對應正確輸出值的輸入數據,算法通過對比模型實際輸出和正確輸出的多次模型修正迭代進行學習,。對模型進行修改以減小誤差。通過分類,回歸,預測和梯度上升的方法,監督學習方法使用模型來預測其他的未被標記數據的標簽值(例如,新增一個病例,腫瘤是否為惡性)。監督學習方法被普遍應用于使用歷史數據預測未來可能發生的事件。例如預測什么時候信用卡交易可能是欺詐性的,或哪個保險客戶可能提出索賠。

?

無監督學習 使用不帶分類數據。系統不會被告知“正確答案”。算法必須自己搞明白這些數據呈現了什么。其目標是探索數據并找到一些內部結構。無監督學習對交易(事務性)數據的處理效果很好。例如,它可以識別有相同特征的顧客群(用于市場營銷),或者它可以找到將客戶群彼此區分開的特征。流行的方法包括自組織映射(Self-organizing maps),最近鄰映射(Nearest-neighbor mapping),k-均值聚類(K-means clustering)和奇異值分解(Singular value decomposition)。這些算法也用于對文本進行分段處理,推薦項目和確定數據的異常值。

?

半監督學習 應用與監督學習相同。但它同時使用了有標簽和無標簽數據進行訓練——通常情況下,學習的數據為少量的有標簽數據與大量的未標記的數據(因為未標記的數據非常容易獲得)。這種類型可以使用分類,回歸和預測等學習方法。當一個全標記的監督學習過程,因其相關標簽的成本太高時,可以使用半監督學習,例如使用網絡攝像頭識別人臉。

?

強化學習 經常被用于機器人,游戲和導航。算法通過不斷地試錯進行強化學習,使回報最大化。這種學習分三個主要組成部分:代理(學習者或決策者),環境(代理所接觸到地一切)和行動(什么是代理可以做的)。其目標是在給定的時間內,使代理選擇的行動回報最大化。通過一個好的策略,代理將更快地達到目標。因此,強化學習的目標是得到最好的策略。

?

機器學習的算法與工具

?

算法

?

建筑學的大部分同學應該是理科出身,所以可以先回憶一下高中的統計學知識:

偏差:描述的是預測值(估計值)的期望E與真實值T之間的差距。偏差越大,越偏離真實數據。

方差:描述的是預測值P的變化范圍,離散程度,也就是離其期望值E的距離。方差越大,數據的分布越分散。

模型的真實誤差是兩者之和,如下圖:

機器學習的目的無非是通過一定的處理,將數據投入一個模型中,使我們的模型函數f^(x)與真實函數f(x)的真實誤差最小。這時我們可以引入梯度下降方法。

?

梯度下降方法

?

從最簡單的兩個變量開始(房價與面積之間的函數建模)。

通過建立誤差函數(即方差公式,其中1/2使是為了計算方便):

從而對誤差函數J(θ)有梯度下降算法:

o? (1) 初始化θ(隨機初始化)

o? (2)迭代,新的θ能夠使得J(θ)更小

o? (3)如果J(θ)能夠繼續減少,返回(2)
其中

α稱為學習率

梯度方向為

于是有:

將其擴展至多維的情形:

?

說簡單了,就是和kangaroo里地形中水滴匯聚的原理一樣。

當然類似功能的常用的還有

?

牛頓方法

通過重復求某一點切線與坐標軸的交點(多維情況下是超平面),可以得到模型函數,和梯度下降相比,牛頓方法的收斂速度更快,通常只要十幾次或者更少就可以收斂,牛頓方法也被稱為二次收斂(quadratic convergence),因為當迭代到距離收斂值比較近的時候,每次迭代都能使誤差變為原來的平方。缺點是當參數向量較大的時候,每次迭代都需要計算一次 Hessian 矩陣的逆,比較耗時。

紅色曲線是利用牛頓法迭代求解,綠色曲線是利用梯度下降法求解。

有了上面的算法我們大致可以解決對于多變量的模型的擬合問題,而在生活中,還有一大類問題是分類問題,例如前文提到的,對腫瘤良性與惡性的辨別問題。

?

通過建立函數,我們可以將分類問題用一種簡單的方式轉化為函數問題。

?

在二維的例子中,我們將每一個輸入數據都可以表示為一個向量?x?=(x_1, x_2) ,而我們的函數則是要實現“如果線以下,輸出0;線以上,輸出1”。

用數學方法表示,定義一個表示權重的向量?w?和一個垂直偏移量?b。然后,我們將輸入、權重和偏移結合可以得到如下傳遞函數:

這個傳遞函數的結果將被輸入到一個激活函數中以產生標記。在上面的例子中,我們的激活函數是一個門限截止函數(即大于某個閾值后輸出1):

上面的這種分類方式,在方法上是通過建立一種指數分布族來將數據點進行分類。

通過引入指數分布族,我們可以將這種分類問題轉化為梯度下降與牛頓法可以處理的函數問題。即廣義線性模型(GLM)通過假設一個概率分布,得到不同的模型,而梯度下降和牛頓方法都是為了求取模型中的線性部分(θTx)的參數θ的。

?

指數分布族形式

?

伯努利分布(Bernoulli):對 0、1 問題進行建模;

多項式分布(Multinomial):多有 K 個離散結果的事件建模;

泊松分布(Poisson):對計數過程進行建模,比如網站訪問量的計數問題,放射性衰變的數目,商店顧客數量等問題;

伽馬分布(gamma)與指數分布(exponential):對有間隔的正數進行建模,比如公交車的到站時間問題;

β 分布:對小數建模;

Dirichlet 分布:對概率分布進建模;

Wishart 分布:協方差矩陣的分布;

高斯分布(Gaussian);

?

通過上述模型的建立,我們就得到了機器學習的兩種最基礎的方式。

?

?

將這兩種基礎方式優化、更高級的實現或組合構成了更多的學習算法:

神經網絡(Neural networks)

決策樹(Decision trees)

隨機森林(Random forests)

聯系和序列發現(Associations and sequence discovery)

梯度上升(Gradient boosting and bagging)

支持向量機(Support vector machines)

最近鄰映射(Nearest-neighbor mapping)

k-聚類(k-means
clustering)

自組織映射(Self-organizing maps)

局部搜索優化——遺傳算法(Local search optimization
techniques .e.g., genetic algorithms.)

期望最大化(Expectation maximization)

多元自適應回歸樣條(Multivariate adaptive regression
splines)

貝葉斯網絡(Bayesian networks )

核密度估計(Kernel density estimation)

主元素分析(Principal component analysis)

奇異值分離(Singular value decomposition)

高斯混合模型(Gaussian mixture models )

……

用一張圖來說明一下,還是一頭霧水?沒關系,有很多工具可以幫助我們實現上述的算法。

?

?

工具

?

1、SAS


SAS 功能豐富而強大(包括繪圖能力),且支持編程擴展其分析能力,適合復雜與高要求的統計性分析。

?

2、Matlab


Matlab 也能提供大量數據挖掘的算法,更關注科學與工程計算領域。

?

3、SPSS Modeler


SPSS Modeler 的統計功能相對有限, 主要是提供面向商業挖掘的機器學習算法(決策樹、神經元網絡、分類、聚類和預測等)的實現。同時,其數據預處理和結果輔助分析方面也相當方便,這一點尤其適合商業環境下的快速挖掘。不過就處理能力而言,實際感覺難以應對億級以上的數據規模。

?

4、TableAU

TableAU 的優勢主要在于支持多種大數據源/格式,眾多的可視化圖表類型,加上拖拽式的使用方式,上手快,非常適合研究員使用,能夠涵蓋大部分分析研究的場景。不過要注意,其并不能提供經典統計和機器學習算法支持,因此其可以替代Excel, 但不能代替統計和數據挖掘軟件。另外,就實際處理速度而言,感覺面對較大數據(實例超過3000萬記錄)時,并沒有官方介紹的那么迅速。

?

5、Weka


一個基于java開發的數據挖掘工具,它為用戶提供了一系列據挖掘API、命令行和圖形化用戶接口。你可以準備數據、可視化、建立分類、進行回歸分析、建立聚類模型,同時可以通過第三方插件執行其他算法。除了WEKA之外,Mahout是Hadoop中為機器學習提供的一個很好的JAVA框架,你可以自行學習。如果你是機器學習和大數據學習的新手,那么堅持學習WEKA,并且全心全意地學習一個庫。

?

6、NanoCubes


如果要分析千萬級以上的時空數據,比如新浪微博上億用戶發文的時間與地理分布(從省到街道多級粒度的探索)時,推薦使用NanoCubes(http://www.nanocubes.net/)。該開源軟件可在日常的辦公電腦上提供對億級時空數據的快速展示和多級實時鉆取探索分析。上圖是對芝加哥犯罪時間地點的分析,網站有更多的實時分析的演示例子。

?

7、高階編程使用

◆ R語言——最適合統計研究背景的人員學習,具有豐富的統計分析功能庫以及可視化繪圖函數可以直接調用。通過Hadoop-R更可支持處理百億級別的數據。相比SAS,其計算能力更強,可解決更復雜更大數據規模的問題。

◆ Python語言——最大的優勢是在文本處理以及大數據量處理場景,且易于開發。在相關分析領域,Python代替R的勢頭越來越明顯。

◆ Java語言——通用性編程語言,能力最全面,擁有最多的開源大數據處理資源(統計、機器學習、NLP等等)直接使用。也得到所有分布式計算框架(Hadoop/Spark)的支持。

?

結語

?


從時間角度看, 機器學習是用過去預測未來。

從信息流處理的角度看,機器學習是按照某種規則對信息進行壓縮和抽提。

從神經元參數角度看,機器學習的過程是建立神經元之間的聯系,學習樣本里反復出現的pattern會建立權重大的關聯,出現少的pattern會有權重小的關聯。

從學術的角度來說,機器學習是空間搜索和函數的泛化。

從應用的角度:機器學習可以大約的解釋成數據挖掘+人工智能。

從哲學的角度來說,機器學習是“重現人認識世界的過程。

?

而機器學習對于普通人,對于建筑師來說,是一種未來必備的工具。一如90年代我們看待AutoCAD,現在我們看待BIM一樣,終有一天,我們對復雜建筑因素的處理,工作中部分繁雜的設計過程會被以機器學習為背景的自優化算法與人工智能取代,在那時,作為建筑師的我們應該是這些工具的主人,而非淘汰品。人工智能的浪潮已近,這一天應該不會太遠,而你準備好了么?

?

擴展閱讀:

回歸方法

http://www.csdn.net/article/2015-08-19/2825492

Andrew Ng,CS229,斯坦福大學機器學習視頻,

http://open.163.com/special/opencourse/machinelearning.html

CS229學習筆記

http://www.cnblogs.com/xuesong/p/4094968.html

學習資源列表

http://conductrics.com/data-science-resources/

從零實現來理解機器學習算法:書籍推薦及障礙的克服

http://www.csdn.net/article/2015-09-08/2825646

?

編譯自:

http://cs229.stanford.edu/

http://www.sas.com/en_id/insights/analytics/machine-learning.html

http://blog.chinaunix.net/uid-25267728-id-4678802.html

http://www.cnblogs.com/xiaowanyer/p/3701944.html

https://www.zhihu.com/question/19830921

http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/

http://mp.weixin.qq.com/s?__biz=MzA4MzQxMTAwNA==&mid=2650108926&idx=3&sn=9a274344c5fa7d78cb69c467707af178&scene=2&srcid=0913CnGmnfggd2s97NVeGNLA&from=timeline&isappinstalled=0#wechat_redirect

?

胡雨辰?同濟大學建筑與城市規劃學院碩士在讀?

?


Fab-Union是國內最前沿的數字化設計與建造平臺。聯合國內外數字建造學者、建筑師、設計師、專家及相關企、事業單位和學術團體,關注國際數字設計建造新聞,推薦優秀數字編程與建造作品,推動數字化建造工藝的發展。創造新銳數字實踐者的社交空間。

長按二維碼 識別加關注

?

微信掃一掃
關注該公眾號

轉載于:https://www.cnblogs.com/wangxiaocvpr/p/5925238.html

總結

以上是生活随笔為你收集整理的(转) 何为机器学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。