導航:首頁 > 編程語言 > 機器學習編程實戰課怎麼樣

機器學習編程實戰課怎麼樣

發布時間:2023-01-31 18:58:02

『壹』 機器學習實戰 和集體智慧編程哪個好

您好,希望以下回答能幫助您
目前沒有PDF,我這兩本都有,是值得購買的好書~第一本入門,一本算是機器學習領域中文書python解釋目前最好的~
如您還有疑問可繼續追問。

『貳』 csdn 人工智慧課程靠譜嗎

以我的親身經歷為例
首先說一下答案:千萬別去
為什麼會有上邊的結論,首先報名之前無限憧憬,報名之後無限失望
其次,價格太貴,課程講比較理論化(但是遇到關鍵的公式推導基本不給你講),實戰,沒有實戰,老師上課全是錄制的課程,基本上都是1年或者2年前的課程,完全是出來圈錢的。而且你會發現csdn是一個廢物程序員聚集地,APP體驗極差,可能你買的課程,這周有,下周就看不到了,每次更新移動端對app都會出現各種各樣的小bug,本來想ipad看課程,結果經常課程都看不到,體驗極差,我選的是視覺方向,老實講,這是我見過的最差的方向和導師,自己講著講著把自己繞進去了,課程超級簡短,理論不但沒講清楚,一點沒有實戰,好像是另一個方向的導師卿老師講的還比較細(機器學習動手實操還闊以),後邊選了視覺方向,首選老師給你講設置環境,講的花里胡哨,就是問題問題沒解決,他給你講的都是他自己環境搭建好了之後再給你講,講的超級不細致,每周的直播課,就是按照錄制課程再講一遍,我以為是老師會手擼代碼帶大家實現過程呢,結果就呵呵一笑就行了,講你mlgb。後邊的網路訓練更拉閘,助教都解決不了問題。你說誰會報名這樣的班級,自己給自己添堵吧

『叄』 如何學習機器學習的一點心得

學習之前還是要了解下目前工業界所需要的機器學習/人工智慧人才所需要必備的技能是哪些?你才好針對性地去學習。正好我前兩天剛聽了菜鳥窩(一個程序猿的黃埔軍校)的一位阿里機器學習演算法工程師的課,幫助我理清了思路,在此分享下。

網路教程還是挺多的,就看怎麼學習了,不過遇到比較好的老師帶,會少走很多彎路。如果經濟上壓力不大,建議可以去報一下菜鳥窩的機器學習班,畢竟人家老師都是BAT實戰的,知道企業中真正要用到的東西。

不知道有沒幫到你?

『肆』 該不該堅持學習Machine Learning

Machine Learning的前景怎麼樣?

Machine Learning作為統計學的一個分支,最近好像特別吃香,請大神們解疑,Machine Learning具體是干什麼的,前景什麼樣?


正好剛回答過類似的問題,直接引用下吧

Machine Learning現在是一個很火的研究方向。機器學習是研究計算機怎麼模擬人類的學習行為,並且能組織已有的知識構架使之不斷完善的性能的學科。 是人工智慧的核心,是使計算機具有智能的根本途徑。與其說是統計學的分支,不如說是統計學,計算機科學,信息科學的交叉分科。其涉及的知識面很廣,涵蓋了工智能、哲學、資訊理論、生物學、認知科學、計算復雜性等眾多領域的專業知識。現在存在的一些計算器系統是沒有學習的能力的(或者是有的已有了特別局限的學習能力?),因而是不能滿足生產的需求的。隨意隨著科技的發展,machine Learning肯定會得到長足的發展的。只是,machine Learning也有許多發展方向,不是每個方向都發展的起來。

附上這篇文章的鏈接吧:

數據挖掘和深度學習(deep learning)哪個更有發展前景?


我再補充下Machine Learning的研究目標吧:

認知模型——即是3M認知模型,是人類對真實世界進行認知的過程模型。認知是個系統的過程,其中包含感知,記憶,判斷與學習。因而完成這個認知過程,是個一及其艱難和浩大的工程。

通用學習演算法——像是大家熟知deep Learning就是Machine Learning中的一種比較深的演算法。 其實很多ML演算法都是非邏輯性的,輸入的信息數據通過數學模型而得出一個新的工具,其實可以說是建立一個人工識別號的資料庫。

構造學習系統的方法(面向任務的)——其實就是研究如何通過環境向系統的學習環節提供某些信息。

先說這么多吧,有空的話做個圖解釋下ML的方法論,覺得還是解釋比較抽象,多多包涵吧。



Machine Learning是一門多領域的交叉學科,除了像最常見的統計學、逼近論、演算法復雜度分析理論等,也包括一些與生物領域的科學相關的問題,比如說最常見的人工神經網路中的各類神經元與鏈接方式都是仿照人腦進行操作的、以及遺傳演算法中模擬基因突變的過程等。

機器學習主要就是研究計算機如何模型或實現像人一樣的思維方式去學習知識,通過對新問題的反饋機制,修改或優化自己已經學習到的知識。其是人工智慧的核心,也就是說,人工智慧非常依賴機器學習的好壞與優良程度。

機器學習的方法以及其效果的好壞對於人類未來的發展至關重要,如果效果很高的話,至少可以替代人工做的一些重復的體力勞動,並可以根據特殊情況進行一定的反映。因此,就前景而言還是很好的,尤其是在現在這個大數據時代,越來越多的人類行為相關數據被記錄在案,為機器學習提供了基礎內容。此外,機器學習所產生的一些成果,已經應用於許多領域,包括數據挖掘、自然語言處理等等。

雖然機器學習已經取得了一定的突破,但是還是沒有達到人工智慧的程度,因此有許多問題是需要研究和發展的,因此,未來的發展也是充滿機遇與挑戰的。Machine Learning是個不錯的領域,如果想要進入的話,建議多學習一些基礎思想和編程。




機器學習已經越來越平民化了(democratizing),數學和演算法並非一定要很深厚功力,大多通用演算法都是現成的,比如微軟Azure Machine Learning平台已經有很多打包的示例,如用來分析customer churn的示例等。至於operationalization(不知道怎麼翻譯),現在也沒這么難了。

我覺得如果只是應用機器學習來處理現實問題,最難的還是怎麼把通用演算法和自己公司的現實問題聯系起來,比如怎麼定feature,用哪種model,另外怎麼評價最終效果等等。難的是深入理解企業的實際業務,而非技術和演算法。

個人認為趨勢是隨著machine learning平台的成熟以及通用場景的演算法普及,data scientist這個稱號會逐漸平民化甚至消失,最後你搭個回歸模型之類的就像使用Excel處理一些數據這樣簡單。一個PM或者銷售經理可以自己做這事而不需要養一個專門的職位。




機器學習的應用在工業界需求很高,有過工作經驗的人可以很輕松的找到工作,供給遠遠小於需求,而且需求越來越大。

但是招 New Grad (PhD 可以考慮) 相對較少。原因很多,簡單來說,就是 New Grad 往往工程經驗不夠,學術能力也不夠。工業界的現狀不復雜:大公司搞機器學習的組大、人多、要求高,PhD 是進入的門檻;小公司人少,每個人都要獨當一面,因此必須要有過搭建實際機器學習系統的經驗。因此如果兩邊都沒有優勢的話,自然找工作比較吃力。

因此,對於有志於做這個方向的同學來說,建議找工作時調整心態,第一份工作盡量找到工作職責與機器學習相關的組,而不必追求一步到位。人生的職業生涯很長,做好3到5年的職業生涯規劃,積累實際工作經驗,不斷學習與強化自己。人與人的差距並不會在第一份工作中體現,而是在前幾年逐漸顯現出來。




機器學習早期發展是遵循實用主義糙快猛的路線。基本步驟就是靠直覺構造一個優化目標,然後解這個優化問題。數學工具基本上線性代數和凸優化也就夠用了。再深一點涉及博弈論,隨機過程,微分方程,測度論,實分析,泛函分析,李群等。

這個學科發展很快,長期處於理論跟不上實踐。當前的發展勢頭,已經到了一個工科那點數學不太夠用了的階段。很需要一批數學大牛來披荊斬棘一下。很多這個領域的人認為過多的數學沒必要,其實是因為這些人數學菜。我就看到過用代數幾何的方法(resolution of singularity, blow-up)漂亮的解singular model的問題。可惜很少人follow。 總之很多問題是到了需要引入高級數學工具才能漂亮解決的地步了。比如各種不變性和等價性需要黎曼幾何,各種ill pose singular問題需要代數幾何。

結局就是:還是好好去學數學吧。。。。。。





提幾個可能的有關機器學習當中的深度學習發展方向,同時也就是尚待解決的問題:

1.讓深度學習自動調超參。

最近看到有人在一個AI群里推廣自己的一篇論文《Deep Q-Networks for Accelerating the Training of Deep Neural Networks》,大致是用強化學習的方法訓練一個控制器來自動控制學習率以及在一個batch中各個類的樣本佔比。雖然它那篇論文問題很大,訓練出來的控制器極其不通用,只能用在它原本的任務上,但是感覺很容易解決掉,這個另說。想像一下,如果能夠訓練出一個通用的控制器,對於各類任務都能夠自動調整超參(或者只在某個子領域比如圖像分類做到通用也好),那我們就再也不用自稱調參狗了,同時也可以解放出更多的時間用於設計模型、驗證架構,想必深度學習的發展步伐會得到極大加速。

2.自動學習網路架構。

其實說起來這個問題也可以歸入自動調超參,但是感覺應該還是有很大的不同。說起來無非就是兩個方面,一是加法二是減法。加法方面可以參考《Net2Net: Accelerating Learning via Knowledge Transfer》,這篇是讓CNN自動根據需要自動拓展架構,包括橫向的增加filter和縱向的增加layer。減法方面可以參考各類Network Compression(網路壓縮)的論文中的所謂Network Pruning(網路剪枝),比如《Deep Compression - Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding》,雖然這些論文出發點不在於自動學習網路架構而在於壓縮網路規模,而且它們往往是在訓練收斂之後才對網路進行裁剪而非邊訓練邊裁剪,但是感覺只需要再跨一步就可以了。我個人覺得,自動學習網路架構需要解決的最根本問題就是「應該在什麼時機進行架構變動」以及「應該怎麼變」,第二個問題感覺上述論文算是回答得可以了,但是第一個問題似乎還有很多可以探索的地方。對於第一個問題,似乎強化學習就很適合解決,因為顯然可以把它看成一個控制問題。

3.遷移學習。

眾所周知,深度學習的直接訓練依賴大量數據,而transfer和finetune能夠有效利用數據量大的外部任務訓練出來特徵來遷移到數據量小的目標任務上,使得目標任務對於數據量的要求大大減小。現在的問題在於,遷移學習的思想現在大家其實都在用,很多論文中都可以看到finetune的做法,但是對於兩個任務之間需要「多像」才能夠遷移這么一個問題還沒有一個很好的回答。即使我們不奢求能夠給出一個嚴格的數學理論,至少,如果有人能夠做一個非常系統的對比實驗,總結出一些規律,使得我們有信心說在如何如何這樣一個邊界內的任務都是基本上可以transfer的,那將會是一個很大的進步。這個問題也可以這么看,如今我們應該有信心說兩個圖像分類任務可以transfer,但是這個邊界太過狹窄,我個人期待的就是能夠有一套理論或者方法論使得這個邊界大大拓展,然後在這個邊界內我們可以像對兩個圖像分類任務一樣自信滿滿地用遷移學習。

4.無監督/半監督學習。

像LeCun等大佬其實一直在鼓吹這方面,但似乎還沒有搞出像當年CNN(AlexNet)、最近強化學習(阿法狗)這樣級別的大新聞來。我理解在這個問題上的努力方向應該是確定「何種representation最有用」。具體來說,就是找到一個指標,然後用深度網路優化這個指標,使得滿足這個指標的data representation能夠具有非常好的特性。再具體一些,下面舉三個實際例子:

autoencoder以重構損失作為指標來學習一個representation。

之前聽一個講座,演講人介紹他的論文《Why Deep Learning Works: A Manifold Disentanglement Perspective》IEEE Xplore Abstract,其中定義了三個指標來描述深度網路每一層中data representation的「蜷曲程度」,並發現,越高層的數據蜷曲度越低,換言之,越平展。那麼無監督學習是否能夠直接以這個蜷曲度作為損失函數來學習一個representation呢?

這篇論文《Context Encoders: Feature Learning by Inpainting》提出通過預測周邊上下文像素來無監督學習視覺特徵,感覺很像word2vec從一維變成二維。

除了上述的重構損失、蜷曲度、預測上下文精度,還有沒有別的指標學習出來的representation更好呢?個人認為這些問題就是推動無監督/半監督學習進展的關鍵所在。

5.基於外部存儲(external memory)的模型。

如果說RNN、LSTM這樣的模型屬於internal memory / long-term memory的話,那麼以神經圖靈機(Neural Turing Machine)、記憶網路(Memory Network)為代表的模型就應該稱為external memory / really long-term memory了。不過這兩個模型剛出來的時候還太過naive,只能做一些很無聊的task,比如序列復制和排序以及非常簡單的QA,但是現在已經開始看到它們被用到更加實際的問題上面,例如One-shot Learning:《One-shot Learning with Memory-Augmented Neural Networks》。往大了說,如果未來要實現強AI,這種外部存儲的機制肯定是必不可少的。現在的問題在於,神經圖靈機和記憶網路用的外部存儲雖然比LSTM那樣簡單的一個hidden state向量更進一步,但也其實就是很簡單的一片矩陣,沒有任何結構和層次可言,換言之,就是還不夠復雜。所以我猜想接下來可能external memory會和知識圖譜(Knowledge Graph)結合起來或至少是向知識圖譜類似的做法靠攏,因為知識圖譜更加結構化。





咳咳,路過,進來小小的裝一下。本人現在大三,所以說在這個話題上可能並沒有什麼話語權,不過因為最近再跟老師搞項目,正好是這方面的,戳進來分享一下感受吧。

第一是:機器學習前景很好。這是真的,最近看了很多論文,有關數據挖掘數據分析類別的,裡面用到的百分之八九十都是機器學習,這可能也是人工智慧發展的最大需求吧,人工智慧無非是模仿人類,而人類最開始也是對世界充滿了無知,通過學習才慢慢認知這個世界的,個人感覺這就是為什麼機器學習會被提出來吧,像真的實現人工智慧就要從根源開始模仿人類,也就是從學習這個技能上入手。

說完了這個想說的是為什麼前景好呢,上面說過的用途和提出願景好是一方面,另一方面是因為這方面人才還比較少,其實這也是一種發展前景吧。就像前幾年計算機剛剛火起來的時候那些最早接觸計算機的人突然就變得很出名,然後社會上一大部分人都湧入到這個領域中,這是一個道理。機器學習現在還處在起步階段,下一階段怎麼發展決定於人們對他的研究深度和重視程度。就目前人工智慧不斷得到重視來看,應該還是很有發展前景的,說不好會成為繼計算機時代後的又一個新的時代。

以上觀點僅僅是個人觀點,我覺得至少在短時間內這個研究方向只會更火不會被冷,就像大數據一樣,同樣也有人在不斷質疑大數據的發展,不過目前發展的還是很好的不是嗎?

---------------------------------

2016 機器學習之路:一年從無到有掌握機器學習

譯者:聞菲



今天是2016年9月12日AI WORLD 2016世界人工智慧大會倒計時 36天啟航期5折搶票倒計時 7 天




【導讀】程序員 Per Harald Borgen 在 Medium 刊文,介紹了他在一年的時間里,從入門到掌握機器學習的歷程。Borgen 表示,即使沒有博士學位和高深的數學造詣也能掌握機器學習。這一點相信對不少人都挺有吸引力和啟發。不過,博士學位或許真的並非必須,但要掌握機器學習,學再多的數學也不會嫌多。下面就來看 Borgen 不脫產,從菜鳥變熟手提升業績的故事。







第一步:Hacker News 和 Udactiy




Borgen 對機器學習的興趣始於 2014 年。跟很多人一樣,他最初是看到 Hacker News 的帖子,單純覺得教計算機學東西很酷。那時候他還只是個業余的編碼愛好者,連程序員都談不上。




於是,Borgen 開始了他的機器學習之路。首先,到 Uadcity 看監督學習的視頻,然後閱讀所有能找到的、跟機器學習有關的讀物。








Borgen 總結說,「這給了我一點概念上的理解,不過沒有實踐技巧。」




同時,他也十分坦承,Udacity 的 MOOC 他並沒有上完——只要是 MOOC,他幾乎都沒有堅持上完過。這一點,無論怎麼說,至少讓篇文章的置信度倍增。



第二步:掛掉 Coursera 機器學習課




2015 年初,Borgen 為了成為正式的開發人員,參加了 Founders and Coders(FAC)在倫敦的訓練營。在 FAC,他和同學一起,每周二晚上會看 Coursera 上機器學習課程的視頻。






不用說,大名鼎鼎的吳恩達的機器學習課。Borgen 表示課很贊,學了很多,然而他個人覺得這門課不適合新手。至少他自己,就需要反復看視頻才能掌握裡面講的概念——當然,這是 Borgen 的個人感受。不過,Borgen 在 FAC 學的同學也一個個掉隊,最終他自己也掛掉了。




Borgen 總結說,他當時應該學一門用機器學習庫編代碼的課,而不是從零開始建演算法,至少應該用他已經知道的編程語言寫演算法。




一句話,「對新手來說,一邊學語言一遍寫機器學習演算法代碼難度是很高的」。這句話有一定的參考價值。




Borgen 的建議是,可以選擇 Udacity 的《機器學習入門》(Intro to Machine Learning),更容易入門,上來就能實踐,在提升經驗值的過程中,學習的趣味性也會增多。




【經驗】從簡單的實踐學起,之後再學困難的、偏理論的東西。



第三步:一周學會機器學習




Borgen 在 FAC 做的最後一件事情,就是「一周學會機器學習」。他的目標是,一周以後能夠實用機器學習解決實際問題,而他也成功做到了這一點。




具體的經驗 Borgen 寫在了另一篇文章里。有興趣進一步了解,可以訪問:




簡單說,在一周的時間里,Borgen 做了以下幾件事情:




學會了 Scikit Learn


在真實世界資料庫跑了一次機器學習


從零(用 Python )寫了一個線性回歸演算法


做了一點兒 NLP




【經驗】騰出一周時間來全身心地沉浸到機器學習裡面去,效果驚人。



第四步:掛掉神經網路




成功在一周的時間里拿下機器學習給了 Borgen 自信。因此,在他結束 FAC 回到挪威時,他計劃進行第二次挑戰——一周內學會神經網路。




然而,事實是殘酷的。離開 FAC 那種 沉浸式學習環境後,要一天寫 10 小時的代碼可不容易。




【教訓】找一個合適的環境做這種事情。




不過,Borgen 到底還是學上了神經網路。去年 7 月份的時候,他寫完了一個網路的代碼。雖然很粗糙,但完成比完美重要,對吧?








下半年,Borgen 換了一份新工作,這在某種程度上影響了他的機器學習學習進展。這一階段他主要做的是實現神經網路,他把大學時學的線性代數重新看了一遍。年底時,Borgen 寫了篇總結:




《學習如何編寫神經網路代碼》




也是在這篇文章里,Borgen 記錄了他從零開始寫代碼的過程。這篇文章在 Medium 上點贊的數量接近 600。



第四步:在 Kaggle 競賽中實踐




2015 年聖誕節,Borgen 參加了 Kaggle 競賽。當然,實踐的效果是顯著的,他得到了通過演算法和數據實際迭代實驗的經驗,也學會了在做機器學習項目時要相信自己的邏輯,「如果調參或特徵工程從邏輯上看有用,那麼一般都會有用」。







第五步:在工作中建立學習的習慣




2016 年初,Borgen 想將他在去年年底獲得的動力持續到工作中,便詢問經理是否能在上班時學新的東西——經理答應了。雖然 Borgen 在文中沒有多寫,實際上,從這個經歷中也能學到東西:




勇於提出需求,它們才有機會得到滿足——當然,你的需求需要合理。




於是,Borgen 就在上班時也能學機器學習啦(拿錢做想做的事情!)。在 2016 年積累了相關經驗以後,Borgen 的第一站是 Uadcity 的深度學習課程。然而,事實證明,對於現在的他來說,Udacity 的這門課已經太淺。不過,課後的 Ipython Notebook 作業卻太難。Debug 澆滅了他的大部分興趣。又一次地,一門 MOOC 被他放棄。






但隨後,Borgen 發現了斯坦福的 CS224D,這門課讓他獲益匪淺。Borgen 總結斯坦福 CS224D 的好處是:




盡管難,但做題從來沒有 debug;


課程提供答案,便於加深理解。




盡管 Borgen 仍然沒有把這門課上完,但他推薦有興趣的人去學。








另外,Borgen 在學這門課的過程中,為了完成題目,請了一位家教,時薪 40 美元,這位家教幫他發現了很多問題。因此,他得到了這么一條經驗。




【經驗】花 50 美元/時的金額聘請機器學習家教,絕對值得。(如果你有機器學習經驗,你可以獲得時薪 50 美元的打工機會。)



學以致用,提高銷售額




Borgen 在工作中實踐機器學習,他搭建了一個系統,節省了公司銷售部門同事的很多時間。相關代碼:




以上就是 Borgen 在實際工作中一年掌握機器學習的歷程。不管帶不帶感,至少十分真實。Borgen 在文章末尾寫道:「如果我做得到,你也做得到。」




尤其是工作中的程序員,你不想試試嗎?

閱讀全文

與機器學習編程實戰課怎麼樣相關的資料

熱點內容
addto新建文件夾什麼意思 瀏覽:158
有伺服器地址怎麼安裝軟體 瀏覽:659
安卓如何完全清除數據 瀏覽:690
安卓安卓證書怎麼信任 瀏覽:53
伺服器被攻擊如何解決 瀏覽:221
學霸變成程序員 瀏覽:881
c語言編譯錯誤fatalerror 瀏覽:441
ipv4內部伺服器地址怎麼分配 瀏覽:463
java線程安全的方法 瀏覽:950
重復命令畫梯形 瀏覽:164
在疫情就是命令 瀏覽:328
自己搭建一個什麼伺服器好玩 瀏覽:253
java基礎馬士兵 瀏覽:823
完美世界手游如何查看伺服器 瀏覽:859
光遇安卓與ios什麼時候互通 瀏覽:598
js如何運行時編譯 瀏覽:917
引力app在哪裡下載 瀏覽:609
編寫app如何得到錢 瀏覽:801
吉利汽車軟體放哪個文件夾安裝 瀏覽:223
多文件編譯c 瀏覽:543