當前位置:
首頁 > 最新 > 人工智慧作詩&任務指派

人工智慧作詩&任務指派

近幾年,隨著大數據時代的到來,人工智慧以及機器學習領域越來越火,逐漸成為各行各業的焦點,雖然大家不太明白其中的原理,但是都在爭相討論。小編恰好是這個方向的研究僧,所以本著科(zhuang)普(bi)的原則,決定用接下來的幾期聊一聊人工智慧。

第一期,我們先化身詩人,來作一首詩。其中會有很多專業名詞,我將會慢慢地介紹,所以一開始看不懂沒關係,過幾期就慢慢懂了~好,現在開始發車嘍!

首先簡述一下人工智慧生成古詩的步驟:(1)基於谷歌開源tensorflow學習庫搭建了深度學習平台,將詩句進行word_embedding函數操作,即將4萬首全唐詩詩句映射成數字特徵向量;(2)利用RNN,LSTM,GRU神經網路構建學習模型;(3)對4萬首唐詩數據集進行訓練,讓電腦自己學習詩詞中漢字之間的關係;(4)根據需要輸出隨機開頭的古詩或藏頭詩

整體框架

人工智慧簡直太火了,那麼它背後的技術細節到底怎樣,小編試著僅從文字處理的角度說明一下,挖開冰山一角,算作拋磚引玉。

1.人工智慧時代來了

近年來,人工智慧(AI)、機器學習(ML)、卷積神經網路(CNN)等專業術語成為日常生活中的熱詞,百度騰訊都建立了AI研究院,李彥宏都開著自動駕駛汽車上了北京五環,雖然吃了罰單。馬雲爸爸也不敢落伍,搞出一個達摩院,邀請了國內外計算機10位院士組成達摩祖師,大有一統江湖之氣。

2016年3月,谷歌圍棋人工智慧阿爾法狗戰勝韓國棋手李世石。2017年4月,卡內基·梅隆大學德撲AI「冷撲大師」在海南戰勝中國「龍之隊」,顯示出人工智慧的巨大優勢。

2.人工智慧的發展過程

要說人工智慧,先得梳理清楚幾個基本概念。

(1)人工神經網路(ANN),ANN是一種模仿人和動物神經網路結構的近似數學方法,說白了就是採用數學方法模仿神經元軸突、觸突信息傳遞。最原始的神經網路是M-P模型,即神經元模型,它是按照生物神經元的結構和工作原理構造出來的一個抽象和簡化了的模型(我們下期再詳說)。神經網路的實質是函數逼近,它和支持向量機,多層感知器,遺傳演算法,模擬退火····等等,其實都是同一個目的——逼近我需要的函數!

(2)深度學習(DL),但是人工神經網路遇到了很大的問題,幾十年發展緩慢。淺層的神經網路和單層感知器差不太多,已經可以處理文字。但是隨著科技的發展,人們對數據處理的要求越來越高,視頻、語音等不再能用淺層的神經網路所解釋。直至2006年,多倫多大學Hinton教授再次提出深度學習(Deep Learning)概念,從此一發不可收拾。近些年,隨著大數據技術發展,深度學習迎來黃金期。可以說,大數據是深度學習的伯樂了,正是因為大數據時代的到來,深度學習才被人所重視!

Hinton!神一般的人物,加拿大多倫多大學教授!

(3)卷積神經網路(CNN),CNN是一種效率比較高的深度學習模型,用來識別文字、人臉和面部表情等等。

3基於人工智慧生成古詩詞

上面說了簡單發展過程和原理,下面說一下如何採用人工智慧方法生成古詩詞。

Step1:預處理。就是把全唐詩43030首統計過濾,處理成向量形式。具體辦法就是向量化,將文字替換為一種實數向量,這樣電腦就能夠認識了。然後,統計每個字出現的次數,並構造常用字字典,並且對這些漢字進行索引。舉個例子:「行到水窮處/坐看雲起時」。如果這十個字在字典中的序號分別是2,9,5,6,7,31,4,35,24,270,那麼這句詩就是[2,9,5,6,7],[31,4,35,24,270]。

Step2:訓練。採用梯度下降法,尋求最優。分為三個步驟:構建翻譯模型具體辦法就是Hinton教授提出的詞嵌入(word embedding)、編寫抽樣生成函數及編寫訓練函數。說簡單點,就是我拿出一個詞來,電腦可以根據3萬首詩來判斷哪個詞跟他關係最好,經常一起出現在什麼樣的句子里。

舉個栗子:「月」這個字唐詩中前後出現和它關係最近的可能就是「明月」「寒月」「秋月」「月光」等等,經常出現的句子是「床前明月光」「明月出天山」等等;而且每個詞親密程度不一樣,比如他們親密程度分別為0.8,0.6,0.7,0.5等。當電腦把這些情況搞清楚了的時候,就向小學生一樣,電腦也就懂得填空、造句了。

Step3:輸出。這時候如果需要藏頭詩,那就指定第一個字,電腦可以開始造句了。下面是小編讓電腦隨機輸出的古詩。

當然,電腦佛性一點,隨機指定一個字,開始作詩,最終輸出。為了方面查看,我們把他輸出到文本文檔里。這個時候,可以根據需要,隨時生成古詩,各種類型,絕對不會重複。比如,我就用玉衡的名字,使用RNN-1層及LSTM-1層神經網路模型生成藏頭詩。

LSTM-1層

RNN-1 層

小結

隨著人工智慧的迅速發展,深度學習技術得到廣泛研究和應用,卷積神經網路作為深度學習中較為成熟的演算法,在語音識別、文字處理、圖像處理等方面表現出巨大優勢。上面講述的東西小編是在24核伺服器上計算完成的,使用Python3.5.2TensorFlow1.0.1,這其實也是個不小的門檻。相信隨著計算機硬體以及計算數學的發展,用小規模的機器甚至手機處理深度學習問題也變成可能,AI時代很快來臨。

什麼?你問我要代碼和成果及論文包?歡迎私信探討~

下期預告:任務指派問題

在工作及項目中,經常會遇到任務指派問題,比如,現在有3項任務,任務一、任務二、任務三,以及技術人員A,B,C,D,E。那麼我該指派誰去完成哪個任務呢?這其實是運籌學的一個經典的整數規劃問題,非常幸運的是,隨著大型計算的發展,這個問題已經得到了很好的解決。小編自己用MATLAB編寫程序(當然不是那麼簡單!),模擬了一下決策

任務指派問題分為經典的N個人N個任務問題,M個人N個任務問題兩種,前一種是只允許一個人完成且必須完成一項任務,後者是改進版,允許任務比人數多或者人數比任務多的類型。

1.經典N對N問題

現在,我們假設有5個人,5項任務,每個人完成任務的能力(效用)為下面的效用矩陣。

那麼,用程序算得的結果是

即A完成任務三,B完成任務四,C完成任務五,D完成任務二,E完成任務一。效用最大值為30。

2.加強版M對N問題

我們再次假設3個人完成5個任務,效用矩陣如下

那麼算得的結果是:

即A能者多勞,參與完成全部任務;B完成任務二、四、五;C完成任務一、四、五。效用最大值為60。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

噹噹專欄-QQ密碼被盜記

TAG:全球大搜羅 |