owned this note
owned this note
Published
Linked with GitHub
# SITCON 2019
- [官網](https://sitcon.org/2019)
- [官方共筆](
https://hackmd.io/c/SITCON2019/%2FFOG2p2x1RIiZTr_Bpb_RYQ)
- [問答區](https://sitcon.org/2019/slido/)
## 人工智慧的過去現在與未來
林守德
## 商管、演算法、商管
孔令傑
### 幾個演算法的商管應用
#### 自動化的(競爭標價)系統
- Profnath想要把書賣出去,所以他們固定把書訂價在最低競爭對手的99.83%
- Bordeebook 將價錢訂在最低標價競爭對手的1.27倍?
- 原因是因為Bordeebook 根本沒有這本書,他們只是想要把自己加到這個列表,打廣告順便增加知名度,所以故意把書賣得很貴,以確保你不會買(希望消費者注意,大家都看得到,但是不會有人真的去買的價格)
#### 套利(arbitrage)
假設A、B、C三種商品可以買進,且他們在市場大壞與市場大好時的價值不同:
- 這時候大家都會想買期望值高的
- 無套利條件:「當大家都想買C然後賣A和B,原本被低估的C就會價格上漲(供需法則),最後回到一個合力的均衡價格,在例子中就是A和B的平均。因此,套裡雖然美好,但套利的機會總是稍縱即逝。」
- 不過如果你決策比別人快,還是有點賺頭:
- 高頻交易:從那些人們無法利用的、極為短暫的市場變化中尋求獲利的自動化程序交易,比如某種證券買入價和賣出價差價的微小變化,或者某隻股票在不同交易所之間的微小价差。
- 新聞交易:許多公司動態都可以從各種線上資訊來源被獲取,如Bloomberg、新聞網站、Twitter等,自動交易系統試圖便是公司名稱、各種關鍵字,甚至進行語意分析,以求在關鍵時刻可以獲得最高的利益
#### 決策支援
Ex: 航空公司人員排班:1000名地勤人員在桃園機場服務
- Q: 如何決定10000名人員的次季班表?
- Q: 如何決定當班的700名人員的次日班表?
- Q: 如何在緊急狀況發生時立刻調整所有人的任務?
Ex: 高雄港
- 船舶進出港所需之關鍵資源:水道、拖船、領港
- 議題:
- 現在的壅塞是缺少哪個資源(瓶頸分析)?
- 如何良好地調配資源以減少壅塞?
### 用演算法解決商管(決策)問題的四個步驟
```flow
st=>start: 定義問題
op1=>operation: 建構模型
op2=>operation: 寫演算法
e=>end: 執行方案
st(right)->op1(right)->op2(right)->e
```
### Case study
工作分配(問題建模)
- 工作是珍貴的資源
- 我們試著將工作分配給人、考慮整體營利和公平性
- 人的能量有限(只要有足夠能量,就願意做更多的工作)
- 一件工作通常不能被拆給多個人做
- 讓我們來最大化「賺最少的人的錢」: 最不爽的人不要太不爽,最不幸的人不要太不幸
- 演算法要能被解釋(deep learning通常沒有解釋性)
- 提出基於LPT(最長時間優先)規則的CHBF演算法(Capacitated Highest Benefit First, CHBF)
1. 根據收益對所有工作由大到小排序
2. 將一個人工作分配給當前具有最低累積收益且工時上限未滿的人(如果工時上限已滿,嘗試次低累積收益者,依此類推)
3. 重複步驟2,直到所有工作都被嘗試分配過
效能檢驗
- 工作量不一定成正比但是要成正變
- 假設收益=f(工時)
- 管理意涵:
- 管理者很在意這個,我們的演算法和其他人差在哪裡?
- 累進費率:CHBF很適合
- 數量折扣:CHBF不適合
- (Concave)如果數量大的工作都很高,則他CP值很低,在排序的時候就會被排到最前面
| $f$ 的形狀 | $\frac{CHBF 的公平性}{最公平的公平性}$ | $\frac{CHBF 的總效率}{ 最有效率的效率}$|
| -------- | -------- | -------- |
| Random (EX : 正比) | 0.947 | 0.992 |
| Linear | 0.979 | 9.990 |
| Convex | 0.976 | 0.988 |
| Concave | 0.918 | 0.9336 |
### 演算法、管理問題、工程問題
我們希望能使用演算法處理決策問題是因為問題太複雜了,還是因為我們只會演算法?
- 不是每個問題都需要演算法
我們把管理問題模式化成工程問題(modeling、formulation)
- 搞不好老闆需要的只是最簡單的方式,但我們把它搞複雜了
- 我們是否忽略了管理層面的需求?
- 我們在處理重要的問題,還是在處理我們會處理的問題?
- 我們的解法是否帶有管理意涵?
### 建議
確認最關鍵的是哪個步驟
- 我們在處理的是工程問題,還是管理問題
帶著對演算法的理解,與管理者一起定義問題、執行方案
- 不要瞧不起管理人,更不要覺得他們比較笨
- 他們可能只是比工程師更務實
- 不要因為自己比較會寫程式就覺得老闆是廢物,老闆常常是廢物、也常常不是
## Rex 算法初探
Algorithm in Blockchain
- Cryotography algo, e.g., sha-256, scrypt, etc.
- Consensus algo, e.g., PoW, PoS, DPos, etc.
- EOS使用DPOS(委託權益制度)
- Liquidity algo, e.g., Bancor, Uniswap, Rex, etc.
- Incentive algo, a.k.a, Mechanism Design
- Auction: Blind Auction
- Game: Hot Potato, POWH, Fomo(ERC 1843), etc.
- Voting && Allocation:
Democracy is expensive.(民主是非常貴的)
EOS相信用戶應該是可以免費使用區塊鏈的
- 在EOS DPOS algo裡面,stake might be the most important contribution for the whole service
Allocation Algo(EOS資源分配的機制)
- 你得到的資源是你抵押的EOS/全網的EOS * ...
Features of the CPU market
- 抵押太多結果自己無法使用
- 波動性太強
- 時間非常敏感
- 週末時可能突然會有一個峰值
- 只有透過抵押才能行使權力(也是EOS核心設計)
- CPU租賃市場是除了Dice/Bocai之外,EOS生態系統中最重要的一個環節
Q:為什麼CPU數據看起來週期性那麼強?
Before Rex
- EOS Bank
- iBank
- BankofStaked
- Chintai / Whalex
Feature of Rex
- 架在EOSIO系統合約裡面
- 希望分開EOS價格和網路使用的cost
- 可以直接拿抵押的EOS去買Rex token(其他人做不到)
- 使用一個queue去記錄訂單表,每當有人呼叫這個合約的時候會去看裡面的一兩個order並執行(lazy evaluate)
- 使命: 提高EOS的投票率
EOS是用c++寫的,會轉換成web-assemble後在虛擬機上執行
Price Discover Algo
- Invariant: x*y = (x+x')*(y-y')
- Bancor Relay: uniswap(?)
Conclution
- Rex is design to be as a part of the EOSIO
- 目前的CPU market會被Rex顯著地影響
- 我們應該寫一個python crawl去看這個合約什麼時候上線
## 手把手玩 PE Injection <3
短短
[簡報在此](https://ppt.cc/fegQox) [程式碼及PE檔](https://ppt.cc/fYgAHx)
PE(Protable Executable)
- 微軟的一種文件格式
- 常見如exe, dll檔案
header+body的組合
- body: 真正的內容
Section Table
- 有幾個section就會有幾個section header
Body Header
- /*不知道該寫什麼 請幫忙補充*/
## AI for the Art in a Box
[張嘉哲](https://chang810249.github.io/)
How about AI in Art?
Generative Adversarial Network(GAN,不是唸幹)
- 想像有壞人跟警察
- 警察:想辦法認出壞人
- 壞人:想辦法騙過警察
- 經過層層的訓練,其實壞人可以生出以假亂真的照片,警察可以做出非常厲害的判斷,目前都是拿壞人的軟體來用,生成照片
- 生出2D萌妹
Q: AI是否可以越來越像人?
- AI also can Generate Patch Images or Panaorama Images (用拼的可以拼出360度的全景照)
- 人類會用越來越AI的方法,去教導AI。
[COCO-GAN: Conditional Coordinate Generative Adversarial Network](https://openreview.net/forum?id=r14Aas09Y7)
[Play as You Like: Timbre-enhance Multi-modal Music Style Transfer](https://arxiv.org/abs/1811.12214)
AI藝術並不是為了取代藝術,而是為了幫助人類創作出更好的藝術。
## TMML真相靠自己─You are Fake News!
陳廷易
https://github.com/tychen5/NLP_FakeNewsDetection
- 使用IR、NLP取得新聞特徵
- 透過ML、DL來判斷真假
- DL + NLP解決新聞回歸的問題
### Dataset: 3種open source dataset
8種labels
- Bias 扭曲
- Conspiracy 陰謀論
- Hate 仇恨
- junksci 偽科學
- satire 諷刺
- state 受監督
- true 真(新聞)
- fake 假(新聞)
### What is the insight?
看常出現的字詞有哪些,把它濾掉
- Why? 因為想要得到各個類別比較具代表性的字詞是什麼
- scattertext
- `陰謀論`類別:某些類別在陰謀論常出現、其他類別少出現->代表他具代表性(Ex: infowars,主播的某個群組)
- `Hate`類別: Ex: `bias`、`junsci`、`satire`
- `state`類別: Ex: `daesh`
- `true`類別: `national` 、`police`
- `fake`: `political`、`military`、`podesta(假email)`
### Sentiment Analysis
最正向的當成1,最不正向的當成0去Normalization,做正向、負面的分析
- 分析News Content & News Title
- 內容: 以satire諷刺類別(內容詞彙)最為正向
- 標題: 以Junksci偽科學的標題最為正向
### Feature Selection(Statistics-based approach)
- Chi-Square statistic(卡方檢驗):兩個隨機變量是否獨立
- 10.83: dependency,代表這個term在這個class是重要的
- Log Likehood Ration(LLR)
- 卡方的改良版
- 在稀疏資料表現較好
- Mutual Information
- PMI(Pointwise Mutual Information)
- 缺點:可能會是負值、罕見的term可能會有相對高的分數
- EMI(Excepted Mutual Information)
- 解決PMI的問題,實用性較高
- Average TF-IDF scores
- TF: 把一些重要的字詞抓出來
- IDF: 給一些太過常見的給一些penality
- TF-IDF: 分數高代表這個字詞很重要,且它不會在每篇都出現
### Part-Of-Speech Tag Analysis
不同詞性效果會不會比較好?
- Ex:動詞比名詞更具代表性嗎?
POS processing
- 把符號拿掉,全部轉小寫
- feature selection
- voting: calc each method's average score as criteria of a vote
- 做完就可以得到term dictionary
Testing
- Multinomial Naive Bayse Classification
做完feature selection後準度提升了大約12%
### What kind of news
Data cleaning
- Convert to lower case
- Porter stemming: 還原字根,減少重複性
- 剛剛沒做是因為要去看字尾變化量
- Filter out numbers, sumbols and stop words
Feature Selection:
- Chi-Square...
Voting Dictionary
把文章轉換成vector
- 將文章透過TF-IDF轉換成向量
### How fake is the news
237: 計算dataset news平均長度
- 用237來切割(cut news longer than 237 terms to segments)
- 把太少的丟掉(shorter than 9 terms)
- word embedding model(跟之後model一起train)
Model Design for Text Regression
- 為什麼是CNN?
- 相信假新聞是特定寫手、政府...的文章,可能會有一些pattern,CNN可以抓到他們的pattern
- dilated causal CNN: 可以保留時間順序又有CNN特性
- bidirectional LSTM & GRU接在後面,抓住上下文的關係
- LSTM + GRU(標準做法)
- 最後輸出一個分數,告訴你新聞有多真 / 有多假
### Classification Result
- 表現最好的是svm
- random forest是linear,可能會overfitting的可能
- 有無Feature selection 對於結果有顯著的差異
- label the level for ML
- true:1
- mostly true:0.8
- 0.5
- 0.3
- fake:0.1
- pants on fire:0
- 這值怎麼給的?前面有提過Supervisied learning,透過這方法train出來的
### Evaluation Measure
- MSE = 0.067
- MAE = 0.1
- Binary classification acc = 0.945(最後一層value經過sigmoid)
- 這只有內文而已
### Conclusion & Feature work
- Define FAKE News?
- Domain specific task
- Unite with other metadata
據說,中文上的character-based效果會比較好(一個一個字去做)
## 從學校到業界,工程師作為職業的現實
蒼時弦也
## light show
- 區塊鏈風味的認證機制:http://demo.pelith.com
- 鸚鵡產生器連結: ballfi.sh/e5
- 數據太大怎麼辦?C++17可隨機存取樹狀結構資料