Saturday, January 13, 2018

AI隨筆():word2vec

AI隨筆():word2vec

 2018/01/13


中文
簡體
英文
論文



解說
討論
源碼
原理



-----

References

中文

Vector Space of Semantics - Mark Chang's Blog
https://ckmarkoh.github.io/blog/2016/07/10/nlp-vector-space-semantics/

Word2vec (Part 1 : Overview) - Mark Chang's Blog
https://ckmarkoh.github.io/blog/2016/07/12/neural-network-word2vec-part-1-overview/

Word2vec (Part 2 : Backward Propagation) - Mark Chang's Blog
https://ckmarkoh.github.io/blog/2016/07/12/-word2vec-neural-networks-part-2-backward-propagation/

Word2vec (Part 3 : Implementation) - Mark Chang's Blog
https://ckmarkoh.github.io/blog/2016/08/29/neural-network-word2vec-part-3-implementation/

Word2vec - 維基百科,自由的百科全書
https://zh.wikipedia.org/wiki/Word2vec

科技大擂台 詞向量介紹
https://fgc.stpi.narl.org.tw/activity/videoDetail/4b1141305ddf5522015de5479f4701b1

Word Embedding與Word2Vec - 掃文資訊
https://hk.saowen.com/a/170e16f48e0ac5d1caf38d1a294739b105fe08b1cc0724b6eed98efc7d49f401

實作Tensorflow (5):Word2Vec - YC Note
http://www.ycc.idv.tw/YCNote/post/44

更別緻的詞向量模型:simpler glove (一) - 幫趣
http://bangqu.com/ADv99g.html

用Python做深度學習的自然語言處理 | Soft & Share
https://softnshare.wordpress.com/2017/09/25/python-natural-language-process-deep-learning/

用深度學習(CNN RNN Attention)解決大規模文本分類問題 - 綜述和實踐 | 香港矽谷
https://www.hksilicon.com/articles/1459305

奇異值分解 (SVD) | 線代啟示錄
https://ccjou.wordpress.com/2009/09/01/奇異值分解-svd/





簡體

[NLP] 秒懂词向量Word2vec的本质
https://zhuanlan.zhihu.com/p/26306795

深度学习word2vec笔记之基础篇 - CSDN博客
http://blog.csdn.net/mytestmy/article/details/26961315

关于 word2vec 我有话要说 - 腾讯云社区 - 腾讯云
https://www.qcloud.com/community/article/404897

word2vec 中的数学原理详解(一)目录和前言 - CSDN博客
http://blog.csdn.net/itplus/article/details/37969519



词向量( Distributed Representation)工作原理是什么? - 知乎
https://www.zhihu.com/question/21714667/answer/19433618

word2vec 相比之前的 Word Embedding 方法好在什么地方? - 知乎
https://www.zhihu.com/question/53011711

Google 开源项目 word2vec 的分析? - 知乎
https://www.zhihu.com/question/21661274

word2vec有什么应用? - 知乎
https://www.zhihu.com/question/25269336

word2vec在工业界的应用场景-大数据算法
http://x-algo.cn/index.php/2016/03/12/281/



Word2vec:Java中的神经词向量 - Deeplearning4j: Open-source, Distributed Deep Learning for the JVM
https://deeplearning4j.org/cn/word2vec

word2vec源码解析之word2vec.c - CSDN博客
http://blog.csdn.net/lingerlanlan/article/details/38232755







英文

Word2vec - Wikipedia
https://en.wikipedia.org/wiki/Word2vec

The amazing power of word vectors | the morning paper
https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/

Deep Learning Weekly | Demystifying Word2Vec
https://www.deeplearningweekly.com/blog/demystifying-word2vec

Deep Learning, NLP, and Representations - colah's blog
http://colah.github.io/posts/2014-07-NLP-RNNs-Representations/




Word2Vec Tutorial - The Skip-Gram Model · Chris McCormick
http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/


Vector Representations of Words  |  TensorFlow
https://www.tensorflow.org/tutorials/word2vec

Learn Word2Vec by implementing it in tensorflow – Towards Data Science
https://towardsdatascience.com/learn-word2vec-by-implementing-it-in-tensorflow-45641adaf2ac

Word2Vec word embedding tutorial in Python and TensorFlow - Adventures in Machine Learning
http://adventuresinmachinelearning.com/word2vec-tutorial-tensorflow/

gensim: models.word2vec – Deep learning with word2vec
https://radimrehurek.com/gensim/models/word2vec.html





Intuitive Understanding of Word Embeddings: Count Vectors to Word2Vec
https://www.analyticsvidhya.com/blog/2017/06/word-embeddings-count-word2veec/




Approximating the Softmax for Learning Word Embeddings
http://ruder.io/word-embeddings-softmax/


Stop Using word2vec | Stitch Fix Technology – Multithreaded
https://multithreaded.stitchfix.com/blog/2017/10/18/stop-using-word2vec/



論文

-----

Bengio, Yoshua, et al. "A neural probabilistic language model." Journal of machine learning research 3.Feb (2003): 1137-1155.

-----

Le, Quoc, and Tomas Mikolov. "Distributed representations of sentences and documents." Proceedings of the 31st International Conference on Machine Learning (ICML-14). 2014.

-----

Mikolov, Tomas, et al. "Efficient estimation of word representations in vector space." arXiv preprint arXiv:1301.3781(2013).

-----

Mikolov, Tomas, Wen-tau Yih, and Geoffrey Zweig. "Linguistic regularities in continuous space word representations." hlt-Naacl. Vol. 13. 2013.

-----

Goldberg, Yoav, and Omer Levy. "word2vec Explained: deriving Mikolov et al.'s negative-sampling word-embedding method." arXiv preprint arXiv:1402.3722 (2014).

-----

Rong, Xin. "word2vec parameter learning explained." arXiv preprint arXiv:1411.2738 (2014).

-----

来斯惟. "基于神经网络的词和文档语义向量表示方法研究." (2016).
https://arxiv.org/ftp/arxiv/papers/1611/1611.05962.pdf

-----

Pennington, Jeffrey, Richard Socher, and Christopher Manning. "Glove: Global vectors for word representation." Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014.


-----

Thursday, January 11, 2018

AI隨筆(六):Deep Learning in 120 min(s)

AI隨筆(六):Deep Learning in 120 min(s)

2018/01/11

前言:

2018/01/03 是我在聯發科「旁邊」的某公司講解 Deep Learning 的第一天,事前我在竹北的 Python 社團分兩次講解大綱,主要當然是 BP、LeNet、以及 1 x 1 convolution。大體上,由於內容很多,聽講者未必能在短時間接受,所以我重新整理一下,以網路文章的形式重新寫過,相信能夠呈現清楚的全貌給對 Deep Learning 有興趣的初學者。

-----


-----


-----

Summary:

本文摘錄我在2017年自學 Deep Learning 的重點 [1]-[3]。

內容包含 CNN [4]-[6]、RNN [7], [8]、R-CNN [9]、Regularization [10]、Optimization [11]、以及兩本參考書的介紹 [12], [13]。

-----

Outline:

一、CNN
二、RNN
三、R-CNN
四、Regularization
五、Optimization
六、Textbook

-----

一、CNN

CNN 是 Convolutional Neural Network 的縮寫,目前最熱的 Deep Learning / AI 最主要的應用之一:影像處理,就是由 CNN 完成。

第一個較成功的 CNN 叫做 LeNet-5,在1998年就已應用於美國銀行的支票辨識 [5],可以辨認手寫的阿拉伯數字 0 到 9。

LeNet 基本上是一個以網路呈現的函數,函數的係數最先是隨機設定,稍後藉由 Back Propagation [4] 這個演算法於每次訓練圖片時更新係數。

Deep Learning 的基礎可說是 BP [4] 與 LeNet [5],參考圖1a與1b。

LeNet 之後,在 2012年有 AlexNet 成功在大資料圖片集辨識獲得極大成功,2013年有 ZFNet 是 AlexNet 的最佳化,2014年有 GoogLeNet 與 VGG Net。這些 CNNs 陸續在影像辨識獲得更大的成功。

GoogLeNet 的重點之一是 1 x 1 convolution [6],參考圖1c。主要用於減少資料量。

-----


 
Fig. 1a. Training weighting factors [4].

-----


Fig. 1b. LeNet-5 [5].

-----



Fig. 1c. 1 x 1 convolution [6].

-----

二、RNN
 
RNN 的全名是 Recurrent Neural Network,CNN 主要處理平面空間的資料,RNN 則處理時間相關的資料如聲音、文字、影片(CNN+RNN)等 [7], [8]。

除了遞迴之外,較新的 RNN 如 LSTM 等,最主要是加入了三個(閘)門當作控制訊號,所以使用 sigma,讓資料限制在 0 到 1 之間。參考圖2a與2b。



Fig. 2a. LSTM, [8].



Fig. 2b. LSTM symbols, [8].


-----

三、R-CNN

R-CNN 的 R 是 Region 而不是 Recurrent。它可以在一張圖片中找出數個物體的小框框再加以辨識,是 CNN 的加強版。R-CNN 再加上 RNN,就可以用在影片的物體辨識上,所以也是自駕車的主要技術之一。

[9] 是 R-CNN 的主要參考論文之一,用到了 Support Vector Machine (SVM)。後續的 Fast R-CNN 與 Faster R-CNN 都往純 Deep Learning 的方向前進 [13]。


Fig. 3. Detections obtained with a single component person model [9].

-----

四、Regularization

Regularization 是解決 Over-fitting 的方法的總稱。

基本上 Over-fitting 可以說是訓練時表現很好,但實測時表現不好。好比你針對考古題練習,臨場出現其他題目你就不會了。

Weight Decay 是常用的方法 [10],另外還有 Dropout [12]。



Fig. 4. Over-fitting [10].

-----

五、Optimization

簡單說,就是讓 BP [4] 變的快一點 [11], [12]。

-----

六、Textbook

Deep Learning 這本書很好,缺點是比較難,我主要是用來找出原始論文參考。



Fig. 5a. Deep Learning [12].

-----

這本講了主要的 CNN 與 R-CNN,在我只懂 LeNet 時,幫助很大。



Fig. 5b. CNN and R-CNN [13].

-----

結論:

網路上資料很多,本文簡單從自己的學習經驗中歸納出一點心得。後續沒有持續更新的原因一方面是很忙,另一方面,看完我的文章,應該可以自己找資料、查論文了。

CNN 較新的有 ResNet 與 DenseNet,應用外,為什麼 work,背後的數學是值得思考的問題。另外,GAN 與 Reinforcement Learning 的 DQN 系列,我想網路上的資料一樣很多,有興趣者自行參考即可。

-----

References

[1] 如何自學 Deep Learning (Part 1) _ Python Hsinchu User Group (Hsinchu, Taiwan) _ Meetup
https://www.meetup.com/pythonhug/events/245852169/?_cookie-check=kiQsl8ThE-ZR3LWc

[2] 如何自學 Deep Learning (Part 2) _ Python Hsinchu User Group (Hsinchu, Taiwan) _ Meetup
https://www.meetup.com/pythonhug/events/245852186/

[3] Jobspace - 想要學習 Deep Learning 卻不知道如何入門嗎?想與人深入探討 Deep... _ Facebook
https://www.facebook.com/jobspace/posts/2033449803602303

一、CNN

[4] AI從頭學(九):Back Propagation

[5] AI從頭學(一二):LeNet

[6] AI從頭學(三0):Conv1

二、RNN

[7] 遞歸神經網路和長短期記憶模型 RNN & LSTM · 資料科學・機器・人
https://brohrer.mcknote.com/zh-Hant/how_machine_learning_works/how_rnns_lstm_work.html

[8] AI從頭學(一九):Recurrent Neural Network

 三、R-CNN

[9] AI從頭學(三三):DPM

四、Regularization

[10] AI從頭學(三二):Weight Decay

五、Optimization

[11] Ruder, Sebastian. "An overview of gradient descent optimization algorithms." arXiv preprint arXiv:1609.04747 (2016).

六、Textbook

[12] AI從頭學(一五):Deep Learning,How? 

[13] AI從頭學(一八):Convolutional Neural Network

【轉貼】縱覽輕量化卷積神經網絡:SqueezeNet、MobileNet、ShuffleNet、Xception

【轉貼】縱覽輕量化卷積神經網絡:SqueezeNet、MobileNet、ShuffleNet、Xception

2018/01/11

SqueezeNet 在之前的 CNN 書上有,最近「算是」看懂,核心是 1 x 1 convolution。另外有幾個性質「近似」的網路,並沒有特別振奮。記錄一下,以備未來參考。

-----

縱覽輕量化卷積神經網絡:SqueezeNet、MobileNet、ShuffleNet、Xception - 幫趣
http://bangqu.com/lW5dJ7.html

【轉貼】著名的零基础机器学习课程fast.ai,为何弃用Keras转投PyTorch?

【轉貼】著名的零基础机器学习课程fast.ai,为何弃用Keras转投PyTorch?

2018/01/11

「PyTorch,就讓學生們能充分利用普通 Python 代碼的靈活性和能力,來構建、訓練神經網絡。這樣,他們就能解決更廣泛的問題。

PyTorch 的另一個好處是,它能讓學生們更深入地了解每個算法中發生了什麼。用 TensorFlow 那樣的靜態計算圖庫,你一旦聲明性地表達了你的計算,就把它發送到了 GPU,整個處理過程就是一個黑箱。

但是通過動態的方法,你可以完全進入計算的每一層,清楚地看到正在發生的情況。我們認為學習深度學習的最佳途徑就是通過編程、實驗,動態的方法正是我們的學生所需要的。」

-----

著名的零基础机器学习课程fast.ai,为何弃用Keras转投PyTorch? - 新文头条
http://www.xwtoutiao.cn/p/3d0jcdqd/

Thursday, January 04, 2018

【轉貼】迎來 PyTorch,告別 Theano,2017 深度學習框架發展大盤點

【轉貼】迎來 PyTorch,告別 Theano,2017 深度學習框架發展大盤點

2018/01/04

幾個重要框架的最新動態!

-----

References

[1] 迎來 PyTorch,告別 Theano,2017 深度學習框架發展大盤點 - 幫趣
http://bangqu.com/V3Qsd1.html

AI從頭學(目錄)

AI從頭學(目錄)

2016/12/08




新-AI從頭學(一):文獻回顧

新-AI從頭學(二):Popular Deep Learning Software Tools

新-AI從頭學(三):Popular Deep Learning Hardware Tools

-----

AI從頭學(代序):The Road to Deep Learning 

AI從頭學(一):文獻回顧

AI從頭學(二):Popular Deep Learning Software Tools

AI從頭學(三):Popular Deep Learning Hardware Tools

AI從頭學(四):AD and LeNet

AI從頭學(五):AD and Python

AI從頭學(六):The Net

AI從頭學(七):AD and Python from Jason

AI從頭學(八):The Net from Mark

AI從頭學(九):Back Propagation

AI從頭學(一0):Automatic Differentiation

AI從頭學(一一):A Glance at Deep Learning

AI從頭學(一二):LeNet

AI從頭學(一三):LeNet - F6

AI從頭學(一四):Recommender

AI從頭學(一五):Deep Learning,How?

AI從頭學(一六):Deep Learning,What?

AI從頭學(一七):Shallow Learning 

AI從頭學(一八):Convolutional Neural Network

AI從頭學(一九):Recurrent Neural Network

AI從頭學(二0):Deep Learning,Hot 

AI從頭學(二一):A Glance at Deep Reinforcement Learning 

AI從頭學(二二):Azure Machine Learning - Clustering

AI從頭學(二三):CNN - Kernel Training

AI從頭學(二四):CNN - Kernel Visualizing

AI從頭學(二五):AlphaGo

AI從頭學(二六):AlexNet

AI從頭學(二七):ZFNet 

AI從頭學(二八):Network in Network 

AI從頭學(二九):GoogLeNet

AI從頭學(三0):Conv1

AI從頭學(三一):Inception

AI從頭學(三二):Weight Decay

AI從頭學(三三):DPM

AI從頭學(三四):Complete Works

AI從頭學(三五):Highlight -- 終

Wednesday, January 03, 2018

【轉貼】遞歸神經網路和長短期記憶模型 RNN & LSTM

【轉貼】遞歸神經網路和長短期記憶模型 RNN & LSTM

2018/01/03

最近因為需要,所以準備從 CNN 推進到 RNN。搜尋資料中,發現這被 Google 列為 RNN 的榜首。

這是一系列關於 Deep Learning 投影片講解的中文翻譯稿之一。部分還在翻譯中。「大約」是我這一年中看到的,最棒的深度學習中文教材了!

-----

RNN 原始碼 

link 有誤

-----

Reference

[1] 遞歸神經網路和長短期記憶模型 RNN & LSTM · 資料科學・機器・人
https://brohrer.mcknote.com/zh-Hant/how_machine_learning_works/how_rnns_lstm_work.html

AI隨筆(五):台灣醫療科技展

AI隨筆(五):台灣醫療科技展

2018/01/03

前言:

2017台灣醫療科技展時間是 12/7 ~ 12/10,地點是台北市南港展覽館 [1]。我跟未來的研發副總約在 12/9 星期六下午三點碰面,午餐後我就來到會場參觀 [2]。我的興趣在 AI,所以特別留意相關訊息。很快地,一個月快過去了,2018 的科技展也開始籌備了 [3]。記錄一些感想供未到場的朋友們參考!

-----

Summary:

總的來說,有少部分的醫療 AI 應用,其中以跟 htc / DeepQ 合作的 萬芳 / 馬偕 / 三總 腳步較快。另外,秀傳跟華碩合作的聊天機器人 Zenbo 也令人眼睛一亮 [4]。其他多半還是停留在傳統醫療展的框架中。

至於是否有些 醫院 / 醫療器材廠商,鴨子划水,不欲在展場大出鋒頭,這就不是我所能知道的了,就我一些當醫生的同屆同學,多半對 AI 的反應還蠻冷淡的。這不意外,因為以往神聖的、專業的、被醫生掌握的醫療知識,即將透過 AI 下放到一般人手裡了,身為研究醫學的非醫生族群,我樂見其成,但我的醫生同學們恐怕就不這麼認為了!:)

-----

Outline

一、秀傳
二、萬芳
三、馬偕
四、三總

-----

參觀展覽純屬意外。我跟某公司的 CTO 約了週末面談,時間在週六下午,地點是南港醫療展。午餐後我就來到場地參觀。之後我們聊了兩個多小時,由於在 IoT、Cloud、Big Data、AI、與音樂生理學上,我們有不少重疊與互補的技術,所以相談甚歡。細節就不提了,本文的主旨是我看到的醫療 AI。


Fig. 1. 南港展覽館。

-----

一、秀傳

進到會場,先被吸引的是彰化秀傳醫療體系的聊天機器人,他們跟華碩合作的 Zenbo [4]。會場介紹的「小布」屬於實體的聊天機器人,可以提供一些醫療資訊。為撰寫本文,我特地又查了一下小布的基本資料,價位在台幣兩萬到三萬間。家庭用的話,還提供一般娛樂功能。

直白來說,就是有互動介面、可移動的、導入 AI 的:

PC。

機器人應該是大廠、兵家必爭之地。但是開模、伺服這些都不是一般創業者玩得起的。小布的規格目前還無法讓人驚艷,所以還是回到另一個「小步」好了。(提示:日本女歌手!:)

關於機器人,我的看法是:日本做機器人有可能會是世界第一 [5]!



Fig. 2. Zenbo [4].

-----

二、萬芳

我在萬芳的攤位跟介紹人員聊了很久。

大體上,這是一個可以提供你醫學問答,並且告訴你掛號該掛哪一科、哪一位醫師的 chatbot。核心的 AI 是 htc / DeepQ [6]。由於最早教我 AI 的高手在 htc 工作,後來我又看到他老闆之前贊助李飛飛教授 ImageNet [7],這下不得了,實在厲害。所以我對 DeepQ 一直很注意!

打聽到:萬芳、馬偕、三總,跟 DeepQ 合作。


Fig. 3a. 萬芳醫院。

-----

三、馬偕

馬偕北淡分院跟 DeepQ 也有合作關係,聽到的進度只有利用 AI 幫忙掛號,並未提供轉診諮詢。簡單說,只用到「一點點」AI。

另外,DeepQ 的攤位附屬於馬偕的攤位,只佔一小塊。我到 DeepQ 詢問,現場的小姐叫我直接查 FB。所以我就不知道 DeepQ 參展的目的為何了!


Fig. 3b. 馬偕北淡。

-----

四、三總

三總的攤位很大,不過裡面完全沒有提到 DeepQ,所以我看看就離開了!

-----

結論:

台灣的醫療體系在 AI 的腳步不快,但也有少數較積極的,個人認為勝出的機會很大。但由於取樣蠻有限的,此觀點參考即可!

-----

備註:

【Keynote講者介紹】張智威 (Edward Y. Chang)
演講時間:2017年11月9日 (四) 13:30-14:30  

Edward Chang 是這一波人工智慧復興的先驅者之一,早在2006任職Google研究院時,他的團隊就開始併行機器學習的算法,並且全部開源。他的研發方向在2006到2012年間並不被重視。2010年他的一篇 data driven deep learning 的論文被 ACM 會議給拒,他團隊2011年的兩個相關專利申請,被 Google 放在一邊。 為了證明 data driven deep learning 理念正確,他在2010 年贊助 Stanford Prof. Fei-Fei Li 教授 ImageNet 計畫26 萬美元完成標記。當2012年AlexNet 證明 scale of data 的重要之後,Google 才趕緊提出Edward的兩個專利申請,分別在2016和2017年批准。在這個專題演講中,Edward將敘述為什麼他當初堅持 data driven 的方向和AI 仍然面臨的挑戰 [7]。

-----

References

[1] 2017台灣醫療科技展
https://expo.taiwan-healthcare.org/visit/news_detail.php?REFDOCID=0oxym8s3rnhl8ns5

[2] 廠商位置圖 _ 2017台灣醫療科技展
https://expo.taiwan-healthcare.org/visit/news_detail.php?REFDOCID=0oxym9cqkj281z8o

[3] 台灣醫療科技展
https://expo.taiwan-healthcare.org/

[4] 華碩Zenbo正式登陸,取名「小布」機器人,明年再攻美、日|數位時代
https://www.bnext.com.tw/article/47026/asus-robot-zenbo-enter-china-market 

[5] 人工智慧浪潮與日本AI產業化規劃重點 - STPI Research Portal
https://portal.stpi.narl.org.tw/index/article/10357

[6] HTC 健康醫療事業部 DeepQ
https://deepq.com/ 

[7] 【Keynote講者介紹】張智威 (Edward Y. Chang)
https://www.facebook.com/twaiconf/posts/179941515892826

Tuesday, January 02, 2018

跑步(一一七):10圈

跑步(一一七):10圈

2018/01/01

熱身1,跑(5*2)。

-----

調整跑姿!

Thursday, December 28, 2017

跑步(一一六):10圈

跑步(一一六):10圈

2017/12/27

熱身1,跑(5*2)。

-----

調整跑姿!

Monday, December 25, 2017

跑步(一一五):10圈

跑步(一一五):10圈

2017/12/25

熱身1,跑(5*2)。

-----

跑到第四圈變得比較順!