發表文章

早期深度學習框架Theano_學習資源連結

Theano Deep Learning Tutorial for Beginners https://www.projectpro.io/data-science-in-python-tutorial/theano-deep-learning-tutorial-#mcetoc_1fff7t26h2381 https://speech.ee.ntu.edu.tw/~tlkagk/courses_MLSD15_2.html https://speech.ee.ntu.edu.tw/~tlkagk/courses/MLDS_2015_2/Lecture/Theano%20DNN.ecm.mp4/index.html https://speech.ee.ntu.edu.tw/~tlkagk/courses/MLDS_2015_2/Lecture/Theano%20DNN.pdf https://speech.ee.ntu.edu.tw/~tlkagk/courses/MLDS_2015_2/Lecture/Theano%20RNN.pdf

Python epub電子書檔案解析_中文斷句處理_以國家科幻叢書十一_機器人風波(The Soul of the Robot)為例

圖片
  此次實驗採用 好讀平台 上面的 書名:機器人風波(The Soul of the Robot) 作者: 巴靈頓・貝雷(Barrington J.Bayley) 譯者:王凱竹 https://www.haodoo.net/?M=Share&P=1010490641#gsc.tab=0 作者簡介: 巴靈頓.貝雷 出生於英國伯明翰,一九六零年代科幻小說新浪潮運動在英國的推手之一。 寫作風格憂鬱、陰沉,影響後來多名英國科幻作家。 這個平台的定位有點類似台灣版本的 日本青空文庫 青空文庫是蒐集了日本國內著作權已經進入公有領域的文學作品的數位圖書館。 程式碼範例ver1. """ 【免責聲明 / Disclaimer】 1. 本程式僅供技術研究與學術交流使用,不保證程式碼完全無誤或適用於特定商業目的。 This code is for technical research and academic exchange only. There is no guarantee of accuracy or fitness for any particular purpose. 2. 使用者應確保所處理之 EPUB 檔案具備合法授權。本程式作者不承擔因非法使用版權 作品(如未經授權之重製、散佈或進行機器學習訓練)所產生之法律責任。 Users are responsible for ensuring they have legal authorization for the EPUB files. The author assumes no liability for legal issues arising from unauthorized use of copyrighted works (e.g., reproduction, distribution, or ML training). 3. 請遵守相關著作權法規。針對已受版權保護之作品,建議僅在「合理使用」範圍內操作。 Please comply with copyright laws. For protected works, operations should be limited to the sco...

程式碼內嵌網站

  好用的程式碼內嵌網站 https://hilite.me/

特徵類型及常見特徵工程手法

圖片
https://www.geeksforgeeks.org/machine-learning/what-is-feature-engineering/ 在機器學習(深度學習)中關鍵絕大部分在 特徵工程 而特徵工程關鍵則在所謂 領域知識 。 特徵類型 數值型:有不同轉換方式,函數、條件式子皆可。(舉例:坪數、年齡、身高、體重) 類別型:一種類別對應一種數值分數。(舉例:行政區、性別、花種類、....) 二元特徵:僅True(1)/False(0)兩種數值特徵,可當作類別型或數值型 排序型特徵: 介於數值型與類別型特徵之間,類似考試的百分等級(0~99)。 有名次、大小關係,也可能並非連續數字。 通常當作數值型特徵處裡,若作為類別型特徵就會失去可排序特性。 時間型特徵: 若取總秒數可轉為數值型特徵,但會失去週期特徵(月、季、星期) 直接用本身可做為類別型特徵,但會失去排序依據資訊,類別數量也過大無意義。 常見特徵工程手法 特徵工程是將現實(可能非數值)資料轉換為對應數值型分數的過程 捨棄或調整離群值 : 若只有少數幾筆資料和其他數值差異極大,則無法標準化處理。 一種做法是直接移除,會挖一個洞。(若離群值數量真的很少的話建議用此做法) 一種做法是將離群值進行調整 類別型資料編碼 標籤編碼(Label Encoding): 類似編列流水號概念,依序將新出現的類別編新代碼。 已出現類別編上已使用的代碼,缺點是該數值大小順序皆無意義。 假設我們有一個「顏色」變數,將 red 指定為 0 、 green 為 1 、 blue 為 2 。 獨熱編碼(One Hot Encoding): 為改良數字大小無意義問題,將不同類別分別獨立為一欄。 缺點是當類別數量越多時,會需要較大記憶空間與計算耗時成本。 假設我們有一個「顏色」變數,其具有三個標籤 red 、 blue 和 green 。為了讓機器學習算法能夠處理,這些標籤都必須轉換為數值形式。透過創建三個新欄位(每個欄位對應一個標籤)來實現,其中對應標籤的欄位使用 1 ,其他顏色欄位則使用 0 。 時間特徵分解:時間欄位該怎麼做處理、劃分呢(週期循環特徵) 最直覺方法就是依照原始意義來分欄處理,或加上第幾週or星期幾。 但是某些欄位(例如:時分秒)和目標值關係極低,是否有更有意義的特徵呢? 可透過週其概念來合成一些重要特徵 聯想有哪幾種...

Windows作業系統環境下安裝Ruby_Wikipedia語料庫截取純文本wp2txt_WikiExtractor_gensim解析讀取wiki資料

圖片
Ruby預設環境會有類似node.js的npm install的cli  (定位就跟微軟開發者在用的nuget差不多、或python的pip install....) 叫做gem 相關Ruby開源套件貢獻者會在此網站平台做釋出 https://rubygems.org/ 在一些自然語言語料庫收集任務最為知名的就是維基百科 https://dumps.wikimedia.org/ 當然要注意的是wikimedia有對下載者進行了速率限制,並將每個 IP 位址的連線數上限設為 3 個。目的是確保每個人都能以合理的下載速度存取檔案。 在這邊要從官方網站的Database backup dumps進去 也就是所有跨語言的公開WIKI媒體資料完整副本,以嵌入 XML 的維基文本來源檔案和元資料形式提供。 官方有釋出dumps出來的文本壓縮檔無法直接解析需要特殊前處理 https://dumps.wikimedia.org/backup-index.html 看 Wikipedia 網域抓語言代碼: https://en.wikipedia.org/ → enwiki https://zh.wikipedia.org/ → zhwiki https://ja.wikipedia.org/ → jawiki 比方說 日本語言的最新dumps資料網址 https://dumps.wikimedia.org/jawiki/latest/ 英文語言的最新dumps資料網址 https://dumps.wikimedia.org/enwiki/latest/ https://dumps.wikimedia.org/enwiki/20260201/ 中文語言的最新dumps資料網址 https://dumps.wikimedia.org/zhwiki/latest/ https://dumps.wikimedia.org/zhwiki/20260201/ 舉例這邊針對英文和中文各自bz2做下載 enwiki-latest-pages-articles.xml.bz2 zhwiki-latest-pages-articles.xml.bz2 wiki中文語料庫僅3GB相較英文WIKI的23.2G來的小很多 Solution1. wp2txt 剛好涉及到裝wp2txt https://...

[論文筆記]Skip-Thought Vectors_將句子或片語(而非單詞)向量化

圖片
在導讀此篇論文筆記之前,還需要有RNN、LSTM等先備知識。 https://arxiv.org/pdf/1506.06726 Skip-Thoughts  使用跳躍思維模型 與 word2vec 相當相似是一種自然語言處理模型,但不是一次將個別單詞轉換為向量。 取而代之,將整個句子作為單位轉換為向量。 主要理論是去取得一個自然語言語料庫,並找出哪些句子傾向於彼此相鄰出現,然後訓練一個神經網路,使其能預測哪些句子預期會出現在任何其他句子之前或之後。 研究問題 這項研究試圖解決的核心問題是:如何在這個缺乏標註數據的狀況下,學習出高品質、通用且分佈式的句子表示向量(Distributed Sentence Representations)? 在當時,雖然詞向量(Word Vectors)已經能透過非監督學習取得很好的效果,但句子向量的學習大多仍依賴「監督式任務」(Supervised tasks),例如情感分析或邏輯推理 。 這導致模型學習到的特徵往往只針對特定任務有效,缺乏通用性。雖然 Paragraph Vector 是一種非監督替代方案,但它在測試階段需要進行推論來計算新句子的向量,效率較低 。 作者希望創造一種「隨取隨用」(off-the-shelf)的編碼器,能將任何句子映射成向量,並直接應用於各種下游任務 Skip-Thought Vectors採用的encoder-decoder結構,會先將輸入句子的單詞序列進行編碼,並依序預測前後文句的單詞作為輸出。通過學習句子與其前後文句之間的共現關係,Skip-thought 能夠獲得句子編碼結果的數值向量(Skip-Thought Vector),可視為是對單詞向量合成方法本身的學習。 研究背景 Skip-thought 是由 Ryan Kiros 等人於 2015 年提出的一種深度學習演算法,用於將文檔中的句子表達轉換為數值向量。該演算法的特點在於採用無監督學習方式,因此在學習過程中無需標籤或註解過的文本。只要存在由有序句子組成的文檔,即可基於此進行學習並建立模型。 此篇論文研究的靈感主要來自於詞嵌入模型,但其演算法與 Word2vec 有很大的不同。 在 Word2vec(skip-gram)中,主要是透過對輸入詞彙預測其周邊位置的詞彙,來學習詞彙之間的共現關係。 從詞到句子: 既然 Skip-gram...