教你五歲的孩子入門 AI:人工智能究竟是個啥?

點擊上方「藍字」關注咱們算法


做者 | 羅 奕康,秦鳳嘯
編輯 | 張嬋

前言編程




小夥伴們你們好, 我是來自北京事業羣的奕康。今天想跟你們聊聊如何帶本身的五歲小孩入門人工智能這個行業(笑)。

提起人工智能, 你們可能對它的印象有多是西部世界的德妹大殺四方,也有多是黑客帝國裏面那兩顆藍色藥丸和紅色藥丸,更有多是屢屢不聽話的小愛童鞋, siri, 天貓精靈等。。。

來自一個四川人的怨念:
嘿 Siri,幫我定一個明天早上 10 點的鬧鐘。
好的,已爲您定好明天早上 4 點的鬧鐘。
微信

無論這些是人工智能仍是人工智障, 它們屬於人工智能的範疇。優源匯, 知乎以及各類各樣的公衆號都有一些零零散散的碎片化的知識, 可是彷佛沒有一個綜述同樣的集合, 比較簡單的給你們捋一下人工智能的發展路線以及將來前景等等。所以, 我想斗膽開這麼一個坑, 以最精煉的語言, 最符合直覺的例子, 來說一講人工智能的發展以及如今你們口口相談的東西都是一個什麼基本原理。網絡


我但願整個系列中不會出現太多數學推導, 而是用比較口語化的語言來解釋出現這個東西的緣由是什麼, 這個東西是用什麼思想來設計的, 這個東西能夠達成什麼樣的效果。同時, 我會盡可能在每一章後面貼上一些連接(好比李弘毅老師的課程)以及知乎筆記, 開源 GitHub工程代碼, 以便想要進一步瞭解背後數學算法以及工程師能夠自行深刻研究。app


最後,我但願你們能夠看成閒時閱讀同樣的來閱讀本系列(不須要太動腦子的那種(笑)), 且閱讀完成後能夠知道, 哦, 原來這我的們常說的這個東西是這樣的。而下一次當有人來忽悠你說咱們的人工智能是什麼什麼的時候, 你能夠帥氣的告訴他:dom


沒有人比我更懂人工智能!機器學習

學習路線圖 - Roadmap學習




咱們將會以如下路線圖瞭解到整我的工智能的發展:

  • 人工智能的誕生:1950 年代基於規則的「人工智能」大數據

  • 從制定規則到機器學習 Machine Learningflex

  • 什麼是機器學習

  • 使用年齡預測身高 -> 迴歸 Regression

  •  線性迴歸 Regression
  1. 線性迴歸的參數爆炸了? 正則優化的 Lasso Regression 與 Ridge Regression

  2. 如何完美的畫出三八線:支持向量機SVM

  • 非線性迴歸與分類 Non-Linear Classification & Classification

  • 從迴歸到分類:邏輯斯蒂 Logistic Regression

  • SVM 由線性轉爲非線性

  • 三人成虎:簡單易懂 KNN

  • 決策樹

  • 進一步機器學習,人多力量大的集成模型 Ensemble Model

  • 衆生之下「模模」平等, 你們一塊兒來投票:Bagging

  1. 決策樹超進化 -> Random Forest

  • 失敗是成功之母:Boosting

  1. Adaboost

  2. Gradient Boosting

  3. 無腦吹的XGboost, lightgbm 與catboost究竟是什麼?

  • Stacking

  • 深度學習到底有多深

  • 邏輯迴歸進化 -> 神經網絡

  • 神經網絡進化 -> 深度神經網絡

  • 神經網絡的花式結構

  • 你還說我不夠細節? 卷積神經網絡CNN

  1. 圖像識別

  • 序列數據的處理:循環神經網絡RNN

  1. 語音識別, 文本分析, 對話生成

  • 谷歌的變形金剛:Transformer

  • 神經網絡太大了怎麼辦:預訓練

  • Bert

  • 工業界暴力堆機器的美學, 讓咱們回到GPT-3

  • 將來的人工智能? 


因爲人工智能是一個飛速發展的行業, 咱們頗有可能在填完這個坑以前出現嶄新的技術, 那我也會嘗試將新技術的科普加入其中。最後再多嘴一句, 不要被這些英文嚇到, 咱們的目標是:

讓你的五歲孩子也能懂人工智能!

人工智能的誕生:1950年代基於規則的「人工智能」




人工智能的發展大體上能夠分紅這樣幾個階段:
  • 1950 - 1980 早期的人工智能開始發展,好比自動象棋機等

  • 1980 - 2010 機器學習開始火熱,常見的應用項目有垃圾郵件分類等

  • 2010 - 2020 深度學習煊赫一時,人臉識別,語音辨識,等等等。。。。


從上世紀 50 年代開始,人們開始陸陸續續探索如何使用計算機幫人類作事情。在那個時候, 人工智能還停留在「規則匹配」的階段, 即人們用一堆一堆的IF設定規則, 而後讓機器根據if返回人們想要的結果。小明是一個只有 5 歲可是有點禿頂的 Python 工程師, 他按照規則創造了一個對話機器人, 這個對話機器人很簡單, 當小明輸入的詞語裏面有「關掉」這兩個詞的時候, 這個機器人就會幫小明關掉電腦的音樂。這個 chat-bot 核心代碼差很少長這樣:


  1. def chat(input_command):

  2. if "關掉"ininput_command:

  3. turn_off_music()

  4. else:

  5. pass


小明創造完成這個機器人後, 很是開心, 得吧得吧得的就來到了小夥伴們的面前, 開始展現:


你們看見了效果, 都異常興奮, 高興的拍手, 以爲這就是人工智能的將來。可是小明的女神小紅多是心情不太好的亞子,傲然一笑,發話了:



小明面子有點掛不住了, 因而小明便說:

我能夠增長個人規則, 讓機器人判斷「關掉」前面是否有「不要」, 來決定是否關掉音樂。

甚至小明爲了展現本身手撕代碼的能力, 現場開始編程:


  1. def chat_v2(input_command):

  2. if "關掉"ininput_command:

  3. if"不要"notininput_command:

  4. turn_off_music()


小紅傲然一笑:



這就是最先的人工智能(也有一些如今的產品是這樣的!)的情況, 人工智能的內部是一堆工程師早已定好的規則, 這些規則無窮無盡, 這種人工智能打造方式帶來的問題即是, 創造的人工智能永遠都沒法超越規則的創造者。 



所以, 最先的人工智能其實就是一個規則的匹配機器。回到小明的困惑中, 若是咱們真想要小明的機器人變得能夠徹底聽懂「關閉音樂」這個指令, 咱們須要按照中文的語法規則, 給這個機器人書寫不少不少的 if...

  • 若是隻有一個動詞且動詞是"關閉":

  • 若是隻有一個動詞且動詞是"關掉":

  • 若是動詞後面的名詞是"音樂":

  • ...


這無疑是一場災難!可是在之前, 這確確實實是人工智能的主流辦法, 由專家手工編寫領域相關的規則集。那時候, 計算機和計算機語言都剛剛發明, 從事編程的都是精英學者。他們雄心勃勃, 認爲只要經過編程就能賦予計算機智能。表明性的工做有 MIT AI 實驗室的 BASEBALL, 比方說 :

BASEBALL 的詞性標註模塊是這樣去判斷 「score」 這一個單詞的詞性的:

若是句子中是不含其餘動詞, 則 score 是一個動詞, 不然是名詞。

爲了實現這樣的對話機器人, 每個對話機器人背後都有一羣寫禿了頭的工程師以及領域專家。 

那麼咱們有什麼辦法能夠打破這種, 「有多少人工, 就有多少智能」 的困境呢? 

讓咱們回顧一下人類小時候是怎麼學習。咱們小時候若是想要學會一件事情, 比方說學會認識到一個動物究竟是貓是狗的話, 爸爸媽媽會給咱們指着圖片說, 這是貓, 這是狗, 而後咱們會從圖片中進行概括總結;而不是爸爸媽媽告訴咱們, 有耳朵有眼睛有鼻子有毛看起來一副主子模樣拉屎還賊臭的是貓, 這樣的話咱們可能會指着本身開心的說媽媽媽媽原來我就是一隻貓呀。


配圖:貓己不分

對比一下這二者的區別, 咱們發現核心的區別就在於咱們人類能夠經過一個一個的樣例,學習到」概括總結「的能力。那麼咱們怎麼讓機器來作到這一點呢? 歡迎和小明一塊兒進入, 機器學習的時代。

從制定規則到機器學習 Machine Learning




機器學習究竟是什麼呢? 機器學習其實就是一個你寫好的程序, 這個程序接受一個輸入, 而後能產生一個輸出。人們就像教小孩同樣去教這個機器,好比咱們想要機器幫咱們辨識一張圖片裏是貓仍是狗的話, 咱們給機器看了不少貓的圖片, 而且告訴機器這是貓。


image-20200919193111067

同時咱們給機器看不少狗的圖片, 告訴機器這是狗。 


image-20200919193158018

而後, 機器經過一些計算機算法會主動分析貓和狗的區別, 這樣當咱們給出機器以前沒見過的貓狗圖片時, 機器能夠自動幫咱們識別出來:



返回到剛纔小明的對話機器人那個例子, 小明若是想要從上世紀 50 年代進化到上世紀 80 年代, 那麼小明須要寫出一個機器人, 這個機器人會根據小明給出的各類各樣的例子去學習到什麼樣的指令纔是關閉音樂, 而不是由小明告訴他什麼樣的指令纔是關閉音樂。

總結而言, 機器學習就是讓機器去尋找「規則/程序」的過程。機器學習最終目的就是製造一個程序/方程/系統, 它接受一個輸入, 而且可以根據輸入獲得一個輸出。當咱們在語音識別任務中, 方程的輸入就是一段音頻的波普頻率, 輸出就是這段音頻的實際文字。當咱們在圖片識別任務中, 這個方程的輸入就是一張圖片, 輸出就是圖片裏面實際的物體。當機器學習開始下圍棋的時候,咱們的輸入就是一張如今的棋譜如今的黑白子位置, 輸出就是下一個落點的座標。

那咱們如何讓機器去尋找到這些規則呢? 這是一個漫長髮展的過程, 讓咱們從簡單的東西開始, 試着去思考一下這個問題:

已知小明 5 歲, 身高 120cm;小紅 4 歲, 身高 110cm;小剛 6 歲, 身高 130cm。
明天會新來一個小夥伴, 小夥伴 7 歲, 那麼咱們能猜出小夥伴有多高嗎?

咱們下期再見。


 


猜你喜歡  

通用機器學習平臺設計和在金融領域的應用
新金融業態下的大數據智能技術體系建設
Python 語言中 asterisk 符號用法小結
大數據,小故事

以爲不錯,點個在看

本文分享自微信公衆號 - 金科優源匯(jkyyh2020)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索