iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0
自我挑戰組

零基礎成為 AI 解夢大師秘笈系列 第 26

【零基礎成為 AI 解夢大師秘笈】Day26 - 周易解夢之人工智慧(7)

人工智慧7

前言

系列文章簡介

大家好,我們是 AI . FREE Team - 人工智慧自由團隊,這一次的鐵人賽,自由團隊將從0到1 手把手教各位讀者學會 (1)Python基礎語法 (2)Python Web 網頁開發框架 – Django (3)Python網頁爬蟲 – 周易解夢網 (4)Tensorflow AI語言模型基礎與訓練 – LSTM (5)實際部屬AI解夢模型到Web框架上。

為什麼技術要從零開始寫起

自由團隊的成立宗旨為開發AI/新科技的學習資源,提供各領域的學習者能夠跨域學習資料科學,並透過自主學習發展協槓職涯,結合智能應用到各式領域,無論是文、法、商、管、醫領域的朋友,都可以自由的學習AI技術。

資源

AI . FREE Team 讀者專屬福利 → Python Basics 免費學習資源

NLP(Natural Language Processing)

自然語言處理是讓電腦把輸入的語言變成有意思的符號和關係,然後根據目的再處理。自然語言生成系統則是把計算機數據轉化為自然語言

自然語言處理在人工智慧裡面算是一種序列型資料,意思是前後有相對應關係的data

從上圖得知輸入的資料是序列型資料,而輸出可以是連續、不連續的值,也可能是序列型資料

那在把資料丟進去前,我們要如何處理資料呢?

電腦只看得懂數字

因此我們要將文字轉換成數字,這種技術和one hot encoding很像,不過有很多格式

如上圖,如果以英文來說,我們可以將一個word(單字)作為index(索引),其實也可以以2個單字或是3個,句子也可以,就像查表那樣,再將每個index攤平成陣列,因此如果今天資料集有10000個字,就有10000個index,每個陣列長度為10000

但是這樣的表示方法不是很好

  • 每個陣列只會有一個1,其他都是0,過於稀疏

  • 詞性、解釋、文字之間無關聯性

word Embedding

如上圖,我們可以將one hot的陣列在乘上300維的向量,變成一個10000x300的矩陣,300維的每一維都有特定的意思,雖然這樣會顯得資料很大,在訓練時可能會比較久,但是事實證明,這有助於電腦讀懂每個文字之間的關係

在前處理後,可以先了解RNN(Recurrent Neural Networks),這個與NLP非常契合的模型

簡單來說RNN與一般神經元的計算是一樣的,不過RNN的每一個神經元會參考前一個神經元的輸出,因此每一個神經元除了輸出出去之外,還可以當作下一個神經元的參考值,請參考下圖

上圖的input就是輸入,hidden就是前一層的輸出(如果為第一個就是0),然後會combined(合併矩陣),接下來就是看模型,可以選擇輸出也可以不用(i2o),就一直重複直到全部的字跑完

在看完模型後,就可以知道RNN適合做那些任務

看完上圖可以發現,RNN可以是多對多,多對一,一對多甚至像是機器翻譯,m個輸入,n個輸出

反向傳播

這裡我們不解說反向傳播(其實是自己不會XD),讀者只要大概知道一下,套件就會做完了

本次文章先到這,下次將會大家帶來詳細的NLP實作過程

想更深入認識 AI . FREE Team ?

自由團隊 官方網站:https://aifreeblog.herokuapp.com/
自由團隊 Github:https://github.com/AI-FREE-Team/
自由團隊 粉絲專頁:https://www.facebook.com/AI.Free.Team/
自由團隊 IG:https://www.instagram.com/aifreeteam/
自由團隊 Youtube:https://www.youtube.com/channel/UCjw6Kuw3kwM_il39NTBJVTg/

文章同步發布於:自由團隊部落格
(想看更多文章?學習更多AI知識?敬請鎖定自由團隊的頻道!)


上一篇
【零基礎成為 AI 解夢大師秘笈】Day25 - 周易解夢之人工智慧(6)
下一篇
【零基礎成為 AI 解夢大師秘笈】Day27 - 周易解夢之人工智慧(8)
系列文
零基礎成為 AI 解夢大師秘笈30

尚未有邦友留言

立即登入留言