Welcome! 👋

This is the website of Allen Hsieh. You can find my blogs and gallery here.

生活近況分享

好久不見!繼上次發文已經是二月的事了,中間發生好多值得紀錄的事,也可以多少說明沒有更新的原因(不是單純因為懶惰)。 下筆的今天是人生倒數第二個暑假的第二天,還沒習慣不需要每天晚上開會討論期末報告的鬆弛感。趁著剛開始的假期,決定花點時間紀錄前陣子(2025/1 ~ 2025/5)的忙碌。 關於學校 在今年一月意外提前畢業後,匆忙的處理入學、指導教授事宜(還差點被原本同意指導的教授退件),幸好一切在開學後總算步上軌道,正式開始我期待已久的電資學院碩班生活! 碩一上大致可以分成前半學期和後半學期。 前半學期(2 ~ 3 月) 因為大學系上學長也跟我在同一個實驗室,從他那邊了解 IR Lab 大多都是碩一實習、修課,碩二才會開始做研究,我就也將學期前半段大部分的時間留給 AWS 校園大使的任務(留在另外一篇文章分享)以及課業。 選課上,一開始的策略是希望能夠在碩一就修完全部學分(24 學分),最後的選擇如下: CSIE5137 網路資訊檢索與探勘 - 鄭卜壬 教授 CSIE5373 高效能巨量資料與人工智慧系統 - 洪士灝 教授 EE5173 作業系統 - 王 凡 教授 EE5184 機器學習 - 李宏毅 教授 但在這裡我卻犯了一個錯,我完全低估了電資學院課程的 loading 。 最讓我覺得痛苦的是作業系統,先說結論,最後我停修了。我不是每一堂課都很認真上課的學生,老師的上課內容也不吸引人,所以我上完第一堂課後,下次上課我直接帶課本在教室自己讀,三個小時的上課可以讓我補足三個禮拜的進度。 如果只是上課需要自己讀,其實跟蠻多大學課程一樣,不會讓人覺得需要停修,讓我停修的最後一根稻草就是作業,作業是助教依照 Stanford 的 Pintos 作業修改製作,第一次作業希望我們完成 12 個 system calls,但大前提是你需要先讓 OS 可以成功接受你的呼叫,這需要 synchronize 的概念,而這樣重要的概念在作業死線前一個禮拜教授都還沒上到,最後是助教另外發公告提示要特別注意哪些觀念才有方向。 總之,經歷了死線前幾天組員決定退選、找到新組員、共同決定要延後一週繳交、繳交作業一後發現再一個禮拜是作業二死線,終於下定決定停修,日後再戰 OS 。 也幸虧停修了作業系統,在後半學期才有比較多餘裕可以應對其他課。 其他課程礙於篇幅就不在本篇文章分享,簡單來說,沒有一堂課是輕鬆的,程式作業、期中期末報告都是挑戰,碩一上的時間有一大部分都在與他們奮戰。 除了課業跟大使,我也決定要找實習,所以在這段時間也有參加幾場面試,真的佩服自己能夠同時準備那麼多事情(雖然有些事情做得沒那麼好)。 後半學期(4 ~ 5 月) 後半學期原本以為少了大使的事情會比較有空閒時間,但後來參加了四月底的 AWS GenAI 黑客松以及準備實習面試,幾乎等同於花在大使上的時間,最後還是讓自己的後半學期在匆匆忙忙中度過了~ 特別是網路資料探勘與檢索的期末報告,這算是我第一個在電資領域的研究,題目發想、分析資料集、實驗設計、實驗結果分析、報告撰寫,與以往專題研究不同,一切都是從頭開始,札札實實給我上了一課,過程中感謝組員的 Carry (Shout-out to Louis, Marvin and Judy),沒有他們真的沒辦法度過這個報告。 ...

2025-06-08 · Allen Hsieh

什麼是 WSGI? 什麼又是 gunicorn?

WSGI 介紹 WSGI (Python Web Server Gateway Interface) 是一種 協議 protocol,定義了 web server 和 python web application 或 framework 之間溝通的規範。 它的目的是讓不同的 Python Web Framework (如 Flask、Django) 與不同的 Web Server (如 Gunicorn、uWSGI) 可以互相兼容。 所以,WSGI web server 其實就是應用了 WSGI 的 Web server。 📌 運作方式: Client 發送 HTTP request(Web browser → Web server)。 Web server (e.g. gunicorn) 透過 WSGI 呼叫 Python applicatoin(e.g. Flask/Django)。 Python applicatoin 處理請求,並回傳 HTTP response。 Web server 再將 response 傳回給 web browser。 Gunicorn 介紹 Gunicorn (Green Unicorn) 是一種基於 unix 系統 的 WSGI HTTP server,專門用來執行 Python Web 應用程式 (如 Flask、Django) ,並提供高效能的並發處理。通常在 反向代理 (Nginx, Apache) 與 Web 應用程式 之間。 圖片來源: https://www.maxlist.xyz/2020/05/06/flask-wsgi-nginx/ ...

2025-02-13 · Allen Hsieh

機器學習常見問題:監督式學習和非監督式學習的差異?

Update: Feb 4, 2025 在 AI 世界有太多太多名詞,對於小白來說特別容易感到沒有方向。不論是經典的機器學習或是深度學習,當提到訓練方法時,大致上可以分成三種: 監督式學習 Supervised Learning 非監督式學習 Unsupervised Learning 半監督式學習 Semi-supervised Learning 你可能會好奇:「為什麼叫監督式學習?難道我要在旁邊盯著模型學習嗎?」其實,「監督」的意思是指提供標註資料,而「非監督」則是讓模型自行尋找模式,今天這篇文章就會幫你釐清以上的問題。 監督式學習 Supervised Learning 監督式學習透過大量的 標註資料(Labeled Data) 訓練模型,讓模型學會從「已知答案」中找出規則,並應用到新的資料上。 舉例來說,現在你想要透過機器學習模型辨是貓或是狗,因此你收集了大量貓和狗的照片作為訓練資料,另外你還對照片加上註解,說明這張照片是貓還是狗,因此你的訓練資料即為「標註資料」。 只要有足夠的標註資料,經過訓練的模型就能正確的回答你這張照片是貓或是狗。在這個例子中,模型的輸入是圖片的像素數據,而輸出則是一個標籤(貓或狗)。透過大量標註過的圖片,模型學習如何將新的圖片對應到正確的分類。 其他應用? 監督式學習除了用來進行分類(如貓狗識別),還能用於: 房價預測 🏡 → AI 透過大量的「房屋特徵 + 成交價格」數據學習,能夠根據房屋的大小、地點和其他條件來預測新房屋的價格,幫助買賣雙方做出更好的決策。 病患康復時間預測 🏥 → AI 透過醫院收集的「病患狀況 + 康復時間」數據學習,當新病人來就診時,系統能夠根據病情預測大約需要多久才能康復,幫助醫生規劃治療方案。 小結 監督式學習就像是在「有老師指導」的情況下學習。模型學會從已知的問題與答案中找出規則,然後用這些規則來預測新資料的結果。 非監督式學習 Unsupervised Learning 非監督式學習使用 未標記的資料 來進行訓練,目標是讓模型自己找出數據中的規律,例如把相似的東西分成不同的類別。 同樣以動物來舉例,現在你有許多動物的照片如下圖 並且你希望找出這些動物可以分成幾類,於是將所有照片交給機器學習模型進行訓練。最後,模型告訴你可以分成貓、狗和魚三類,這就是一個非監督式學習經典的分群應用。 其他應用? 除了分群問題,非監督式學習還常見於: 音樂與電影推薦 🎵🎬 → Spotify 或 Netflix 會分析你的喜好,找出跟你相似的人,然後推薦你可能喜歡的歌曲或電影。 垃圾郵件過濾 📧 → 電郵服務會分析郵件內容,判斷哪些郵件「看起來像垃圾信」,即使沒有標記,它也能學會分類。 社群媒體標籤 📷 → Instagram 可能會自動將你的照片分組,例如「食物」、「風景」、「自拍」,幫助你更方便整理相冊。 小結 ...

2025-02-02 · Allen Hsieh

Hugo + GitHub Pages 個人網站建置教學

Update: Feb 3, 2025 在現在好像沒有自己的品牌是一件很稀有的事( 比日本製的壓縮機還要稀少 )。為了解決大家的煩惱,這是一篇帶你使用 Hugo + Github Pages 從零開始製作個人網站的教學! 那我們就直接開始! 1. 安裝 Hugo 本章節按照 Hugo 官方推薦步驟 進行安裝。 MacOS Step 1. 使用 Homebrew 進行安裝,若還未安裝 Homebrew 請先自行安裝。進入 Terminal (終端機) 輸入以下指令: brew install hugo Step 2. 輸入以下指令已檢查是否安裝成功: hugo --version 若有出現版本資訊即代表安裝成功。 2. 套用主題 Step 1. 到 官方的主題網站 瀏覽並選擇自己喜歡的主題,本文以 PaperMod 為例。 Step 2. 先在本地創建一個新的 Hugo 網站。 hugo new site MyFreshWebsite --format yaml # 將 MyFreshWebsite 替換為自己網站的名稱 --format yaml:將 hugo 的設定檔更改為 yaml 格式。 Step 3. ...

2024-11-30 · Allen Hsieh