《一堂課掌握AI自學路徑圖LIVE》之小記

這篇文章也發在個人博客,歡迎圍觀😄html

人工智能主要研究領域

摘自Russell & Norvig的經典教材《人工智能python

天然語言處理(natural language processing)
知識表示(knowledge representation)
自動推理(automated reasoning)
機器學習(machine learning)
計算機視覺(computer vision)
機器人學 (robotics)web

AI主要應用的生活場景

  1. 智能音箱一類的生活助手,主要是使用語音識別
  2. 圖像識別,例如自動駕駛、AI加持的拍照算法、動態行爲分析等

七牛雲的AI應用

1. 視頻上傳後AI識別人臉
2. AI鑑黃、反暴恐 算法

3. AI視頻分類
4. 基礎要素切割,如某段視頻中存在哪些人、物等要素
5. 對視頻進行描述
6. 對視頻進行分割定位

快速入門

給初學者的建議

  1. 不要等到掌握全部的相關數學知識再開始

矩陣/張量,特徵值分解,行列式,範數...
機率分佈,獨立,貝葉斯,最大似然估計...
線性優化,梯度降低、牛頓法...
導數、偏微分,鏈式法則,矩陣求導...
信息論、數值計算...編程

  1. 不要收集過多的學習資料
  2. 動手X3

機器學習速覽

機器學習是什麼?

機器學習就是,利用學習算法,從數據中產生模型框架

Spam filters, Search ranking, Click through rate predict, Recommendations, Speech recognition,Machine translation, Face detection, Image classification......機器學習

  1. 傳統編程: 數據 + 程序 => 輸出結果
  2. 機器學習: 數據 + 輸出結果 ====> 學習模型

機器學習與傳統編程

泛化性

對於某類任務T和性能度量P,若是一個計算機程序在T上以P衡量的性能隨着經驗E而自我完善,那麼咱們稱這個計算機程序在從經驗E中學習。-- Tom M. Mitchell編程語言

以下圖,雖然第三幅圖沒有誤差,可是對於未知的點的預測效果,沒有圖二好。這就是泛化性。 ide

機器學習泛化性

常見任務與算法

要針對具體學習問題進行

若是不針對某一具體的學習問題,則沒有哪一個算法比其餘算法更高效性能

  1. 在某些問題上表現很好的學習算法,在另外一些問題上卻可能不盡如人意
  2. 學習算法的概括偏好與問題是否匹配,每每起決定性做用
  3. 概括偏好是學習算法自己所作的關於「什麼樣的模型更好」的假設

圖像分類

人能夠垂手可得進行圖像分類,而機器不行,由於存在語義鴻溝

以下圖,人看到貓,計算機看到的是數字,計算機是語義這個概念的。

K近鄰

K近鄰就是K最近鄰(k-Nearest Neighbor,KNN)分類算法,是一個理論上比較成熟的方法,也是最簡單的機器學習算法之一。該方法的思路是:若是一個樣本在特徵空間中的k個最類似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。

換言之,給定一個訓練數據集,我有一個新的實例,若是在數據中與該實例最鄰近的K個實例,這些實例中大多數屬於某一類,那麼就判斷該新的實例屬於某一類。

缺點:

  1. 分類器必須記住全部訓練數據並將其存儲起來,以便於將來測試數據用於比較。這在存儲空間上是低效的,數據集的大小很容易就以GB計。
  2. 對一個測試圖像進行分類須要和全部訓練圖像做比較,算法計算資源耗費高。

線性分類器

因爲K近鄰存在明顯缺點,因此咱們須要一種更強大的方法來解決圖像分類問題,此處能夠用線性分類器

推薦學習資料

書籍

  1. 尼克《人工智能簡史》
  2. Miroslav Kubat《機器學習導論》
  3. 周志華《機器學習》(西瓜書)
  4. Aurelien Geron《 Hands-on Machine Learning with Scikit-learn & Tensorflow 》
  5. Ian Goodfellow等《Deep Learning》(花書)

文章

  1. Getting Started With MachineLearning (all in one) by 梁勁 http://sina.lt/f3W8
  2. Machine learning 101 by Jason Mayes http://sina.lt/f3W3

課程

  1. 機器學習速成課程 https://developers.google.com/machine-learning/crash-course/
  2. 臺灣大學李宏毅教授 http://speech.ee.ntu.edu.tw/~tlkagk/courses.html
  3. 吳恩達教授 http://mooc.study.163.com/smartSpec/detail/1001319001.htm
  4. 斯坦福大學 cs231n http://cs231n.stanford.edu/
  5. 斯坦福大學 cs224n http://web.stanford.edu/class/cs224n/

其餘

  1. scikit-learn Tutorials http://scikit-learn.org/stable/tutorial/index.html
  2. 機器學習術語表 https://developers.google.com/machine-learning/crash-course/glossary

Q&A

  1. 機器學習與社會科學的關係?
    機器學習的發展很大程度上依託於社會科學,由於機器學習其實就是在探究心理學的理念以及大腦如何學習與思考,機器學習在發展過程當中又會反哺社會科學。

  2. 中國人工智能領域處於領先位置,但爲何這方面的資料都是國外的?
    中國是一個大國,社會行爲方面的數據很是豐富。可是因爲在計算機領域咱們起步比較晚,因此在基礎領域咱們的研究並不深。這不只僅是人工智能領域,包括整個計算機學科領域,咱們不少的應用都是基於國外的基礎理論。可是到實際應用領域,咱們是很是領先的。例如人臉識別,中國人口衆多,可供訓練的樣本很是豐富。中國在人工智能面臨的挑戰是如何將咱們在應用中的經驗和總結與基礎理論相結合,推進學術發展。

  3. 是否建議初學者從深度學習開始入手學習?
    不建議。應該系統學習基礎概念及其關係,練習熟悉經常使用方法,再進一步學習。

  4. Pytorch和TensorFlow兩個機器學習庫,選擇哪一個學習比較好?
    二者皆可。TensorFlow是google出品,開源能夠參考的比較多。目前來講作學術研究Pytorch多一些,作應用層面的TensorFlow多一些。

  5. 學習過程當中應該如何實踐?
    學習在線課程,作這些課程的練習,同時要去論壇和別人交流,才能進步。或者參加天池等的一些人工智能競賽,逼迫本身去實踐。

  6. AI開發用什麼編程語言合適?
    雖然python有不少的庫,並且主流框架不少都使用Pythen的接口。可是隻會Pyhton不夠,七牛AI開發過程當中使用了包括C++、GO等編程語言。

  7. 是否有必要看學術論文?
    有必要。如今一項技術從科研到落地的時間特別短,緊跟最新的科研成果頗有必要。

  8. AI開發過程
    收集源數據--抽樣、整理生成樣本--放入計算實體訓練(過程當中作超參數調試)--造成模型(評估模型是否知足需求,經過另一批樣本測試)--知足則上線

直播回顧

附上直播回顧連接:
一堂課掌握AI自學路徑圖(上)
一堂課掌握AI自學路徑圖(下)

感謝各位看官,歡迎批評指正😄

相關文章
相關標籤/搜索