首頁>Club>
2
回覆列表
  • 1 # 大唐李衛公

    這兩年,人工智慧已經逐漸成為了行業最火的話題,但到目前為止,人工智慧還只要停留在科學研究階段,還沒到大規模的應用階段,很多人想接觸和學習相關的知識,但是又害怕自己的知識儲備不夠用往往無法下手。目前人工智慧的核心是深度學習,而深度學習的核心是神經網路,那麼需要做哪些預備知識才能夠幫助自己的更好的學習神經網路這門課程呢?1. 最簡單的神經網路模型讓你消除學習難度的顧慮

    舉個簡單的例子,現在需要透過發動機來判定一輛車的價格,建立一個直角坐標系,橫坐標假設為發動機資料e而豎坐標假設為p,假設有一組車的資料,均勻分布在座標系中,相信大家都學過線性回歸,就算是隻上過高中也會對回歸函式有一定的了解。最終你得到的一條很好能擬合發動機和價格之間關系的折線,其中假設發動機引數和價格的關系是連續不間斷的,那麼這個處理過程則可以抽象成以下的關系,如下:

    這便是一個最簡單的神經網路,中中間部分就是一個神經元,現在是不是覺得神經網路很簡單?那麼自然世界的真實用例肯定不可能這麼簡單,那麼我們知道除了發動機、汽車的空間大小、內飾、做工、空調系統、導航系統等等一系列的引數都可以影響汽車的價格,那麼你會發現你的輸入值越來越多,那麼輸出值也就越來越準確,如果再加上其他的外界因素,那麼你這個模擬的模型就會越來越接近真實值,這便是神經網路,這便是深度學習的核心,也是人工智慧的核心,但是抽象以後你會覺得其實並不難。

    因此為什麼要覺得自己不適合或者因為自己的知識儲備不夠而拒絕接受新的知識呢?不僅僅是人工智慧,其他領域也都一樣。

    2. 要想有一定的造詣尤其是想吃這口飯,你必須要學習更多

    當然,對於要想獲得更多的專業的知識,那麼具體哪些知識能讓你事半功倍呢?首先對於學習計算機的學生來說,不管你用不用得到,有幾門本事學習好了,百利無一害,一是微積分、二是離散數學、三是英語,毫無疑問,計算機科學本質上跟數學關系緊密,甚至可以說數學就是程式設計的本質,這也是最早圖靈完備的計算機的最初來源,而微積分、離散數學是計算機科學的基礎數學知識。

    對於英語,相信不用多說,不是必須,卻是讓你事半功倍的好工具,英語知識好,你可以看國外眾多的頂級名校的mooc,你可以第一時間找到最新的人工智慧前沿知識,能第一時間翻看最新的技術文件,毫無疑問學好英語讓你求知路上更加簡單。除此之外,你需要掌握更多的線性代數和機率論方面的知識,矩陣運算是神經網路的核心,線性方程組、凸最佳化、梯度等等知識能夠讓你在演算法最佳化上取得更好的結果。當然,你還需要較好的計算機基礎、程式設計基礎,建議了解一些關於視覺識別方面的行業資訊、了解一些組成、編譯方面的知識,程式設計語言的話python是個不錯的選擇。

    3. 最後給大家推薦一些比較好的人工智慧學習資源

    對於人工智慧的學習,毫無疑問,如果有好的學習資源、學習工具那麼將會事半功倍。Stanford的CS231n是李飛飛教授關於視覺識別的比較好的課程, 人工智慧領域的泰斗,神經網路之父Geoffrey Hinton 老爺子的《Neutral Network for Machine Learning》課程,恩達博士的Deep learning課程,都是很好的學習人工智慧的入門課程,讓你能更快的進入人工智慧的學習。

    除此之外,還有一些框架也是很好的學習資源,例如大名鼎鼎Google的人工智慧學習框架tensorflow、keras、Caffe等等都是很好的人工智慧學習框架,當然,人工智慧目前GPU程式設計效果比較好,CPU程式設計目前來首不能獲得較好的體驗,建議大家為了真正深度學習人工智慧課程,配置一個比較好的電腦,尤其是好的顯示卡。

    最後還是送上那句老話,不管學習什麼知識,活到老、學到老,要有終身學習的精神,很多知識對於很多人來說也許永遠不會用到,但是哪怕是僅僅作為興趣愛好呢?為什麼博士學位最初的來源叫做“Philosophy Doctor”,翻譯過來也就是哲學博士學位,所有的智慧知識都是哲學,而學習這些知識就好比是跟無數的哲人進行交流,像Geoffrey Hinton、Donald Ervin Knuth、RMS、John McCarthy這樣的泰斗級別的科學家,也可以說是都是偉大的哲學家,要麼畢生獻給科學,要麼畢生獻給教育,要麼兩者都是。最後希望有志者都能夠在人工智慧領域有所得。

  • 2 # 哥廷根數學學派

    1.線性代數(初級):神經網路裡涉及到最多的就是矩陣運算了

    2. 微積分(初級):反向傳播(back propagation)就是求導鏈式法則的應用

    3. 線性代數+微積分:學會對矩陣函式(變數是矩陣的函式)求導之後,計算會快很多

    4. 程式語言(matlab/python優先):這兩種語言可以很方便做線性代數計算(python可以用numpy)

    理解

    5. 線性代數(中級):特徵值特徵向量、線性方程組等等,為最佳化做準備

    6. 微積分(中級):梯度、Hessian、曲率等等,為最佳化做準備

    7. 凸最佳化(中級):最佳化演算法等,結合線性代數和微積分的知識,可以更好地瞭解怎麼訓練神經網路

    8. 機率統計/隨機數學(中級):瞭解一些深層神經網路的機率模型,比如resticted Boltzmann machines之類的

    應用

    9. 計算機視覺/自然語言處理/語音識別等(中級):應用背景瞭解

    10. 計算機原理/體系結構(中級):瞭解儲存器層級(memory hierarchy)、I/O等等

    11. 編譯原理(中級):瞭解程式碼最佳化

    12. 平行計算(中級/高階):瞭解GPU計算、多執行緒計算、分散式計算等等

    理論研究

    13. 凸最佳化(高階):最佳化演算法背後的理論(online learning等等)、近幾年的paper

    14. 非凸最佳化(中級/高階):近幾年的paper,可能對神經網路最佳化有借鑑/指導意義

    15. 機率統計/隨機數學(高階):可能對深入瞭解以機率圖模型(probabilistic graphical models)建模神經網路的方法有幫助

  • 中秋節和大豐收的關聯?
  • 玩cf,為什麼有些人打了ACE還是會被別人踢?