如果要學(xué)習(xí)人工智能的編程?
現(xiàn)在人工智能可以說是非常的火熱,很多同學(xué)也想學(xué)習(xí)。但是剛開始時(shí)候總是會覺得比較迷茫,不知道如何開始學(xué),也擔(dān)心人工智能太難,自己可能學(xué)不會。其實(shí)不用太擔(dān)心,因?yàn)槿斯ぶ悄苋腴T其實(shí)并不難。這篇文章對如何去學(xué)習(xí)人工智能,給出一些建議。
學(xué)習(xí)AI的大致步驟:
(1)了解人工智能的一些背景知識;
(2)補(bǔ)充數(shù)學(xué)或編程知識;
(3)熟悉機(jī)器學(xué)習(xí)工具庫;
(4)系統(tǒng)的學(xué)習(xí)AI知識;
(5)動(dòng)手去做一些AI應(yīng)用;
1 了解人工智能的背景知識
人工智能里面的概念很多,比如機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)等等,使得初學(xué)者覺得人工智能很神秘,難以理解。剛開始學(xué)習(xí)的時(shí)候,知道這些名詞大致的意思就行了,不用太深究,學(xué)習(xí)過一段時(shí)間自然也就清楚這些概念具體代表什么了。
人工智能是交叉學(xué)科,其中數(shù)學(xué)和計(jì)算機(jī)編程是學(xué)習(xí)人工智能最重要的兩個(gè)方面。這些在“知云AI專欄”之前的文章“認(rèn)識人工智能”,也為大家介紹過,沒閱讀過的同學(xué)可以去看一下。
下圖為人工智能學(xué)習(xí)的一般路線:
2 補(bǔ)充數(shù)學(xué)或編程知識
對于已經(jīng)畢業(yè)的工程師來說,在系統(tǒng)學(xué)習(xí)AI之前,一般要補(bǔ)充一些數(shù)學(xué)或者編程方面的知識。如果你的數(shù)學(xué)和編程比較好,那么學(xué)習(xí)人工智能會輕松很多。
很多同學(xué)一提到數(shù)學(xué)就害怕,不過,學(xué)習(xí)人工智能,數(shù)學(xué)可以說是繞不過去的。在入門的階段并不需要太高深的數(shù)學(xué),主要是高等數(shù)學(xué)、線性代數(shù)和概率論,也就是說,大一大二學(xué)的數(shù)學(xué)知識已經(jīng)是完全夠用了。如果想要從事機(jī)器學(xué)習(xí)工程師的工作,或者搞人工智能的研究,那么應(yīng)該多去學(xué)習(xí)數(shù)學(xué)知識,數(shù)學(xué)好將會是工作中的一大優(yōu)勢。
Python是在機(jī)器學(xué)習(xí)領(lǐng)域非常受歡迎,可以說是使用最多的一門編程語言,因此Python編程也是需要掌握的。在眾多的編程語言中,Python是比較容易學(xué)習(xí)和使用的編程語言,學(xué)好Python也會受益很多。
3 熟悉機(jī)器學(xué)習(xí)工具庫
現(xiàn)在人們實(shí)現(xiàn)人工智能,主要是基于一些機(jī)器學(xué)習(xí)的工具庫的,比如TensorFlow、PyTorch等等。
在這里推薦大家學(xué)習(xí)PyTorch。PyTorch非常的受歡迎,是容易使用的機(jī)器學(xué)習(xí)工具庫,有人這樣評價(jià)PyTorch“也說不出來怎么好,但是使用起來就是很舒服”。
剛開始學(xué)習(xí)人工智能的時(shí)候,可以先運(yùn)行一下工具庫官網(wǎng)的示例,比如MNIST手寫體識別等。這樣會對人工智能有一個(gè)感性的認(rèn)識,消除最初的陌生感。然后可以看看里面的代碼,你會發(fā)現(xiàn),其實(shí)神經(jīng)網(wǎng)絡(luò)的程序并不復(fù)雜,但是會對神經(jīng)網(wǎng)絡(luò)的原理和訓(xùn)練有很多的疑問。這是一件好事,因?yàn)閹е鴨栴}去學(xué)習(xí),會更有成效。
4 系統(tǒng)的學(xué)習(xí)人工智能
這里的人工智能主要指機(jī)器學(xué)習(xí),因?yàn)槟壳叭斯ぶ悄苤饕峭ㄟ^機(jī)器學(xué)習(xí)的方式來實(shí)現(xiàn)的。
機(jī)器學(xué)習(xí)知識主要有三大塊:
(1)傳統(tǒng)機(jī)器學(xué)習(xí)算法,比如決策樹、隨機(jī)森林、SVM等,這些稱作是傳統(tǒng)機(jī)器學(xué)習(xí)算法,是相對于深度學(xué)習(xí)而言的。
(2)深度學(xué)習(xí),指的就是深度神經(jīng)網(wǎng)絡(luò),可以說是目前最重要最核心的人工智能知識。
(3)強(qiáng)化學(xué)習(xí),源于控制論,有時(shí)候也翻譯成增強(qiáng)學(xué)習(xí)。深度學(xué)習(xí)可以和強(qiáng)化學(xué)習(xí)相結(jié)合使用,形成深度強(qiáng)化學(xué)習(xí)。
在這里需要知道的是深度學(xué)習(xí)并不難學(xué),對于一些工科的研究生,一般只需要幾周就可以上手,并可以訓(xùn)練一些實(shí)際應(yīng)用中的神經(jīng)網(wǎng)絡(luò)。但是想要對深入學(xué)習(xí)有深入理解不是容易的事情,一般需要幾個(gè)月的時(shí)間。
傳統(tǒng)機(jī)器學(xué)習(xí)算法的種類非常多,有些算法會有非常多的數(shù)學(xué)公式,比如SVM等。這些算法并不好學(xué),因此可以先學(xué)習(xí)深度學(xué)習(xí),然后再慢慢的補(bǔ)充這些傳統(tǒng)算法。
強(qiáng)化學(xué)習(xí)是比較有難度的,一般需要持續(xù)學(xué)習(xí)兩三個(gè)月,才能有所領(lǐng)悟。
5 動(dòng)手去做一些AI應(yīng)用
學(xué)習(xí)過幾周的深度學(xué)習(xí)之后,就可以動(dòng)手嘗試去做一些AI應(yīng)用了,比如圖像識別,風(fēng)格遷移,文本詩詞生成等等。邊實(shí)踐邊學(xué)習(xí)效果會好很多,也會逐漸的加深對神經(jīng)網(wǎng)絡(luò)的理解。
下圖是人工智能進(jìn)階的過程:
對于一些還在學(xué)校讀書的同學(xué),時(shí)間比較多,可以多去學(xué)習(xí)各學(xué)科的知識。有足夠的知識積累,對于以后的發(fā)展是非常有好處的。