最近chatgpt爆紅,百度近日也官宣了大模型新項目“文心一言”(英文名ERNIE Bot),即将在今年3月面向公衆開放,我先期待一波,到時候給同學們說說感受。
這也不是第一次人工智能引起廣泛關注了,随着科技的發展,人工智能産品已經與我們的生活息息相關,比如手機語音助手、自動駕駛系統等等。可以預見的是,數字化、智能化将會是未來發展的主流,企業對AI人才的需求量隻會有增不減,對AI感興趣的同學也會越來越多。
今天就給大家分享一下我自己整理的人工智能學習路徑,幫助想要入門人工智能的同學少走彎路,别忘了三連支援我!
先放上學習路徑:
「基礎知識→程式設計語言→數學知識→機器學習/深度學習→計算機視覺/自然語言處理→面試準備」
基礎知識
可以分為計算機基礎知識和AI基礎知識
計算機基礎知識
要想學人工智能,了解計算機知識是必要的前提。在這個階段,我們需要學習計算機組成原理、計算機作業系統、計算機網絡這三個部分。
當然,并不是要求一定精通,計算機是存儲和處理資料的裝置,了解它是為了讓我們在以後的工作中可以更好的解決問題。
AI基礎知識
這一階段我們需要了解AI的概念和應用
什麼是AI?
百度百科給出的解釋:是研究、開發用于模拟、延伸和擴充人的智能的理論、方法、技術及應用系統的一門新的技術科學。
比較容易了解的說法:一種人為制造出來的機器,可以模仿人的思想和行為,展現出一種智能的反應。
AI的應用:
目前AI普遍應用于金融、安防、智能家居、醫療、機器人、智能駕駛、新零售等領域,幾乎涵蓋了我們生活的各方面。
程式設計語言
想要學好人工智能,首先至少得掌握一門程式設計語言。在程式設計語言的選擇上,目前比較常用的是Python、C/C++、Java等等。
得益于Python強大的資料科學和機器學習能力,我們可以用它來分析複雜的資料集,而不用擔心速度。
來看看Python的優點:
- 效率高
- 易于學習,對小白非常友好
- 程式寫起來非常友善
- Python源代碼非常便于維護
- 跨平台相容性好
- 有很多有用的庫可以用
- 易于閱讀,友善初學者了解
前Python可以說是十分全能,不僅僅用于人工智能,系統運維、web程式設計、多媒體應用、機器學習等等都可以做到,是以對小白來說,目前最适合的選擇就是Python。
至于C/C++和Java,前者速度非常快,常用于搜尋引擎和遊戲開發,後者作為通用程式設計語言,具有對人工智能的庫支援,常用于建構強大的AI應用程式。但二者的學習門檻都較高,建議同學先掌握一門程式設計語言再考慮學習。
我的小建議:這個階段的同學一定多敲代碼!多敲代碼!多敲代碼!
數學知識
學AI就像過關打怪,這個階段同學們需要面對的就是數學的挑戰。其實數學真沒想象中的那麼困難,隻要學習掌握微積分、線性代數、機率論、統計學這四個課程的知識就足夠了。
機器學習/深度學習
這兩部分可以放在一起說說,因為深度學習是機器學習的一個子分支,二者大體的内容是相同的,可以同時學習(不過還是建議先學機器學習再學深度學習)。
神經網絡
神經網絡是深度學習的基石,想要入門深度學習,需要掌握三大神經網絡知識:CNN卷積神經網絡、RNN循環神經網絡和GAN對抗神經網絡。
架構
在開始深度學習之前,選擇一個合适的架構十分重要,可以大大提高你的工作效率。
目前比較流行的架構有:TensorFlow、pytorch、Caffe等等,我在這裡同樣隻說說兩個比較常見架構:pytorch、tensorflow。
學術界大多用的都是pytorch,便于了解,簡單易上手,對小白非常友好。TensorFlow多用于工業,但pytorch現在在工業界的使用率也上升了,是以建議同學選擇pytorch學習。
計算機視覺/自然語言處理
到了這個階段,就是選擇主攻方向的時候了,其實人工智能不止CV/NLP,不過我今天就隻講講比較熱門的方向。
計算機視覺
重點學習CV的三大基礎任務:圖像分類、圖像分割、目标檢測。
了解CV在各行各業的應用場景,可以看看學姐之前的盤點。
自然語言處理
需要掌握的基礎知識:
- 資訊抽取
- 預訓練模型
- 圖神經網絡
- 文本比對
- 機器翻譯
相比起CV來說,NLP的門檻較高,上手會比較困難,但競争壓力會相對小一些。在發展前景上,二者并沒有高下之分,而且目前已有融合的趨勢,是以同學們可以根據自己的需求選擇。
小建議:
無論是CV還是NLP方向,學習的過程中都離不開閱讀論文,經典論文的作用不僅僅是幫助了解知識點,更有助于開拓研究思路,從前人的經驗中獲得提出問題-分析問題-解決問題的能力。
面試準備
如果覺得自己學的差不多了,可以嘗試找一份人工智能相關的工作積攢一些經驗,畢竟知識是學不完的,紙上談兵永遠不會得到成長。
先講講面試的主要流程。
一般會有筆試和面試兩個部分,筆試主要考的是基礎知識,分為選擇題、程式設計題兩個部分(不同公司可能會有變化)。
面試的重點在項目經驗上,如果覺得這方面有欠缺,可以通過打比賽來彌補缺口(kaggle、天池……)。
為什麼要打比賽?
如我上面所說,比賽的目的是為了讓自己獲得更多的項目實戰經驗,豐富履歷,提高自己的含金量,如果能在比賽中獲得優秀的排名,就更有機會獲得更好的工作,甚至有的公司會直接在比賽中提供頂尖的工作機會。
另外,通過組隊打比賽,可以擴大自己的交友圈,拓寬人脈網,與同樣優秀的人打交道,獲得的好處隻多不少。
怎麼打比賽?
以kaggle為例,新手建議選擇Getting Started類練手,雖然沒有獎金,但可以學到非常多的知識與經驗,推薦兩個:
Titanic:Machine Learning from Disaster(泰坦尼克資料集)
Iris Species(鸢尾花資料集)
逐漸上手後就可以進入下一個階段了,可以選擇找人組隊,也可以solo,不過我還是建議同學們組隊參賽,取長補短。
總結
看到最後,有沒有即将面對挑戰的感覺?學習 AI 是一個漫長的過程,會很容易感到枯燥乏味,如果想要學有所成,那就一定要堅持!工作之後也要保持學習,AI技術更新換代的速度隻會越來越快,如果不想被淘汰,就學起來吧!
最後也給大家準備了人工智能資料大禮包