發表文章

深度學習_(時間)序列模型筆記(LSTM)_LSTM的三道門_改善RNN處理序列模型存在的缺陷

圖片
  RNN處理序列模型存在的缺陷 1.長距離依賴(long term dependencies)問題: RNN模型藉由隱藏資訊進行傳遞,較早時間步的隱藏資訊,透過時間步傳遞,會逐漸消失且無法幫助預測。 比方預測一句話下一個可能出現的單詞 臺北是台灣的.....   首都 這很容易聯想預測,因為句子還滿簡短的 2.短距離無用資訊: RNN在距離較近的時間步中保存的隱藏資訊較多,也會存到無用資訊。 用上面句子來舉例,該句中"的"對預測無幫助意義,可視為停頓詞,但和預測單詞距離鄰近。 https://medium.com/data-science-data-engineering/time-series-prediction-lstm-bi-lstm-gru-99334fc16d75 長短期記憶LSTM(Long Short-Term Memory) 也是一種RNN,算是改良版。 專門用於規避梯度消失和爆炸等問題。 可避免長期依賴問題 更可避免短期無用資訊。 LSTM 不像傳統RNN那樣只有單個 tanh 層,而是包含四個內部通訊的互動層。 LSTM會透過細胞狀態貫穿整個序列,可更好對資訊做更好分析處理。 LSTM使用門"Gate"控機制來控制如何擦除記憶並同時寫入新的記憶,分別有如下幾種門: 遺忘門(Forget Gate) 輸入門(Input Gate) 輸出門(Output Gate) 上述示意圖圖對應圖標含意 LSTM中所謂的"門"其實是一種讓資訊選擇式通過的方法(可去除或增加資訊到細胞狀態) 通常門會包含一個sigmoid神經網路層和一個pointwise乘法操作 Sigmoid層輸出0~1之間的數值,主要用來描述每個部份有多少量可通過。 (比方0就表示不允許任何量通過,1就表示允許任意量通過。它可以用來決定忘記或記住資訊。) LSTM的三道門如下依序介紹門控機制 LSTM的核心內容就是Ct 1.遺忘門: "細胞"中要丟掉捨麼訊息,都由遺忘門來處理。 該層讀取當前輸入x跟前一個神經元資訊h,由ft來決定丟棄的資訊。 輸出結果1表示"完全保留",0表示"完全捨棄"。 h t-1 :上一個LSTM單元的輸出 σ:Sigmoid層 2.輸入門: 細胞...

深度學習_(時間)序列模型筆記(RNN,BPTT)_常見的序列模型、循環神經網路的分類、根據時間反向傳播

圖片
序列模型 比方以下一些句子用詞含意,會因為在不同語意場景中,都需要根據上下文來解讀。 需要結合前後數據進行分析的類型就稱做序列。 我要去'掛'號看醫生。(預約看診) 你有沒有'掛'失手機?(報失) 新年時家裡都會'掛'燈籠。(懸掛裝飾) 我肚子不舒服,要去"方便"一下。(這裡的"方便"指的是上廁所) 你什麼時候"方便"?我們可以約出來見個面。(在這裡,"方便"指的是有空的時候。) 常見的序列模型 聲音(音波) 影片 情感分析(句子文本之間) 基因序 動作識別 time step(時間步) 序列中每個基礎的數據單位 每一個時間步都是由多個特徵組成(每個時間步的特徵數量也必相同。) 每個序列時間步長度不同 每個時間步中根據先後出現時間有各自的編號。 循環神經網路被發展出來的原因? 傳統神經網路或捲積神經網路,它們缺點是無法將特徵分享到不同位置上,也無記憶能力。 所謂無記憶能力也可以理解為,當前時刻的輸出和下一時刻的輸入,它們之前無關係。 每次輸入的數據,其time step與數據長短會不一致。 循環神經網路RNN(Recurrent Neural Network) Recurrent Neural Network Model用於解決序列問題、處裡序列資料(Sequence Data)的神經網路 比方:自然語言、和時間順序有關的股價預測...等等 想像一下在騎車、開車時候,會考慮不同位置、移動速度的行人、汽機車在未來時間點產生的變化,再去決定前進的路,這是人類大腦根據序列關係所做出之判斷。 優點: 參數共享(整個模型共享同一套參數) 每一時刻皆有輸出 特性: 中間隱藏層具備了循環機制 循環神經網路傳播過程 當第一個被轉換成機器可以讀的向量時,隨後RNN逐個處理向量序列。 RNN先將前一個隱藏層狀態傳送給序列下一步。 隱藏狀態也就充當了神經網路記憶單元,包括網路之前所見過的數據資訊。 接續對隱藏狀態做處理,輸入和先前隱藏狀態組合成的向量。 向量會涵蓋 當前輸入(底下) 跟 先前輸入(左邊進來) 的資訊 向量經過激活函數tanh之後,輸出最新的隱藏狀態(網路記憶)。 Tanh激活函數主要用在幫助 調節流經過網路的數值,會將範圍限縮到-1~+1之間。 ...

CDH Hadoop集群虛擬機本地配置搭建筆記_part8_透過Cloudera Manager(6.3)_安裝自訂服務YARN,Hive及Spark

圖片
 接續前面篇章 CDH Hadoop集群虛擬機本地配置搭建筆記 part1透過VMWare創建3台虛擬機(各節點的網路配置) part2_配置yum local repo part3_集群NTP時間同步配置(ntpd,ntpdate) part4_安裝Java與MySQL配置_建立CDH預設資料庫 part5_安裝Cloudera Manager(6.3) Server跟Agent(關閉透明巨頁配置) part6_透過Cloudera Manager(6.3)_安裝自訂服務ZooKeeper part7_透過Cloudera Manager(6.3)_安裝自訂服務HDFS並啟動高可靠(HA) https://www.linkedin.com/pulse/hadoop-ecosystem-components-smriti-saini/ 這邊要注意Spark和Hive這類服務安裝 都必須等到YARN安裝好才能接續安裝,因為是跑在YARN之上。 安裝YARN 配置Resource Manager 就host1, JobHitory Server 就host1, NodeManager三台 用默認分配即可 安裝過程可切換到All Hosts開分頁查看記憶體使用狀況 安裝好最後一步驟Finish跳回主頁就可以多看到YARN 安裝Hive 先將mysql連線用到的數據驅動jar上傳到以下路徑 /opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hive/lib 上傳好後再做Add Service 自訂角色分配(這邊用默認) 事實上Hive資料庫搭配除了這邊用的MySQL之外也支援PostgreSQL,Oracle 這邊Test 一下Connection Hive Warehouse Directory (這邊都用默認即可) /user/hive/warehouse 這邊就可以看到Hive 不過預設會看到CPU配置不足,這邊放著就好,因為剛好都配置一顆CPU。 硬體資源不足 後來又將CPU改降為各自都1顆,後續再觀察。 VM跑會讓電腦十分卡頓....> ~ <||| God 若要確認目前自己電腦的CPU 跟 相關資訊可以打指令查看 WMIC CPU Get NumberOfCores WMIC ...