高手問答第 297 期 —— 普通程序員怎樣快速入門機器學習?

OSC噠噠 發布于 02/14 12:03
閱讀 8K+
收藏 8

從數據到大模型應用,11 月 25 日,杭州源創會,共享開發小技巧

自動駕駛汽車、自然語言識別、內容推薦引擎的實現都離不開機器學習算法。在大模型、大計算、大數據的背景下,機器學習/深度學習系統將逐漸成為人工智能時代的操作系統”。作為普通程序員,我們該如何快速掌握機器學習的主要概念、思路、算法、模型呢?

OSCHINA 本期高手問答 (2 月 15日 - 2 月 21 日) 我們請來了暢銷書《遺傳算法與機器學習編程》的譯者梁啟凡老師和大家一起探討有關“普通程序員怎樣快速入門機器學習”的話題。

可討論的問題包括但不限于:

  • 程序員入門機器學習,應該從編碼實例入手,還是從理論學習入手?
  • 機器學習主要涉及哪些方面的數學知識,普通程序員能掌握嗎?
  • 算法模型里的數學問題,需不需要理解背后的原理?
  • 數學公式要會自己推導嗎?
  • 有哪些適合一般程序員的入門的圖書和資源?

有其他相關問題,也歡迎大家積極提問!

嘉賓介紹

梁啟凡,《遺傳算法與機器學習編程》譯者,摩托羅拉解決方案(Motorola Solutions)首席科學家。從事深度學習相關工作7年,涉及算法開發與部署、高性能計算基礎設施搭建等方向。

為鼓勵踴躍提問,我們會在問答結束后從提問者中抽取5名幸運會員贈予機器學習相關書籍。

天貓有售:https://detail.tmall.com/item.htm?id=697149470819

OSChina 高手問答一貫的風格,不歡迎任何與主題無關的討論和噴子。

下面歡迎大家向梁啟凡老師積極提問,直接回帖提問即可。

加載中
0
yaosaya
yaosaya

高手問答第 297 期 —— 普通程序員怎樣快速入門機器學習?

@iman123 @赤腳小子 @屮殖 @osc_07670224 @pyboy58 

恭喜以上5位網友分別獲得機器學習相關書籍一本(不一定是圖片所示那本)。

請于3月6日12:00前登陸賬號, 私信@yaosaya

告知快遞信息(格式:姓名+電話+地址),逾期視為自動放棄哦~

1
iman123
iman123

@BH4CYI 你好,目前機器學習、神經網絡、深度學習、強化學習等都很熱門,這些算法之間由什么關聯,最近的chatgpt用到了那些算法或模型;另外我之前也自己寫過簡單的遺傳算法,個人感覺有點像隨機+模擬生物進化的算法,類似的還有模擬退火算法、蟻群算法、人工蜂群算法這些,是不是多多少少都帶有一點點隨機因素在里面,對于相同的輸入,外部條件,每次的結果是不是都不一樣呢?

BH4CYI
BH4CYI
第三個問題,你說的沒錯。一般來說,帶有隨機因素的算法絕大多數情況下相同的輸入會有不同的結果。不過我們常用的隨機數生成器生成的都是偽隨機數,可以通過控制隨機數種子確保每次生成的隨機數一樣。
BH4CYI
BH4CYI
關于chatgpt,恐怕很難三言兩語講清楚。建議你先閱讀這篇論文 https://arxiv.org/abs/1706.03762,搞清楚transformer是什么,然后閱讀GPT相關的論文,然后參考這篇關于RLHF的文章 https://huggingface.co/blog/rlhf
BH4CYI
BH4CYI
你好,第一個問題,機器學習是一個大的學科,你可以認為深度學習和強化學習是機器學習的兩個子方向。而神經網絡是深度學習背后的數學模型,深度學習中的“深度”就是指神經網絡的深度。但是神經網絡并不和深度學習強相關。所謂深度學習,簡單來說是將神經網絡和反向傳播結合,以達到自動更新神經網絡參數的目的。
0
赤腳小子
赤腳小子

@BH4CYI 你好,我覺得通過一個實際的例子更方便你跟我這種外行解釋。如果我的最終目的是做出一個能通過分析一段長度10秒的mp3格式的音頻,識別一個人說話時候的情緒。那我手頭有大量影視劇的資料。

請問接下來的流程中,機器學習可以做什么幫助我達成我的目的?

我不是專業的隨便舉例子我要做什么

1拆分所有音頻資料為10s一個的文件

2為每個文件打標簽,比如憤怒,深情,用于機器學習?

3機器學習然后生成一個程序?

4輸入沒有打標簽的音頻給這次程序,會輸出情緒標簽及匹配度,比如憤怒(85%),深情(40%)

 

BH4CYI
BH4CYI
回復 @赤腳小子 : 這里說的函數,就是編程語言中函數。比如 f(x)=x+4,用python寫出來是def f(x): return x+4,輸入是8,輸出就是f(8)=12。當然也可以是if-else判斷集合,或者是更復雜的結構。函數內部可以人寫,也可以人為地創建一個可調結構。
赤腳小子
赤腳小子
回復 @BH4CYI : 我注意到你說生成的是一個函數,他運行的時候是否會依賴數據庫?這個函數內部是一個什么狀態我想象不出來,肯定不是人寫的代碼對吧,難道機器學習最后會生成代碼?還是各種if-else的判斷集合的配置文件還是我無法理解的什么東西? 我完全想不出它是什么樣子的。
BH4CYI
BH4CYI
你好!其實你描述的這4點合在一起就稱得上是一個完整的機器學習任務。一個函數,有輸入也有輸出,也就是一個輸入空間到輸出空間上的映射。這個函數可以完全人工手寫,也可以讓它變得“可學習”。對于這種“可學習”的函數,通過在給定數據上訓練——在你的例子中10秒音頻是輸入,情緒標簽是輸出——函數逐步優化為“正確的”映射。訓練完之后,將這個函數用在訓練數據之外的數據上,就實現了機器學習模型的部署。
0
巡拜千年
巡拜千年

@BH4CYI 一個業務向編程的程序員,會springboot這種,想學習機器學習,體驗他的效果。請問該如何入門呢?

BH4CYI
BH4CYI
最簡單的方式是上一門網課,現在網上資源很多。跟著課程把習題都做了,基礎概念都了解了,然后可以找幾個簡單的項目練練手?;蛘哌x一本比較好的入門書籍。
0
屮殖
屮殖

@BH4CYI 在老早以前就從科技新聞上看到了遺傳算法,當時驚為天人。但是后來進入深度學習領域,了解到遺傳算法的問題是效率太低,不知道這些年有什么改進之處。

同時,我也想大佬能對遺傳算法和神經網絡算法進行一定的比較。

BH4CYI
BH4CYI
回復 @屮殖 : 這本書里有遺傳算法的內容,但是沒有神經網絡的內容。
屮殖
屮殖
回復 @BH4CYI : 原來如此!這道的確是的。請問你這本書里面就是說的這些內容的嗎?
BH4CYI
BH4CYI
遺傳算法是一種優化方法,而神經網絡可以看成一個有輸入和輸出的函數,這兩者區別很大。遺傳算法可以用來給神經網絡調參。
0
liuchengliang
liuchengliang

@BH4CYI 作為普通讀者應該怎樣去學習掌握呢?謝謝

BH4CYI
BH4CYI
作為有一定經驗的程序員,按照課程或者書里面的例子動手做一做,逐步掌握核心概念,實踐出真知。
0
LeoXu
LeoXu

@BH4CYI 您好,能不能介紹一下,在這個領域達成從入門到形成生產力(也就是能參與到實際項目中工作),比較現實的路徑是怎樣的?謝謝

BH4CYI
BH4CYI
@LeoXu 你好,入門是一個從0到1的過程,形成生產力是一個從1到100的過程。入門無非就是閱讀、上課和做練習。而形成生產力比較復雜,這里介紹一種方式:明確實際項目的需求,將當前方案作為基線。然后根據需求引入機器學習方法。由于目前主流機器學習方法多數基于統計理論,你會發現算法在演進中性能會有提高。當新方法性能超過當前方法后,就可以部署了。
0
2wse43e
2wse43e

@BH4CYI老師,人工智能對于管理層人員的幫助有多少md

BH4CYI
BH4CYI
@2wse43e 你好,這里的管理層是指特定行業的管理層,還是指所有的?
0
o
osc_07670224

@BH4CYI 您好,通常程序猿按照文檔和范例寫腳本是沒問題的,如果只能把流程串下來,會基本的調參,能達到幾成的效果?機器學習的老鳥比新手強在哪些方面,在機器學習領域,除了理論知識,還需要在哪些方面精進呢?期待回答,DE BI3QXJ,VY73!

BH4CYI
BH4CYI
你好!會調基本參數可以說是入門了。在這方面研究得越深、用得越多,處理問題時越能抓住關鍵點。所謂看山是山,看山不是山,看山還是山這種感覺。除了機器學習理論,最好能學習相關的數學。線性代數、數學分析、概率論,??闯P?。群論、流形也可以稍微了解了解。另外,如果真的打算在這方面走遠一些,編譯原理、分布式計算等計算機工程技術也要熟練掌握。73!
OSCHINA
登錄后可查看更多優質內容
返回頂部
頂部
一本久久综合亚洲鲁鲁五月天,无翼乌口工全彩无遮挡H全彩,英语老师解开裙子坐我腿中间