SITCON 2019

人工智慧的過去現在與未來

林守德

商管、演算法、商管

孔令傑

幾個演算法的商管應用

自動化的(競爭標價)系統

  • 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: 高雄港

  • 船舶進出港所需之關鍵資源:水道、拖船、領港
  • 議題:
    • 現在的壅塞是缺少哪個資源(瓶頸分析)?
    • 如何良好地調配資源以減少壅塞?

用演算法解決商管(決策)問題的四個步驟

    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: xy = (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

短短
簡報在此 程式碼及PE檔

PE(Protable Executable)

  • 微軟的一種文件格式
  • 常見如exe, dll檔案

header+body的組合

  • body: 真正的內容

Section Table

  • 有幾個section就會有幾個section header

Body Header

  • /不知道該寫什麼 請幫忙補充/

AI for the Art in a Box

張嘉哲

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
Play as You Like: Timbre-enhance Multi-modal Music Style Transfer

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: biasjunscisatire
    • state類別: Ex: daesh
    • true類別: nationalpolice
    • fake: politicalmilitarypodesta(假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

Select a repo