深度學習 |職涯 |轉職 |如何在3年內年薪成長到 200 萬 |4

Source: Deep Learning on Medium


有效的成長及進修

最快以及最有效的方式是

  • 跟人學,跟專家學。(重點在於作業及實作)
  • 跟網路課程 (重點在於作業及實作)
  • 跟書學 (重點在於作業及實作)

但是不管怎麼學,都要建立知識目錄。
目錄分為由上到下 (由任務到知識),以及由下到上 (由知識到任務)兩種。

這裡的上是指比較接近產品應用端,實作,hands-on 的意思。
這裡的下是指比較接近理論端,就像建立階層或金字塔等的知識 hierarchy。

建議 1: 放大量金錢與時間在投資學習技能上。

你要怎麼衡量你的人生這本書裡寫到,成事的三要素,資源,流程及優先順序。第一步就是要有資源投入。

比方說月薪五萬,若能存 2~3萬且生活還過得去,可投資更多在學習上。也不要找太操的,盡量可以準時下班的工作,保留一些時間給自己學習。上班通常是作主管要你完成的任務,不一定會學習特定知識,如果你的工作並不能讓你成長,你也毫無策略的話,等著你的是徒增歲數以及停滯的薪資。

以我自己為例,花了下列資源:

  • 5,000 台幣聽了大陸的機器學習課程。
  • 25,000 台幣聽了一位台灣高首開的機器人學課程,包含硬體及實作。
  • 60,000 台幣,建立自己的 Server。(投資在硬體上也算一種門檻,沒錢或不想花錢的人,這項就是硬門檻。)
  • 買原文書及簡體書。
  • 上 MOOC 兩到三門專業課,寫作業。
  • 上成大 Jserv 的免費課程
  • 大量的商管及文學書籍。
  • – 自我努力 (每週努力上班),投資時間來思考策略
    – 大量閱讀(技術書籍,非技術書籍,經典商業書籍,經典文學)
    – 每雙週定時與技術友人交流
    – 每月定時與其他資深同行交流
    – 每雙週定時與其他非同行交流
    – 每雙週定時與友人交流投資(美股及房地產)
    – 不定期向專家付費或免費網路課程進修
    – 投資高效的硬體及軟體
    – 定期收集並閱讀網路有益文章
    – 可外包的工作外包出去,花小錢換時間。(打掃工作)
    – 定期擔任職涯顧問
    – 有益的運動,食物
    – 定期寫作
    – 定期出遊

建議 2: 實作,實作,實作。

不分文理,有產出才代表你有成功輸入知識進去腦子。產出必需眼腦手並用。自學的項目,要把自己的自學專案或結論拿去給專家或朋友看看,主動接受挑戰,獲得反饋,再修正。

建議 3: 建立儀錶板

每天運動量,每日進修量,每日食量,每日花費,每日時間效率這些老實說都應該記錄。並建立一套適合自己的標準。比如說每日跑 1000 公尺,每日寫一題 leetcode 等等。

追求每天一點點進步,但不能掛零。


On-Job Training (由上到下,由任務到知識,前後夾擊。)
On-Job Training 這是謊話,其實大多公司就是沒有特定training ,在公司開發主管指定的任務及專案中學到的經驗跟知識,就是一般說的 On-Job Training。很多人其實就只能瘋狂地 google 跟任務最直接相關的code,git clone 並想辦法跑起來,想辦法交差。即使如此,還是要針對性的對手上的任務作快速的學習,這裡的策略就是要快速列出手上任務的知識目錄。難的地方在於不知道你不知道,或,你不知道該步驟或該技術很重要,也不知道前後順序的重要性等等。

舉例來說,假如我原本是從事電腦視覺的開發,今天忽然要開發語音辨識該怎麼辦 ? 盡快建立知識目錄,並給出初步判斷(要快速隨實驗及時間改變)

Wiki 可以得知該技術(語音辨識)之大概輪廓,

接著,假設你的主管希望你開發在某個硬體上的語音辨識。通常正常的主管會好好定出目標的規格。諸如硬體規格,語音辨識的語言,準確度,模型大小,最小延遲等等。此時,你必須從目標規格中去反推所需要的技術,並建立起所需的最小知識體系,這就是由上到下,上就是指應用或產品,下就是指底層。

在此假設主管想開發類似小米AI音箱之類的硬體,以下是給客戶看的規格。

  • 电源部分采用了RICOH理光的RN5T567J电源管理芯片
  • 功放部分采用了TI德州仪器TAS5760L 10W I2S协议D类音频放大器
  • D类放大器与其它类型放大器相比,效率更高,因此成为便携式和大功率应用的选择。德州仪器的TAS5760采用了更先进的调制技术,降低了成本并减小了电路体积。
  • 无线部分使用了博通BCM43458NKRFBQ芯片,这个芯片支持2.4G/5.8G双频。同时,也支持蓝牙4.1协议。这样即使在没有网络或者网络歌库里没有自己想听的音乐时,也可以通过蓝牙来播放手机本地的音乐。
  • MXIC的MX30LF2G18AC-TI NAND闪存,容量为256MB,相当于音箱的系统盘,用于存储系统及设置。
  • 屏蔽罩下面是这款音箱的大脑。揭开屏蔽罩后,可以看到小米AI音箱使用的是Amlogic晶晨半导体的A112智能语音专用处理器。 ARM Cortex-A53架构,64位,四核1.2GHz。
  • 内存使用的是南亚的两片NT5CC64M16GP-DI DDR3芯片,单片为128MB,两片容量共计256MB
  • 小米AI音箱在声音采集、处理、放大等部分全程使用了I2S协议。I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。

就算法工程師來說,你該建立怎樣的最小知識體系呢? 這裡的最小是因為,必需以最正確的姿勢,最快的速度獲得正確的進展,為了達到快速,勢必要將一些有用但無關的知識暫時空白 (留在之後研究。)。換句話說,要怎樣正確地判斷那些知識是現在要獲得進展必需要先知道的;那些知識可是等專案獲得初步進展之後再專研,以使專案獲得更進一步效能提升;那些知識則是可以等專案完成之後再補上。難就難在要怎麼有效率地去做判斷知識體系的優先順序。以下繼續舉例。

硬體

如主管沒有概念,我們必需自己要弄得非常清楚! 以下是大項,每一項都可以再展開。

  • 算力 (是否有加速器)
  • 記憶體大小及頻寬
  • 使用的協定

軟體 (算法)

  • 算法確定是使用可以在該硬體上跑起來的運算。
  • 所需準確度,延遲,算法(模型)佔用記憶體大小,算法所需之記憶體頻寬
  • 業界以及學界主流產品所使用之算法,包含前處理,主要算法,後處理。
  • 每種算法的優缺點以及所需算力跟頻寬。

基本上就如上,但還有更多更多細節必須去展開,比如說,上述算法的前處理是比電腦視覺門檻高出許多的,包含 wav 格式,I2S協定,MFCC 等等可一一展開。這裡必需拿捏好分寸,要注意開發者不是學生,重點不在於知識體系的完整,而在於專案的進度及效能! 書卷獎絕對不代表你是合格的工程師或科學家。

以上可以看到,其實很多規格都跟算法不直接相關,最需要知道的就是算力,內存,協議。而主處理器是 A112智能语音专用处理器,則必須深入了解內部的。所以我又深入去google A112,目標是了解那些典型算法是語音領域所需要的。

各種智能音箱比較 (很有參考價值,但對現在的我沒用,別忘了我是算法工程師)

人工智能語音晶片 (文章有點過時了,但有滿足我的需求:了解那些典型算法是語音領域所需要的。 )

至此,可以列出更細的 hierarchy,可以接下去更深入地了解每一項。這就是由上到下,由產品到知識。(要注意其實貼出來的還包含更多有用但暫時無關的資訊,我只抽出跟算法有關的,之後必需再回頭來補其他知識。)

  • 回聲消除
  • 噪音抑制
  • 聲源定位
  • 語音增強
  • 神經網絡模型

小結: 要能根據自己接到的專案,快速建立所需的知識目錄 ,其中優先順序要以專案為主。會用到的知識才先去學習,先不學無關的知識。


專案完成之後

由下到上,找時間把知識補充完全。這部分就是跟學校的作法一樣,當產品製作時程比較有空的時候,就必須找出之前的建立的由上到下的知識目錄,跟 DSP 或訊號處理中的由下到上的超詳細知識目錄,作一些對照,看看哪些是必要的,比如說 FFT,就大略看看原理,不要花太多時間在原理,會睡著的,找作業來作。第一項就是史丹佛大學的作業,看幾秒後覺得跟 FFT 本身比較不相關,

接著看到 berkeley 的講義跟其他學校的作業。想辦法找時間把它寫出來,寫出來之後,想辦法驗證答案的正確性。(通常第一次寫都是錯的,寫到第五次,第六次時通常就會對的,當你知道你自己是正確的時候,已經不需要解答了。)

最後要說明的是,我不是作語音辨識的,所有例子都是為了這篇文章來查的。

總結:

  1. 工作優先,由上到下,建立必要的知識目錄,不相關者暫時先不管。
  2. 工作快完成,由下到上,從知識體系建立自己的實力。
  3. 上下夾攻,好好建立自己的知識系統跟思考能力。
  4. 實作,實作,實作
  5. 實作之餘,找專家來看自己的專案或作品,接受挑戰。