韓國出差見聞之一

2023/3/6 在疫情過後第一次出國, 搭紅眼班機從桃園機場到韓國仁川機場. 仁川機場有巴士 6017 號可以坐到旅館, 價錢是 17,000 韓元. 放下行李之後, 開始找午餐吃, 雖然出發前已經在家裡和機場貴賓室吃了點東西, 但落地之後加上一小時時差, 又到了午餐時間. 隨便吃一點也可以調整腸胃時差. 於是找了一家吃馬鈴薯排骨湯, 店員會說中文, 感覺跟小瀋陽一個口音.

下午 review bug, 晚餐跟廠商吃烤豬肉. 第一次知道烤豬店只烤豬, 烤牛店只烤牛.

大塊的厚切豬肉, 烤得差不多了再用剪刀剪成小條.

看得出第二輪上的這個豬相當肥. 有點投機取巧. 是不是賭客人喝醉了?

吃法跟大家想得一樣.

想不到的是: 服務生用燒酒洗鐵板代替換烤盤, 據說它比可樂、啤酒都便宜. ChatGPT 說:

  • 燒酒 (Soju):1,500 ~ 3,000 韓圓,視品牌而定。
  • 啤酒 (Beer):2,000 ~ 4,000 韓圓,視品牌和種類而定。
  • 可樂 (Coca-Cola):1,000 ~ 2,000 韓圓,視店家而定。

吃完烤肉, 最後又送上一盤冷麵 (冷麵, 熱麵,飯三選一). 我一口都沒喝的水, 放在烤盤旁邊都浮上一層豬油, 白而混濁的狀態, 快要跟濁酒差不多顏色了.

回家途中, 看見發傳單的人把傳單撒在地上, 紅綠燈也顯示在人行道邊緣. 這一切都是為了低頭族. 前者好像是特別發夜生活的廣告, 人家不拿也是正常的. 所以發給土地公算是聰明? 至於斑馬線前的地面紅綠燈, 我覺得台灣應該學起來.

回到旅館房間, 盤點一下旅館的用品. 網站上說有個人盥洗用品, 原來不包括刮鬍刀. 雖然我也帶了一把拋棄式的備用, 但看起來撐不了五天. 還有早上才買的 T Money 卡竟然不見了, 只好再去買一張. 我 Google 網路上說 GS25 有賣. 下樓跑了最近的一家超商, 他找了一陣子跟我說沒有 T Money….!? 所以只好憑著記憶去找同事帶我買的那家店.

結果在 T Money 儲值時溝通不良, 我說 “top up", 他說 “충전" (chungjeon), 聽起來很像 “充值" 對吧! 我不會說"一", 只會比"一", 但說了兩次 “萬" (man), 他就幫我充了兩萬. 不過很巧地, 充了兩萬扣一扣剛好夠付回程機場巴士的錢!

睡前打開 Netflix, 看每週一更新的 “出球致勝" (A Clean Sweep) 有沒有上線, 赫然發現韓國比台灣多了很多集. 這表示我用 VPN 連到韓國也可以看到後面的集數, 只是字幕會變成韓文. 那…看球的樂趣也會少很多. 誰叫我們學校當年沒開韓文選修呢? 聽不懂就沒辦法.

AI 搶飯碗!

本來今天打算整理一篇以前的讀書心得, 不過 AI 搶軟體工程師飯碗這件事對我還滿有衝擊的, 所以特別紀錄一下.

今天是十天連假的收假日, 不小心打開很久沒玩的數獨 (Sudoku), 發現竟然有對戰模式, 可以跟外國真人對戰! 這個比寶可夢的對戰刺激多了, 所以我馬上跟配對的老印、老法、老德殺起來! 前幾戰的對手超弱, 但後面的對手滿強的, 幾乎是分秒必爭. 稍微分心一點點就輸了. 畢竟我好久沒玩了, 反應慢很多, 只得到 16 勝 8 敗就想趕快休息. 不然萬一心臟負荷不了猝死就划不來了. 這樣以後人家問起老爸的死因, 女兒只能說死於某一波寒流這樣塘塞過去.

(對了, 此遊戲選台灣會變成中國的一部分, 所以我推薦女兒玩, 結果她選冰島籍).

接著我發現電腦的 ChatGPT 窗口還沒關, 順便就問它, “can you resolve a sudoku?", 然後奇妙的事情發生了. 我知道 ChatGPT 會寫程式, 但我只是隨 “口" 問問, 它就把程式寫好了. 看來不只是可以幫我們交訓練課程的心得報告而已. 連我們以後上機考試要更嚴格防弊了….哈!

Yes, a sudoku can be resolved using algorithms such as backtracking, constraint propagation, and search. Here’s an example of a simple backtracking solution in Python:

哇! 架構都出來了! 稍微把那多餘的 return 拿掉, 加個 class 的殼, 程式就能用了. 不求任何優化, 只要把題目的 array 輸進去, 答案立馬出來.

這有什麼啟示呢? 我想大理工時代將要隨著 AI 的興起而沒落了. 基本上, 現在電資的學生不分良窳, 幾乎都比文組有職場競爭力. 不過 AI 的程式都寫得比人類又好又快了, 那自然也就不需要這麼多就業人口了. 雖然文組可能會丟掉飯碗 – AI 當小編, AI 寫文案, AI 寫專欄, ….. 不過近年風光無限的理工同學, 真的要當心 AI 寫程式、畫 layout 這些變化. 基本上這都還算是初階. 等到它會分析 bug, 連資深同仁的工作可能都不保了. 至於 PM, …可能可以再撐一陣子, 但是前途也是堪慮. 所以…人脈很重要, 這個 AI 取代不了~~~哈!

神經病 vs 精神病

這個標題看起來像是在罵人, 不過它是 “記憶" 這本書第一章的亮點. 記憶為何會牽扯到精神病呢? 因為精神病患常常有幻視幻聽等症狀 (失智者也會), 而且他們對這些幻覺有長期的記憶 (嗑藥好像也會). 為何虛假的東西會被當成是真實的事情, 並且被大腦記錄下來? 本書的第一章就在討論這個.

作者薇洛妮卡‧歐金在"記憶:我們如何形成記憶,記憶又如何塑造我們?精神病學家探索解析大腦記憶之謎" 一書中, 就是以精神病學家的角度切入 “記憶" 這個主題. 作者認為瞭解異常, 有助於認識正常. 早期人們從宗教的觀點認為有些人得了精神上的怪病, 但科學家慢慢找出怪病的原因, 因此把這類疾病從精神病變成了神經病.

既然是西方老外寫的書, 精神異常一定要綁定文化背景. 例如在大中華文化圈, 如果曹孟德常常看見死者向他索命, 老一輩的人會說他害死太多人, 所以有冤鬼來報仇. 但近代科學家可能認為幻視幻聽是失智症的一種. 諸如此類. 同理, 當西方人發現所謂精神感受來自於大腦, 而不是靈魂, 靈魂的影響力就減弱了.

19 世紀的精神病院病人, 有 25% 的比例被認定為 “麻痺性癡呆" (General Paralysis of the Insane = GPI), 其病徵是道德錯亂. 但是到了 1880 年代, 人們發現這是梅毒末期所造成的腦病變. 1950 年代, 盤尼西林發明後, GPI 從精神科轉到內科治療. 再經過梅毒螺旋體的發現, 這個疾病發生的原因也由 “性濫交造成的精神錯亂" 轉為 “傳染病".

另一個例子是腦炎 (抗 NMDA 受體腦炎 = Anti N-methyl-D-Asparatate-encephalitis), 得到這個病之後同樣會發生精神錯亂, 包括幻聽、妄想、動作障礙. 所以原先由精神科處理, 但其實這是一種自體免疫疾病 (autoimmunity), 因為抗體攻擊人類自己的 NMDA 受體所引起.

總而言之, 得了神經病還是比精神病好一點. 因為我們知道原因. 在排除偽精神病之後, 作者順手批判笛卡兒的二元論是偽科學, 因為他主張的二元論把心智 (mind) 和大腦 (brain) 分別當作心和物兩種物件, 但作者認為心智都有物理依據. 就像是精神病都有神經學的基礎. 當然, 笛卡兒更有名的是 “我思故我在". 歷史地位沒有問題. 這裡就只鎖定的一個觀點: 笛卡兒認為上帝所創造的靈魂是完美的, 而生活的感官經驗沒那麼重要. 和他打對台的人, 則是感覺主義者 (sensationalist).

書上說: 上帝給的叫做 Knowledge (天命?), 自己學到的知識叫 knowledge (學問?), 分別是大 K 和小 k. 這兩種知識的爭論跨越 16,17 世紀. 雖然我 Google 不到相關資料, 但這個題目很有趣. 本書第一章的後半也在講這個. 後來有個實驗證明, 55 歲才恢復視力的一位維吉爾先生, 當他重獲視力, 短期間還是不能把以前熟知的圓形、方形, 和眼睛看到的球與方塊做連結. 故作者認為心智的初始值就是一片空白, 所有的感覺 (或者應該理解為知覺?) 都是記憶所餵養的.

我們從訓練 AI 模型的經驗可以知道, 每個人都有數量相當的腦細胞, 不過有人初始值設得比較好, 有效的參數比較多, 甚至預設好幾組 trained 好的 model (音樂, 數學, 體育…etc.), 所以日後即使受同樣的教育 (re-train / fine-tune), 也會有不同的表現. 基本上這和作者的觀點差不多, 但只要了解過 AI 怎麼學習, 我就會假設人類也是這樣學習. 這個觀點暫時已經回不去了. 但是書就繼續讀下去~~~

自製 mini ChatGPT

根據 [1], 決定自製一個 mini ChatGPT. Afiz 的流程如下:

首先在 Anaconda 中 pip install openai 就失敗, 原來要用 conda install -c conda-forge openai [2].

pip install gradio 沒問題

from config open_api_key 一看就不合用! 看 [2] 裡面的說明, 要先參加 OpenAI會員. 這個我已經註冊過了. 登入後, 可以在 https://beta.openai.com/account/api-keys 產生 key. 然後把 key 設為環境變數 %OPENAI_API_KEY%.

後面照抄 [4], 可是出現 check internet connection. 暫時卡住.

這要怎麼 debug 呢? 因為是抄的, 所以有點不明就裡. 乾脆來問 ChatGPT 本人要怎麼呼叫它? 然後它就大方地給我一個 sample code. 這感覺就是 “玄 “!

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Completion.create(
    model="text-davinci-003",
    prompt="The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.\n\nHuman: Hello, who are you?\nAI: I am an AI created by OpenAI. How can I help you today?\nHuman: I'd like to cancel my subscription.\nAI:",

    temperature=0.9,
    max_tokens=150,
    top_p=1,
    frequency_penalty=0.0,
    presence_penalty=0.6,
    stop=[" Human:", " AI:"]
)

不過, 這段程式還是有個相容性問題. 它說 Anacoda 裡面有段 source code 開檔預設是 latin-1, 不是 UTF-8. 這…這我 debug 不了啊? 查一下午資料, 都說要改 mysql database 那邊的設定.

UnicodeEncodeError: 'latin-1' codec can't encode character '\u201c' in position 7: ordinal not in range(256)

好在我到處 Google 找到了另外一篇中文教學 [5], 它的範例不會打到上面那個 bug. 所以狗哥不用怕, 裁員一次就好, ChatGPT 暫時還不能把你幹掉. 仔細比較兩個程式, 目前認為還是 export private key 沒有成功, 所以暫時用明碼才能夠連線的關係. 這樣總算在過年假期當中, 把 OpenAI 的探索前進了一小步! 現在它可以講笑話了, 雖然要等 2~3 秒.

[REF]

  1. https://twitter.com/itsafiz/status/1610245691812741120
  2. https://anaconda.org/conda-forge/openai
  3. https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
  4. https://github.com/afizs/chatgpt-clone/blob/main/mini_ChatGPT.ipynb
  5. https://steam.oxxostudio.tw/category/python/example/openai.html

投資策略思考 – 過年篇

領到年終獎金之後, 因為銀行營業日只剩兩天, 立馬就轉帳到不同的證券戶. 又為了搶低點, 買價設得接近市價, 兩三下就幾乎花光了. 只剩下集運匯錢到美國帳戶的資金, 因為不用急著成交, 反而都沒買到. 在這個寒冷、老人不宜外出的天氣裡, 正好窩在電腦前查資料.

首先瞄到 2023/1/4 一篇 Seeking Alpha 上有一位作者 (推銷員?) Rida Morwa的投資策略, 七八分合我的意, 於是我認真地看它. 作者說他偏好固定收益, 像是優先股, baby bonds 或是 bonds. 下一段又說特別留意 Pass-Thru Entities, 例如 REIT, 以及 CEF, MLP 優先股. Baby bond 就是面額低於 1,000 USD 的債券. 但 Pass-Thru 這個名詞對我又熟悉 (i.e. pass thru bugs) 又陌生, 所以我先來研究一下 Pass-Thru Entity.

Pass-Thru Entity

此處的 pass-Thru = pass-through = flow-through. 意思是說, 這些 entity (包括: sole proprietorships, partnerships, limited liability companies, and S-corporations. [1], 簡稱公司) 把稅直接轉嫁給 owner, 所以只有 owner 要繳稅, 這些 entity 可以避稅, 或者避免雙重繳 (利息) 稅. 相反的例子就是台灣政府取消兩稅合一, 股東擁有的企業先扣一次營業稅, 股東的利息也扣一次所得稅, 接著再扣二代健保補充費…呃, 過年不罵人. 先回到大家比較熟悉的 REIT [2], 它並不是 Pass-Thru entity! [3]

我從 [4] 抓到下圖, 它解釋了 S-corporations 以外的公司型態, 大家看圖意會即可. 至於 S 公司, 可以參考 [5], 它是一個經過註冊, 股東少於 100 人 的 (美國) 國內公司.

CEF 優先股

CEF 是指 Closed End Funds, 也就是封閉式基金. 封閉式基金的規模會固定下來, 所以大家只能互相買賣, 也會物以稀為貴 [10]. 根據 [6], 厲害的點不是 CEF, 而是 1940 這個法案 [7]. “This is because of the requirements that the CEF have at least 200% asset coverage for preferred stock and 300% for debt asset coverage of “senior securities” which means debt and preferred stocks. " 也就是說公司的資產為 1, 才可以發行價值為 1/2 的優先股和 1/3 的高級債券. 當公司清算時, 優先股一定能夠回本.

上圖取材自 [8], 以及 http://www.antiquesage.com

根據 [8], 購買優先股可以獲得 5.6% 的殖利率, 但 CEF 優先股可以獲得 7~9% 的殖利率. “Preferred stocks that are bought individually—that is, outside of a fund—yield 5.6% as I write this. But purchasing through a CEF can upsize that payout to 7%, 8%—even 9%." 這是什麼魔法呢?

  1. 因為封閉式, 有機會買到淨值 (NAV = Net Asset Value) 以下的價格.
  2. 槓桿操作 – 聽起來危險, 通常控制在 35% 或以下.

根據上述理論, [8] 的作者 Michael Foster 推薦四隻殖利率> 7%, 折價 2~4%, 長期回報 5.7%~9.6% 的四支優先股基金: FPF, JPC, JPS, LDP. 在美國券商都買得到. 因為推薦的時間是 2020 年. 理論上在 2022 大升息期間有更多的好料可以買. 只是晚了就漲價買不到.

MLP 優先股

根據 [9], MLP = Master Limited Partnership. 回到 “types of business" 那張圖, 商務的型態有合夥 (partnership) 和公司 (cooperation) 兩種主要型態. 前者像是律師事務所, 就像我們看到韓劇裡面的律師, 拚到最後就是升為合夥人. 它就是個 LLP ( limited liability partnerships) 的典型例子. 但不要跟圖上的責任有限公司/ LLC (limited liability companies) 搞混. [12]

LLP 架構下有一個或多個要負全責的人 (general partner, 事務所老闆), 和一些只負有限責任的人 (limited partener, 合夥人律師). Master Limited Partnership 即是可以出售的 partnership, 我把它想像成不用自己當律師, 也不用當事務所老闆, 但是我花錢買到這個分紅的權利. “The word “master" in MLPs pertains to the general partner, who will usually own two percent of the MLP. " [13]. 意思是原本老闆擁有 MLP, 然後他把這個權利拿出來賣錢.

那 MLP 的優先股會有啥好料呢? 根據 [11], 呃…這些 LLP, 我確實一點也不熟悉.

小結論: CEF vs PFF

根據 [10], “通常一檔基金架構會選擇封閉型,主要原因都是投資的標地流動性較差." 如果大幅升息, 那封閉式基金的殖利率放到現在一定不漂亮. 果不其然, 抓個圖 [14] 就可以看到這淨值的跌幅也很考驗心臟. 不過跌下去之後, 它的殖利率有 8%, 還是算高的. 雷達 (Rida) 先生說要買算是有理.

再看看 Firstrade 的圖, 這支基金顯示折價 (Price < NAV), 好像麥克 (Michael) 也所言不虛. 只是年假雖長, 時間還是有限. 目前我只能知道優先股值得買, 但是 CEF 優先股基金… 我好像剛看完交通規則考古題, 還不知道應不應該開上高速公路啊~~~

根據 [15], CEF 優先股基金有下面這些標的. 其中 PFF (Open End Fund) 是放進去 PK 用的. 果然 CEF 都有槓桿, 甚至超過 50%. 雖然殖利率都高出 PFF 一小截, 總回報有些也比 PFF 厲害, 不過我還是買 PFF 就好了.

因為 FPF 的成分股 [16] 和別家差不了多少, 就是 8% 的優先股買得多一點. 但光是槓桿這部分就扣分了. 其中, NPFD 沒槓桿, 也沒有手續費, 不過虧 20%. 好像一個學生沒作弊但是被當掉, 好可憐.

總結

優先股在成長股狀況不佳的時候, 的確可以提供短期的保障. 根據 [17], 如果把 PFF 的股息拿去再投資, 經過 15 年壓力測試, 其實還跑不贏把股息拿去爽爽花! (下圖紅色 > 記號) 所以對於不會成長的標的物, 其實沒有股息再投入的必要. 優先股在升息導致大盤下跌時, 也就是黃色底時買進, 可以當作短中期保證穩定獲利的工具. 但是長期就輸給 S&P500 許多.

[REF]

  1. https://www.thebalancemoney.com/what-is-a-pass-through-entity-5217698
  2. https://rich01.com/what-is-reits/
  3. https://www.sec.gov/files/reits.pdf
  4. https://corporatefinanceinstitute.com/resources/management/sole-proprietorship/
  5. https://www.irs.gov/businesses/small-businesses-self-employed/s-corporations
  6. https://innovativeincomeinvestor.com/preferred-stocks-of-closed-end-funds/
  7. INVESTMENT COMPANY ACT OF 1940
  8. https://www.forbes.com/sites/michaelfoster/2020/07/28/preferred-stock-closed-end-funds-how-they-yield-up-to-9/?sh=726ea3375d1a
  9. https://seekingalpha.com/article/4541734-comparing-mlp-preferred-stocks
  10. https://rich01.com/closed-end-funds-vs-open-end-funds/
  11. https://seekingalpha.com/article/4541734-comparing-mlp-preferred-stocks
  12. https://www.legalzoom.com/articles/difference-between-llc-and-llp
  13. https://www.investopedia.com/terms/m/mlp.asp
  14. https://www.nasdaq.com/market-activity/stocks/fpf/advanced-charting
  15. https://stockmarketmba.com/listofpreferredstockcefs.php
  16. https://www.ftportfolios.com/Retail/cef/cefsummary.aspx?Ticker=FPF
  17. http://www.lazyportfolioetf.com/etf/ishares-preferred-and-income-securities-etf-pff-dividend-yield/